- Unit::CalculateSpellDuration split into two functions
- CalculateSpellDuration taking into account combo points and caster-side spell mods
- Unit::CalculateAuraDuration taking into account target-side spell mods
- Diminishing is now applied before duration reduction mods
- Implement saving per-effect periodic timers to DB (required for auras affected by haste)
This prevent lost detected achievement criteria update or have unexpected criteria update event
at character data loading like skills/spells/itemts/etc.
Achievment system state load by self not dependent from other character data (checked after
all data loading in CheckAllAchievementCriteria() call.
Note: spell 62105 are still considered to be negative, despite explicit exception added in IsPositiveEffect and will unexpectedly put caster in combat.
Signed-off-by: NoFantasy <nofantasy@nf.no>
Note: PostgreSQL does not have prepared statements implemented using native APIs.
Huge thanks to Undergarun, kero99 and Vinolentus.
Signed-off-by: Ambal <pogrebniak@gala.net>
For leak detection you can also use tools like Valgrind.
If you really want to use VLD you can revert this commit and remove the comments in MemoryLeaks.cpp and MemoryLeaks.h.
The VLD version which has been shipped with MaNGOS is *heavily* outdated and I thus suggest you to use a newer version of it, if you really plan to use it. You can find the newest version on github in its official repository: https://github.com/dmoulding/vld
* Some spells have StackAmount > 255, for example 22735, 54314
* In SMSG_AURA_UPDATE maximum stack amount is limited by 255
* Move duplicate code into SpellAuraHolder::BuildUpdatePacket function
* Cleanup some weird type casts in _LoadAuras
For non stacking auras preserve stack size 1 as auras created instead reset it to 0 at mnext load.
For client no difference in show and most non stacking auras not dependent from stack size value
at server side code, but any way set stack size to 0 can generate unexpected wrong caluclation results
in spell code.
This reverts commit 714d48a99e2ccc9404b34ebcfec50b2d8300fc46.
Additiona reserch show that no any know cases when data in RewChoiceItem* have gaps
except detected wrong data cases. So check good have in 3.x/2.x for better data intergrity checks.
This fix problem when item with text created but not read before
logout after logout not show text. In most cases this is mail text
copied to inventry. Client cache text in WDB so if open before
logout then item "show" text. If you have items created before
this fix with like problem you need clear WDB cache for fix text
show for item.
Note that code is only a tiny start to implement these gameobjects, and are most likely wrong in itself as conditions for calling events does not exist yet.
To be used in further development.
Signed-off-by: NoFantasy <nofantasy@nf.no>