mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-17 07:18:37 +00:00
Add DynamicZone class for expedition instancing
Add DynamicZone sql table schema Add DynamicZones logging category Modify CreateExpedition to take DynamicZone and ExpeditionRequest objects Implement DynamicZone compass, safereturn, and zone-in coordinates. Implement live-like DynamicZone instance kick timer for removed members Implement updating multiple client compasses (supports existing quest compass) fix: Send client compass update after entering zones to clear existing compass Implement Client::MovePCDynamicZone to invoke DynamicZoneSwitchListWnd when entering a zone where client has multiple dynamic zones assigned Implement OP_DzChooseZoneReply handling Add Lua api methods for expedition's associated dynamic zone Add #dz list gm command to list current DynamicZone instances from database
This commit is contained in:
@@ -5202,3 +5202,26 @@ std::unordered_map<uint16, Mob *> &EntityList::GetCloseMobList(Mob *mob, float d
|
||||
return mob_list;
|
||||
}
|
||||
|
||||
void EntityList::GateAllClientsToSafeReturn()
|
||||
{
|
||||
DynamicZone dz;
|
||||
if (zone)
|
||||
{
|
||||
dz = DynamicZone::LoadDzFromDatabase(zone->GetInstanceID());
|
||||
|
||||
LogDynamicZones(
|
||||
"Sending all clients in zone: [{}] instance: [{}] to dz safereturn or bind",
|
||||
zone->GetZoneID(), zone->GetInstanceID()
|
||||
);
|
||||
}
|
||||
|
||||
for (const auto& client_list_iter : client_list)
|
||||
{
|
||||
Client* client = client_list_iter.second;
|
||||
if (client)
|
||||
{
|
||||
// falls back to gating clients to bind if dz invalid
|
||||
client->GoToDzSafeReturnOrBind(dz.GetSafeReturnLocation());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user