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.
Fix#66
- Fixed crashing of the world server when a client in a group zones
- Tracking of players group_id in the characters table (for both sanity and tracking cross zone)
- Clients zoning now properly 'rejoin' their group
- Mutex locks added to group code, this makes groups more reliably work across different zones as they run on different threads (some behavior for example was some players would not see chat and others would)
- multimap needs to be used for various key matches
- fixed class matching
- Put a short tic wait for the async queries to hit the DB. Eventual solution here really would be that all character loading (char sheet/spells/etc) should be done async.
Fix#165 - support adding starting skills/spells to characters after their initial creation
/reload startabilities added
insert into commands set type=1,command='reload',subcommand='startabilities',handler=522,required_status=100;
Classic/DoF client use only a single float, then later a direction was added. Not clear what version exactly, however struct will function despite the extra int8.