Log in

View Full Version : Day and Night


Angelox
04-21-2007, 10:18 AM
Before I lost my server , I was working on a day and night Idea I had mainly for the zone line to SK in LakeRathe. I remember in the old days, when night time came, if you killed the gnolls there, the undead would spawn as would the gnolls during the day.
I managed to find most of what I had lost for that, but at the time I lost my server, I was at a stale-mate.
What I wanted, was for the npc spawn tables for certain mobs be replaced as to spawn or not depending on the night or day status. so I made the npc's, made the sqls, and made a script that would run the sqls every 12 hours (everquest time).
the script;
while (1) {
`mysql -h192.168.2.100 -ueq -peq -Dax_classic < /home/angelox/sqls/
rathenight.sql 2>&1`;
sleep 2160;
`mysql -h192.168.2.100 -ueq -peq -Dax_classic < /home/angelox/sqls/
ratheday.sql 2>&1`;
sleep 2160;
};

The latter script runs at server startup on a static zone, since zones always boot up at 8:00 am, it would start with the daytime gnolls and by 8:00pm the undead would replace the gnolls


ratheday.sql:
--- Lake Rathe ---
UPDATE spawn2 set _condition=1 where zone="lakerathe" and spawngroupid=51134;
UPDATE spawn2 set _condition=0 where (spawngroupid>=51000 and spawngroupid<=51008);

--- Kithicor ---
UPDATE spawn2 set _condition=1 where (id >=6037 and id <=6044) or (id >=6182 and id <=6196) or (id >=6095 and id <=6099) or (id >=6012 and id <=6018) or (id >=5994 and id <=5998) or (id >=347154 and id <=347155) or (id >=6102 and id <=6103) or (id >=6107 and id <=6108) or id=6199 or id=6121 or id=6202 or id=6200 or id=6112 or id=6092 or id=347709 or spawngroupid=20089;
UPDATE spawn2 set _condition=0 where spawngroupid=20041 or spawngroupid=20169 or spawngroupid=20039;
UPDATE spawn2 set _condition=0 where spawngroupid=20161 or spawngroupid=20069 or spawngroupid=20018 or spawngroupid=20000 or spawngroupid=20006 or spawngroupid=20031 or spawngroupid=20056 or spawngroupid=20075;


rathenight.sql;
--- Lake Rathe ---
UPDATE spawn2 set _condition=0 where zone="lakerathe" and spawngroupid=51134;
UPDATE spawn2 set _condition=1 where (spawngroupid>=51000 and spawngroupid<=51008);

--- Kithicor ---
UPDATE spawn2 set _condition=0 where (id >=6037 and id <=6044) or (id >=6182 and id <=6196) or (id >=6095 and id <=6099) or (id >=6012 and id <=6018) or (id >=5994 and id <=5998) or (id >=347154 and id <=347155) or (id >=6102 and id <=6103) or (id >=6107 and id <=6108) or id=6199 or id=6121 or id=6202 or id=6200 or id=6112 or id=6092 or id=347709 or spawngroupid=20089;
UPDATE spawn2 set _condition=1 where spawngroupid=20041 or spawngroupid=20169 or spawngroupid=20039;
UPDATE spawn2 set _condition=1 where spawngroupid=20161 or spawngroupid=20069 or spawngroupid=20018 or spawngroupid=20000 or spawngroupid=20006 or spawngroupid=20031 or spawngroupid=20056 or spawngroupid=20075;


I was so exited, I preped Kithicor also and thought I just needed to figure out how to repop this zone every 12 hours (kithcor undead pop up at night).
Well, I came to realize that: 1- the spawngroups I replace will only appear on a "repop" (if I kill a gnoll with a pc, the gnoll spawns, not the replaced undead). 2- there is no way I know of, that a zone can be repoped unless you do it via GM.
Another way would be to use dynamic zone, but whan you zone to a dynamic, it always starts at 8:00 am and will be out of sync.

Anyways, there are the scripts ( I got frustrated)- I posted an update to my database with the NPC changes, so you can see it works: you can actually set the zone up as static, wait tell night and "repop" the zone, undead will appear. the script loops , so it will always happen.
If anyone has any ideas or knows how to get this working, please post!

techguy84
04-22-2007, 11:55 AM
This seems like a awsome Idea, you could use this possibly for special events and such.

As far as to your problem, as I know nothing about Mysql yet, but what if you you made sqls that completely replace the whole spawn data in that zone, and then you could possibly have a batch file that sources in the new zone spawns, not repops, and then boots the zone, closing the zone before it. The only issue with this is if anyone is in that zone, they get disconnected...... hmm, well nevermind, i thouhgt i had something.

Ok, what about this, can you run scripted gm commands some how, maybe through a keyboard API or something that you create you a gm, run a bare bones client that you will not use, and at a scheduled time of day, have the api run a repop command that will be layered into the client therefore running the repop for you......

I dont know, im just tooting my horn here, as I haves a now Idea /sigh

ArChron
04-25-2007, 02:35 PM
I may be talking way off base here, but why couldn't the spawn tables just incorporate a temporal component? No script that needs to be run to swap the pops, but extend the model to incorporate time of day and you have a much more flexible solution... some mobs could only be up during certain hours of the day.

Dang, now you're gonna make me go look at the spawn code...

techguy84
04-26-2007, 02:43 AM
I think its more along the lines of it having to be coded into the emulator itself. Like a line that tells it to re pop using said database information. This could be used in conjonuction with your idea archon. The database would contain spawn times for select spawns, and the emulator would see this when its internal time hit 8:00am or 8:00pm, at which time it would prepare or just directly respawn using those special spawns from the databse.

samandhi
04-27-2007, 11:03 AM
I don't know anything about the coding in the emu( I know some coding of a different sort though, as I work for a controls company, or building automation if you will)... so not sure if this is even feasable or not, but what if you ran the zone (kith) dynamically, and did NOT spawn anything yet. Then make a call to the system (read emu) time to sync it with the world, THEN spawn the zone accordingly..? I know it sounds "easier said than done" but ideas start from somewhere yes?

ArChron
04-29-2007, 11:46 PM
There is always the option of trying to include a daemon in the emulator (might be there already for all I know) that would allow events to be queued up. When the appointed hour came nigh, the daemon could spawn an event thread and hand it the event ID so it could deal with the event details.

For this "normal during day, undead at night", at 0 hour you could wipe the zone of "normals", then do a repop of the undead (making critters warp all over the place at they repop at designated points).

Or the thread could find each appropriate mob and swap it out at their current location, in their current state (kinda like the moonlight in Pirates of the Caribbean) according to the event rules.

Angelox
04-30-2007, 10:42 AM
It would be nice if someone could come up with some simple code to deal with this, that could be presented to the devs. _condition and condition_value already deal with this, and there is some code made out to this:
http://eqemulator.net/forums/showthread.php?t=18171
I doesn't appear to work right with me, or maybe I'm trying to get it to do what it was not intended to do.
Something that would change values in the above tables and repop in a timely manner would be enough.
I miss the "witching hours" at night in Lake Rathe and just trying to get out of Kithicor before the zombies came out. Also, things like night time in South Karana when the Sentry Alechin turned into a Werewolf. Hope to one day get all that back again.

ArChron
05-01-2007, 03:39 AM
According to that post, sure looks like the day shift / night shift should work now... unless that bit of code was never included in a build, or got obsoleted out of the codebase...

I'll have to see if I can replicate that setup and give it a go...

techguy84
05-01-2007, 11:45 AM
Angelox, your were a big EQ buff wernt you. I played alot, and I dont remember most of those things. I thought I was bad just for remembering what it was like to have to make the run from qeynos to freeport with out any fast porting stuff. I always hated nk and the cliffs of HH pass, but nothing quite scared my like the first time I met kith at night. Oh it was great. Most new people wouldnt know how to get from qey to fp running all the way.

Angelox
05-01-2007, 12:45 PM
I was too much envolved with EQ, one of those guys who ate, slept, and talked EQ all day. I remember one time, when JBoots dropped in Najena, it was a waiting line in the dungeon entrance, just to get into the JBoot group camp /room. The boots only dropped 2-3 times a day, so once you got close or into the group, you then could not sleep tell you got the boots (else risk loosing your turn and starting over). Loosing three nights sleep was common. And I wasnt the only crazy-ass that did this, there were a lot of players in there. The first time I finally got into the group, the server went down for "patch", and I had to start over. But I did get my Jboots! (I think my wife thought I finally lost my marbles that time).
There where 3-4 of us that played together for years, to a point where if they wern't on , I'd go solo, or not play that night. One became a special friend and was like I knew him in all my life RL. We still email and pass stuff back and forth to each other. He doesn't play anymore but I built him a little "shrine" , he's one of the buff-bots I made in PoK.
I did a lot of solo camping, I sort of started a collection of drops: I wanted every drop each named mob I camped had, sometimes one drop took weeks (plenty of time to memorize everything in the zone). A few drops like the Bilge Farfathom drop or Quillmane , took me a lot longer. Sort of like a hobby (stamp-collecting or something).
I've had a ton fun putting all that stuff into the database and watching it come alive. I like this as much as I liked to play EQ (maybe more).

sfisque
05-02-2007, 03:55 AM
IIRC JBoots dropped in LGuk from the evil eye that was around the corner from the mino-caves.

dude in my guild had them and the ORIGINAL darkelf mask that was All/All before it was changed to All/Rogue (he was a dwarf cleric).

== sfisque

vales
05-02-2007, 04:03 AM
Wow, now that brings back some memories.

But did you remeber the hidden teleports all over Norrath? ;)

I'm assuming everyone knew about the Firepots, but these are different. There were quite a few that were known so well that they had to take them out. When it became common knowledge, it took the fun out of the game. Not to mention the exploiting. You should have seen my friend's reaction when my Warrior told his Druid that he can teleport faster than him - with no SoW. Priceless, lol.

There was one right at the water in West Karana. After zoning in from Qeynos Hills, hang a right and head towards the Barbarian fishing village. If you hit the right spot in the water, it will teleport you to the bridge to East Karana. If you wanted to go to Qeynos Hills, there was a teleport under the same bridge that took you to the "To Qeynos Hills" sign by the Qeynos Hills zone.

And who hated the long run up Highhold Pass in East Karana? Just jump under the bridge in East Karana and swim towards the West Karana zone. You'll be teleported to the top of the long pathway to Highhold Pass.

I'm surprised I still remember those. But you'd be surprised about what knowledge you can squeeze out of people you know at Verant. :p It would be interesting if someone *cough*Angelox*cough* could put these back since it was a part of classic EQ. From what I can remember, they kept these teleports in until the Velious release - or maybe it was Kunark. It's been so long, I forgot to be honest.

But anyway, I didn't mean to hijack the topic. It's just that the mention of JBoots in Najena really took me back for a minute.

So Angelox, what about the quests that cross over to Kithicor? Are you going to keep everything "classic" for now?

Towards the end of my days playing online, I remember doing a quest in Kithicor with my Cleric. It was for a decent ring (flowing thought and regen!) for Dark Elves that involved killing a super-huge skeleton. IIRC, that spawn was static and it made navigating much more harder, even during the day. The skeleton was level 62 I believe and regens like crazy. This quest was practically unknown, and no one ever was doing it, unfortunately.

If we can get a timed spawn for day and night cycles, it would make predicting spawn much easier. Anyone camping the Raster in Guk would know what I mean, lol.

Striat
05-07-2007, 08:36 AM
What you are describing already is in eqemu. I have several zones with day spawns, night spawns, and all other kinds of uses for spawn conditions with auto depop/repop based on time. The post you mentioned does explain it pretty well. What did you put into your spawn_events table to trigger the spawning at the time periods?

Also, evil eye dropped manastone, not jboots

Angelox
05-07-2007, 12:21 PM
I'm surprised I still remember those. But you'd be surprised about what knowledge you can squeeze out of people you know at Verant. :p It would be interesting if someone *cough*Angelox*cough* could put these back since it was a part of classic EQ. From what I can remember, they kept these teleports in until the Velious release - or maybe it was Kunark. It's been so long, I forgot to be honest.

But anyway, I didn't mean to hijack the topic. It's just that the mention of JBoots in Najena really took me back for a minute.

So Angelox, what about the quests that cross over to Kithicor? Are you going to keep everything "classic" for now?

Towards the end of my days playing online, I remember doing a quest in Kithicor with my Cleric. It was for a decent ring (flowing thought and regen!) for Dark Elves that involved killing a super-huge skeleton. IIRC, that spawn was static and it made navigating much more harder, even during the day. The skeleton was level 62 I believe and regens like crazy. This quest was practically unknown, and no one ever was doing it, unfortunately.

If we can get a timed spawn for day and night cycles, it would make predicting spawn much easier. Anyone camping the Raster in Guk would know what I mean, lol.

What I'm trying to do is make/keep the original zones appealing, playable and compatible with the rest of the game. What we have now is, a lot of very nicely made old zones, many of them I think to be much nicer than the newer zones, rendered useless by SOE and their expansions. This uselessness of the original EQ zones got ported over to EqEmu. Most players just want to rush, powerlevel their characters into a high level , so they can play in the highlevel zones. Low level Drops, Quests, skill crafts, etc, all have become "a waste of time" and useless.
The last thing I did with ax_peq database was put the tutorial zone back in motion and funnel all new characters to Tutorialb - I then made a quest which if completed properly, would set you in Gunthak at level 35. This saves the power levelers a lot of "wasted time" .
But I want to play Everquest like I did when I first started it: These where the days when Everquest was at its peak (the servers were exploding with players and splitting into new servers), sort of like the "golden days" of this type of game. What I want is probably almost impossible, but I'm having a lot of fun (and learning too) trieng. At the end, if anything else I'll have imortalized a lot of good memories a lot of you are already sharing with me.

Angelox
05-07-2007, 12:23 PM
What you are describing already is in eqemu. I have several zones with day spawns, night spawns, and all other kinds of uses for spawn conditions with auto depop/repop based on time. The post you mentioned does explain it pretty well. What did you put into your spawn_events table to trigger the spawning at the time periods?

Also, evil eye dropped manastone, not jboots

Thanks for the tip, It's the old stuff like this that interests me, and will help the classic zones come alive - I PM'd you about it.

ChaosSlayer
05-24-2007, 11:05 AM
Day/Night spawn is awsome, can it be set up in npc spawn tables?

Can you order NPC to depop via perl quest command?
I wanted to create Ring events, where you would kill a name NPC, and then 2nd name woudl spawn, then 3rd etc.

But problem is that i can get them to spawn, but then they should not be up forewer if they not kill shortly, they supose to depop. cuase otherwise more of npc 1 will spawn and they both will be up at same time..

so i guess my question is how to get npc to depop after X time have passed?


UPDATE: i belive i have allreday found answer to my depop question
i belive there is such comand in perl script.

John Adams
05-25-2007, 07:27 AM
I thought the Evil Eye dropped the Sewn Evil Eye bag (or whatever it was called)? I came to EQ post-Manastone, so maybe that was removed from his loot list by late 2000. Shame :(

Striat
05-28-2007, 06:32 AM
I thought the Evil Eye dropped the Sewn Evil Eye bag (or whatever it was called)? I came to EQ post-Manastone, so maybe that was removed from his loot list by late 2000. Shame :(
If I'm not mistaken he has always dropped evil eye bag. However, I can say for certain that the manastone dropped from him. I believe it was taken out well before kunark even which was spring/early summer 2000.

Angelox
06-02-2007, 10:47 PM
Wow, now that brings back some memories.

But did you remeber the hidden teleports all over Norrath? ;)

There was one right at the water in West Karana. After zoning in from Qeynos Hills, hang a right and head towards the Barbarian fishing village. If you hit the right spot in the water, it will teleport you to the bridge to East Karana. If you wanted to go to Qeynos Hills, there was a teleport under the same bridge that took you to the "To Qeynos Hills" sign by the Qeynos Hills zone.

And who hated the long run up Highhold Pass in East Karana? Just jump under the bridge in East Karana and swim towards the West Karana zone. You'll be teleported to the top of the long pathway to Highhold Pass.

I only remember one of these (under the bridge in EK) - if you post me the #locs to the other ports, it would be very easy to set them all up.

ChaosSlayer
06-03-2007, 07:18 AM
Angelox, did you ever found a solution to Day and Night shifts?

Angelox
06-03-2007, 11:55 AM
Angelox, did you ever found a solution to Day and Night shifts?

I haven't been back to it ever since - got sort of burnt out over it all. I meant to start back up on it this weekend, but I got caught up with the ships and the omens zones. Probably be the next thing I do.
Of all the ships, Icebreaker (Iceclad ship) actually works (you can ride it), just as it did on live.

ChaosSlayer
06-03-2007, 12:37 PM
hehe I see.
well if you get Day and Night working let us know how =)

as far as ships go, on my own custom world i decided to simplify. I have a stationary boat and a ticket merchant. After you buy your ticket and hand it over to captain you zone, and pretend that you took a boat travel somewhere =)