From 2f4af4f0c283d243a0df4292443f25201d1e4c07 Mon Sep 17 00:00:00 2001 From: Alex King <89047260+Kinglykrab@users.noreply.github.com> Date: Sun, 31 Dec 2023 15:45:08 -0500 Subject: [PATCH] [Bug Fix] Fix crash in Client::Handle_OP_GMGoto (#3832) # Notes - Logic was incorrect. --- zone/client_packet.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 0b13dfbb1..a0a95bcfa 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -6598,17 +6598,26 @@ void Client::Handle_OP_GMGoto(const EQApplicationPacket *app) auto *gmg = (GMSummon_Struct *) app->pBuffer; Mob *gt = entity_list.GetMob(gmg->charname); - if (!gt) { - MovePC(zone->GetZoneID(), zone->GetInstanceID(), gt->GetX(), gt->GetY(), gt->GetZ(), gt->GetHeading()); + if (gt) { + MovePC( + zone->GetZoneID(), + zone->GetInstanceID(), + gt->GetX(), + gt->GetY(), + gt->GetZ(), + gt->GetHeading() + ); } else if (!worldserver.Connected()) { Message(Chat::Red, "Error: World server disconnected."); } else { auto pack = new ServerPacket(ServerOP_GMGoto, sizeof(ServerGMGoto_Struct)); memset(pack->pBuffer, 0, pack->size); - ServerGMGoto_Struct *wsgmg = (ServerGMGoto_Struct *) pack->pBuffer; - strcpy(wsgmg->myname, GetName()); - strcpy(wsgmg->gotoname, gmg->charname); - wsgmg->admin = admin; + + auto* g = (ServerGMGoto_Struct *) pack->pBuffer; + strcpy(g->myname, GetName()); + strcpy(g->gotoname, gmg->charname); + g->admin = admin; + worldserver.SendPacket(pack); safe_delete(pack); }