Added LUA StopTimer(Spawn, "function_name") support, leave the function_name as an empty string to delete ALL timers tied to the spawn
LUA Functions cleanup continues, reset function stack after arguments are obtained (on-going patch work)
Fix#376 - resolved spells with duration until cancel blinking after zoning
Fix#375 - hard coded activity status to solid/transport flags on lifts/boats resolves falling through lifts when moving on them
Additional crash fixes:
- stats clearing when calculating bonuses on entity
- Player equipment mutex lock protection
- Fix GetFactionAmount to be Signed Integer
- Crash fix spell removal on zone shutdown when player already left
- PlayerItems mutex fixes
- Movement Location mutex fixes
Fix#121 - Can use /reload luasystem and /reload spells without causing a crash
Log messages at spell/warning level for NPC casting when it doesn't have enough mana/concentration/etc
Fixed additional ASan issues:
Fix#370Fix#371Fix#372Fix#373
- healthchanged function for SpawnScripts can now return a modified health. healthchanged also now receives a third argument, Damage
eg function healthchanged(Spawn, Attacker, Damage)
-1 = immune (hit damage is set to 0)
0 (or no return) = default damage
1 or higher = new damage (before wards/procs take place)
- Fixed locking issues with player quests when calling /reload quests
- AddQuestStep now supports spawn ids as arguments 9+ (after the usableitemid) -- this will also set the quest flag icon that you would similarily see in a QuestStepKill noting a Spawn is involved with the quest
- Fixed ruleset error message to only display if we don't get a ruleset id
- Fixed a ASam crash in spawn_update_packet, didn't like our null_byte use. Changed it to not bother since we memset the data, it is already a 0x00 byte no reason to memcpy it in.
Fix#366 - loot_global support for loot_tier
Fix#355 - support for item stat 7xx range, subsequently fixed some issues with spell updates and providing inventory stats reflecting changes to those spells.
#define ITEM_STAT_SPELL_DAMAGE 700
#define ITEM_STAT_HEAL_AMOUNT 701
#define ITEM_STAT_SPELL_AND_HEAL 702
#define ITEM_STAT_COMBAT_ART_DAMAGE 703
#define ITEM_STAT_SPELL_AND_COMBAT_ART_DAMAGE 704
#define ITEM_STAT_TAUNT_AMOUNT 705
#define ITEM_STAT_TAUNT_AND_COMBAT_ART_DAMAGE 706
#define ITEM_STAT_ABILITY_MODIFIER 707
Fix#369 - added error message if a global ruleset not defined in variables eg.
22:46:34 E Rules : Variables table is missing default_ruleset_id variable name, this means the global rules will be code-default, database entries not used. Use query such as "insert into variables set variable_name='default_ruleset_id',variable_value='1',comment='Default ruleset';" to resolve.
Fix#268 - inadvertently display works fine most of the time, except if you cross zone the group was broken and unrecoverable due to bad saving of the group_id.
I am re-using the rejoin_group_id to set that as the default DB value in case the player loses its group temporarily when we zone them.
Fix#367 - Put additional protection to rest of player_quests calls, using read/write locks now also
Fix#363 - Added rule R_Loot, SkipLootGrayMob, default is on "1". Set to "0" to allow chests and 'non body' or 'non quest' drops from gray mobs
Fix#362 - Removed charge based items when charges depleted
Fix#255 - Added World Time LUA Functions
int16 = GetWorldTimeYear()
sint32 = GetWorldTimeMonth()
sint32 = GetWorldTimeHour()
sint32 = GetWorldTimeMinute()
SetWorldTime(int16 years, sint32 months, sint32 hours, sint32 minutes)
SendTimeUpdate()
- Additionally fixed camping and logging back in immediately, there was a 30 second delay. That is no longer the case.
- Fixed effective level updating on level changes, this prevents the unexpected purple inventory and mentor level display
Fix#364 - Linkdead caused instability to world server and also the process of reconnecting a formerly connected player was not setup correctly (need to clear xor packets and other variables, visual states, player states)
- Fixed a crash issue with toggling client offline in database
- Encounter spells NPC->Player now properly handled
- Fix#360 exposed cheek_type, chin_type, ear_type, eye_brow_type, eye_type, lip_type, nose_type, body_age, body_size to spawn set
all but body_age and body_size have three indexes (0-2):
/spawn set command_name [value] [index]
value is a signed integer (can be negative/positive per the requirements)
index is between 0-2, sets R/G/B fields respectively in the database (thats how it loads up)
- Fix#359 better handling of MMovementLocations
- Fix#353 we now properly update the windows against your inventory
- "obtained" lua function now called when item is looted (previously only done when item is 'added' to the player)
- Fix#342 - lock down fuel components (the resulting messaging may need to be corrected, but the concept is in)
- Fix#361 - expansion/holiday flag triggering on a spawn no longer throws 'error adding spawn'. Now has a warning message instead. Also did some other messages to try to reduce 'error' based logging as to not confuse real errors with just server settings/unrelated noise in the database.
- Deadlock fix on spawn removal and deleting spawns
- Fix#358 lootdrop will be checked against completed quest identified by ID
alter table lootdrop add column no_drop_quest_completed int(10) unsigned not null default 0;
- zone instance type now cached into a map after querying zone id (so we don't continuously query)
- mentor now removes spells on the person mentoring
- Fix#354 - GetZoneLockoutTimer(Player, ZoneID, displayClient=false) added, returns string of lockout time (includes a space at the beginning). DisplayClient = true will send the message to the client.
- Can't hail dead spawns
- Crash fix in TempRemoveGroup when group id no longer exists