Avoid transporters triggering repeatedly after a destination is selected
This commit is contained in:
parent
6b22386ef6
commit
6f3dc5119a
@ -3862,6 +3862,8 @@ bool Client::Process(bool zone_process) {
|
|||||||
|
|
||||||
player_pos_changed = false;
|
player_pos_changed = false;
|
||||||
|
|
||||||
|
// avoid a glitch where we keep triggering this over and over again in succession after transporter is selected
|
||||||
|
if(!IsReloadingZone() && !IsZoning())
|
||||||
GetCurrentZone()->CheckTransporters(this);
|
GetCurrentZone()->CheckTransporters(this);
|
||||||
|
|
||||||
if (GetPlayer()->GetRegionMap())
|
if (GetPlayer()->GetRegionMap())
|
||||||
@ -4894,8 +4896,21 @@ bool Client::GotoSpawn(const char* search_name, bool forceTarget) {
|
|||||||
void Client::MoveInZone(float x, float y, float z, float h) {
|
void Client::MoveInZone(float x, float y, float z, float h) {
|
||||||
SetReloadingZone(true);
|
SetReloadingZone(true);
|
||||||
|
|
||||||
|
GetPlayer()->SetX(x);
|
||||||
|
GetPlayer()->SetY(y);
|
||||||
|
GetPlayer()->SetZ(z);
|
||||||
|
GetPlayer()->SetHeading(h);
|
||||||
|
|
||||||
|
GetPlayer()->SetSpawnOrigX(x);
|
||||||
|
GetPlayer()->SetSpawnOrigY(y);
|
||||||
|
GetPlayer()->SetSpawnOrigZ(z);
|
||||||
|
GetPlayer()->SetSpawnOrigHeading(h);
|
||||||
SetZoningCoords(x,y,z,h);
|
SetZoningCoords(x,y,z,h);
|
||||||
|
|
||||||
|
EQ2Packet* pack = GetPlayer()->Move(x, y, z, GetVersion());
|
||||||
|
if(pack)
|
||||||
|
QueuePacket(pack);
|
||||||
|
|
||||||
PacketStruct* packet = configReader.getStruct("WS_TeleportWithinZone", GetVersion());
|
PacketStruct* packet = configReader.getStruct("WS_TeleportWithinZone", GetVersion());
|
||||||
if (packet)
|
if (packet)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user