diff options
-rw-r--r-- | src/game/Map.cpp | 1 | ||||
-rw-r--r-- | src/game/Player.cpp | 5 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/game/Map.cpp b/src/game/Map.cpp index 132a61a4f8d..65e45ba62b8 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -1107,6 +1107,7 @@ void Map::RemoveAllPlayers() { if(HavePlayers()) { + // this is happening for bg sLog.outError("Map::UnloadAll: there are still players in the instance at unload, should not happen!"); for(MapRefManager::iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr) diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 333b5c426d9..1fc04b4051f 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -7818,8 +7818,9 @@ void Player::SendLoot(uint64 guid, LootType loot_type) bones->lootForBody = true; uint32 pLevel = bones->loot.gold; bones->loot.clear(); - if(GetBattleGround()->GetTypeID() == BATTLEGROUND_AV) - loot->FillLoot(1, LootTemplates_Creature, this, true); + if(BattleGround *bg = GetBattleGround()) + if(bg->GetTypeID() == BATTLEGROUND_AV) + loot->FillLoot(1, LootTemplates_Creature, this, true); // It may need a better formula // Now it works like this: lvl10: ~6copper, lvl70: ~9silver bones->loot.gold = (uint32)( urand(50, 150) * 0.016f * pow( ((float)pLevel)/5.76f, 2.5f) * sWorld.getRate(RATE_DROP_MONEY) ); |