Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Database/World Building

Development::Database/World Building World Building forum, dedicated to the EQEmu MySQL Database. Post partial/complete databases for spawns, items, etc.

Reply
 
Thread Tools Display Modes
  #1  
Old 04-21-2007, 10:18 AM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default Day and Night

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;
Code:
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:
Code:
--- 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;
Code:
--- 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!
Reply With Quote
  #2  
Old 04-22-2007, 11:55 AM
techguy84's Avatar
techguy84
Discordant
 
Join Date: Apr 2007
Location: Somewhere Safe
Posts: 453
Default

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
Reply With Quote
  #3  
Old 04-25-2007, 02:35 PM
ArChron
Fire Beetle
 
Join Date: Dec 2006
Location: Vienna
Posts: 28
Default

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...
Reply With Quote
  #4  
Old 04-26-2007, 02:43 AM
techguy84's Avatar
techguy84
Discordant
 
Join Date: Apr 2007
Location: Somewhere Safe
Posts: 453
Default

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.
Reply With Quote
  #5  
Old 04-27-2007, 11:03 AM
samandhi's Avatar
samandhi
Demi-God
 
Join Date: Aug 2003
Posts: 1,056
Default

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?
__________________

Quote:
Analysis paralysis will keep you from failing, but it will also keep you from succeeding.
  • L.L. CoolJ
Reply With Quote
  #6  
Old 04-29-2007, 11:46 PM
ArChron
Fire Beetle
 
Join Date: Dec 2006
Location: Vienna
Posts: 28
Default

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.
Reply With Quote
  #7  
Old 04-30-2007, 10:42 AM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default

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.
Reply With Quote
  #8  
Old 05-01-2007, 03:39 AM
ArChron
Fire Beetle
 
Join Date: Dec 2006
Location: Vienna
Posts: 28
Default

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...
Reply With Quote
  #9  
Old 05-01-2007, 11:45 AM
techguy84's Avatar
techguy84
Discordant
 
Join Date: Apr 2007
Location: Somewhere Safe
Posts: 453
Default

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.
Reply With Quote
  #10  
Old 05-01-2007, 12:45 PM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default

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).
Reply With Quote
  #11  
Old 05-02-2007, 03:55 AM
sfisque
Hill Giant
 
Join Date: Oct 2006
Posts: 248
Default

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
Reply With Quote
  #12  
Old 05-02-2007, 04:03 AM
vales
Discordant
 
Join Date: May 2006
Posts: 458
Default

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.
Reply With Quote
  #13  
Old 05-07-2007, 08:36 AM
Striat
Sarnak
 
Join Date: Aug 2006
Posts: 60
Default

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
Reply With Quote
  #14  
Old 05-07-2007, 12:21 PM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default

Quote:
Originally Posted by vales
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.
Reply With Quote
  #15  
Old 05-07-2007, 12:23 PM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default

Quote:
Originally Posted by Striat
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.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 06:55 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3