diff --git a/utils/EQExtractor2/EQExtractor2/ChangeLog.txt b/utils/EQExtractor2/EQExtractor2/ChangeLog.txt index be8d241dc..abdfab715 100644 --- a/utils/EQExtractor2/EQExtractor2/ChangeLog.txt +++ b/utils/EQExtractor2/EQExtractor2/ChangeLog.txt @@ -1,5 +1,8 @@ EQExtractor2 Changelog. All changes since the 1.0 release. +==04/24/2013== +Derision: Added decoder to support packet dumps from current Live client. SQL generation NOT SUPPORTED YET (need tweaks to position struct). + ==03/17/2013== Derision: Added SQL generation support to current Live client decoder. diff --git a/utils/EQExtractor2/EQExtractor2/EQApplicationLayer.cs b/utils/EQExtractor2/EQExtractor2/EQApplicationLayer.cs index b6732ca82..58537e9be 100644 --- a/utils/EQExtractor2/EQExtractor2/EQApplicationLayer.cs +++ b/utils/EQExtractor2/EQExtractor2/EQApplicationLayer.cs @@ -104,6 +104,8 @@ namespace EQApplicationLayer PatchList.Add(new PatchFebruary112013Decoder()); PatchList.Add(new PatchMarch132013Decoder()); + + PatchList.Add(new PatchApril152013Decoder()); PatchList.Add(new PatchSoD()); diff --git a/utils/EQExtractor2/EQExtractor2/EQExtractor2.csproj b/utils/EQExtractor2/EQExtractor2/EQExtractor2.csproj index 6e56a9c58..542700b6c 100644 --- a/utils/EQExtractor2/EQExtractor2/EQExtractor2.csproj +++ b/utils/EQExtractor2/EQExtractor2/EQExtractor2.csproj @@ -72,6 +72,7 @@ LogForm.cs + @@ -137,6 +138,9 @@ UserOptions.cs + + Always + Always diff --git a/utils/EQExtractor2/EQExtractor2/EQExtractor2Form1.cs b/utils/EQExtractor2/EQExtractor2/EQExtractor2Form1.cs index 7f28f792a..220c743d9 100644 --- a/utils/EQExtractor2/EQExtractor2/EQExtractor2Form1.cs +++ b/utils/EQExtractor2/EQExtractor2/EQExtractor2Form1.cs @@ -18,7 +18,7 @@ namespace EQExtractor2 { public partial class EQExtractor2Form1 : Form { - string Version = "EQExtractor2 Version 2.6.2 SVN"; + string Version = "EQExtractor2 Version 2.6.3 SVN"; static int PacketsSeen = 0; static long BytesRead = 0; diff --git a/utils/EQExtractor2/EQExtractor2/PatchApril15-2013.cs b/utils/EQExtractor2/EQExtractor2/PatchApril15-2013.cs new file mode 100644 index 000000000..7d8804577 --- /dev/null +++ b/utils/EQExtractor2/EQExtractor2/PatchApril15-2013.cs @@ -0,0 +1,23 @@ +using System; +using System.IO; +using System.Diagnostics; +using System.Collections.Generic; +using EQExtractor2.InternalTypes; +using EQExtractor2.OpCodes; +using EQPacket; +using MyUtils; + +namespace EQExtractor2.Patches +{ + class PatchApril152013Decoder : PatchMarch132013Decoder + { + public PatchApril152013Decoder() + { + Version = "EQ Client Build Date April 15 2013."; + + PatchConfFileName = "patch_April15-2013.conf"; + + SupportsSQLGeneration = false; + } + } +} \ No newline at end of file diff --git a/utils/EQExtractor2/EQExtractor2/patch_April15-2013.conf b/utils/EQExtractor2/EQExtractor2/patch_April15-2013.conf new file mode 100644 index 000000000..94d57d345 --- /dev/null +++ b/utils/EQExtractor2/EQExtractor2/patch_April15-2013.conf @@ -0,0 +1,653 @@ +# ShowEQ Import Notes: +# ZERO THE FILE first +# perl -pi -e 's/0x[0-9a-fA-F]{4}/0x0000/g' opcodes.conf +# Unknown Mapping: +# OP_Action2 -> OP_Damage +# OP_EnvDamage -> OP_Damage ---> might have been a one time mistake +# Name Differences: +# OP_CancelInvite -> OP_GroupCancelInvite +# OP_GMFind -> OP_FindPersonRequest +# OP_CommonMessage -> OP_ChannelMessage + +OP_Unknown=0x0000 +OP_ExploreUnknown=0x0000 used for unknown explorer + +# world packets +# Required to reach Char Select: +OP_SendLoginInfo=0x5f21 +OP_ApproveWorld=0x6604 +OP_LogServer=0x27a4 +OP_SendCharInfo=0x6b98 +OP_ExpansionInfo=0x0322 +OP_GuildsList=0x3d34 +OP_EnterWorld=0x70c9 +OP_PostEnterWorld=0x29f7 +OP_World_Client_CRC1=0x0786 +OP_World_Client_CRC2=0x77cd +OP_SendSpellChecksum=0x0000 +OP_SendSkillCapsChecksum=0x0000 + +# Character Select Related: +OP_SendMaxCharacters=0x5a84 +OP_SendMembership=0x3603 +OP_SendMembershipDetails=0x3222 +OP_CharacterCreateRequest=0x329a +OP_CharacterCreate=0x7f24 +OP_DeleteCharacter=0x3078 +OP_RandomNameGenerator=0x2617 +OP_ApproveName=0x657d +OP_MOTD=0x0db2 +OP_SetChatServer=0x6a13 +OP_SetChatServer2=0x48a1 +OP_ZoneServerInfo=0x4cae +OP_WorldComplete=0x1db8 +OP_WorldUnknown001=0x5810 +OP_FloatListThing=0x1ada + +# Reasons for Disconnect: +OP_ZoneUnavail=0x2a10 +OP_WorldClientReady=0x0b64 +OP_CharacterStillInZone=0x0000 +OP_WorldChecksumFailure=0x0000 +OP_WorldLoginFailed=0x0000 +OP_WorldLogout=0x0000 +OP_WorldLevelTooHigh=0x0000 +OP_CharInacessable=0x0000 +OP_UserCompInfo=0x0000 +OP_SendExeChecksum=0x0000 +OP_SendBaseDataChecksum=0x0000 + +# Zone in opcodes +OP_AckPacket=0x58f7 +OP_ZoneEntry=0x31d8 +OP_ReqNewZone=0x3cb7 +OP_NewZone=0x0bf6 +OP_ZoneSpawns=0x36f6 +OP_PlayerProfile=0x6b5b +OP_TimeOfDay=0x3377 +OP_LevelUpdate=0x3e3c +OP_Stamina=0x5813 +OP_RequestClientZoneChange=0x1b24 +OP_ZoneChange=0x5538 +OP_LockoutTimerInfo=0x0000 +OP_ZoneServerReady=0x0000 +OP_ZoneInUnknown=0x0000 +OP_LogoutReply=0x0000 +OP_PreLogoutReply=0x0000 + +# Required to fully log in +OP_SpawnAppearance=0x130f +OP_ChangeSize=0x3619 +OP_TributeUpdate=0x365d +OP_TributeTimer=0x7ea7 +OP_SendTributes=0x57f5 +OP_SendGuildTributes=0x430c +OP_TributeInfo=0x3c65 +OP_Weather=0x4ec0 +OP_ReqClientSpawn=0x16ca +OP_SpawnDoor=0x375d +OP_GroundSpawn=0x3a2b +OP_SendZonepoints=0x41b8 +OP_BlockedBuffs=0x52b5 +OP_RemoveBlockedBuffs=0x5884 +OP_ClearBlockedBuffs=0x565c +OP_WorldObjectsSent=0x37d3 +OP_SendExpZonein=0x7d57 +OP_SendAATable=0x65c4 +OP_RespondAA=0x0b69 +OP_UpdateAA=0x67e0 +OP_SendAAStats=0x702d +OP_AAExpUpdate=0x4616 +OP_ExpUpdate=0x39a0 +OP_HPUpdate=0x648b +OP_ManaChange=0x2ed8 +OP_TGB=0x6516 +OP_SpecialMesg=0x0000 +OP_GuildMemberList=0x2bad +OP_GuildMOTD=0x4e44 +OP_CharInventory=0x3deb +OP_WearChange=0x1ff6 +OP_ClientUpdate=0x6962 +OP_ClientReady=0x0c66 # 0x422d +OP_SetServerFilter=0x3b5b + +# Guild Opcodes - Disabled until crashes are resolved in RoF +OP_GetGuildMOTD=0x6ce8 # Was 0x35dc +OP_GetGuildMOTDReply=0x150b # Was 0x4586 +OP_GuildMemberUpdate=0x665a # Was 0x5643 +OP_GuildInvite=0x3834 +OP_GuildRemove=0x1eb3 +OP_GuildPeace=0x5b6e +OP_SetGuildMOTD=0x183e +OP_GuildList=0x0000 +OP_GuildWar=0x7e3d +OP_GuildLeader=0x0c63 +OP_GuildDelete=0x1e22 +OP_GuildInviteAccept=0x3462 +OP_GuildDemote=0x47ed +OP_GuildPublicNote=0x6208 +OP_GuildManageBanker=0x2010 # Was 0x0737 +OP_GuildBank=0x3d39 # Was 0x10c3 +OP_SetGuildRank=0x671c +OP_GuildUpdateURLAndChannel=0x31fc +OP_GuildStatus=0x7b81 +OP_GuildCreate=0x52c7 # or maybe 0x086e +OP_GuildMemberLevelUpdate=0x0000 # Unused? +OP_ZoneGuildList=0x0000 # Unused? +OP_GetGuildsList=0x0000 # Unused? +OP_LFGuild=0x0000 +OP_GuildManageRemove=0x0000 +OP_GuildManageAdd=0x0000 +OP_GuildManageStatus=0x0000 + +# GM/Guide Opcodes +OP_GMServers=0x4946 +OP_GMBecomeNPC=0x2b92 +OP_GMZoneRequest=0x7a65 +OP_GMZoneRequest2=0x5585 +OP_GMGoto=0x15b4 +OP_GMSearchCorpse=0x594b +OP_GMHideMe=0x0005 +OP_GMDelCorpse=0x0633 +OP_GMApproval=0x4bbf +OP_GMToggle=0x5e6f +OP_GMSummon=0x7b50 # Was 0x684f +OP_GMEmoteZone=0x735a # Was 0x0655 +OP_GMEmoteWorld=0x2114 # Was 0x1935 +OP_GMFind=0x4e59 +OP_GMKick=0x5c02 +OP_GMKill=0x2728 +OP_GMNameChange=0x7b23 # Was 0x4434 +OP_GMLastName=0x1063 # Was 0x3077 + +# Misc Opcodes +OP_InspectRequest=0x5d21 +OP_InspectAnswer=0x5569 +OP_InspectMessageUpdate=0x09cd +OP_BeginCast=0x557a +OP_BuffFadeMsg=0x6226 +OP_ConsentResponse=0x0333 +OP_MemorizeSpell=0x7bc9 +OP_SwapSpell=0x3217 +OP_CastSpell=0x3f6d +OP_Consider=0x3815 +OP_FormattedMessage=0x52c0 +OP_SimpleMessage=0x0e29 +OP_Buff=0x0dd5 +OP_Illusion=0x1182 +OP_MoneyOnCorpse=0x05e8 +OP_RandomReply=0x4b1a +OP_DenyResponse=0x3918 +OP_SkillUpdate=0x4b94 +OP_GMTrainSkillConfirm=0x0498 # 0x3960 +OP_RandomReq=0x4629 +OP_Death=0x1aa0 +OP_GMTraining=0x698c +OP_GMEndTraining=0x36dc +OP_GMTrainSkill=0x580c +OP_Animation=0x172f +OP_Begging=0x39a6 +OP_Consent=0x2c4e +OP_ConsentDeny=0x69bb +OP_AutoFire=0x086e +OP_PetCommands=0x17bc +OP_DeleteSpell=0x709b +OP_Surname=0x0329 +OP_ClearSurname=0x6182 +OP_FaceChange=0x6b0e +OP_SenseHeading=0x12cf +OP_Action=0x7329 +OP_ConsiderCorpse=0x28ed +OP_HideCorpse=0x0179 +OP_CorpseDrag=0x47d9 +OP_CorpseDrop=0x0df7 +OP_Bug=0x51a4 +OP_Feedback=0x2061 +OP_Report=0x4c00 +OP_Damage=0x4725 +OP_ChannelMessage=0x0dc9 +OP_Assist=0x68d3 +OP_AssistGroup=0x6c10 +OP_MoveCoin=0x37b3 +OP_ZonePlayerToBind=0x36ad +OP_KeyRing=0x7ac2 +OP_WhoAllRequest=0x7cf3 +OP_WhoAllResponse=0x14cc +OP_FriendsWho=0x7ee9 +OP_ConfirmDelete=0x13c1 +OP_Logout=0x226f +OP_Rewind=0x7562 +OP_TargetCommand=0x3bd6 +OP_Hide=0x4517 +OP_Jump=0x1dbf +OP_Camp=0x6aa7 +OP_Emote=0x6195 +OP_SetRunMode=0x068d +OP_BankerChange=0x4d5b +OP_TargetMouse=0x3f43 +OP_MobHealth=0x52dc +OP_InitialMobHealth=0x0000 # Unused? +OP_TargetHoTT=0x2baa +OP_XTargetResponse=0x0be2 +OP_XTargetRequest=0x024c +OP_XTargetAutoAddHaters=0x3729 +OP_TargetBuffs=0x241c +OP_BuffCreate=0x6878 +OP_BuffRemoveRequest=0x78ab +OP_DeleteSpawn=0x5279 +OP_AutoAttack=0x1bf5 +OP_AutoAttack2=0x0ce9 +OP_Consume=0x7711 +OP_MoveItem=0x2bb9 +OP_DeleteItem=0x5c68 +OP_DeleteCharge=0x7660 +OP_ItemPacket=0x154e +OP_ItemLinkResponse=0x62f9 +OP_ItemLinkClick=0x53c8 +OP_ItemPreview=0x0ee7 +OP_NewSpawn=0x61e9 +OP_Track=0x7f7a +OP_TrackTarget=0x4190 +OP_TrackUnknown=0x3a5e +OP_ClickDoor=0x349b +OP_MoveDoor=0x4920 +OP_RemoveAllDoors=0x6542 +OP_EnvDamage=0x7912 +OP_BoardBoat=0x6a35 +OP_Forage=0x7621 +OP_LeaveBoat=0x7251 +OP_ControlBoat=0x5635 +OP_SafeFallSuccess=0x3358 +OP_RezzComplete=0x570d +OP_RezzRequest=0x3e8b +OP_RezzAnswer=0x77c7 +OP_Shielding=0x3f0b +OP_RequestDuel=0x0a38 +OP_MobRename=0x2638 +OP_AugmentItem=0x4695 # Was 0x37cb +OP_WeaponEquip1=0x1d1d +OP_WeaponEquip2=0x6147 # Was 0x6022 +OP_WeaponUnequip2=0x4b3e # Was 0x0110 +OP_ApplyPoison=0x1b5b +OP_Save=0x6444 +OP_TestBuff=0x2c3c # Was 0x3772 +OP_CustomTitles=0x61ab +OP_Split=0x3dff +OP_YellForHelp=0x694a +OP_LoadSpellSet=0x5d60 +OP_Bandolier=0x1d9d +OP_PotionBelt=0x5499 # Was 0x4d3b +OP_DuelResponse=0x3a06 +OP_DuelResponse2=0x7929 +OP_SaveOnZoneReq=0x0b2e +OP_ReadBook=0x1b02 +OP_Dye=0x0999 +OP_InterruptCast=0x57e1 +OP_AAAction=0x3994 +OP_LeadershipExpToggle=0x2746 +OP_LeadershipExpUpdate=0x0fdc +OP_PurchaseLeadershipAA=0x0f78 +OP_UpdateLeadershipAA=0x4ef0 +OP_MarkNPC=0x70e1 +OP_ClearNPCMarks=0x643a +OP_DelegateAbility=0x2aa5 +OP_SetGroupTarget=0x19d0 +OP_Charm=0x5221 +OP_Stun=0x5826 +OP_SendFindableNPCs=0x743b +OP_FindPersonRequest=0x3560 +OP_FindPersonReply=0x0844 +OP_Sound=0x1b73 +OP_PetBuffWindow=0x56c0 +OP_LevelAppearance=0x6698 +OP_Translocate=0x091a +OP_Sacrifice=0x5b22 +OP_PopupResponse=0x1475 +OP_OnLevelMessage=0x1cbd +OP_AugmentInfo=0x6524 +OP_Petition=0x3b76 +OP_SomeItemPacketMaybe=0x0668 +OP_PVPStats=0x3388 # Unsure +OP_PVPLeaderBoardRequest=0x2852 +OP_PVPLeaderBoardReply=0x65cf +OP_PVPLeaderBoardDetailsRequest=0x1d11 +OP_PVPLeaderBoardDetailsReply=0x1a8e +OP_RestState=0x3018 +OP_RespawnWindow=0x7b02 +OP_LDoNButton=0x4438 +OP_SetStartCity=0x2121 # Was 0x2d1b +OP_VoiceMacroIn=0x6f3d +OP_VoiceMacroOut=0x0577 +OP_ItemViewUnknown=0x31a8 +OP_VetRewardsAvaliable=0x0687 +OP_VetClaimRequest=0x0407 +OP_VetClaimReply=0x1ef4 +OP_DisciplineUpdate=0x06da # Was 0x2f05 +OP_DisciplineTimer=0x2a91 # Was 0x5e3f +OP_BecomeCorpse=0x0000 # Unused? +OP_Action2=0x0000 # Unused? +OP_MobUpdate=0x6d4b +OP_NPCMoveUpdate=0x5a39 +OP_CameraEffect=0x5099 +OP_SpellEffect=0x1e99 +OP_RemoveNimbusEffect=0x29af +OP_AltCurrency=0x797d +OP_AltCurrencyMerchantRequest=0x5132 +OP_AltCurrencyMerchantReply=0x7ec5 +OP_AltCurrencyPurchase=0x6731 +OP_AltCurrencySell=0x5420 +OP_AltCurrencySellSelection=0x6fed +OP_AltCurrencyReclaim=0x5eda +OP_CrystalCountUpdate=0x3b26 # Was 0x3f60 +OP_CrystalCreate=0x39ed # Was 0x5a82 +OP_CrystalReclaim=0x369e # Was 0x7616 +OP_Untargetable=0x6c0b +OP_IncreaseStats=0x757b +OP_Weblink=0x4173 +#OP_OpenInventory=0x0000 # Likely does not exist in RoF -U +OP_OpenContainer=0x0000 + +OP_DzQuit=0x7579 +OP_DzListTimers=0x00e5 +OP_DzAddPlayer=0x070f +OP_DzRemovePlayer=0x11eb +OP_DzSwapPlayer=0x72fe +OP_DzMakeLeader=0x3904 +OP_DzPlayerList=0x20a4 +OP_DzJoinExpeditionConfirm=0x1c57 +OP_DzJoinExpeditionReply=0x3274 +OP_DzExpeditionInfo=0xe86b +OP_DzExpeditionList=0x1349 +OP_DzMemberStatus=0x638e +OP_DzLeaderStatus=0x39cf +OP_DzExpeditionEndsWarning=0x44eb +OP_DzMemberList=0x0000 +OP_DzCompass=0x5baa # Was 0x4f09 +OP_DzChooseZone=0x0000 # Maybe 0x29d6 + +# New Opcodes +OP_SpawnPositionUpdate=0x0000 # Actually OP_MobUpdate ? +OP_ManaUpdate=0x4c12 +OP_EnduranceUpdate=0x250e +OP_MobManaUpdate=0x230a +OP_MobEnduranceUpdate=0x7012 + +# Mercenary Opcodes +OP_MercenaryDataUpdateRequest=0x1d60 +OP_MercenaryDataUpdate=0x0c2d +OP_MercenaryDataRequest=0x8fa2 +OP_MercenaryDataResponse=0x6a0c +OP_MercenaryHire=0x05bd +OP_MercenaryDismiss=0x376f +OP_MercenaryTimerRequest=0x293d +OP_MercenaryTimer=0x3f92 +OP_MercenaryUnknown1=0x1c14 +OP_MercenaryCommand=0x26b9 +OP_MercenarySuspendRequest=0x4b19 +OP_MercenarySuspendResponse=0x0830 +OP_MercenaryUnsuspendResponse=0x4405 + +# Looting +OP_LootRequest=0x52ba +OP_EndLootRequest=0x0573 +OP_LootItem=0x2344 +OP_LootComplete=0x71c6 + +# bazaar trader stuff: +OP_BazaarSearch=0x6c36 +OP_TraderDelItem=0x0000 +OP_BecomeTrader=0x081e +OP_TraderShop=0x327c +OP_Trader=0x2284 # Was 0x6790 +OP_TraderBuy=0x0000 +OP_Barter=0x241f +OP_ShopItem=0x0000 +OP_BazaarInspect=0x0000 +OP_Bazaar=0x0000 +OP_TraderItemUpdate=0x0000 + +# pc/npc trading +OP_TradeRequest=0x164e +OP_TradeAcceptClick=0x61eb +OP_TradeRequestAck=0x76c1 +OP_TradeCoins=0x582b +OP_FinishTrade=0x6bba +OP_CancelTrade=0x5a9f +OP_TradeMoneyUpdate=0x2432 +OP_MoneyUpdate=0x52e5 +OP_TradeBusy=0x6482 + +# Sent after canceling trade or after closing tradeskill object +OP_FinishWindow=0x5ea3 +OP_FinishWindow2=0x6177 + +# Sent on Live for what seems to be item existance verification +# Ex. Before Right Click Effect happens from items +OP_ItemVerifyRequest=0x49fc +OP_ItemVerifyReply=0x0061 + +# merchant stuff +OP_ShopPlayerSell=0x1961 +OP_ShopRequest=0x393f +OP_ShopEnd=0x7385 +OP_ShopEndConfirm=0x2ed5 +OP_ShopPlayerBuy=0x0f9d +OP_ShopDelItem=0x78d2 + +# tradeskill stuff: +OP_ClickObject=0x6cb6 +OP_ClickObjectAction=0x5d27 +OP_ClearObject=0x3a64 +OP_RecipeDetails=0x2d9b +OP_RecipesFavorite=0x2875 +OP_RecipesSearch=0x5013 +OP_RecipeReply=0x4161 +OP_RecipeAutoCombine=0x74ac +OP_TradeSkillCombine=0x48fd + +# Tribute Packets: +OP_OpenGuildTributeMaster=0x5ba2 +OP_OpenTributeMaster=0x6c0f # Was 0x40f5 +OP_SelectTribute=0x003e +OP_TributeItem=0x07cd +OP_TributeMoney=0x2f60 # Was 0x6fed +OP_TributeToggle=0x420c +OP_TributePointUpdate=0x5552 +OP_TributeNPC=0x0000 +OP_GuildTributeInfo=0x0000 +OP_OpenTributeReply=0x0000 +OP_GuildTributeStatus=0x0000 + +# Adventure packets: +OP_LeaveAdventure=0x234c +OP_AdventureFinish=0x33a0 +OP_AdventureInfoRequest=0x00af +OP_AdventureInfo=0x6a8c +OP_AdventureRequest=0x1c3b +OP_AdventureDetails=0x4b02 +OP_AdventureData=0x0e46 +OP_AdventureUpdate=0x724c +OP_AdventureMerchantRequest=0x6d4f # Was 654d +OP_AdventureMerchantResponse=0x7d2d # Was 7949 +OP_AdventureMerchantPurchase=0x3afc # Was 155a +OP_AdventureMerchantSell=0x19eb # Was 389c +OP_AdventurePointsUpdate=0x7df1 # Was 7589 +OP_AdventureStatsRequest=0x0dc1 +OP_AdventureStatsReply=0x7ca8 +OP_AdventureLeaderboardRequest=0x4769 +OP_AdventureLeaderboardReply=0x08fc + +# Group Opcodes +OP_GroupDisband=0x4e45 +OP_GroupInvite=0x1694 +OP_GroupFollow=0x6246 +OP_GroupUpdate=0x31c8 +OP_GroupUpdateB=0x13cd +OP_GroupCancelInvite=0x0000 +OP_GroupAcknowledge=0x4dbe +OP_GroupDelete=0x6d6b +OP_CancelInvite=0x6417 +OP_GroupFollow2=0x26fc +OP_GroupInvite2=0x6232 +OP_GroupDisbandYou=0x14ca +OP_GroupDisbandOther=0x0f0b +OP_GroupLeaderChange=0x1cdb +OP_GroupRoles=0x75de +OP_GroupMakeLeader=0x24b9 +OP_DoGroupLeadershipAbility=0x46df +OP_GroupLeadershipAAUpdate=0x3b89 + +# LFG/LFP Opcodes +OP_LFGCommand=0x4719 +OP_LFGGetMatchesRequest=0x78db +OP_LFGGetMatchesResponse=0x36b4 +OP_LFPGetMatchesRequest=0x5ef8 +OP_LFPGetMatchesResponse=0x1c19 +OP_LFPCommand=0x00f4 +OP_LFGAppearance=0x0000 +OP_LFGResponse=0x0000 + +# Raid Opcodes +OP_RaidInvite=0x1419 +OP_RaidUpdate=0x5191 +OP_RaidJoin=0x0000 + +# Button-push commands +OP_Taunt=0x1fbe +OP_CombatAbility=0x11c2 +OP_SenseTraps=0x713b # Was 0x2ee0 +OP_PickPocket=0x5229 +OP_DisarmTraps=0x0000 +OP_Disarm=0x5482 +OP_Sneak=0x209e +OP_Fishing=0x3520 +OP_InstillDoubt=0x5e78 +OP_FeignDeath=0x0258 +OP_Mend=0x742c +OP_Bind_Wound=0x5f4d +OP_LDoNOpen=0x0621 + +# Task packets +OP_TaskDescription=0x3c8f +OP_TaskActivity=0x6140 +OP_CompletedTasks=0x7b7c +OP_TaskActivityComplete=0x6bb5 +OP_AcceptNewTask=0x5d0e +OP_CancelTask=0x2f6c +OP_TaskMemberList=0x16f5 # Was 0x1656 +OP_OpenNewTasksWindow=0x065c # Was 0x11de +OP_AvaliableTask=0x5ed2 # Was 0x2377 +OP_TaskHistoryRequest=0x2da2 +OP_TaskHistoryReply=0x2cc2 +OP_DeclineAllTasks=0x0000 + +# Title opcodes +OP_NewTitlesAvailable=0x7705 +OP_RequestTitles=0x6cde +OP_SendTitleList=0x12cc +OP_SetTitle=0x0bda +OP_SetTitleReply=0x05b3 + +# mail opcodes +OP_Command=0x0000 +OP_MailboxHeader=0x0000 +OP_MailHeader=0x0000 +OP_MailBody=0x0000 +OP_NewMail=0x0000 +OP_SentConfirm=0x0000 + +########### Below this point should not be needed ########### + +# This section are all unknown in Titanium +OP_ForceFindPerson=0x0000 +OP_LocInfo=0x0000 +OP_ReloadUI=0x0000 +OP_ItemName=0x0000 +OP_ItemLinkText=0x0000 +OP_MultiLineMsg=0x0000 +OP_MendHPUpdate=0x0000 +OP_TargetReject=0x0000 +OP_SafePoint=0x0000 +OP_ApproveZone=0x0000 +OP_ZoneComplete=0x0000 +OP_ClientError=0x0000 +OP_DumpName=0x0000 +OP_Heartbeat=0x0000 +OP_CrashDump=0x0000 +OP_LoginComplete=0x0000 + +# discovered opcodes not yet used: +OP_PickLockSuccess=0x0000 +OP_PlayMP3=0x0000 +OP_ReclaimCrystals=0x0000 +OP_DynamicWall=0x0000 +OP_OpenDiscordMerchant=0x0000 +OP_DiscordMerchantInventory=0x0000 +OP_GiveMoney=0x0000 +OP_RequestKnowledgeBase=0x0000 +OP_KnowledgeBase=0x0000 +OP_SlashAdventure=0x0000 # /adventure +OP_BecomePVPPrompt=0x0000 +OP_MoveLogRequest=0x0000 # gone I think +OP_MoveLogDisregard=0x0000 # gone I think + +# named unknowns, to make looking for real unknown easier +OP_AnnoyingZoneUnknown=0x0000 +OP_Some6ByteHPUpdate=0x0000 seems to happen when you target group members +OP_QueryResponseThing=0x0000 + + +# realityincarnate: these are just here to stop annoying several thousand byte packet dumps +#OP_LoginUnknown1=0x46d3 # OP_SendSpellChecksum +#OP_LoginUnknown2=0x040b # OP_SendSkillCapsChecksum + +# Petition Opcodes +OP_PetitionSearch=0x0000 search term for petition +OP_PetitionSearchResults=0x0000 (list of?) matches from search +OP_PetitionSearchText=0x0000 text results of search + +OP_PetitionUpdate=0x0000 +OP_PetitionCheckout=0x0000 +OP_PetitionCheckIn=0x0000 +OP_PetitionQue=0x0000 +OP_PetitionUnCheckout=0x0000 +OP_PetitionDelete=0x0000 +OP_DeletePetition=0x0000 +OP_PetitionResolve=0x0000 +OP_PDeletePetition=0x0000 +OP_PetitionBug=0x0000 +OP_PetitionRefresh=0x0000 +OP_PetitionCheckout2=0x0000 +OP_PetitionViewPetition=0x0000 + +# Login opcodes +OP_SessionReady=0x0000 +OP_Login=0x0000 +OP_ServerListRequest=0x0000 +OP_PlayEverquestRequest=0x0000 +OP_PlayEverquestResponse=0x0000 +OP_ChatMessage=0x0000 +OP_LoginAccepted=0x0000 +OP_ServerListResponse=0x0000 +OP_Poll=0x0000 +OP_EnterChat=0x0000 +OP_PollResponse=0x0000 + +# raw opcodes +OP_RAWSessionRequest=0x0000 +OP_RAWSessionResponse=0x0000 +OP_RAWCombined=0x0000 +OP_RAWSessionDisconnect=0x0000 +OP_RAWKeepAlive=0x0000 +OP_RAWSessionStatRequest=0x0000 +OP_RAWSessionStatResponse=0x0000 +OP_RAWPacket=0x0000 +OP_RAWFragment=0x0000 +OP_RAWOutOfOrderAck=0x0000 +OP_RAWAck=0x0000 +OP_RAWAppCombined=0x0000 +OP_RAWOutOfSession=0x0000 + +# we need to document the differences between these packets to make identifying them easier +OP_Some3ByteHPUpdate=0x0000 # initial HP update for mobs +OP_InitialHPUpdate=0x0000