From a2c9c4098a6f6e41b26ee19aa834fb813f1f94a3 Mon Sep 17 00:00:00 2001 From: Warpten Date: Sat, 22 Sep 2012 21:28:37 +0200 Subject: Core/Spells: Fixed Soulwell getting two charges removed (or more) per click. --- src/server/game/Entities/GameObject/GameObject.cpp | 3 ++- src/server/game/Handlers/SpellHandler.cpp | 3 ++- src/server/game/Spells/SpellEffects.cpp | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src/server/game') diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index c28ff21bfa5..46abf95128e 100755 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1080,7 +1080,8 @@ void GameObject::Use(Unit* user) if (sScriptMgr->OnGossipHello(playerUser, this)) return; - AI()->GossipHello(playerUser); + if (AI()->GossipHello(playerUser)) + return; } // If cooldown data present in template diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index afaa38527bb..0e5d68d51e4 100755 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -303,7 +303,8 @@ void WorldSession::HandleGameobjectReportUse(WorldPacket& recvPacket) if (!go->IsWithinDistInMap(_player, INTERACTION_DISTANCE)) return; - go->AI()->GossipHello(_player); + if (go->AI()->GossipHello(_player)) + return; _player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT, go->GetEntry()); } diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index dcbd1888b03..1f3014159cb 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2001,7 +2001,8 @@ void Spell::SendLoot(uint64 guid, LootType loottype) if (sScriptMgr->OnGossipHello(player, gameObjTarget)) return; - gameObjTarget->AI()->GossipHello(player); + if (gameObjTarget->AI()->GossipHello(player)) + return; switch (gameObjTarget->GetGoType()) { -- cgit v1.2.3