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. |
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.
|
Sounds good, i know we would use these changes to better S2K
Quote:
|
I for one would like to see these proposed changes implemented...
Drag |
for those interested, this is currently running on PEQ, and will get merged into CVS when I get my happy ass around to it.
|
tutorial on use of final implementation:
http://www.eqemulator.net/forums/sho...d.php?p=106816 |
All times are GMT -4. The time now is 12:25 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.