EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   akkadius scripts + static zones (https://www.eqemulator.org/forums/showthread.php?t=40970)

khalathas 10-13-2016 01:35 PM

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)

NostalgiaEQ 10-13-2016 02:17 PM

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?

khalathas 10-13-2016 06:32 PM

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.

NostalgiaEQ 10-13-2016 06:53 PM

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?

khalathas 10-13-2016 07:02 PM

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

NostalgiaEQ 10-13-2016 07:12 PM

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.

khalathas 10-13-2016 07:14 PM

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

NostalgiaEQ 10-13-2016 07:16 PM

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.

khalathas 10-13-2016 07:18 PM

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.

DanCanDo 10-13-2016 07:24 PM

You can look at this old thread for an example:
http://www.eqemulator.org/forums/showthread.php?t=30097

NostalgiaEQ 10-13-2016 07:34 PM

Quote:

Originally Posted by DanCanDo (Post 251759)
You can look at this old thread for an example:
http://www.eqemulator.org/forums/showthread.php?t=30097

nice. What are those "ports" listed on launcher_zone table? Can I just use te same numbers he did?

Akkadius 10-13-2016 07:38 PM

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.

khalathas 10-13-2016 07:38 PM

Quote:

Originally Posted by DanCanDo (Post 251759)
You can look at this old thread for an example:
http://www.eqemulator.org/forums/showthread.php?t=30097

This is almost exactly how I have mine, with the exception of naming and zones chosen, but yea...this is how it's done.

NostalgiaEQ 10-13-2016 07:40 PM

oops double post

khalathas 10-13-2016 07:40 PM

Quote:

Originally Posted by Akkadius (Post 251761)
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.

Definitely clears up a lot. I'll just trim my batch file down to the start eqlaunch <launchername> segment, and run it in parallel then. Thank you Akkadius!

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!

khalathas 10-13-2016 07:43 PM

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!

NostalgiaEQ 10-13-2016 08:05 PM

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

Akkadius 10-13-2016 08:19 PM

Yes that would work

NostalgiaEQ 10-13-2016 08:20 PM

Quote:

Originally Posted by Akkadius (Post 251768)
Yes that would work

Awesome thank you. I tried killing a mob in soldungb zoned out and came back and the corpse was gone. Would static zone not necessarily prevent this?

khalathas 10-13-2016 08:24 PM

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

NostalgiaEQ 10-13-2016 08:29 PM

Quote:

Originally Posted by khalathas (Post 251770)
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

Hmm k but you have database entries and all that though right? I have basically a fresh akka installer version in this aspect at this point.

khalathas 10-13-2016 08:30 PM

Yes, I spent a fair bit of time creating my db entries. I could export them for you if you like

khalathas 10-13-2016 08:34 PM

This is a pure insert-only sql script, it won't drop or update any conflicting rows.

Code:

-- --------------------------------------------------------
-- Host:                        127.0.0.1
-- Server version:              5.1.68-community - MySQL Community Server (GPL)
-- Server OS:                    Win64
-- HeidiSQL Version:            9.1.0.4867
-- --------------------------------------------------------

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-- Dumping data for table peq.launcher: 11 rows
/*!40000 ALTER TABLE `launcher` DISABLE KEYS */;
INSERT INTO `launcher` (`name`, `dynamics`) VALUES
        ('antonica', 0),
        ('faydwer', 0),
        ('odus', 0),
        ('luclin', 0),
        ('kunark', 0),
        ('velious', 0),
        ('ykesha', 0),
        ('planes', 0),
        ('dynamics', 20);
/*!40000 ALTER TABLE `launcher` ENABLE KEYS */;

-- Dumping data for table peq.launcher_zones: 75 rows
/*!40000 ALTER TABLE `launcher_zones` DISABLE KEYS */;
INSERT INTO `launcher_zones` (`launcher`, `zone`, `port`) VALUES
        ('antonica', 'qeynos', 1200),
        ('antonica', 'qeynos2', 1201),
        ('antonica', 'qrg', 1202),
        ('antonica', 'qeytoqrg', 1203),
        ('antonica', 'highpass', 1204),
        ('antonica', 'highkeep', 1205),
        ('antonica', 'freportn', 1206),
        ('antonica', 'freportw', 1207),
        ('antonica', 'freporte', 1208),
        ('antonica', 'runnyeye', 1209),
        ('antonica', 'qey2hh1', 1210),
        ('faydwer', 'oot', 1264),
        ('antonica', 'sro', 1232),
        ('antonica', 'southkarana', 1212),
        ('antonica', 'northkarana', 1211),
        ('antonica', 'eastkarana', 1213),
        ('antonica', 'beholder', 1214),
        ('antonica', 'blackburrow', 1215),
        ('antonica', 'paw', 1216),
        ('antonica', 'rivervale', 1217),
        ('antonica', 'kithicor', 1218),
        ('antonica', 'commons', 1219),
        ('antonica', 'ecommons', 1220),
        ('antonica', 'nektulos', 1223),
        ('odus', 'erudnint', 1221),
        ('odus', 'erudnext', 1222),
        ('antonica', 'lavastorm', 1225),
        ('antonica', 'nro', 1231),
        ('antonica', 'soldunga', 1228),
        ('antonica', 'soldungb', 1229),
        ('faydwer', 'gfaydark', 1249),
        ('antonica', 'guktop', 1260),
        ('antonica', 'gukbottom', 1261),
        ('velious', 'greatdivide', 1277),
        ('velious', 'thurgadina', 1278),
        ('velious', 'eastwastes', 1279),
        ('velious', 'iceclad', 1280),
        ('kunark', 'dreadlands', 1281),
        ('kunark', 'skyfire', 1282),
        ('kunark', 'burningwood', 1283),
        ('ykesha', 'gunthak', 1284),
        ('ykesha', 'dulak', 1285),
        ('planes', 'poknowledge', 1286),
        ('kunark', 'citymist', 1287),
        ('velious', 'kael', 1288),
        ('luclin', 'maiden', 1289),
        ('luclin', 'umbral', 1290),
        ('luclin', 'thegrey', 1291),
        ('velious', 'velkator', 1292),
        ('odus', 'hole', 1293),
        ('antonica', 'permafrost', 1294),
        ('kunark', 'veksar', 1295),
        ('velious', 'necropolis', 1296),
        ('velious', 'frozenshadow', 1297),
        ('planes', 'ponightmare', 1298),
        ('planes', 'podisease', 1299),
        ('planes', 'poinnovation', 1300),
        ('luclin', 'dawnshroud', 1301),
        ('luclin', 'acrylia', 1302),
        ('luclin', 'akheva', 1303),
        ('kunark', 'charasis', 1304),
        ('kunark', 'chardok', 1305),
        ('kunark', 'sebilis', 1306),
        ('kunark', 'chardokb', 1307),
        ('luclin', 'griegsend', 1308),
        ('planes', 'fearplane', 1309),
        ('planes', 'hateplane', 1310),
        ('planes', 'airplane', 1311),
        ('planes', 'growthplane', 1312),
        ('planes', 'mischiefplane', 1313),
        ('planes', 'pojustice', 1314),
        ('planes', 'postorms', 1315),
        ('planes', 'povalor', 1316),
        ('velious', 'templeveeshan', 1317),
        ('velious', 'westwastes', 1318);
/*!40000 ALTER TABLE `launcher_zones` ENABLE KEYS */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;


Akkadius 10-13-2016 08:36 PM

Quote:

Originally Posted by NostalgiaEQ (Post 251769)
Awesome thank you. I tried killing a mob in soldungb zoned out and came back and the corpse was gone. Would static zone not necessarily prevent this?

Was it set as static?

NostalgiaEQ 10-13-2016 08:42 PM

Quote:

Originally Posted by Akkadius (Post 251774)
Was it set as static?

in the database? No, should I add entry and set dynamics to 0 in the launcher table or do I need to do the launcher_zones too?

khalathas 10-13-2016 09:45 PM

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.

khalathas 10-13-2016 10:00 PM

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.

Uleat 10-13-2016 10:22 PM

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.

DanCanDo 10-13-2016 10:38 PM

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.

NostalgiaEQ 10-14-2016 12:57 AM

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?

Darkscis 10-14-2016 02:42 AM

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.

DanCanDo 10-14-2016 03:25 AM

Quote:

Originally Posted by NostalgiaEQ (Post 251781)
How did you get it to have 75 dynamics? This is getting a little more complicated than I anticipated

I actually have to apologize, simply because I've never used Akka's installer
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. :)

NostalgiaEQ 10-14-2016 05:32 AM

Quote:

Originally Posted by Darkscis (Post 251783)
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.

Beautiful that is exactly what I needed to know. I am assuming I should also change "peq" or "zone" entry in the launcher table in the database to my elevated number as well but not sure which does which there yet. Also there is a win_server_launcher.pl file and it says if there is a zones_to_launch statement in the .bat file then it will launch 10 zones. I assume this is if you don't set it in the .bat file but I changed the pl file too just in case.

NostalgiaEQ 10-14-2016 05:37 AM

Quote:

Originally Posted by DanCanDo (Post 251784)
I actually have to apologize, simply because I've never used Akka's installer
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. :)

Hmm so with akka's db it has a peq entry and a zone entry. By default peq dynamics is 40 and zone is 5 so I would assume peq is the amount of zones up? Or should I set both to my higher number just to be safe?

Uleat 10-14-2016 11:06 AM

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.

khalathas 10-14-2016 12:46 PM

Uleat, then can they not be mixed?

Code:

@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

pause

echo starting static zones
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


Uleat 10-14-2016 12:55 PM

Don't ask me..not my script :P

Just going off of comments I hear in chat..though, your post would indicate otherwise.

Akkadius 10-14-2016 02:24 PM

Really should just do dynamics + long shutdown delays. Statics are unecessary

khalathas 10-14-2016 04:22 PM

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*

jpyou127 10-17-2016 09:13 AM

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.