diff options
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
| -rwxr-xr-x | src/server/game/Spells/SpellEffects.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 60d3fe5704c..a1406a5ab18 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2631,12 +2631,19 @@ void Spell::EffectEnergizePct(SpellEffIndex effIndex) void Spell::SendLoot(uint64 guid, LootType loottype) { - Player* player = (Player*)m_caster; + Player* player = m_caster->ToPlayer(); if (!player) return; if (gameObjTarget) { + // special case, already has GossipHello inside so return and avoid calling twice + if (gameObjTarget->GetGoType() == GAMEOBJECT_TYPE_GOOBER) + { + gameObjTarget->Use(m_caster); + return; + } + if (sScriptMgr->OnGossipHello(player, gameObjTarget)) return; @@ -2662,10 +2669,6 @@ void Spell::SendLoot(uint64 guid, LootType loottype) gameObjTarget->TriggeringLinkedGameObject(trapEntry,m_caster); return; - case GAMEOBJECT_TYPE_GOOBER: - gameObjTarget->Use(m_caster); - return; - case GAMEOBJECT_TYPE_CHEST: // TODO: possible must be moved to loot release (in different from linked triggering) if (gameObjTarget->GetGOInfo()->chest.eventId) |
