diff --git a/src/game/GameObject.cpp b/src/game/GameObject.cpp index 8238bf5a6..7ac57e08f 100644 --- a/src/game/GameObject.cpp +++ b/src/game/GameObject.cpp @@ -356,7 +356,7 @@ void GameObject::Update(uint32 update_diff, uint32 /*p_time*/) ResetDoorOrButton(); break; case GAMEOBJECT_TYPE_CHEST: - if (m_groupLootTimer) + if (m_groupLootId) { if (m_groupLootTimer <= update_diff) StopGroupLoot(); @@ -1820,14 +1820,13 @@ void GameObject::SetDisplayId(uint32 modelId) void GameObject::StartGroupLoot(Group* group, uint32 timer) { m_groupLootId = group->GetId(); - m_groupLootTimer = timer; + + if (m_groupLootId) + m_groupLootTimer = timer; } void GameObject::StopGroupLoot() { - if (!m_groupLootId) - return; - if (Group* group = sObjectMgr.GetGroupById(m_groupLootId)) group->EndRoll(); diff --git a/src/game/Group.cpp b/src/game/Group.cpp index 5ca0c87e9..a8993b802 100644 --- a/src/game/Group.cpp +++ b/src/game/Group.cpp @@ -761,7 +761,7 @@ void Group::StartLootRool(WorldObject* lootTarget, LootMethod method, Loot* loot if (lootItem.AllowedForPlayer(playerToRoll)) { - if (playerToRoll->IsWithinDist(lootTarget, sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE), false)) + if (playerToRoll->IsWithinDistInMap(lootTarget, sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE), false)) { r->playerVote[playerToRoll->GetObjectGuid()] = ROLL_NOT_EMITED_YET; ++r->totalPlayersRolling; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 2b3813efe..0f71ae08d 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "11948" + #define REVISION_NR "11949" #endif // __REVISION_NR_H__