Zoneserver feature requests

EQ2Emulator Development forum.

Moderator: Team Members

Post Reply
Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Zoneserver feature requests

Post by Jabantiz » Tue Apr 01, 2014 12:54 pm

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
}

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Zoneserver feature requests

Post by John Adams » Tue Apr 01, 2014 4:51 pm

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.

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Zoneserver feature requests

Post by Jabantiz » Tue Apr 01, 2014 5:11 pm

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.

User avatar
Zcoretri
Team Member
Posts: 1642
Joined: Fri Jul 27, 2007 12:55 pm
Location: SoCal

Re: Zoneserver feature requests

Post by Zcoretri » Thu Apr 03, 2014 12:43 pm

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.

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Zoneserver feature requests

Post by Jabantiz » Thu Apr 03, 2014 2:37 pm

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?

User avatar
thefoof
Retired
Posts: 630
Joined: Wed Nov 07, 2012 7:36 pm
Location: Florida

Re: Zoneserver feature requests

Post by thefoof » Thu Apr 03, 2014 7:13 pm

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.

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Zoneserver feature requests

Post by Jabantiz » Fri Apr 04, 2014 5:39 pm

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

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Zoneserver feature requests

Post by Jabantiz » Sat Apr 12, 2014 9:39 pm

Found and fixed a small memory leak when a npc died to another npc.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest