diff --git a/common/emu_oplist.h b/common/emu_oplist.h index 4ef1761bd..28ec9af0f 100644 --- a/common/emu_oplist.h +++ b/common/emu_oplist.h @@ -535,6 +535,8 @@ N(OP_WorldLogout), N(OP_WorldObjectsSent), N(OP_WorldUnknown001), N(OP_XTargetAutoAddHaters), +N(OP_XTargetOpen), +N(OP_XTargetOpenResponse), N(OP_XTargetRequest), N(OP_XTargetResponse), N(OP_YellForHelp), diff --git a/utils/patches/patch_RoF.conf b/utils/patches/patch_RoF.conf index 6e3f0ab1a..dfd8f0e84 100644 --- a/utils/patches/patch_RoF.conf +++ b/utils/patches/patch_RoF.conf @@ -235,6 +235,8 @@ OP_TargetHoTT=0x3af5 OP_XTargetResponse=0x7f64 OP_XTargetRequest=0x6753 OP_XTargetAutoAddHaters=0x5f51 +OP_XTargetOpen=0x7423 +OP_XTargetOpenResponse=0x27e8 OP_TargetBuffs=0x1c71 OP_BuffCreate=0x71f5 OP_BuffRemoveRequest=0x7efd diff --git a/utils/patches/patch_RoF2.conf b/utils/patches/patch_RoF2.conf index 5e67f4c11..0d1cb20ec 100644 --- a/utils/patches/patch_RoF2.conf +++ b/utils/patches/patch_RoF2.conf @@ -235,6 +235,8 @@ OP_TargetBuffs=0x4f4b OP_XTargetResponse=0x4d59 OP_XTargetRequest=0x3763 OP_XTargetAutoAddHaters=0x672f +OP_XTargetOpen=0x61df +OP_XTargetOpenResponse=0x3ef8 OP_BuffCreate=0x3377 OP_BuffRemoveRequest=0x64f2 OP_DeleteSpawn=0x7280 diff --git a/utils/patches/patch_UF.conf b/utils/patches/patch_UF.conf index 6f94c92db..e3af9aa7d 100644 --- a/utils/patches/patch_UF.conf +++ b/utils/patches/patch_UF.conf @@ -239,6 +239,8 @@ OP_TargetHoTT=0x790c # C OP_XTargetResponse=0x6eb5 # OP_XTargetRequest=0x4750 # OP_XTargetAutoAddHaters=0x1a28 # +OP_XTargetOpen=0x11ae +OP_XTargetOpenResponse=0x45d3 OP_TargetBuffs=0x3f24 # C OP_BuffCreate=0x2121 # V OP_BuffRemoveRequest=0x4065 diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 2ee01fe25..c955399b8 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -386,6 +386,7 @@ void MapOpcodes() ConnectedOpcodes[OP_WhoAllRequest] = &Client::Handle_OP_WhoAllRequest; ConnectedOpcodes[OP_WorldUnknown001] = &Client::Handle_OP_Ignore; ConnectedOpcodes[OP_XTargetAutoAddHaters] = &Client::Handle_OP_XTargetAutoAddHaters; + ConnectedOpcodes[OP_XTargetOpen] = &Client::Handle_OP_XTargetOpen; ConnectedOpcodes[OP_XTargetRequest] = &Client::Handle_OP_XTargetRequest; ConnectedOpcodes[OP_YellForHelp] = &Client::Handle_OP_YellForHelp; ConnectedOpcodes[OP_ZoneChange] = &Client::Handle_OP_ZoneChange; @@ -13925,6 +13926,18 @@ void Client::Handle_OP_XTargetAutoAddHaters(const EQApplicationPacket *app) XTargetAutoAddHaters = app->ReadUInt8(0); } +void Client::Handle_OP_XTargetOpen(const EQApplicationPacket *app) +{ + if (app->size != 4) { + Log.Out(Logs::General, Logs::None, "Size mismatch in OP_XTargetOpen, expected 1, got %i", app->size); + DumpPacket(app); + return; + } + + auto outapp = new EQApplicationPacket(OP_XTargetOpenResponse, 0); + FastQueuePacket(&outapp); +} + void Client::Handle_OP_XTargetRequest(const EQApplicationPacket *app) { if (app->size < 12) diff --git a/zone/client_packet.h b/zone/client_packet.h index a39e3fb74..2635724dd 100644 --- a/zone/client_packet.h +++ b/zone/client_packet.h @@ -292,6 +292,7 @@ void Handle_OP_WearChange(const EQApplicationPacket *app); void Handle_OP_WhoAllRequest(const EQApplicationPacket *app); void Handle_OP_XTargetAutoAddHaters(const EQApplicationPacket *app); + void Handle_OP_XTargetOpen(const EQApplicationPacket *app); void Handle_OP_XTargetRequest(const EQApplicationPacket *app); void Handle_OP_YellForHelp(const EQApplicationPacket *app); void Handle_OP_ZoneChange(const EQApplicationPacket *app);