diff options
| author | xinef1 <w.szyszko2@gmail.com> | 2017-02-05 23:42:31 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2017-02-05 23:42:31 +0100 |
| commit | 14dfc377b48bc909894396e65d4e4ce89d9708b6 (patch) | |
| tree | 4c4a44bbbbd26e1266f1ffead2ce16890035e335 /src/server/game/Entities | |
| parent | 075f0e26ccaea835f1b3b771b717e9edef0d0b59 (diff) | |
Core/Misc: Various crash fixes (#19059)
* Replaced some FindPlayer calls with GetPlayer
Fixed some more crashes
* Correction
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index d90a5873f92..7610c9981c5 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1851,7 +1851,7 @@ void WorldObject::AddObjectToRemoveList() map->AddObjectToRemoveList(this); } -TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropertiesEntry const* properties /*= NULL*/, uint32 duration /*= 0*/, Unit* summoner /*= NULL*/, uint32 spellId /*= 0*/, uint32 vehId /*= 0*/) +TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropertiesEntry const* properties /*= nullptr*/, uint32 duration /*= 0*/, Unit* summoner /*= nullptr*/, uint32 spellId /*= 0*/, uint32 vehId /*= 0*/) { uint32 mask = UNIT_MASK_SUMMON; if (properties) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f47634b8f56..86eefa043cd 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2148,6 +2148,9 @@ void Player::RemoveFromWorld() UnsummonPetTemporaryIfAny(); ClearComboPoints(); ClearComboPointHolders(); + ObjectGuid lootGuid = GetLootGUID(); + if (!lootGuid.IsEmpty()) + m_session->DoLootRelease(lootGuid); sOutdoorPvPMgr->HandlePlayerLeaveZone(this, m_zoneUpdateId); sBattlefieldMgr->HandlePlayerLeaveZone(this, m_zoneUpdateId); } @@ -23629,7 +23632,7 @@ bool Player::IsAtGroupRewardDistance(WorldObject const* pRewardSource) const if (!player || IsAlive()) player = this; - if (player->GetMap()->IsDungeon()) + if (pRewardSource->GetMap()->IsDungeon()) return true; return pRewardSource->GetDistance(player) <= sWorld->getFloatConfig(CONFIG_GROUP_XP_DISTANCE); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 7f56f670e70..1a55f14cfb5 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -11295,7 +11295,7 @@ void Unit::ClearComboPointHolders() { ObjectGuid guid = *m_ComboPointHolders.begin(); - Player* player = ObjectAccessor::FindPlayer(guid); + Player* player = ObjectAccessor::GetPlayer(*this, guid); if (player && player->GetComboTarget() == GetGUID()) // recheck for safe player->ClearComboPoints(); // remove also guid from m_ComboPointHolders; else |
