akkadius scripts + static zones
Hey all, recently converted my server from the older style batch file to a much newer version, which also includes the new startup perl scripts. I've got 75 static zones defined in launcher_zones that were running fine, but the script just launches 30 dynamics. How do I use my old static definitions with the perl scripts? Or, is there any reason to do so still? (I was doing it to keep raid targets, such as dragons, on proper respawn timers)
|
Great question. What are the pros/cons with static vs dynamic? I can't quite figure out what the difference is. Are static zones up constantly and therefore have less loading time but take more server resources? Does dynamic only keep 30 zones up so if people are in 31 zones there are problems?
|
From my own experience, a static zone (or in my case, LOTS of them) is going to eat up more RAM than dynamic zones, absolutely. The tradeoff is that static zones maintain their spawn timers where dynamic zones, after a certain duration of being empty, are unloaded, and reloaded as new people zone in. On my server (running on a VM, admittedly), I've got 10gb of ram allocated directly to it (host machine has 32gb), so it isn't really a burden to me, but for lower-resource servers it is a valid concern.
|
Interesting. I would definitly want all static then because I will have a dedicated server and only a total of 60 zones all old graphics so very small. Hopefully we can figure out how to set zones to static in akka installer.
in the "zone" table I am seeing "shutdown delay" set to 5000 so perhaps setting this to -1? |
I don't think all zones need to be static really, just ones with interesting targets with longer than 12 hour spawn timers maybe...the rest can be dynamic I think. I just don't know how to do it in akkadius's scripts. In the old way I'd go to launcher_zones, define a launcher (or in my case, several launchers, as I grouped them by continent for vanilla zones, and then expansion for later releases), and then ran a series of zone launches as follows:
echo starting zone start eqlaunch dynamics start eqlaunch antonica start eqlaunch faydwer start eqlaunch odus start eqlaunch luclin start eqlaunch kunark start eqlaunch velious start eqlaunch ykesha start eqlaunch planes exit |
Hmm interesting. Well it seems mabye we can stop zones from going idle in the first place by editing server code but not sure about keeping some zones dynamic.
http://www.eqemulator.org/forums/showthread.php?t=39147 for me Id rather have everything static so no matter how many zones people are currently in the experience (lag and whatnot) will always be constant. |
I imagine the idea of stopping zones from going idle is a bad general idea, and a few (or a lot in my case) statics are a better way of doing it. Going to be moving the server to a dedicated linux server with 24gb ram available at some point, so I definitely want to figure out how to do statics again with the new startup scripts
|
so in that same post prov said:
"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." so now I just need to figure out how to do this. That table only has 2 colums zone and dynamics so not sure how to do this. |
From what I understand, launcher defined the launchers themselves (which were the 3rd parameter in my script above, per line), and then launcher_zones actually defined the static zones and what launcher they belonged to. You could have a launcher that had statics AND dynamics in it, I chose to have a launcher called dynamics that ONLY had 20 dynamic zones, and then several launchers that each held content-specific static zones.
|
You can look at this old thread for an example:
http://www.eqemulator.org/forums/showthread.php?t=30097 |
Quote:
|
The zones that get launched from my perl based launcher are purely dynamic.
You can achieve most of the 'static' behaviors by keeping zones dynamic and adjusting your 'shutdowndelay' in your zone table to be something that suits your needs. The shutdowndelay is in milliseconds (1000) = 1 second. To keep a zone up for, say an hour, you'd set the shutdowndelay to 3600000. Once a zone has been booted, it will take a full hour to shutdown and go back into the dynamic pool. Only at this time will the zone flush corpses and things of that nature. Spawns and named are in the database so those timers are going to stay in tact regardless - BUT - if you have a low shutdowndelay and pure dynamics, plays can walk back and forth on zone lines to force a spawn cycle for a named that hasn't been killed or has an expired timer. The perl based launcher is far more resilient and speedy, but does not support statics. If you want to run statics you can run them in your batch on your own like so zone.exe soldungb zone.exe everfrost Or you can do as mentioned in the thread before and set your launcher_zones table and map all of your statics and run eqlaunch.exe in parallel with the perl launcher. To give you an idea, EZ Server runs pure dynamcis using the above methodology I explained earlier to be leaner on resources. Hopefully that clears up some questions. |
Quote:
|
oops double post
|
Quote:
Edit: removing my own launcher called Dynamics from my segment of the batch file since your perl script has 30 dynamics already. Perfect! Works like a charm! |
Edit: removing my own launcher called Dynamics from my segment of the batch file since your perl script has 30 dynamics already. Perfect! Works like a charm!
|
Would modifying your installed launcher to this work without any modifications to the database?
@echo off cls echo ***CLEARING OLD LOGS*** del "logs/zone/" /q shared_memory.exe start perl win_server_launcher.pl zones="30" zone_background_start loginserver kill_all_on_start zone.exe soldungb zone.exe everfrost exit |
Yes that would work
|
Quote:
|
Here's my version:
@echo off cls echo *** CLEARING OLD LOGS *** del "logs/zone/" /q shared_memory.exe start perl win_server_launcher.pl zones="30" zone_background_start loginserver kill_all_on_start echo starting zone start eqlaunch antonica start eqlaunch faydwer start eqlaunch odus start eqlaunch luclin start eqlaunch kunark start eqlaunch velious start eqlaunch ykesha start eqlaunch planes exit |
Quote:
|
Yes, I spent a fair bit of time creating my db entries. I could export them for you if you like
|
This is a pure insert-only sql script, it won't drop or update any conflicting rows.
Code:
-- -------------------------------------------------------- |
Quote:
|
Quote:
|
Scratch my previous startup script, the eqlaunch portion of it fails because the rest of the server isn't up for the zones to connect to yet. I'll add a pause before the static section.
|
Ok, adding statics made the game glitchy. I was able to log in without a problem, but a friend coming in remotely couldn't load past character select. Without having the statics, he was able to load in just fine. I'll do some digging and see what I can figure out and come back to this.
|
You should have at least 2 dynamic zones in addition to any static ones.
(You'll really need more than that..but, that is a bare minimum.) If a player is logged out in a non-static zone, you need at least 1. If that same player attempts to 'zone' to another non-static zone, you'll need at least 2. Player population is a major factor in how many dynamic zones you will need. |
Uleat pretty much says it all. You need one zone launcher available for each and every
seperate zone that a player is trying to zone in to (even from login). I personally don't run statics. I have 75 dynamics which right now is an overkill, but the resources are plenty enough. If you're simply trying to run statics to control mob spawns, it's not really needed. The respawn timers work well enough for me, that even trying to do a #repop will not reset that timer. |
How did you get it to have 75 dynamics? This is getting a little more complicated than I anticipated, I guess I'll just set increased shutdown delay in Zone table and run extra dynamic zones as a good compromise.
The issue though with dynamics is like for lockjaw for instance if he isn't popped you could leave the zone then come back and he may be up. Also what are the benefits to running extra dynamics? |
If you are using Akka's script you just edit the "t_start_server.bat" file and change zones="X" to however many you want.
The benefit's to running extra? More people can be in different zones at once. If there are no zone processes available people will try to zone and receive an error message, then end up at the safe point of the zone they were already in. The don't consume a lot of resources and it definitely pays to have more than you need, but basically - balance it around your population. |
Quote:
and I don't even know what the start scripts look like, as I've done all my own source compiling/installs, etc., but in the database, the 'launcher" table, which has 2 columns, 'Name' and 'Dynamics' I use zone for name and 75 for dynamics. Then when running the cmd eqlaunch.exe zone in my own script, it will launch those 75 dynamics. But I run as much as I can from the database without the use of scripts. As far as how many dynamics, don't use mine as "needed", it's far from what I do need right now. I'm just doing my own thing. :) |
Quote:
|
Quote:
|
I'm not sure that I understand how Akkadius's scripts operate..but...
I do believe that they bypass the use of eqlaunch.exe. If that's the case, then I'm not sure how much the db table values come into play. |
Uleat, then can they not be mixed?
Code:
@echo off |
Don't ask me..not my script :P
Just going off of comments I hear in chat..though, your post would indicate otherwise. |
Really should just do dynamics + long shutdown delays. Statics are unecessary
|
I completely did not realize until now that the shutdown delay was a per-zone setting! Holy crap *runs off to do like an extra 70 dynamic zones, then increase shutdown timers on them*
|
Cool, I learned something new today!! Shutdown delay!
Any recommendations for length of time? 1-2 hours? I have a default value of 5000, is this in seconds? Celestial |
All times are GMT -4. The time now is 10:49 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.