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
This commit is contained in:
hg 2020-05-12 21:43:29 -04:00
parent a9c65cd4b2
commit 158dad052c

View File

@ -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()
);