Page 1 of 1

Zoneserver feature requests

Posted: Tue Apr 01, 2014 12:54 pm
by Jabantiz
The rework of zone server is at a point where additional features can be implemented so I am making this post to discuss what could be added and how to add it. If you ever wanted zone server to do something this is the time to request it.

First thing I think we should add is the flags from data.soe.com
"flags": {
"allow_illusions": 1,

"allow_mercs": 1,

"allow_mounts": 0,

"allow_size_mods": 1
}

Re: Zoneserver feature requests

Posted: Tue Apr 01, 2014 4:51 pm
by John Adams
For custom server options, can we add flags "easily"? or are they going to be 900 lines of if/else code checks? :D For example, I may want to prohibit Magic in a zone. Or, running. Yes, I want to make you WALK to the other side. Bad example, but that's what I mean. Non-standard SOE flags. No flurrying, rampaging or... or, gating!! Yes. You succor, you will stand and DIE.

Re: Zoneserver feature requests

Posted: Tue Apr 01, 2014 5:11 pm
by Jabantiz
Flags would have to be checked in the code so for every flag added an if/else will need to be added some where in the code. Making flags a bitmask would allow us to do a simple check so all you would have to do is add a define for your flag and add the if/else to support it.

Example of the simple check

Code: Select all

if (zone->HasFlag(NO_RUNNING) {
    // disable running
}
I know bitmasks suck for most people so we could make a slash command in game to set the flag by name like "/zone set flag no_run 1" to enable the no run flag.

These are just some ideas to make it easier to use.

Re: Zoneserver feature requests

Posted: Thu Apr 03, 2014 12:43 pm
by Zcoretri
What about support for having a zone applying a detrimental buff? Would that be handled here?
Loping plains come to mind. I also have been in new zone instances with detrimental buffs to your crits.

Re: Zoneserver feature requests

Posted: Thu Apr 03, 2014 2:37 pm
by Jabantiz
That could probably be done with zone scripts, PlayerEnter for when a player logs into the zone or the dusk/dawn stuff for only certain times. This reminds me I need to set up a timer for world time to keep the client in sync.

Another idea, how about having the spawn distance set per zone instead of a global 200, so in small zones or labyrinth type zones (sewers) we can set the distance low but in wide open zones like some of the kunark zones we could bump it up?

Re: Zoneserver feature requests

Posted: Thu Apr 03, 2014 7:13 pm
by thefoof
Jabantiz wrote:That could probably be done with zone scripts, PlayerEnter for when a player logs into the zone or the dusk/dawn stuff for only certain times. This reminds me I need to set up a timer for world time to keep the client in sync.

Another idea, how about having the spawn distance set per zone instead of a global 200, so in small zones or labyrinth type zones (sewers) we can set the distance low but in wide open zones like some of the kunark zones we could bump it up?
Sounds like a good idea to me. On the detrimental buff thing we could probably handle it, maybe have the caster cast it on themself and enable the not_maintained flag. Only concern I would think is if the player is allowed to cast while they are still zoning or not.

Re: Zoneserver feature requests

Posted: Fri Apr 04, 2014 5:39 pm
by Jabantiz
I believe passives are cast in SendCharInfo(), so fairly early in logging into a zone. I did have to do some work arounds but don't remember if that was because of casting them this early or just trying to get them to work properly.

I made some minor changes to the LD code, mainly with the deletion of the client. We were removing the player from the world and then deleting the client, which deletes the player, right after, which could cause a null pointer crash.

The rule RemoveDisconnectedClientsTimer is how long after the player is removed before we delete the client pointer, in the code it defaults to 30000 (30 secs) however the DB seems to default it to 100, I would recommend it being 30000 for the default as that is the same time we allow spawn pointers to linger before deleting them.

Also think I found, and fixed, a situation where the console title would not update properly when a client LD's

Re: Zoneserver feature requests

Posted: Sat Apr 12, 2014 9:39 pm
by Jabantiz
Found and fixed a small memory leak when a npc died to another npc.