diff options
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 5 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_gobject.cpp | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 97e82426e9d..40a8c853bb0 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2923,7 +2923,7 @@ void Spell::EffectTaunt(SpellEffIndex /*effIndex*/) unitTarget->ToCreature()->AI()->AttackStart(m_caster); } -void Spell::EffectWeaponDmg(SpellEffIndex /*effIndex*/) +void Spell::EffectWeaponDmg(SpellEffIndex effIndex) { if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET) return; @@ -2934,8 +2934,9 @@ void Spell::EffectWeaponDmg(SpellEffIndex /*effIndex*/) // multiple weapon dmg effect workaround // execute only the last weapon damage // and handle all effects at once - for (SpellEffectInfo const* effect : GetEffects()) + for (uint8 index = effIndex + 1; index < MAX_SPELL_EFFECTS; ++index) { + SpellEffectInfo const* effect = GetEffect(index); if (!effect) continue; switch (effect->Effect) diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp index ef52f6ebd95..1af687aef08 100644 --- a/src/server/scripts/Commands/cs_gobject.cpp +++ b/src/server/scripts/Commands/cs_gobject.cpp @@ -168,6 +168,8 @@ public: // fill the gameobject data and save to the db object->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()), player->GetPhaseMask()); + guidLow = object->GetSpawnId(); + // delete the old object and do a clean load from DB with a fresh new GameObject instance. // this is required to avoid weird behavior and memory leaks delete object; |