Item spells with this trigger mode expected casted at item add
to inventory/equip slots (exclude bank), and spell auras (if any)
applied while item in like slots. Item expected destroyed at aura
remove by some reason.
Implementation note: because 2 step way item moves from slot to slot
related auras not removed at internal RemoveItem call and removed only
at directly item destroy/remove from player function calles, or at StoreItem
(if item added to not appropriate slot). So need in future careful with new
RemoveItem call cases.
Inspired by patch suggested by darkstalker
Also
* Remove existed enums for family masks as contra-productive for developement.
* Drop one from horrible hack checks in SpellMgr::IsNoStackSpellDueToSpell
(spells for any fimilies with exactly 0x800 mask) I fail find useful cases
for current spell data with this check. All cases expected work correct without it.
If will some problems detected with this please report for fix in less strange way.
Also partly implement using it spell 62692.
FIXME: Some spells expected to be working for target under spell 62692 effect
not working. This need additional research and fixes.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
Inspired by patch provided by darkstalker.
Client expected receive form field change at form switing including case with switch to same form.
In fact problem too good mangos optimization in part avoid send unchanged values in update fields.
* Added function Object::SendForcedObjectUpdate()
* It used in form apply code for make sure received by client non-form applied state in middle form shifting state.
* It also used for fishing code when client also expected received some update fields chnages before
animation update. New function send update to all all client instead before used code that send it to fishing player
and resend later one more time to other players and player itself as normal update.
* Update triggering source spells.
* In code overwrite wrong family mask data for spell mod.
If more cases will be maybe will better restore spell_affect table.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Set as expected caster channeling target to created dynamic object
at persistent aura area spell casts for channeled spell.
* Select correct caster/target for triggered spell in case channeled perioding trigger aura.
Now safe allow this casts in like way after completed convertion to ObjectGuid use.
Also simplify code in result allowed auto cast to uint64.
Please _not_ add new uint64 storages (local and in structures) for guid values.
Place spell where it belongs instead, along with other spells doing the same. Spell will add/remove the correct flags this time.
git blame: Hasty research, lack of coffee, broken brain
Signed-off-by: NoFantasy <nofantasy@nf.no>
Thanks dpedroia15 for parts of 45958.
Note: spell 45958 may be processed further with DB table spell_scripts.
Signed-off-by: NoFantasy <nofantasy@nf.no>