fix(Core/Map): Fix crash OnPlayerLeave() (#21155)
This commit is contained in:
@@ -3040,6 +3040,8 @@ void InstanceMap::Update(const uint32 t_diff, const uint32 s_diff, bool /*thread
|
|||||||
|
|
||||||
void InstanceMap::RemovePlayerFromMap(Player* player, bool remove)
|
void InstanceMap::RemovePlayerFromMap(Player* player, bool remove)
|
||||||
{
|
{
|
||||||
|
if (instance_data)
|
||||||
|
instance_data->OnPlayerLeave(player);
|
||||||
// pussywizard: moved m_unloadTimer to InstanceMap::AfterPlayerUnlinkFromMap(), in this function if 2 players run out at the same time the instance won't close
|
// pussywizard: moved m_unloadTimer to InstanceMap::AfterPlayerUnlinkFromMap(), in this function if 2 players run out at the same time the instance won't close
|
||||||
//if (!m_unloadTimer && m_mapRefMgr.getSize() == 1)
|
//if (!m_unloadTimer && m_mapRefMgr.getSize() == 1)
|
||||||
// m_unloadTimer = m_unloadWhenEmpty ? MIN_UNLOAD_DELAY : std::max(sWorld->getIntConfig(CONFIG_INSTANCE_UNLOAD_DELAY), (uint32)MIN_UNLOAD_DELAY);
|
// m_unloadTimer = m_unloadWhenEmpty ? MIN_UNLOAD_DELAY : std::max(sWorld->getIntConfig(CONFIG_INSTANCE_UNLOAD_DELAY), (uint32)MIN_UNLOAD_DELAY);
|
||||||
@@ -3048,9 +3050,6 @@ void InstanceMap::RemovePlayerFromMap(Player* player, bool remove)
|
|||||||
// If remove == true - player already deleted.
|
// If remove == true - player already deleted.
|
||||||
if (!remove)
|
if (!remove)
|
||||||
player->SetPendingBind(0, 0);
|
player->SetPendingBind(0, 0);
|
||||||
|
|
||||||
if (instance_data)
|
|
||||||
instance_data->OnPlayerLeave(player);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void InstanceMap::AfterPlayerUnlinkFromMap()
|
void InstanceMap::AfterPlayerUnlinkFromMap()
|
||||||
|
|||||||
Reference in New Issue
Block a user