Get dz safe return from cache not db

This was loading the dz from database to get safe return data every time
a client's dz removal timer triggered

Add the Zone::GetDynamicZone() method so zones that are dz instances can
find the data from the cache of any dz systems
This commit is contained in:
hg
2020-07-16 19:37:51 -04:00
parent fba078bbe9
commit 6e5ca19d18
6 changed files with 27 additions and 7 deletions
+3 -2
View File
@@ -9883,13 +9883,14 @@ void Client::SendDzCompassUpdate()
QueuePacket(outapp.get());
}
void Client::GoToDzSafeReturnOrBind(const DynamicZoneLocation& safereturn)
void Client::GoToDzSafeReturnOrBind(const DynamicZone& dynamic_zone)
{
auto safereturn = dynamic_zone.GetSafeReturnLocation();
LogDynamicZonesDetail(
"Sending character [{}] to safereturn zone [{}] or bind", CharacterID(), safereturn.zone_id
);
if (safereturn.zone_id == 0)
if (!dynamic_zone.IsValid() || safereturn.zone_id == 0)
{
GoToBind();
}