Standardized the message numbers and will send the correct one based on client version
Fixed /tell to not assume that both clients were the same version
Tons of quest fixes
Fixed various spawn bugs
Complete Fix#196 - need to rebuild the SpellData structure so as to not mess with the base Spell's memory. Also delete the inner spell when we RemoveSpell since its only a one-off.
Fix#196 - LUA custom spell support (for things like item scripts)
Fix#195 - Alignment LUA functions
CastSpell now has a cast_time argument extended to it
- Fixed a async query for npc_appearance on skin_color to use insert param
- spell 'remove' function now has third parameter 'reason', canceled, expired, purged, death and pet_death
SpawnSet(NPC, "skin_color", "255 0 0", false, true)
skin_color takes in 3 arguments as a string, R G B
two new parameters after value:
- no_update, when set to true (default false, its an inverse flag of send_update) we will not send update of spawn changes
- temporary_flag, when set to true database is not update (default false again to keep compat with LUA scripts).
SpellHeal(Spawn, "heal", min, max, NPC, 0, 0, "New Spell Name")
Prevents corruption in the group member pointers.. clients couldn't see each other in group lists or chat to each other depending on special conditions
- Fix lifetime of remove_target_list Spawn* -> int32 entity ID (resolve entity id to spawn on demand, makes sure we don't have a dead ptr)
- Fix for hang behavior with mutex lock when coming in from LUA spell functions
after 30 seconds of zone process hung, attempt normal shutdown. If at 60s then force SpawnProcess/ZoneProcess threads to cancel (only linux supports 60s feature to cancel thread). For windows 60s+ is only notification and does not attempt to cancel threads.
second stage for linux may/may not succeed (either shuts the zone down or crashes the world). Idea being this is worst case scenario to try to recover/make server owner aware of the hung nature of the zone.