Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 02-16-2005, 04:24 PM
fathernitwit
Developer
 
Join Date: Jul 2004
Posts: 773
Default Spawn Conditions Proposal

OK, so in my downtime recently, I have been dreaming up a spawn condition system which can be used to make eqemu's spawn system more dynamic. Here is the proposal, let me know what you guys think:

This system should facilitate several things which I have heard requests for in eqemu:
1. time of day spawns - the ability to change what spawns in a zone based on what the EQ time is.
2. LDoN spawns - change the spawn in a zone based on the ldon difficulty easily.
3. mutliple spawn tables - The ability to switch an entire zone's spawn tables easily.
4. quests - quests will be able to make permanent changes to spawn patterns even across zones.
5. timed spawns - cause a mob to only spawn for an hour, then depop.



New table to hold spawn conditions:
zone - the zone this spawn condition applies to
id - a numeric id of this spawn condition in this zone
value - the current value of this spawn condition
onchange - an action which says what to do for a spawn point which uses this spawn condition when that spawn point changes state between on and off. values: nothing, depop, repop, signal

New table to handle time-driven events:
zone, condition id - what condition does this apply to
enabled - is this event enabled?
time_base, period - values to specify when the event happens. It occurrs every period time units from time_base based on the EQ clock, assuming if we start before time_base, that we start our time base on the previous day and skip any events from that time base to now.
action - what to do when this event is triggered. values: set, add, subtract, multiply, divide
value - the number used by action

the spawn2 table gets two new fields:
1. a spawn condition ID - this associates this specific spawn point with a spawn condition. value 0 is a default 'always enabled' condition number.
2. a spawn condition value - This is a threshold value for the spawn condition. If the condition is below this, the spawn is disabled, above: enabled.

this new functionality will be complimented by some quest functions:
quest::spawn_condition(zone_short, condition_id, new_value) - set a spawn condition's value.
quest::get_spawn_condition(zone_short, condition_id) - returns the value of the spawn condition.
quest::toggle_spawn_event(event_id, bool enable, bool reset_base);

These quest events would be capible of affecting other currently active zones, to cause for example a mob to spawn in another zone, or entire spawn patterns to be altered from a different zone.
Reply With Quote
  #2  
Old 02-17-2005, 01:48 PM
garim12
Fire Beetle
 
Join Date: Oct 2004
Location: Tampa, FL
Posts: 19
Default

What about triggered on death spawns? That's something I've been thinking about lately that I haven't yet seen in the emu (unless it's there and I completely missed it). For instance, when you kill Lucan, the undead version of him spawns for the Soulfire quest. Many monsters in the Ykesha expansion trigger boss monsters when they die as well.
Reply With Quote
  #3  
Old 02-17-2005, 03:23 PM
mattmeck
Guest
 
Posts: n/a
Default

Sounds good, i know we would use these changes to better S2K


Quote:
Originally Posted by garim12
What about triggered on death spawns? That's something I've been thinking about lately that I haven't yet seen in the emu (unless it's there and I completely missed it). For instance, when you kill Lucan, the undead version of him spawns for the Soulfire quest. Many monsters in the Ykesha expansion trigger boss monsters when they die as well.
You can do this using the perl quest system.
Reply With Quote
  #4  
Old 02-18-2005, 01:15 PM
dragonflz
Sarnak
 
Join Date: Apr 2004
Location: Maine
Posts: 34
Default

I for one would like to see these proposed changes implemented...

Drag
__________________
-------------------------------
Comming soon.....
TotD EQEMU Server
-------------------------------
And there I was, Gone!
Reply With Quote
  #5  
Old 02-24-2005, 03:46 PM
fathernitwit
Developer
 
Join Date: Jul 2004
Posts: 773
Default

for those interested, this is currently running on PEQ, and will get merged into CVS when I get my happy ass around to it.
Reply With Quote
  #6  
Old 03-21-2005, 06:11 AM
fathernitwit
Developer
 
Join Date: Jul 2004
Posts: 773
Default

tutorial on use of final implementation:
http://www.eqemulator.net/forums/sho...d.php?p=106816
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 04:32 AM.


 

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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3