diff --git a/common/emu_oplist.h b/common/emu_oplist.h index fcfd63c633..6b5ab12ab9 100644 --- a/common/emu_oplist.h +++ b/common/emu_oplist.h @@ -290,6 +290,7 @@ N(OP_ItemLinkText), N(OP_ItemName), N(OP_ItemPacket), N(OP_ItemPreview), +N(OP_ItemPreviewRequest), N(OP_ItemRecastDelay), N(OP_ItemVerifyReply), N(OP_ItemVerifyRequest), diff --git a/common/patches/rof.cpp b/common/patches/rof.cpp index 7d16d95e4e..9a6facac73 100644 --- a/common/patches/rof.cpp +++ b/common/patches/rof.cpp @@ -5188,7 +5188,14 @@ namespace RoF //sprintf(hdr.unknown000, "06e0002Y1W00"); - snprintf(hdr.unknown000, sizeof(hdr.unknown000), "%016d", item->ID); + strn0cpy( + hdr.unknown000, + fmt::format( + "{:016}\0", + packet_type == ItemPacketInvalid ? 0 : inst->GetSerialNumber() + ).c_str(), + sizeof(hdr.unknown000) + ); hdr.stacksize = (inst->IsStackable() ? ((inst->GetCharges() > 1000) ? 0xFFFFFFFF : inst->GetCharges()) : 1); hdr.unknown004 = 0; diff --git a/common/patches/rof2.cpp b/common/patches/rof2.cpp index 15f3be60eb..3e05972e65 100644 --- a/common/patches/rof2.cpp +++ b/common/patches/rof2.cpp @@ -2105,6 +2105,33 @@ namespace RoF2 } } + ENCODE(OP_ItemPreviewRequest) + { + EQApplicationPacket* in = *p; + *p = nullptr; + + uchar* in_buf = in->pBuffer; + + auto int_item = (EQ::InternalSerializedItem_Struct*) in_buf; + + EQ::OutBuffer buf; + EQ::OutBuffer::pos_type last_pos = buf.tellp(); + + SerializeItem(buf, (const EQ::ItemInstance*) int_item->inst, int_item->slot_id, 0, ItemPacketInvalid); + if (buf.tellp() == last_pos) { + LogNetcode("RoF2::ENCODE(OP_ItemPreviewRequest) Serialization failed"); + safe_delete_array(in_buf); + safe_delete(in); + return; + } + + in->size = buf.size(); + in->pBuffer = buf.detach(); + + safe_delete_array(in_buf); + dest->FastQueuePacket(&in, ack_req); + } + ENCODE(OP_ItemVerifyReply) { ENCODE_LENGTH_EXACT(ItemVerifyReply_Struct); @@ -6857,12 +6884,13 @@ namespace RoF2 iqbs.Heirloom = 0; iqbs.Placeable = 0; iqbs.unknown28 = -1; + iqbs.unknown29 = packet_type == ItemPacketInvalid ? 0xFF : 0; iqbs.unknown30 = -1; iqbs.NoZone = 0; iqbs.NoGround = 0; iqbs.unknown37a = 0; // (guessed position) New to RoF2 iqbs.unknown38 = 0; - iqbs.unknown39 = 1; + iqbs.unknown39 = packet_type == ItemPacketInvalid ? 0 : 1;; ob.write((const char*)&iqbs, sizeof(RoF2::structs::ItemQuaternaryBodyStruct)); diff --git a/common/patches/rof2_ops.h b/common/patches/rof2_ops.h index 0330287e41..754635e416 100644 --- a/common/patches/rof2_ops.h +++ b/common/patches/rof2_ops.h @@ -1,5 +1,5 @@ /* EQEMu: Everquest Server Emulator - + Copyright (C) 2001-2016 EQEMu Development Team (http://eqemulator.net) This program is free software; you can redistribute it and/or modify @@ -92,6 +92,7 @@ E(OP_InspectBuffs) E(OP_InspectRequest) E(OP_ItemLinkResponse) E(OP_ItemPacket) +E(OP_ItemPreviewRequest) E(OP_ItemVerifyReply) E(OP_LeadershipExpUpdate) E(OP_LogServer) diff --git a/utils/patches/patch_RoF2.conf b/utils/patches/patch_RoF2.conf index 3866cfe899..93d6f04637 100644 --- a/utils/patches/patch_RoF2.conf +++ b/utils/patches/patch_RoF2.conf @@ -261,6 +261,7 @@ OP_ItemPacket=0x368e OP_ItemLinkResponse=0x70c0 OP_ItemLinkClick=0x4cef OP_ItemPreview=0x6b5c +OP_ItemPreviewRequest=0x7f80 OP_NewSpawn=0x6097 OP_Track=0x17e5 OP_TrackTarget=0x695e diff --git a/utils/scripts/opcode_scripts/opcodelist.txt b/utils/scripts/opcode_scripts/opcodelist.txt index 8a4ebf87d6..6e324c40d3 100644 --- a/utils/scripts/opcode_scripts/opcodelist.txt +++ b/utils/scripts/opcode_scripts/opcodelist.txt @@ -1,317 +1,317 @@ -RoF2 Built May 10 2013 23:30:08 -0x04d6 -0x5efd -0x0cc1 -0x2c3d -0x7b25 -0x4f44 -0x7592 -0x2b1c +RoF2 Built May 10 2013 23:30:08 +0x04d6 +0x5efd +0x0cc1 +0x2c3d +0x7b25 +0x4f44 +0x7592 +0x2b1c 0x1fd1 OP_Consent -0x15a5 -0x3c7e -0x6262 +0x15a5 +0x3c7e +0x6262 0x471d OP_AckPacket -0x64a8 -0x7c06 -0x2c5e -0x24ab -0x19b5 -0x72fa -0x0770 +0x64a8 +0x7c06 +0x2c5e +0x24ab +0x19b5 +0x72fa +0x0770 0x4cef OP_ItemLinkClick 0x08c1 OP_GMServers 0x318f OP_BeginCast 0x5ec8 OP_Disarm -0x6ae3 +0x6ae3 0x2b2d OP_ChannelMessage -0x1cb1 +0x1cb1 0x5070 OP_TimeOfDay 0x7dfc OP_ClientUpdate -0x35ea -0x3b9a -0x148d +0x35ea +0x3b9a +0x148d 0x345d OP_ClientReady 0x5ae2 OP_WorldObjectsSent -0x03a4 +0x03a4 0x69e2 OP_TradeAcceptClick 0x354c OP_CancelTrade 0x3993 OP_FinishTrade -0x165b -0x2b95 -0x6fe2 -0x42fd -0x25d7 -0x7436 +0x165b +0x2b95 +0x6fe2 +0x42fd +0x25d7 +0x7436 0x4206 OP_TradeCoins 0x14bf OP_TradeRequestAck 0x7349 OP_FinishWindow -0x71fd +0x71fd 0x0b9c OP_SetGuildRank -0x0f7d -0x1bd3 +0x0f7d +0x1bd3 0x5053 OP_GuildPublicNote -0x01f9 +0x01f9 0x2c84 OP_MobUpdate -0x279d -0x5a94 +0x279d +0x5a94 0x579a OP_TradeSkillCombine -0x56b1 -0x0f25 -0x3c14 -0x0c16 +0x56b1 +0x0f25 +0x3c14 +0x0c16 0x4a8f OP_GMFind -0x2ad6 -0x0160 -0x7852 -0x41bf -0x40dd -0x3ec6 -0x6af4 -0x6d9d -0x2538 -0x0017 -0x017 -0x691a -0x0520 -0x200f -0x65ab +0x2ad6 +0x0160 +0x7852 +0x41bf +0x40dd +0x3ec6 +0x6af4 +0x6d9d +0x2538 +0x0017 +0x017 +0x691a +0x0520 +0x200f +0x65ab 0x674b OP_WhoAllRequest -0x6a02 -0x0e48 +0x6a02 +0x0e48 0x12a6 OP_GuildMemberList -0x0eae -0x2921 -0x7056 -0x507a +0x0eae +0x2921 +0x7056 +0x507a 0x6279 OP_GuildList -0x5a26 -0x5b51 -0x0bad -0x59ad -0x2264 -0x004c +0x5a26 +0x5b51 +0x0bad +0x59ad +0x2264 +0x004c 0x04c OP_SkillUpdate 0x0ddd OP_ShopPlayerBuy -0x4101 -0x5f03 -0x3de3 +0x4101 +0x5f03 +0x3de3 0x1901 OP_Petition -0x791b -0x3a5d -0x7013 -0x47f1 +0x791b +0x3a5d +0x7013 +0x47f1 0x6506 OP_PlayerProfile 0x30a8 OP_ShopEnd 0x724f OP_ShopDelItem -0x5829 -0x1ce1 -0x47d6 -0x07cf -0x40c9 -0x38d4 -0x7eb9 -0x1e2c +0x5829 +0x1ce1 +0x47d6 +0x07cf +0x40c9 +0x38d4 +0x7eb9 +0x1e2c 0x3ae1 OP_GMBecomeNPC -0x4849 -0x376b +0x4849 +0x376b 0x1e2a OP_Fishing 0x1eec OP_LevelUpdate -0x4958 +0x4958 0x20ed OP_ExpUpdate -0x3ed4 +0x3ed4 0x701c OP_RezzAnswer 0x640e OP_InstillDoubt 0x0ecf OP_Mend -0x09d3 +0x09d3 0x70a3 OP_IncreaseStats -0x178e -0x27e8 -0x61f8 -0x4322 -0x3f84 +0x178e +0x27e8 +0x61f8 +0x4322 +0x3f84 0x40ef OP_FinishWindow2 -0x166c +0x166c 0x106b OP_RandomReply -0x5bfd -0x11c8 -0x1753 +0x5bfd +0x11c8 +0x1753 0x009f OP_SetRunMode -0x09f -0x4ae6 -0x3dbf -0x0399 -0x5c89 -0x012c -0x381c -0x4b36 -0x36d5 -0x5f21 -0x56f7 -0x46b1 +0x09f +0x4ae6 +0x3dbf +0x0399 +0x5c89 +0x012c +0x381c +0x4b36 +0x36d5 +0x5f21 +0x56f7 +0x46b1 0x357c OP_GMSearchCorpse -0x2422 -0x084e +0x2422 +0x084e 0x67e3 OP_GuildPeace -0x0f83 +0x0f83 0x4577 OP_TrackUnknown 0x5d55 OP_Sneak 0x67fe OP_Hide -0x12e5 -0x2c7a +0x12e5 +0x2c7a 0x600d OP_SaveOnZoneReq -0x16ce +0x16ce 0x46ce OP_GMLastName 0x1ffb OP_GuildWar -0x6718 -0x2f3e +0x6718 +0x2f3e 0x7e09 OP_GuildLeader -0x5ce4 -0x5bcc -0x551d -0x6dbc +0x5ce4 +0x5bcc +0x551d +0x6dbc 0x2219 OP_SafeFallSuccess -0x2686 -0x2022 -0x1c53 -0x33a2 -0x3541 -0x582e -0x3cba -0x190c -0x5067 -0x46d2 -0x49cf -0x1b0c - +0x2686 +0x2022 +0x1c53 +0x33a2 +0x3541 +0x582e +0x3cba +0x190c +0x5067 +0x46d2 +0x49cf +0x1b0c + 0x31e6 OP_ApplyPoison 0x4211 OP_BoardBoat 0x7617 OP_LeaveBoat -0x4466 +0x4466 0x1287 OP_CastSpell 0x5467 OP_ManaChange 0x43af OP_ColoredText -0x6a0d +0x6a0d 0x217c OP_MemorizeSpell 0x260a OP_SenseHeading -0x5886 -0x7e8c -0x1a37 -0x0b6f -0x62ca -0x34a4 -0x6c83 -0x5d10 -0x21a0 -0x3537 -0x2acd -0x7c6d -0x6618 -0x6c65 - - +0x5886 +0x7e8c +0x1a37 +0x0b6f +0x62ca +0x34a4 +0x6c83 +0x5d10 +0x21a0 +0x3537 +0x2acd +0x7c6d +0x6618 +0x6c65 + + 0x32c2 OP_GroupInvite2 0x2a50 OP_CancelInvite 0x2060 OP_GroupFollow2 0x31f4 OP_Jump -0x4420 -0x1256 -0x4d38 -0x50f5 - +0x4420 +0x1256 +0x4d38 +0x50f5 + 0x79c5 OP_GMHideMe -0x2fab -0x57a5 -0x32a4 +0x2fab +0x57a5 +0x32a4 0x590d OP_ExpansionInfo 0x6f15 OP_Damage -0x42ea -0x3091 -0x6b5a -0x3234 -0x30b4 +0x42ea +0x3091 +0x6b5a +0x3234 +0x30b4 0x51fd OP_EnvDamage -0x15f4 +0x15f4 0x1808 OP_DeleteCharacter 0x1795 OP_NewZone 0x7887 OP_ReqNewZone -0x2414 -0x2eb3 -0x3db3 -0x4008 - +0x2414 +0x2eb3 +0x3db3 +0x4008 + 0x373b OP_Emote 0x7280 OP_DeleteSpawn -0x4bc2 -0x15bb +0x4bc2 +0x15bb 0x4fed OP_ShopRequest -0x0c2f +0x0c2f 0x4aa1 OP_ClickObject 0x6fca OP_GroundSpawn -0x1045 -0x2a9e -0x2523 -0x6213 +0x1045 +0x2a9e +0x2523 +0x6213 0x4a39 OP_Save -0x0797 +0x0797 0x35fa OP_ReqClientSpawn 0x5f8e OP_SendExpZonein 0x4c10 OP_GroupDisband 0x747c OP_SomeItemPacketMaybe 0x744c OP_Action 0x00d2 OP_SendCharInfo -0x0d2 -0x11d4 +0x0d2 +0x11d4 0x6bbf OP_CharacterCreate 0x6517 OP_Death -0x19f6 -0x360f -0x1951 +0x19f6 +0x360f +0x1951 0x51d3 OP_GMKill 0x26a7 OP_GMKick 0x7d8e OP_GMGoto -0x475e -0x5253 -0x3c79 -0x5065 -0x0337 -0x2ded -0x777b -0x4434 -0x0e90 -0x57da -0x150e -0x1ba8 -0x70eb +0x475e +0x5253 +0x3c79 +0x5065 +0x0337 +0x2ded +0x777b +0x4434 +0x0e90 +0x57da +0x150e +0x1ba8 +0x70eb 0x0adf OP_LootRequest 0x30f7 OP_EndLootRequest 0x5f44 OP_MoneyOnCorpse -0x3d54 -0x482d -0x58b2 -0x7361 -0x604f -0x3d87 -0x6909 -0x4f73 -0x0a0f +0x3d54 +0x482d +0x58b2 +0x7361 +0x604f +0x3d87 +0x6909 +0x4f73 +0x0a0f 0x56a2 OP_ApproveName -0x69e6 +0x69e6 0x3a8f OP_ClickDoor 0x08e8 OP_MoveDoor -0x7dd1 -0x5c66 +0x7dd1 +0x5c66 0x312a OP_Illusion -0x2807 -0x4fe2 -0x2f2e -0x5824 -0x6661 -0x4742 -0x4d02 -0x2105 -0x19e9 -0x2268 +0x2807 +0x4fe2 +0x2f2e +0x5824 +0x6661 +0x4742 +0x4d02 +0x2105 +0x19e9 +0x2268 0x7994 OP_WearChange 0x0386 OP_Bind_Wound 0x5306 OP_Forage @@ -320,210 +320,210 @@ RoF2 Built May 10 2013 23:30:08 0x7053 OP_GuildInviteAccept 0x1444 OP_GuildRemove 0x3708 OP_GuildDelete -0x7b22 -0x610f -0x324a -0x2889 -0x6f2a -0x2998 +0x7b22 +0x610f +0x324a +0x2889 +0x6f2a +0x2998 0x700c OP_RemoveAllDoors 0x1966 OP_GMTraining 0x4d6b OP_GMEndTraining -0x6e8d -0x2b41 +0x6e8d +0x2b41 0x4dc9 OP_LootItem 0x7177 OP_Animation -0x650e +0x650e 0x2d18 OP_ZoneChange -0x707b -0x0803 -0x3fc3 +0x707b +0x0803 +0x3fc3 0x7326 OP_GuildStatus -0x0804 -0x3f86 -0x6d20 -0x04a3 -0x4714 +0x0804 +0x3f86 +0x6d20 +0x04a3 +0x4714 0x6703 OP_Begging 0x0ae7 OP_ControlBoat -0x27d7 +0x27d7 0x3c21 OP_RezzRequest -0x6f22 +0x6f22 0x32ee OP_MoveItem 0x0bcf OP_MoveCoin -0x2452 -0x0186 -0x0522 +0x2452 +0x0186 +0x0522 0x3a54 OP_Split 0x659c OP_Buff -0x225b - +0x225b + 0x12cc OP_World_Client_CRC1 0x661e OP_Weather 0x742b OP_Consider -0x102e +0x102e 0x0f13 OP_World_Client_CRC2 -0x6944 +0x6944 0x2703 OP_Taunt 0x5602 OP_Feedback 0x68c2 OP_TradeMoneyUpdate -0x07f7 -0x3fe7 -0x43a0 -0x314c +0x07f7 +0x3fe7 +0x43a0 +0x314c 0x4b70 OP_Consume 0x2a79 OP_Stamina -0x402e -0x750e -0x0927 +0x402e +0x750e +0x0927 0x36a4 OP_Stun -0x2b03 +0x2b03 0x68d3 OP_DuelResponse2 0x6a46 OP_DuelResponse 0x5237 OP_ZoneSpawns 0x3eba OP_CombatAbility 0x109d OP_AutoAttack 0x075d OP_TargetMouse -0x05d2 +0x05d2 0x2a85 OP_GMTrainSkill 0x43a3 OP_ConfirmDelete -0x6c57 -0x3906 +0x6c57 +0x3906 0x55c4 OP_LootComplete 0x3196 OP_ShopEndConfirm 0x18ad OP_DeleteItem 0x01b8 OP_DeleteCharge -0x01d7 -0x4d28 -0x4fd9 -0x02c6 -0x3e30 +0x01d7 +0x4d28 +0x4fd9 +0x02c6 +0x3e30 0x3fcf OP_RequestClientZoneChange -0x4e0e -0x1dee +0x4e0e +0x1dee 0x62ac OP_GMZoneRequest 0x4ac6 OP_Logout 0x3526 OP_AutoAttack2 0x7ceb OP_LogServer 0x0423 OP_Surname 0x3956 OP_FriendsWho -0x45dc -0x35e0 -0x173e -0x4853 -0x393b +0x45dc +0x35e0 +0x173e +0x4853 +0x393b 0x0efa OP_SwapSpell -0x3588 -0x26e9 +0x3588 +0x26e9 0x4e56 OP_YellForHelp -0x2551 -0x38c8 +0x2551 +0x38c8 0x7499 OP_ApproveWorld -0x603a +0x603a 0x7b10 OP_RandomReq -0x208f +0x208f 0x607e OP_GMDelCorpse 0x1821 OP_Sacrifice -0x30d6 +0x30d6 0x760d OP_RezzComplete -0x4dd5 -0x0fe8 -0x6e5c -0x2228 -0x21bc -0x78c3 -0x3e57 -0x69d0 -0x1e3a +0x4dd5 +0x0fe8 +0x6e5c +0x2228 +0x21bc +0x78c3 +0x3e57 +0x69d0 +0x1e3a 0x1a30 OP_Sound -0x61a0 +0x61a0 0x048c OP_InterruptCast -0x6e80 -0x3d29 +0x6e80 +0x3d29 0x5d92 OP_Charm 0x0159 OP_PetCommands -0x486e -0x579e -0x49b3 +0x486e +0x579e +0x49b3 0x6db5 OP_GMApproval -0x4759 +0x4759 0x0c22 OP_MOTD 0x2097 OP_GMToggle -0x72f7 +0x72f7 0x640c OP_MoneyUpdate -0x51e5 -0x1802 -0x5de1 -0x2e0c +0x51e5 +0x1802 +0x5de1 +0x2e0c 0x58e2 OP_TargetCommand 0x444d OP_SetServerFilter 0x4478 OP_Assist -0x2a21 -0x7e59 +0x2a21 +0x7e59 0x0b0b OP_SetGuildMOTD 0x3e13 OP_GuildMOTD 0x7a11 OP_ClearObject 0x6580 OP_Translocate 0x28ec OP_Camp 0x61b3 OP_BecomeTrader -0x31af +0x31af 0x0876 OP_TGB -0x4ee1 -0x7e92 +0x4ee1 +0x7e92 0x7d14 OP_AAExpUpdate - + 0x5578 OP_FaceChange -0x1a80 -0x42ff -0x7c2d +0x1a80 +0x42ff +0x7c2d 0x2c57 OP_MobRename -0x6dab -0x4568 -0x7776 -0x5029 -0x696c +0x6dab +0x4568 +0x7776 +0x5029 +0x696c 0x23b9 OP_Dye 0x5204 OP_ConsiderCorpse 0x213f OP_SimpleMessage 0x1024 OP_FormattedMessage -0x2ce5 -0x5cc9 -0x3358 +0x2ce5 +0x5cc9 +0x3358 0x52e5 OP_DeleteSpell 0x48c1 OP_Shielding -0x6f14 +0x6f14 0x1414 OP_Report -0x0e1c -0x1219 +0x0e1c +0x1219 0x6857 OP_KeyRing 0x55ac OP_RaidInvite 0x3973 OP_RaidUpdate -0x56fe -0x7f2d +0x56fe +0x7f2d 0x31df OP_TraderShop 0x4ef5 OP_Trader -0x735d -0x019b -0x5930 -0x2d73 +0x735d +0x019b +0x5930 +0x2d73 0x39d6 OP_BazaarSearch -0x6a96 +0x6a96 0x424e OP_AAAction 0x7a27 OP_RespondAA -0x5eca -0x70c6 -0x0dd4 -0x4598 -0x19b6 -0x728a -0x5232 -0x77bd - +0x5eca +0x70c6 +0x0dd4 +0x4598 +0x19b6 +0x728a +0x5232 +0x77bd + 0x70c0 OP_ItemLinkResponse -0x633c -0x63eb -0x4765 -0x6290 +0x633c +0x63eb +0x4765 +0x6290 0x1db6 OP_RecipesSearch 0x6e02 OP_RecipeReply 0x40d7 OP_RecipeDetails @@ -546,248 +546,248 @@ RoF2 Built May 10 2013 23:30:08 0x0272 OP_TargetHoTT 0x2003 OP_ClearNPCMarks 0x20d3 OP_ClearRaidNPCMarks -0x1c89 -0x4ee2 +0x1c89 +0x4ee2 0x2797 OP_LeadershipExpUpdate 0x6da5 OP_ClearLeadershipAbilities -0x0ca6 -0x7717 -0x509d -0x6bee -0x0b04 +0x0ca6 +0x7717 +0x509d +0x6bee +0x0b04 0x6097 OP_NewSpawn -0x758c -0x2b10 -0x4d09 +0x758c +0x2b10 +0x4d09 0x0083 OP_SpecialMesg 0x3714 OP_TaskDescription 0x08d3 OP_TaskActivity 0x39f0 OP_CancelTask -0x5f7a +0x5f7a 0x006a OP_ItemScriptAdjustment -0x7465 -0x31c0 -0x14ba -0x25e0 -0x62a0 -0x407a -0x7c88 -0x51b8 +0x7465 +0x31c0 +0x14ba +0x25e0 +0x62a0 +0x407a +0x7c88 +0x51b8 0x578c OP_WhoAllResponse -0x1197 -0x2dd3 -0x333a -0x2925 +0x1197 +0x2dd3 +0x333a +0x2925 0x37b1 OP_MobHealth -0x7314 +0x7314 0x2404 OP_MobManaUpdate -0x5f5e +0x5f5e 0x1c81 OP_MobEnduranceUpdate -0x4a78 -0x37a2 -0x5565 -0x2d09 -0x3141 -0x695e +0x4a78 +0x37a2 +0x5565 +0x2d09 +0x3141 +0x695e 0x0029 OP_TrackTarget -0x029 -0x1612 -0x3e69 -0x5c59 +0x029 +0x1612 +0x3e69 +0x5c59 0x7e1a OP_GMZoneRequest2 -0x24d9 +0x24d9 0x5089 OP_ZoneEntry -0x61db -0x542f -0x2006 +0x61db +0x542f +0x2006 0x52fa OP_FeignDeath 0x39e8 OP_PickPocket -0x7c2e -0x2cdd -0x5e3a -0x4214 +0x7c2e +0x2cdd +0x5e3a +0x4214 0x2828 OP_HPUpdate -0x14b8 +0x14b8 0x3791 OP_ManaUpdate -0x0698 +0x0698 0x5f42 OP_EnduranceUpdate -0x7eb5 +0x7eb5 0x73f4 OP_Bug 0x69a4 OP_SendZonepoints 0x57bc OP_InspectRequest 0x71ac OP_InspectAnswer 0x4229 OP_GroupMakeLeader -0x54f7 -0x322b -0x3264 -0x202c -0x29ae +0x54f7 +0x322b +0x3264 +0x202c +0x29ae 0x7a09 OP_SendLoginInfo -0x5206 -0x7fd2 +0x5206 +0x7fd2 0x6259 OP_PostEnterWorld -0x0f70 -0x00d1 -0x0d1 -0x1eac -0x1b54 -0x5e23 -0x7910 -0x152e -0x7555 -0x05ce +0x0f70 +0x00d1 +0x0d1 +0x1eac +0x1b54 +0x5e23 +0x7910 +0x152e +0x7555 +0x05ce 0x1649 OP_GroupFollow 0x6110 OP_GroupInvite -0x0641 +0x0641 0x578f OP_EnterWorld -0x6cb8 -0x6ef5 +0x6cb8 +0x6ef5 0x4c44 OP_ZoneServerInfo 0x4cb4 OP_ZoneUnavail -0x74fb -0xbe6b -0x5ac7 -0x6281 +0x74fb +0xbe6b +0x5ac7 +0x6281 0x1bc5 OP_SetChatServer -0x48c8 -0x677b -0x6820 -0x2623 +0x48c8 +0x677b +0x6820 +0x2623 0x69b9 OP_GuildMemberUpdate -0x2dcb -0x5e04 -0x1d3c +0x2dcb +0x5e04 +0x1d3c 0x6060 OP_LFGCommand 0x0340 OP_LFGGetMatchesRequest 0x49a9 OP_LFPCommand 0x4d7d OP_LFPGetMatchesRequest 0x5048 OP_LFGGetMatchesResponse 0x22c6 OP_LFPGetMatchesResponse -0x499e +0x499e 0x2d4e OP_GuildDemote -0x2009 -0x3b26 -0x69d4 -0x40b1 -0x587d -0x3747 -0x7a66 -0x2f03 -0x01ed +0x2009 +0x3b26 +0x69d4 +0x40b1 +0x587d +0x3747 +0x7a66 +0x2f03 +0x01ed 0x36e0 OP_GetGuildMOTD 0x4f1f OP_GetGuildMOTDReply -0x6087 -0x5f92 -0x439a -0x4334 -0x13c2 +0x6087 +0x5f92 +0x439a +0x4334 +0x13c2 0x7cb8 OP_TestBuff 0x17e5 OP_Track -0x5265 -0x1440 -0x7a4b -0x0648 -0x2529 +0x5265 +0x1440 +0x7a4b +0x0648 +0x2529 0x486f OP_GMSummon 0x458e OP_GMEmoteWorld -0x2549 +0x2549 0x1cfd OP_GMEmoteZone 0x5ca6 OP_CharInventory -0x2710 +0x2710 0x7291 OP_SpawnDoor -0x7afc -0x1f65 -0x3ddd -0x85fc +0x7afc +0x1f65 +0x3ddd +0x85fc 0x72df OP_ReadBook 0x3af1 OP_RequestDuel -0x52f7 +0x52f7 0x77b5 OP_TradeRequest -0x70f2 -0x207d +0x70f2 +0x207d 0x384a OP_ConsentResponse 0x5505 OP_TradeBusy 0x0c1e OP_ClickObjectAction -0x51eb -0x466b -0x41a3 -0x0682 -0x1242 +0x51eb +0x466b +0x41a3 +0x0682 +0x1242 0x261d OP_LoadSpellSet -0x32a6 +0x32a6 0x2c6c OP_AdventureRequest -0x39e5 +0x39e5 0x5648 OP_AdventureDetails 0x5327 OP_LDoNButton -0x4524 +0x4524 0x5954 OP_RandomNameGenerator -0x327d -0x2945 -0x33d7 -0x2651 -0x3b86 -0x0c6c -0x24d4 -0x4441 -0x4e42 -0x50d8 -0x1afb -0x6bd4 +0x327d +0x2945 +0x33d7 +0x2651 +0x3b86 +0x0c6c +0x24d4 +0x4441 +0x4e42 +0x50d8 +0x1afb +0x6bd4 0x3cb0 OP_AdventureInfoRequest 0x4c54 OP_AdventureInfo 0x7171 OP_AdventureData -0x35e8 -0x7d49 -0x1848 -0x2599 -0x0dab -0x6493 -0x34f2 -0x7d40 -0x0e00 -0x1cf3 -0x71f4 +0x35e8 +0x7d49 +0x1848 +0x2599 +0x0dab +0x6493 +0x34f2 +0x7d40 +0x0e00 +0x1cf3 +0x71f4 0x5d18 OP_LeaveAdventure -0x4e25 -0x50c2 +0x4e25 +0x50c2 0x400f OP_AdventureFinish -0x6368 -0x6192 -0x3aa4 +0x6368 +0x6192 +0x3aa4 0x502e OP_Marquee 0x1b01 OP_AdventureUpdate -0x0f24 -0x1015 -0x23a6 -0x5a74 -0x037a +0x0f24 +0x1015 +0x23a6 +0x5a74 +0x037a 0x7a45 OP_ConsentDeny -0x71bc +0x71bc 0x2382 OP_DenyResponse -0x02a0 +0x02a0 0x1126 OP_VetClaimRequest -0x0668 +0x0668 0x16d4 OP_VetClaimReply 0x5cea OP_FindPersonRequest -0x0cc3 +0x0cc3 0x7e58 OP_FindPersonReply 0x9be3 OP_PickLock -0x0438 +0x0438 0x3d5c OP_LDoNOpen -0x15e7 +0x15e7 0x368e OP_ItemPacket -0x7331 -0x4936 -0x2c4e +0x7331 +0x4936 +0x2c4e 0x78bf OP_DisarmTraps 0x02af OP_SenseTraps 0x65c3 OP_AdventurePointsUpdate -0x0dcb +0x0dcb 0x661b OP_AugmentItem -0x5f68 -0x5278 -0x6b53 -0x5dd1 +0x5f68 +0x5278 +0x6b53 +0x5dd1 0x559a OP_WeaponEquip2 0x2d25 OP_WeaponUnequip2 0x23c1 OP_WorldClientReady @@ -795,7 +795,7 @@ RoF2 Built May 10 2013 23:30:08 0x7093 OP_AdventureLeaderboardRequest 0x2370 OP_AdventureStatsReply 0x7f79 OP_AdventureLeaderboardReply -0x4eb3 +0x4eb3 0x3377 OP_BuffCreate 0x5882 OP_PetBuffWindow 0x4f4b OP_TargetBuffs @@ -806,31 +806,31 @@ RoF2 Built May 10 2013 23:30:08 0x4254 OP_TributeInfo 0x79fc OP_SelectTribute 0x073d OP_TributeTimer -0x08bf -0x7697 -0x4b65 -0x51ae -0x51a9 +0x08bf +0x7697 +0x4b65 +0x51ae +0x51a9 0x7666 OP_OpenTributeMaster -0x4290 +0x4290 0x759e OP_DisciplineUpdate -0x01c6 +0x01c6 0x6989 OP_DisciplineTimer 0x58fb OP_TributeMoney -0x7422 -0x0d25 -0x4de1 -0x46d0 -0x4f50 -0x2ddc -0x7441 -0x6a12 -0x29a8 -0x3f7f -0x150b -0x11e3 -0x1ad3 - +0x7422 +0x0d25 +0x4de1 +0x46d0 +0x4f50 +0x2ddc +0x7441 +0x6a12 +0x29a8 +0x3f7f +0x150b +0x11e3 +0x1ad3 + 0x59ca OP_DzAddPlayer 0x4701 OP_DzRemovePlayer 0x1abc OP_DzSwapPlayer @@ -838,96 +838,96 @@ RoF2 Built May 10 2013 23:30:08 0x543d OP_DzPlayerList 0x14c6 OP_DzJoinExpeditionConfirm 0x7f4b OP_DzJoinExpeditionReply -0x1950 -0x64b5 +0x1950 +0x64b5 0x0398 OP_DzListTimers -0x7b68 +0x7b68 0x4f7e OP_DzExpeditionInfo 0x9119 OP_DzExpeditionList 0x205f OP_DzQuit 0xb2e3 OP_DzMemberStatus 0x32f0 OP_DzLeaderStatus 0x3de9 OP_DzMemberList -0x5ae4 +0x5ae4 0x4d6e OP_OnLevelMessage -0x4fd0 -0x575b +0x4fd0 +0x575b 0x7e94 OP_DzExpeditionEndsWarning -0x5189 -0x383c +0x5189 +0x383c 0x791e OP_BankerChange -0x5c74 +0x5c74 0x71b1 OP_RecipesFavorite -0x20ab -0x025f -0x214a +0x20ab +0x025f +0x214a 0x08a6 OP_PopupResponse 0x15a9 OP_ItemRecastDelay 0x3707 OP_PVPLeaderBoardDetailsRequest 0x04aa OP_PVPLeaderBoardRequest 0x25b7 OP_PVPLeaderBoardDetailsReply 0x071f OP_PVPLeaderBoardReply -0x2dee -0x4e62 -0x0c91 -0x18d3 +0x2dee +0x4e62 +0x0c91 +0x18d3 0x6f4b OP_Weblink 0x4b15 OP_PVPStats -0x6755 -0x5c32 +0x6755 +0x5c32 0x5770 OP_PlayMP3 -0x7425 -0x5eed -0x574e -0x11b4 -0x4ed6 -0x0d9f -0x7d23 +0x7425 +0x5eed +0x574e +0x11b4 +0x4ed6 +0x0d9f +0x7d23 0x3fb0 OP_ClearSurname -0xc693 +0xc693 0x7b1e OP_RemoveNimbusEffect -0x20ae -0x0727 -0x3771 -0x7fe0 -0x4d5e +0x20ae +0x0727 +0x3771 +0x7fe0 +0x4d5e 0x1877 OP_SendGuildTributes -0x649f -0x5f3f -0x5bcb -0x43d2 -0x49ea +0x649f +0x5f3f +0x5bcb +0x43d2 +0x49ea 0x378d OP_OpenGuildTributeMaster -0x7f8e -0x02bc -0x7dd2 -0x7c1d -0x7a41 -0x7db5 +0x7f8e +0x02bc +0x7dd2 +0x7c1d +0x7a41 +0x7db5 0x7eec OP_SetChatServer2 0x0904 OP_CorpseDrag 0x7037 OP_CorpseDrop 0x5e19 OP_TaskActivityComplete -0x4e32 +0x4e32 0x241d OP_TributeToggle -0x756a -0x7745 -0x039d +0x756a +0x7745 +0x039d 0x0f50 OP_ClearAA 0x66b5 OP_SendAATable 0x0afb OP_AugmentInfo -0x10f6 -0x1013 - +0x10f6 +0x1013 + 0x6344 OP_RequestTitles 0x2d08 OP_SendTitleList -0x3719 -0x7a48 +0x3719 +0x7a48 0x0a23 OP_AcceptNewTask -0x705b +0x705b 0x3bc9 OP_LevelAppearance -0x60ef -0x1619 +0x60ef +0x1619 0x17fd OP_VoiceMacroIn 0x409a OP_VoiceMacroOut 0x4493 OP_WorldComplete @@ -936,437 +936,437 @@ RoF2 Built May 10 2013 23:30:08 0x127f OP_CameraEffect 0x0d32 OP_NewTitlesAvailable 0x34a7 OP_WeaponEquip1 -0x34cd +0x34cd 0x5936 OP_SpellEffect 0x241e OP_AutoFire 0x66f0 OP_UpdateAA 0x100e OP_CustomTitles -0x6b65 -0x12f5 +0x6b65 +0x12f5 0x7677 OP_Bandolier -0x688f -0x7adf -0x0ed4 +0x688f +0x7adf +0x0ed4 0x243a OP_Barter -0x1a6a -0x5623 +0x1a6a +0x5623 0x43c8 OP_SendAAStats -0x655e +0x655e 0x1a3e OP_PotionBelt 0x6326 OP_SetStartCity -0x7485 -0x5416 -0x3282 -0x3752 -0x425b -0x27c8 -0x2b19 -0x70ce -0x3165 -0x786b -0x0f26 -0x3500 -0x3d04 +0x7485 +0x5416 +0x3282 +0x3752 +0x425b +0x27c8 +0x2b19 +0x70ce +0x3165 +0x786b +0x0f26 +0x3500 +0x3d04 0x5134 OP_GuildBank -0x0521 -0x7850 -0x108b -0x5671 -0x6d2b -0x732f +0x0521 +0x7850 +0x108b +0x5671 +0x6d2b +0x732f 0x748f OP_GuildManageBanker -0x6858 -0x5e74 -0x3f35 -0x35e9 -0x2056 +0x6858 +0x5e74 +0x3f35 +0x35e9 +0x2056 0x6922 OP_AdventureMerchantRequest 0x5b72 OP_AdventureMerchantPurchase 0x2f9b OP_AdventureMerchantSell 0x3e47 OP_AdventureMerchantResponse 0x0b7d OP_DzChooseZone -0x2818 -0x35bd -0x51df -0x1ff7 -0x3926 -0x6265 -0x4ab0 -0x5e6c -0x1350 -0x6288 -0x7348 +0x2818 +0x35bd +0x51df +0x1ff7 +0x3926 +0x6265 +0x4ab0 +0x5e6c +0x1350 +0x6288 +0x7348 0x48a2 OP_OpenNewTasksWindow -0x3010 -0x45db +0x3010 +0x45db 0x36e8 OP_AvaliableTask -0x4865 -0x322e -0x7582 +0x4865 +0x322e +0x7582 0x5727 OP_TaskMemberList -0x6646 -0x37f2 -0x3444 -0x5ffc -0x5cb5 -0x0119 -0x35b5 -0x6cc6 -0x4926 -0x1b1d -0x7299 -0x0bf1 -0x08b4 -0x7f7a -0x3dab -0x1e7d -0x610a -0x04c8 -0x4811 -0x609e -0x65f0 +0x6646 +0x37f2 +0x3444 +0x5ffc +0x5cb5 +0x0119 +0x35b5 +0x6cc6 +0x4926 +0x1b1d +0x7299 +0x0bf1 +0x08b4 +0x7f7a +0x3dab +0x1e7d +0x610a +0x04c8 +0x4811 +0x609e +0x65f0 0x467f OP_CrystalCountUpdate 0x7aee OP_CrystalCreate 0x2439 OP_CrystalReclaim -0x39c1 -0x555e -0x7c9c -0x2c94 -0x2fc2 -0x2067 -0x059e -0x7f74 -0x68b2 -0x6f2b -0x01d6 -0x5182 -0x1da2 -0x5147 -0x51f8 -0x11f3 -0x0d07 -0x272f -0x413f -0x5968 +0x39c1 +0x555e +0x7c9c +0x2c94 +0x2fc2 +0x2067 +0x059e +0x7f74 +0x68b2 +0x6f2b +0x01d6 +0x5182 +0x1da2 +0x5147 +0x51f8 +0x11f3 +0x0d07 +0x272f +0x413f +0x5968 0x3e0e OP_DzCompass -0x282a +0x282a 0x035f OP_GMNameChange -0x4013 -0x0e2f -0x099e +0x4013 +0x0e2f +0x099e 0x4eba OP_CompletedTasks 0x5f1c OP_TaskHistoryRequest 0x3d05 OP_TaskHistoryReply -0x2b8e -0x66d6 -0x0143 -0x6a5d -0x6e61 -0x2b0f +0x2b8e +0x66d6 +0x0143 +0x6a5d +0x6e61 +0x2b0f 0x46c6 OP_FloatListThing -0x3a8d -0x15e5 -0x7d89 -0x4085 -0x1507 -0x5d93 +0x3a8d +0x15e5 +0x7d89 +0x4085 +0x1507 +0x5d93 0x1669 OP_ResetAA -0x4664 -0x312d -0x2215 +0x4664 +0x312d +0x2215 0x1745 OP_Rewind -0x0cf1 -0x6567 -0x4405 -0x72d8 -0xaaba +0x0cf1 +0x6567 +0x4405 +0x72d8 +0xaaba 0x27f8 OP_AssistGroup -0x7cfb -0x1a32 -0x14fd -0x77bb -0x36d1 -0x6193 -0x184c -0x3c47 -0x4e0b -0x7c15 +0x7cfb +0x1a32 +0x14fd +0x77bb +0x36d1 +0x6193 +0x184c +0x3c47 +0x4e0b +0x7c15 0x2ec3 OP_ShroudSelectionWindow 0x2b37 OP_ShroudRequestStats 0x6c04 OP_ShroudRespondStats 0x1cd0 OP_ShroudSelect 0x79da OP_ShroudSelectCancel -0x7806 +0x7806 0x541d OP_ShroudProgress 0x3823 OP_ShroudProgress2 0x6562 OP_Shroud -0x4b25 -0x2507 -0x3acc -0x006e -0x06e -0x0728 -0x66cd -0x3c54 -0x2e8d -0x4eea -0x5a67 -0x3d20 -0x649c -0x21a6 +0x4b25 +0x2507 +0x3acc +0x006e +0x06e +0x0728 +0x66cd +0x3c54 +0x2e8d +0x4eea +0x5a67 +0x3d20 +0x649c +0x21a6 0x28bc OP_RespawnWindow 0x0ecb OP_ZonePlayerToBind -0x08d8 -0x7b71 -0x1115 -0x18cb -0x34f4 -0x5f08 -0x5bd2 -0x5052 -0x5e69 -0x2ccc -0x655c +0x08d8 +0x7b71 +0x1115 +0x18cb +0x34f4 +0x5f08 +0x5bd2 +0x5052 +0x5e69 +0x2ccc +0x655c 0x6773 OP_CharacterCreateRequest 0x590e OP_VetRewardsAvaliable -0x6b0b -0x555a -0x7786 +0x6b0b +0x555a +0x7786 0x67e8 OP_ShroudRemove -0x6381 -0x5628 -0xb52f -0x6084 +0x6381 +0x5628 +0xb52f +0x6084 0x2958 OP_GuildUpdateURLAndChannel 0x2301 OP_WorldUnknown001 -0x610b -0x6f8b +0x610b +0x6f8b 0x4d25 OP_InspectMessageUpdate 0x3033 OP_BlockedBuffs 0x0de7 OP_RemoveBlockedBuffs -0x30e5 -0x618c -0x58e6 +0x30e5 +0x618c +0x58e6 0x1456 OP_ShroudUnknown1 0x053c OP_Untargetable -0x71da -0x333f -0x49bc +0x71da +0x333f +0x49bc 0x64f2 OP_BuffRemoveRequest -0x6b3d +0x6b3d 0x34cb OP_ClearBlockedBuffs -0x5646 -0x7d13 -0x15e0 -0x5710 -0x172b -0x1888 -0x2956 -0x6a68 -0x7631 -0x298e -0x003c -0x03c -0x0b0f -0x5a72 -0x0767 -0x2f1a -0x6c7a -0x1660 -0x344f -0x028b -0x6eea -0x7707 -0x3fb2 -0x289e +0x5646 +0x7d13 +0x15e0 +0x5710 +0x172b +0x1888 +0x2956 +0x6a68 +0x7631 +0x298e +0x003c +0x03c +0x0b0f +0x5a72 +0x0767 +0x2f1a +0x6c7a +0x1660 +0x344f +0x028b +0x6eea +0x7707 +0x3fb2 +0x289e 0x3342 OP_GroupMentor 0x5892 OP_NPCMoveUpdate 0x189c OP_ItemVerifyRequest 0x097b OP_ItemVerifyReply -0x2115 -0x6411 -0x6471 -0x134a -0x1304 +0x2115 +0x6411 +0x6471 +0x134a +0x1304 0x5a79 OP_ShieldGroup -0x2dde -0x7d50 -0x1d47 -0x10ec +0x2dde +0x7d50 +0x1d47 +0x10ec 0x000f OP_RestState -0x00f -0x0f +0x00f +0x0f 0x465b OP_ItemViewUnknown -0x2289 -0x023b -0x4223 -0x7261 -0x2af9 -0x19aa -0x66dd +0x2289 +0x023b +0x4223 +0x7261 +0x2af9 +0x19aa +0x66dd 0x4b64 OP_GMTrainSkillConfirm -0x319e -0x1af3 -0x449c -0x8582 +0x319e +0x1af3 +0x449c +0x8582 0x4b8d #OP_LoginUnknown1 0x298d #OP_LoginUnknown2 -0x06c8 -0x4f93 -0x412d -0x001f -0x01f -0x60f6 -0x1a9e -0x798e -0x17b7 -0x3042 -0x61bd -0x1f6e -0x65a6 -0x740d -0x48da -0x20d9 -0x5258 -0x1b5d -0x49f4 -0x7aa9 -0xb350 -0x6e2a -0x5d4e -0x6e4d -0x4ffc -0x1d15 -0x6f23 -0x2296 -0x765b -0x2e01 -0x26dd -0x72d3 -0x6981 -0x3b30 -0x14ac -0x0d92 -0x0001 -0x001 -0x01 -0x09bb -0x9e18 -0x0d9d -0x7f2b -0x3651 -0x645d -0x3af2 -0x4377 -0x39c9 -0x4924 -0x1e50 -0x4683 -0x0276 -0x6dec -0x56c9 -0x3ee6 -0x7121 -0x62ab -0x5d88 -0x05f0 +0x06c8 +0x4f93 +0x412d +0x001f +0x01f +0x60f6 +0x1a9e +0x798e +0x17b7 +0x3042 +0x61bd +0x1f6e +0x65a6 +0x740d +0x48da +0x20d9 +0x5258 +0x1b5d +0x49f4 +0x7aa9 +0xb350 +0x6e2a +0x5d4e +0x6e4d +0x4ffc +0x1d15 +0x6f23 +0x2296 +0x765b +0x2e01 +0x26dd +0x72d3 +0x6981 +0x3b30 +0x14ac +0x0d92 +0x0001 +0x001 +0x01 +0x09bb +0x9e18 +0x0d9d +0x7f2b +0x3651 +0x645d +0x3af2 +0x4377 +0x39c9 +0x4924 +0x1e50 +0x4683 +0x0276 +0x6dec +0x56c9 +0x3ee6 +0x7121 +0x62ab +0x5d88 +0x05f0 0x6b6d OP_AltCurrency -0x61cb -0x0165 +0x61cb +0x0165 0x74ec OP_MercenaryAssign 0x5409 OP_AltCurrencyMerchantRequest 0x3788 OP_AltCurrencyPurchase 0x40b6 OP_AltCurrencySell 0x27a2 OP_AltCurrencyMerchantReply 0x532a OP_AltCurrencySellSelection -0x3899 -0x7567 -0x4820 +0x3899 +0x7567 +0x4820 0x0339 OP_AltCurrencyReclaim -0x0c12 -0x074d -0x47ba -0x55c8 -0x4c89 -0x18b7 -0x2950 -0x44cb -0x4477 -0x6146 -0x40cf -0x2405 -0x49e2 -0x2aff -0x0bfa -0x26c0 -0x7d39 -0x259f -0x086b -0x6dc1 -0x6f80 -0x042e -0x2ad4 -0x317b -0x73ac -0x18d7 -0x5b8b -0x5c83 -0x1f51 -0x62f7 -0x1c46 -0x2a44 -0x3e7a -0x4374 -0x3b23 -0x1df4 -0x3ed8 -0x4b50 -0x36eb -0x65c7 -0x5620 -0x587e -0x3897 -0x7e62 -0x67ae -0x74f4 +0x0c12 +0x074d +0x47ba +0x55c8 +0x4c89 +0x18b7 +0x2950 +0x44cb +0x4477 +0x6146 +0x40cf +0x2405 +0x49e2 +0x2aff +0x0bfa +0x26c0 +0x7d39 +0x259f +0x086b +0x6dc1 +0x6f80 +0x042e +0x2ad4 +0x317b +0x73ac +0x18d7 +0x5b8b +0x5c83 +0x1f51 +0x62f7 +0x1c46 +0x2a44 +0x3e7a +0x4374 +0x3b23 +0x1df4 +0x3ed8 +0x4b50 +0x36eb +0x65c7 +0x5620 +0x587e +0x3897 +0x7e62 +0x67ae +0x74f4 0x4613 OP_SendFindableNPCs -0x2a92 -0x6d6e -0x2c01 -0x1243 -0x133e -0x67fc - +0x2a92 +0x6d6e +0x2c01 +0x1243 +0x133e +0x67fc + 0x49e1 OP_HideCorpse -0x0e44 -0x239a -0x1a0a -0x398f -0x1ff4 -0x88a1 +0x0e44 +0x239a +0x1a0a +0x398f +0x1ff4 +0x88a1 0x74da OP_GroupDisbandOther 0x21b4 OP_GroupLeaderChange -0x62b7 -0x4ced +0x62b7 +0x4ced 0x3abb OP_GroupUpdate 0x0f6c OP_GroupDelete -0x0cbc +0x0cbc 0x6194 OP_GroupUpdateB -0x7fe6 -0x04d0 +0x7fe6 +0x04d0 0x7323 OP_GroupAcknowledge 0x1ae5 OP_GroupDisbandYou -0x4d9f +0x4d9f 0x70e2 OP_GroupRoles -0x6875 -0x6298 +0x6875 +0x6298 0x02cf OP_GroupLeadershipAAUpdate 0x22b8 OP_MercenarySuspend2 -0x7bff -0x5512 -0x2b57 -0x1380 -0x2bcb +0x7bff +0x5512 +0x2b57 +0x1380 +0x2bcb 0x7b89 OP_MercenaryDataUpdateRequest 0x61a4 OP_MercenaryDataUpdate 0x11c1 OP_MercenaryDataRequest @@ -1375,297 +1375,297 @@ RoF2 Built May 10 2013 23:30:08 0x6e83 OP_MercenaryDismiss 0x31e4 OP_MercenaryTimerRequest 0x0763 OP_MercenaryTimer -0x78f6 -0x1b37 +0x78f6 +0x1b37 0x27f2 OP_MercenaryCommand -0x5df8 -0x4333 -0x69ca -0x6e9f +0x5df8 +0x4333 +0x69ca +0x6e9f 0x4407 OP_MercenarySuspendRequest 0x6f03 OP_MercenarySuspendResponse 0x27a0 OP_MercenaryUnsuspendResponse -0x5f88 -0x2749 -0x038f -0x0e52 -0x20b9 +0x5f88 +0x2749 +0x038f +0x0e52 +0x20b9 0x5d26 OP_MercenaryUnknown1 -0x69e7 -0x66b9 -0x0b72 -0x7e6f -0x29ec -0x6248 -0x702b -0x2b4f -0x6e6d -0x1e9f -0x5bd5 -0x4b7f -0x1490 -0x075e -0x4263 -0x1eba -0x4a74 -0x0a37 -0x3289 -0x3171 -0x0114 -0x5148 -0x76c3 -0x09bf -0x356f -0x77a7 -0x479a -0x209f -0x54e6 -0x6c3e -0xee80 -0x40e5 +0x69e7 +0x66b9 +0x0b72 +0x7e6f +0x29ec +0x6248 +0x702b +0x2b4f +0x6e6d +0x1e9f +0x5bd5 +0x4b7f +0x1490 +0x075e +0x4263 +0x1eba +0x4a74 +0x0a37 +0x3289 +0x3171 +0x0114 +0x5148 +0x76c3 +0x09bf +0x356f +0x77a7 +0x479a +0x209f +0x54e6 +0x6c3e +0xee80 +0x40e5 0x76d9 OP_GuildCreate -0x1dc8 -0x794a -0x35c5 -0x137d -0x004a -0x04a -0x29b4 -0x18f1 -0x17fc +0x1dc8 +0x794a +0x35c5 +0x137d +0x004a +0x04a +0x29b4 +0x18f1 +0x17fc 0x4707 OP_ChangeSize -0x3e15 -0x7248 -0x57c6 -0x7679 -0x6c8b -0x14c3 -0x3a02 -0x7900 -0x5688 -0x3a58 -0x75dd -0x39e1 -0x47cb -0x171e -0xdab0 -0x618f -0x27b1 -0x3d0c -0x0d2a -0x8c30 -0x2b42 -0x17f8 -0x1665 -0x059d -0x72c9 -0x675d -0x28e0 -0x61df -0x3ef8 -0x4d59 -0x3763 +0x3e15 +0x7248 +0x57c6 +0x7679 +0x6c8b +0x14c3 +0x3a02 +0x7900 +0x5688 +0x3a58 +0x75dd +0x39e1 +0x47cb +0x171e +0xdab0 +0x618f +0x27b1 +0x3d0c +0x0d2a +0x8c30 +0x2b42 +0x17f8 +0x1665 +0x059d +0x72c9 +0x675d +0x28e0 +0x61df +0x3ef8 +0x4d59 +0x3763 0x672f OP_XTargetResponse 0x45be OP_XTargetRequest 0x792c OP_XTargetAutoAddHaters -0x66bf -0x66df -0x2aa7 -0x76c6 -0x6032 -0x3e00 -0x0c13 -0x0a59 -0x393a -0x45ed -0x507f -0x68ba -0x5a63 -0x6fd0 -0x63fd -0x4f09 -0x485d -0x3968 -0x69e1 -0x3d94 -0x0351 -0x5f0a -0x36be -0x59f9 -0x7075 -0x6ee6 -0x2691 -0x3c8b -0x01df -0x218c -0x233b -0x2cf7 -0x1097 -0x1baf -0x6f35 -0x1228 -0x1cef -0x7d28 -0x087f -0x1967 -0x6917 -0x613d -0x37d9 -0x58c7 -0x21ec -0x3424 -0x2036 -0x7ad1 -0x01c3 -0x626e -0x711a -0x5b41 -0x21ba -0x2933 -0x050c -0x51e3 -0x64a3 -0x3146 -0x2aa6 -0x16df -0x2698 -0x21ea -0x796c -0x7bb1 -0x6af6 -0x499a -0x3c44 -0x3cbc -0x6561 -0x12f7 -0x6292 -0x3de0 -0x1409 -0x4604 -0x0ca1 -0x754e -0x4f2b -0x6995 -0x3745 -0x789b -0xcadf -0x4abe -0x6014 -0x7fff -0x6228 -0x10e0 -0x7452 -0x6d9f -0x7f80 -0xb07f +0x66bf +0x66df +0x2aa7 +0x76c6 +0x6032 +0x3e00 +0x0c13 +0x0a59 +0x393a +0x45ed +0x507f +0x68ba +0x5a63 +0x6fd0 +0x63fd +0x4f09 +0x485d +0x3968 +0x69e1 +0x3d94 +0x0351 +0x5f0a +0x36be +0x59f9 +0x7075 +0x6ee6 +0x2691 +0x3c8b +0x01df +0x218c +0x233b +0x2cf7 +0x1097 +0x1baf +0x6f35 +0x1228 +0x1cef +0x7d28 +0x087f +0x1967 +0x6917 +0x613d +0x37d9 +0x58c7 +0x21ec +0x3424 +0x2036 +0x7ad1 +0x01c3 +0x626e +0x711a +0x5b41 +0x21ba +0x2933 +0x050c +0x51e3 +0x64a3 +0x3146 +0x2aa6 +0x16df +0x2698 +0x21ea +0x796c +0x7bb1 +0x6af6 +0x499a +0x3c44 +0x3cbc +0x6561 +0x12f7 +0x6292 +0x3de0 +0x1409 +0x4604 +0x0ca1 +0x754e +0x4f2b +0x6995 +0x3745 +0x789b +0xcadf +0x4abe +0x6014 +0x7fff +0x6228 +0x10e0 +0x7452 +0x6d9f +0x7f80 OP_ItemPreviewRequest +0xb07f 0x6b5c OP_ItemPreview -0x02b4 -0x3bd3 -0x3036 -0x5c3f -0x433d -0x78e2 -0x543f -0x58b4 -0x2563 -0x1820 -0x40be -0x62d6 -0x0d68 -0x6d10 -0x3a32 -0x2fed -0x1303 -0x49df -0x3e24 -0x2b35 -0x0910 -0x3849 -0x6873 -0x15e2 -0x2d85 -0x39bb -0x42e9 -0x6860 -0x15a8 -0x52b5 -0x3311 -0x58df -0x2a7f -0x6573 -0x7a4d -0x7497 -0x1fcc -0x7c23 -0x2d28 -0x5dab -0x005a -0x05a -0x4506 -0x046d -0x36db -0x5a40 -0x4cd9 -0x63d7 -0x48d4 -0x035d -0x11f5 -0x7b84 -0x4f05 -0x7369 -0x7b32 -0x4fe6 -0x6cd0 -0x6770 -0x5c24 -0x063a -0x0d93 -0x4c2a -0x2235 -0x7b95 -0x6a1f -0x46f0 -0x2de2 -0xadd7 -0x2cc6 -0x7db7 -0x7588 -0x4957 -0x6a98 - +0x02b4 +0x3bd3 +0x3036 +0x5c3f +0x433d +0x78e2 +0x543f +0x58b4 +0x2563 +0x1820 +0x40be +0x62d6 +0x0d68 +0x6d10 +0x3a32 +0x2fed +0x1303 +0x49df +0x3e24 +0x2b35 +0x0910 +0x3849 +0x6873 +0x15e2 +0x2d85 +0x39bb +0x42e9 +0x6860 +0x15a8 +0x52b5 +0x3311 +0x58df +0x2a7f +0x6573 +0x7a4d +0x7497 +0x1fcc +0x7c23 +0x2d28 +0x5dab +0x005a +0x05a +0x4506 +0x046d +0x36db +0x5a40 +0x4cd9 +0x63d7 +0x48d4 +0x035d +0x11f5 +0x7b84 +0x4f05 +0x7369 +0x7b32 +0x4fe6 +0x6cd0 +0x6770 +0x5c24 +0x063a +0x0d93 +0x4c2a +0x2235 +0x7b95 +0x6a1f +0x46f0 +0x2de2 +0xadd7 +0x2cc6 +0x7db7 +0x7588 +0x4957 +0x6a98 + 0x057b OP_SendMembershipDetails 0x7acc OP_SendMembership -0x431f -0x42c4 -0x05a8 +0x431f +0x42c4 +0x05a8 0x5475 OP_SendMaxCharacters -0x4ad2 -0x03d9 -0x771e -0x2a34 -0x7273 -0x1c9e -0x5f17 -0x37a9 -0x6530 -0x3157 -0x1f5e -0x2bc8 -0x593a -0x1643 -0x16bc -0x1781 -0x53d3 -0x5369 -0x25b3 -0x2fa0 -0x73a9 -0x1595 -0x6b6f -0x65f2 -0x3562 -0x309d -0x4efa -0x1da9 -0x6678 -0x16e8 \ No newline at end of file +0x4ad2 +0x03d9 +0x771e +0x2a34 +0x7273 +0x1c9e +0x5f17 +0x37a9 +0x6530 +0x3157 +0x1f5e +0x2bc8 +0x593a +0x1643 +0x16bc +0x1781 +0x53d3 +0x5369 +0x25b3 +0x2fa0 +0x73a9 +0x1595 +0x6b6f +0x65f2 +0x3562 +0x309d +0x4efa +0x1da9 +0x6678 +0x16e8 diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 92ef6a3d90..38c3e299d5 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -283,6 +283,7 @@ void MapOpcodes() ConnectedOpcodes[OP_ItemLinkResponse] = &Client::Handle_OP_ItemLinkResponse; ConnectedOpcodes[OP_ItemName] = &Client::Handle_OP_ItemName; ConnectedOpcodes[OP_ItemPreview] = &Client::Handle_OP_ItemPreview; + ConnectedOpcodes[OP_ItemPreviewRequest] = &Client::Handle_OP_ItemPreviewRequest; ConnectedOpcodes[OP_ItemVerifyRequest] = &Client::Handle_OP_ItemVerifyRequest; ConnectedOpcodes[OP_ItemViewUnknown] = &Client::Handle_OP_Ignore; ConnectedOpcodes[OP_Jump] = &Client::Handle_OP_Jump; @@ -9300,6 +9301,30 @@ void Client::Handle_OP_ItemPreview(const EQApplicationPacket *app) return; } +void Client::Handle_OP_ItemPreviewRequest(const EQApplicationPacket* app) +{ + VERIFY_PACKET_LENGTH(OP_ItemPreviewRequest, app, ItemPreview_Struct); + auto ips = (ItemPreview_Struct*) app->pBuffer; + const EQ::ItemData* item = database.GetItem(ips->itemid); + + if (item) { + EQ::ItemInstance* inst = database.CreateItem(item); + if (inst) { + std::string packet = inst->Serialize(-1); + auto outapp = new EQApplicationPacket(OP_ItemPreviewRequest, packet.length()); + memcpy(outapp->pBuffer, packet.c_str(), packet.length()); + +#if EQDEBUG >= 9 + DumpPacket(outapp); +#endif + + QueuePacket(outapp); + safe_delete(outapp); + safe_delete(inst); + } + } +} + void Client::Handle_OP_ItemVerifyRequest(const EQApplicationPacket *app) { using EQ::spells::CastingSlot; diff --git a/zone/client_packet.h b/zone/client_packet.h index 2970f91dc6..587e14ac7b 100644 --- a/zone/client_packet.h +++ b/zone/client_packet.h @@ -189,6 +189,7 @@ void Handle_OP_ItemLinkResponse(const EQApplicationPacket *app); void Handle_OP_ItemName(const EQApplicationPacket *app); void Handle_OP_ItemPreview(const EQApplicationPacket *app); + void Handle_OP_ItemPreviewRequest(const EQApplicationPacket *app); void Handle_OP_ItemVerifyRequest(const EQApplicationPacket *app); void Handle_OP_Jump(const EQApplicationPacket *app); void Handle_OP_KeyRing(const EQApplicationPacket *app); diff --git a/zone/lua_packet.cpp b/zone/lua_packet.cpp index 3e8325e4f2..61f30e4a78 100644 --- a/zone/lua_packet.cpp +++ b/zone/lua_packet.cpp @@ -896,6 +896,7 @@ luabind::scope lua_register_packet_opcodes() { luabind::value("Weblink", static_cast(OP_Weblink)), luabind::value("InspectMessageUpdate", static_cast(OP_InspectMessageUpdate)), luabind::value("ItemPreview", static_cast(OP_ItemPreview)), + luabind::value("ItemPreviewRequest", static_cast(OP_ItemPreviewRequest)), luabind::value("MercenaryDataRequest", static_cast(OP_MercenaryDataRequest)), luabind::value("MercenaryDataResponse", static_cast(OP_MercenaryDataResponse)), luabind::value("MercenaryHire", static_cast(OP_MercenaryHire)),