mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 14:41:28 +00:00
[Zone Instances] Handle routing to instances when using evac/succor (#4297)
This commit is contained in:
parent
b3538021cc
commit
dfd1bfbd49
@ -240,6 +240,7 @@ Client::Client(EQStreamInterface *ieqs) : Mob(
|
|||||||
runmode = false;
|
runmode = false;
|
||||||
linkdead_timer.Disable();
|
linkdead_timer.Disable();
|
||||||
zonesummon_id = 0;
|
zonesummon_id = 0;
|
||||||
|
zonesummon_instance_id = 0;
|
||||||
zonesummon_ignorerestrictions = 0;
|
zonesummon_ignorerestrictions = 0;
|
||||||
bZoning = false;
|
bZoning = false;
|
||||||
m_lock_save_position = false;
|
m_lock_save_position = false;
|
||||||
|
|||||||
@ -1951,6 +1951,7 @@ private:
|
|||||||
|
|
||||||
glm::vec4 m_ZoneSummonLocation;
|
glm::vec4 m_ZoneSummonLocation;
|
||||||
uint16 zonesummon_id;
|
uint16 zonesummon_id;
|
||||||
|
uint8 zonesummon_instance_id;
|
||||||
uint8 zonesummon_ignorerestrictions;
|
uint8 zonesummon_ignorerestrictions;
|
||||||
ZoneMode zone_mode;
|
ZoneMode zone_mode;
|
||||||
|
|
||||||
|
|||||||
@ -94,6 +94,7 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) {
|
|||||||
case GMHiddenSummon:
|
case GMHiddenSummon:
|
||||||
case ZoneSolicited: //we told the client to zone somewhere, so we know where they are going.
|
case ZoneSolicited: //we told the client to zone somewhere, so we know where they are going.
|
||||||
target_zone_id = zonesummon_id;
|
target_zone_id = zonesummon_id;
|
||||||
|
target_instance_id = zonesummon_instance_id;
|
||||||
break;
|
break;
|
||||||
case GateToBindPoint:
|
case GateToBindPoint:
|
||||||
case ZoneToBindPoint:
|
case ZoneToBindPoint:
|
||||||
@ -126,6 +127,7 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) {
|
|||||||
// WildcardX 27 January 2008
|
// WildcardX 27 January 2008
|
||||||
if (zone_mode == EvacToSafeCoords && zonesummon_id) {
|
if (zone_mode == EvacToSafeCoords && zonesummon_id) {
|
||||||
target_zone_id = zonesummon_id;
|
target_zone_id = zonesummon_id;
|
||||||
|
target_instance_id = zonesummon_instance_id;
|
||||||
} else {
|
} else {
|
||||||
target_zone_id = zc->zoneID;
|
target_zone_id = zc->zoneID;
|
||||||
}
|
}
|
||||||
@ -573,6 +575,7 @@ void Client::DoZoneSuccess(ZoneChange_Struct *zc, uint16 zone_id, uint32 instanc
|
|||||||
zone_mode = ZoneUnsolicited;
|
zone_mode = ZoneUnsolicited;
|
||||||
m_ZoneSummonLocation = glm::vec4();
|
m_ZoneSummonLocation = glm::vec4();
|
||||||
zonesummon_id = 0;
|
zonesummon_id = 0;
|
||||||
|
zonesummon_instance_id = 0;
|
||||||
zonesummon_ignorerestrictions = 0;
|
zonesummon_ignorerestrictions = 0;
|
||||||
|
|
||||||
// this simply resets the zone shutdown timer
|
// this simply resets the zone shutdown timer
|
||||||
@ -959,6 +962,7 @@ void Client::ZonePC(uint32 zoneID, uint32 instance_id, float x, float y, float z
|
|||||||
|
|
||||||
// we hide the real zoneid we want to evac/succor to here
|
// we hide the real zoneid we want to evac/succor to here
|
||||||
zonesummon_id = zoneID;
|
zonesummon_id = zoneID;
|
||||||
|
zonesummon_instance_id = instance_id;
|
||||||
|
|
||||||
outapp->priority = 6;
|
outapp->priority = 6;
|
||||||
FastQueuePacket(&outapp);
|
FastQueuePacket(&outapp);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user