View Full Version : A truly static zone
provocating
12-27-2014, 01:49 PM
It is looking like the NPC's in a zone does not spawn until you actually enter the zone correct? Even if you set the zone to shutdowndelay zero and make the zone static instead of dynamic....ie zone butcher
I want to be able to have an NPC that checks static and spawns something even if no one is not in the zone for hours, days even. But if the zone eventually goes idle, I am guessing the NPC's despawn and those scripts no longer run?
joligario
12-27-2014, 05:40 PM
If I remember right, the npcs are spawned, but "asleep". So no movement, quests, etc.
provocating
12-27-2014, 05:47 PM
Arrggggg....
Okay, well I will make due. I definitely did not know this and since I had the zones so active they never went to sleep. Well I can do what I want with scripting but it will be more complicated.
provocating
01-04-2015, 03:38 PM
Anyone know the area of the source that shuts the zone down when a player leaves? I would only do this for a few zones though.
joligario
01-04-2015, 04:59 PM
Set those zones as dynamic zones with a short "keep alive" time.
provocating
01-04-2015, 05:28 PM
Set those zones as dynamic zones with a short "keep alive" time.
Could you explain that? I understood the Shutdown Delay to how many ms before the zone goes to sleep, that is when the last person leaves the zone. But even then in those zones, the NPC quit moving, although timers and such are still firing in the background.
I need a way to keep the NPC's moving even when there are no characters in the zone, but for less than 5 zones.
If I set the zones to something like 30000 instead of the default that would make the zones go to sleep in 30 seconds correct?
joligario
01-04-2015, 06:50 PM
You asked to shut down a zone when a player leaves. The shutdown delay will shut down the zone, not put it to sleep except for however long the delay is. The static zone (or "still alive" zone) is what will go to sleep. I think you are right that it is in milliseconds.
As for the timers still running, I will have to test that. I was pretty sure those were all suspended as well. The spawn timers should be the only things that keep "running" although that isn't exactly how spawn timers work in the same sense.
What you are wanting to do has been discussed, tried, and failed several times (most specifically when trying to get the boats to run).
provocating
01-04-2015, 07:06 PM
You asked to shut down a zone when a player leaves. The shutdown delay will shut down the zone, not put it to sleep except for however long the delay is. The static zone (or "still alive" zone) is what will go to sleep. I think you are right that it is in milliseconds.
As for the timers still running, I will have to test that. I was pretty sure those were all suspended as well. The spawn timers should be the only things that keep "running" although that isn't exactly how spawn timers work in the same sense.
What you are wanting to do has been discussed, tried, and failed several times (most specifically when trying to get the boats to run).
Yes, sorry I had a typo, I indeed want the zones fully static and for that exact reason (boats).
Yes, the timers do run when the zone is empty. I have a timer on a static zone that no one has been in for 10 hours now, and the timer is still incrementing a global ever 10 seconds.
So can you elaborate just a small bit on what made it fail? I would rather not hit the same brick wall they did. I have all of my boats running very well except for the Maiden's Voyage and the only issue with it is specific timing issues that I can fix, but it would be a hell of a lot easier if the zones were completely static.
joligario
01-04-2015, 08:19 PM
Interesting to note that timers are still running. The reason we have the zones go into sleep mode is to save on processor/memory. So, it would seem that we aren't completely suspended.
You can read the discussions on this board for a more elaborate discussion on the boats, but it mainly boiled down to the NPCs not moving/scripts not running.
Zaela_S
01-04-2015, 09:36 PM
https://github.com/EQEmu/Server/blob/master/zone/entity.cpp#L488
provocating
01-04-2015, 10:02 PM
https://github.com/EQEmu/Server/blob/master/zone/entity.cpp#L488
Perfect, thanks man!
ghanja
01-04-2015, 10:11 PM
Perfect, thanks man!
So have a 'shutdowndelay' of 86400000 (1 day in seconds) to make a dynamic zone a true static zone. Or..
https://github.com/EQEmu/Server/blob/master/common/features.h#L41
#define IDLE_WHEN_EMPTY
Comment this line ? It says uncomment in the comments. Although, if you uncomment it, it would define it, and if it's defined then if there are less than 1 clients, it will idle. Or am I viewing this logic a bit backwards?
Or we could really hack at it:
https://github.com/EQEmu/Server/blob/master/zone/entity.cpp#L489
if (numclients < 0)
?
provocating
01-04-2015, 10:16 PM
So have a 'shutdowndelay' of 86400000 (1 day in seconds) to make a dynamic zone a true static zone.
?
That really does nothing.
You could do the same by making the zone static, by an entry in the database launcher table. The NPCs still go to sleep when idle, so that does nothing.
ghanja
01-05-2015, 12:05 AM
That really does nothing.
You could do the same by making the zone static, by an entry in the database launcher table. The NPCs still go to sleep when idle, so that does nothing.
Right because the mob entity check is still made if there are any clients present.
Got that. Though, seems "uncomment this" should be "comment this". Or...
iluvseq
01-12-2015, 07:49 PM
Yes, the 'uncomment this' should be 'comment this'.
provocating
01-16-2015, 02:05 PM
I wanted to reply after running this a while now, I have had zero issues with fully static zones.
chrsschb
06-14-2015, 06:15 PM
Bump, is this something we could turn into a server rule?
provocating
06-14-2015, 06:27 PM
It kind of really already is, kind of. It would be easy to code it for a real rule though, right now mine is just editing the rules.h file.
I thought for a while I might had been having an issue, it ended up being something else, a broken task causing issues and making a zone run haywire. Overall though I am very satisfied with having some fully static zones, currently running around 10 totally static. Before the next server goes live I will be adding more ram, bumping up to 96gb and adding more in stages as I test them.
Shendare
06-14-2015, 07:38 PM
Holy 1.21 jiggabytes!
Scorpious2k
06-14-2015, 09:36 PM
Something like an optional third parameter in the zone command line to set the zone active (always running) or passive (default if omitted - meaning zone idles when empty) would be nice and shouldn't be too hard to implement. I was thinking of doing it on our server.
You wouldn't want this as a rule which would be global for all static zones, you would want to pick only the ones that needed to stay active, right?
provocating
06-14-2015, 09:41 PM
Yes, the zone file would be perfect.
jpyou127
10-17-2015, 05:01 PM
Has this been implemented?
Celestial
provocating
10-17-2015, 05:03 PM
Not sure about on the current source, but I have static zones on Legacy of FrostStone.
jpyou127
10-17-2015, 05:10 PM
I was in the process of deciding the benefits of static to dynamic. I am limited on memory, but I though most static zones even at idle still allowed timers, such as spawn timers to run. Trying to determine which static zones to setup.
Celestial
provocating
10-17-2015, 05:28 PM
I think this is written in one of my post, but I will elaborate with what I found. I found through experimentation that every NPC in the zone quits moving in a typical zone, set static or not, when the zone goes idle. The timers I remember do still run, but the NPC's stop. So for my setup, this did not work. So my issue with boats were that the boats would quit moving when the last person left the zone, very problematic for my server. That change listed will basically keep the zone running no matter what. Yes, higher CPU usage. In fact Firiona Vie on my server uses a ton of CPU all the time, probably 7% on just that one zone. I think it has to do with the constant pathing in the zone. Other zones are around 1~2%. But all of the static zones use more since they do not go idle.
jpyou127
10-17-2015, 05:31 PM
Roger that, thank you for sharing!
Celestial
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.