Hello,
I'll post some of the features i would like to accomplish with ServUO.

  1. Destroying the OSI Style: no more DCI, HCI, MR, LRC and all this things. I would like to have a server similiar to the pre-AOS.
  2. Having only 3 skills: combat, crafting, surviving
  3. Combat system based on the new Combat/Surviving skills
  4. Modifying the behaviour of NPCs and Monsters by giving them custom AI
  5. Random Events/Quests
  6. New Gump when pressing the skills menu from paperdoll.
Honestly what worries me more is the point 1 - 2 - 3. I think the point 4 and 5 are pretty doable.
How can i start by doing this thing?

Honestly watching the scripts it looks everything prepared for an OSI style server and it is not what i would like to accomplish.

Give me some advices and guidance pls !

Thank you
 
Well ServUO's purpose is to be an emulator to emulate the "current" state of OSI.

Everything should be doable, 1. is basically already set if you use the Pre-Aos setting but it can be complety removed by hand too.
Having 3 skills sure you would just need to change everything that uses different skills to use the new ones.
for 3 you would need to implement the new skills like befor so its kind of one point.
Making a new AI sure, you can also edit the current one.
Events / Quests sure thing, should be in tutorials?
New Gump on the button would be possible by changing the hook of the button (not sure if it is client side only, shouldnt be though)
 
I'm only worried about the skills part, check in the Server/ folder and try to find an event listener for that button and override it with your own gump, otherwise the skills names are in the client, so you can't play with that.
What you can do though, is ignoring the client skills, and work your own way with that.
Check out ASCII message,
Code:
from.SendAsciiMessage( "stuff" );
for the skill raising notices, get rid/modify all what refers to the old skills, and keep track of your changes in a log file, (or any automatic code management like Git), so you remember what you changed.

The rest is all doable, but i wouldn't start them as long as the skills changes are not made :p
That is some long-term job, so i wish you good luck!
 
Po0ka and Pyro make great points here. What I have always found helpful is to hunt for scripts that achieve close to what you want to do and go from there. If you can't find the content you're looking for here yet, you can still find some great stuff over at http://www.runuo.com/community/ and most of us probably were posting there before here anyway. Also sometimes you can find creative ways to get the job done. For instance if you just can't find a solution as a last resort option, maybe raise the skill gain chance on the skills you don't want people to have to an ungodly number so they never gain. But again that is only a last resort example. There are many solutions to one problem and with the folks around here someone is bound to have your answer. Many of the members here have helped me in the past over at RunUO with some very hard scripting problems. :D

Remember Code Talks! So if you are having problems post the code you have changed.
 
Last edited:
Thank you for all your answers. You are very kind.

What i really need now is to understand how ServUO is engineered:

For example i've seen the Ultima folder in the servUO server folder. And then i opened the skills.cs: and basically they load skills from the skills.mul or skills.idx file from client. Am i right?

So basically i had to destroy that class and change it to my needs? (that's only for the appareances.)

What about setting the pre-AOS expansions? Do servUO auto comments all the code not releated to that expansions? How do i do that?

If anyone has a guide that describe HOW servuo is created and works it would be very good for me

Another question: where is the combat system located?
I remember that in sphere there was basically a file called sphere_combat. I think now it is somewhere else hidden in some class.
What about the behaviour of the combat skills? Where are they located?

Thank you
 
Theres no one file that deals with each thing, you need to just load the project up in visual studio and start learning the code base, start with one idea and go from there, the only way to learn it is to work with it.
There is no external documentation, but the code is fairly well commented and structured fairly well. It's not like trying to jump into the sphere core codebase which is an absolute nightmare.

1-5 is all possible and just depends on your coding skills, though your going to have to get very friendly with the majority of the codebase.

Most AOS+ stuff can be disabled fairly easy just setting your current expansion to UOR or T2A etc.

6. isnt really possible, the skills gump is hardcoded in the client.
though i dont think you really need to remove anyway, if you remove all skills except 3, and rename them then your skills gump will only show those anyway.
 
Oh sorry, looks like your right, though im pretty sure 0x3a gets sent on login as well, not only when you open skills window?
 
You may be right there. It would not be for the faint of heart to customize the skills gumps but its doable. I have never actually needed to do something that advanced. Dealing with the packet redirection is way above my pay-grade. LOL :D
 
Oh looks like client only sends 0x34 on login, and 0x3a is only when skills is hit :eek:
So yes you could override and send your own gump instead.

Hooking a packet isnt too complex, you dont need to parse it either which makes things easier. and your not needing to construct any packets by hand to send back, just a gump.
 
Back