EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   A truly static zone (https://www.eqemulator.org/forums/showthread.php?t=39147)

provocating 12-27-2014 01:49 PM

A truly static zone
 
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

Quote:

Originally Posted by joligario (Post 236567)
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

Quote:

Originally Posted by joligario (Post 236574)
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...ntity.cpp#L488

provocating 01-04-2015 10:02 PM

Quote:

Originally Posted by Zaela_S (Post 236579)

Perfect, thanks man!

ghanja 01-04-2015 10:11 PM

Quote:

Originally Posted by provocating (Post 236580)
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...features.h#L41

Code:

#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...ntity.cpp#L489

Code:

if (numclients < 0)
?

provocating 01-04-2015 10:16 PM

Quote:

Originally Posted by ghanja (Post 236581)
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

Quote:

Originally Posted by provocating (Post 236582)
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'.


All times are GMT -4. The time now is 02:17 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.