fix(Core/Map): Fix crash OnPlayerLeave() (#21155)

This commit is contained in:
Andrew
2025-01-13 17:33:05 -03:00
committed by GitHub
parent 8bd66612db
commit 241d05f569

View File

@@ -3040,6 +3040,8 @@ void InstanceMap::Update(const uint32 t_diff, const uint32 s_diff, bool /*thread
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
//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);
@@ -3048,9 +3050,6 @@ void InstanceMap::RemovePlayerFromMap(Player* player, bool remove)
// If remove == true - player already deleted.
if (!remove)
player->SetPendingBind(0, 0);
if (instance_data)
instance_data->OnPlayerLeave(player);
}
void InstanceMap::AfterPlayerUnlinkFromMap()