From 158dad052c5b8b5538b1747e0fcd415c72a66061 Mon Sep 17 00:00:00 2001 From: hg <4683435+hgtw@users.noreply.github.com> Date: Tue, 12 May 2020 21:43:29 -0400 Subject: [PATCH] Clear client expedition info if removed inside dz Clears client expedition info immediately if removed inside dynamic zone Live clears expedition info from clients removed inside a dz on the same timer used for removals, even if the client zones before it triggers. This is problematic to mimic and not worth the effort --- zone/expedition.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/zone/expedition.cpp b/zone/expedition.cpp index 630e5631c..faf30519f 100644 --- a/zone/expedition.cpp +++ b/zone/expedition.cpp @@ -1170,14 +1170,13 @@ void Expedition::ProcessMemberRemoved(std::string removed_char_name, uint32_t re if (is_removed) { + // live doesn't clear expedition info on clients removed while inside dz. + // it instead let's the dz kick timer do it even if character zones out + // before it triggers. for simplicity we'll always clear immediately ExpeditionDatabase::DeletePendingLockouts(member_client->CharacterID()); member_client->SetExpeditionID(0); - if (!m_dynamiczone.IsCurrentZoneDzInstance()) - { - // live doesn't clear expedition info on clients removed while inside dz - member_client->SendDzCompassUpdate(); - member_client->QueuePacket(CreateInfoPacket(true).get()); - } + member_client->SendDzCompassUpdate(); + member_client->QueuePacket(CreateInfoPacket(true).get()); member_client->MessageString( Chat::Yellow, EXPEDITION_REMOVED, it->name.c_str(), m_expedition_name.c_str() );