eqemu-server/utils/patches/patch_UF.conf
hg 604c7ad4ab
[Feature] Add opcodes for Cast and Scribe book buttons (#3578)
This is just the packet framework for the Scribe button on recipe books
and the Cast Spell button on books that allow casting spells on
targets. It will need to be hooked up to a content implementation
2023-09-17 13:14:38 -05:00

715 lines
20 KiB
Plaintext

# 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
# V = Verified correct
# C = Most likely correct
# U = Unsure, but should be correct or close
# world packets
# Required to reach Char Select:
OP_SendLoginInfo=0x13da # V
OP_ApproveWorld=0x86c7 # C
OP_LogServer=0x6f79 # C
OP_SendCharInfo=0x4200 # C
OP_ExpansionInfo=0x7e4d # C
OP_GuildsList=0x5b0b # C
OP_EnterWorld=0x51b9 # C
OP_PostEnterWorld=0x5d32 # C
OP_World_Client_CRC1=0x3a18 # C
OP_World_Client_CRC2=0x3e50 # C
OP_SendSpellChecksum=0x46d3 # C
OP_SendSkillCapsChecksum=0x040b # C
# Character Select Related:
OP_DeleteCharacter=0x5ca5 # C
OP_CharacterCreateRequest=0x53a3 # C
OP_CharacterCreate=0x1b85 # C
OP_RandomNameGenerator=0x647a # C 0x440f
OP_ApproveName=0x4f1f # C
OP_MOTD=0x7629 # C 0x2b59
OP_SetChatServer=0x7d90 # C 0x0479
OP_SetChatServer2=0x158f # C 0x158f
OP_ZoneServerInfo=0x1190 # C 0x41c0
OP_WorldComplete=0x441c # C
OP_WorldUnknown001=0x6f9d # C 0x77b1
OP_FloatListThing=0x61ba # V
# Reasons for Disconnect:
OP_ZoneUnavail=0x3288 # C 0x1190
OP_WorldClientReady=0x7d05 # C 0x4786
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=0x3594 # V
OP_ZoneEntry=0x4b61 # V
OP_ReqNewZone=0x4118 # V
OP_NewZone=0x43ac # V
OP_ZoneSpawns=0x7114 # ?
OP_PlayerProfile=0x6022 # V
OP_TimeOfDay=0x6015 # V
OP_LevelUpdate=0x6a99 # V
OP_Stamina=0x3d86 # V
OP_RequestClientZoneChange=0x18ea # C
OP_ZoneChange=0x6d37 # C
OP_LockoutTimerInfo=0x0000 #
OP_ZoneServerReady=0x0000 #
OP_ZoneInUnknown=0x0000 #
OP_LogoutReply=0x0000 #
OP_PreLogoutReply=0x0000 #
# Required to fully log in
OP_SpawnAppearance=0x3e17 # V
OP_ChangeSize=0x6942 #
OP_TributeUpdate=0x684c # V
OP_TributeTimer=0x4895 # C
OP_TaskDescription=0x156c # C
OP_TaskActivity=0x31f3 # C
OP_CompletedTasks=0x687f # C
OP_Weather=0x4658 # V
OP_SendAATable=0x6ef9 # V
OP_ClearAA=0x2cd4
OP_ClearLeadershipAbilities=0x7b77
OP_UpdateAA=0x7bf6 # V
OP_RespondAA=0x1fbd # C 0x2bad
OP_ReqClientSpawn=0x69cd # V
OP_SpawnDoor=0x6f2b # V
OP_GroundSpawn=0x5c85 # V
OP_SendZonepoints=0x2370 # V
OP_SendAAStats=0x78b9 # C
OP_WorldObjectsSent=0x7b73 # V
OP_BlockedBuffs=0x05d5 # V
OP_RemoveBlockedBuffs=0x37c1 # V
OP_ClearBlockedBuffs=0x5570 # C
OP_SendExpZonein=0x47e7 # V
OP_SendTributes=0x6bfb # V
OP_TributeInfo=0x5a67 # V
OP_SendGuildTributes=0x4df0 # C 0x5a01
OP_AAExpUpdate=0x4aa2 # V
OP_ExpUpdate=0x0555 # V
OP_HPUpdate=0x6145 # V
OP_ManaChange=0x569a # C
OP_TGB=0x42ef # C
OP_SpecialMesg=0x016c # V
OP_GuildMemberList=0x51bc # C
OP_GuildMOTD=0x5658 # V
OP_CharInventory=0x47ae # V
OP_WearChange=0x0400 # V
OP_ClientUpdate=0x7062 # V
OP_ClientReady=0x6cdc # V
OP_SetServerFilter=0x2d74 # V
# Guild Opcodes
OP_GetGuildMOTD=0x1899 # C
OP_GetGuildMOTDReply=0x4a5c # C
OP_GuildMemberUpdate=0x0a53 # C
OP_GuildInvite=0x1a58 # C
OP_GuildRemove=0x3c02 # C
OP_GuildPeace=0x2bff # C
OP_SetGuildMOTD=0x053a # C
OP_GuildList=0x5b0b # C
OP_GuildWar=0x5408 # C
OP_GuildLeader=0x0598 # C
OP_GuildDelete=0x3f55 # C
OP_GuildInviteAccept=0x7b64 # C
OP_GuildDemote=0x457d # C
OP_GuildPublicNote=0x2dbd # C
OP_GuildManageBanker=0x1e4c # C
OP_GuildBank=0x0d8a # C
OP_SetGuildRank=0x4ffe # C
OP_GuildUpdateURLAndChannel=0x5232 # C
OP_GuildMemberLevelUpdate=0x0000 #
OP_ZoneGuildList=0x0000 #
OP_GetGuildsList=0x0000 #
OP_GuildStatus=0x28c8 #
OP_GuildCreate=0x192d #
OP_LFGuild=0x7e23 #
# OP_GuildManageRemove=0x0000 #
# OP_GuildManageAdd=0x0000 #
# OP_GuildManageStatus=0x0000 #
# GM/guide opcodes
OP_GMServers=0x6989 # C
OP_GMBecomeNPC=0x56e7 # C
OP_GMZoneRequest=0x3fd2 # C
OP_GMZoneRequest2=0x538f # C
OP_GMGoto=0x5ebc # C
OP_GMSearchCorpse=0x5a81 # C
OP_GMHideMe=0x28ef # C
OP_GMDelCorpse=0x655c # C
OP_GMApproval=0x7312 # C
OP_GMToggle=0x097f # C 0x7566
OP_GMSummon=0x712b # C
OP_GMEmoteZone=0x1ac1 # C
OP_GMEmoteWorld=0x2444 # C
OP_GMFind=0x6e27 # C
OP_GMKick=0x0402 # C
OP_GMKill=0x799c # C
OP_GMNameChange=0x0f48 # C
OP_GMLastName=0x7bfb # C
OP_QueryUCSServerStatus=0x4481
OP_InspectAnswer=0x0c2b # C
OP_BeginCast=0x0d5a # C
OP_ColoredText=0x71bf # C
OP_ConsentResponse=0x0e87 # C
OP_MemorizeSpell=0x3887 # C
OP_LinkedReuse=0x1b26
OP_SwapSpell=0x5805 # C
OP_CastSpell=0x50c2 # C
OP_Consider=0x3c2d # C
OP_FormattedMessage=0x3b52 # C
OP_SimpleMessage=0x1f4d # C 0x5448
OP_Buff=0x0d1d # C
OP_Illusion=0x231f # C
OP_MoneyOnCorpse=0x4a83 # C
OP_RandomReply=0x6d5d # C
OP_DenyResponse=0x6129 # C
OP_SkillUpdate=0x7f01 # C
OP_GMTrainSkillConfirm=0x3190 # C
OP_RandomReq=0x139d # C
OP_Death=0x7f9e # C
OP_Bind_Wound=0x4b1a # C
OP_GMTraining=0x51fa # C
OP_GMEndTraining=0x5479 # C
OP_GMTrainSkill=0x2257 # C
OP_Animation=0x4a61 # Was 0x47d3
OP_Begging=0x53f9 # C
OP_Consent=0x6bb9 # C
OP_ConsentDeny=0x4cd1 # C
OP_AutoFire=0x5db5 # C
OP_PetCommands=0x7706 # C
OP_PetCommandState=0x1a79
OP_PetHoTT=0x2528
OP_DeleteSpell=0x0698 # C
OP_Surname=0x44ae # C
OP_ClearSurname=0x6705 # C
OP_FaceChange=0x37a7 # C
OP_SetFace=0x6cfa
OP_SenseHeading=0x1b8a # C
OP_Action=0x0f14 # C
OP_ConsiderCorpse=0x0a18 # C
OP_HideCorpse=0x2d08 # C 0x1842
OP_CorpseDrag=0x3331 #
OP_CorpseDrop=0x2e70 #
OP_Bug=0x2369 # C
OP_Feedback=0x7705 # C
OP_Report=0x50d0 # C
OP_Damage=0x631a # C or OP_Action2?
OP_ChannelMessage=0x2e79 # C
OP_Assist=0x35b1 # C
OP_AssistGroup=0x194f # C
OP_MoveCoin=0x6024 # C
OP_ZonePlayerToBind=0x382c # C
OP_KeyRing=0x5c06 # C
OP_WhoAllRequest=0x177a # C
OP_WhoAllResponse=0x6ffa # C
OP_FriendsWho=0x6275 # C
OP_ConfirmDelete=0x3edc # V
OP_Logout=0x224f # C
OP_Rewind=0x7d63 # C
OP_TargetCommand=0x756c # C Was 0x5f5e
OP_InspectRequest=0x7c94 # C
OP_Hide=0x3497 # C
OP_Jump=0x083b # C
OP_Camp=0x5f85 # C
OP_Emote=0x3164 # C
OP_SetRunMode=0x3d06 # C
OP_BankerChange=0x300a # C
OP_TargetMouse=0x5f5e # C 0x7bbb
OP_MobHealth=0x15de # C
OP_InitialMobHealth=0x5cb0 # C
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
OP_DeleteSpawn=0x58c5 # C
OP_AutoAttack=0x1df9 # C
OP_AutoAttack2=0x517b # C
OP_Consume=0x24c5 # V
OP_MoveItem=0x2641 # C
OP_MoveMultipleItems=0x40e8
OP_DeleteItem=0x66e0 # C
OP_DeleteCharge=0x4ca1 # C
OP_ItemPacket=0x7b6e # C
OP_ItemLinkResponse=0x695c # C
OP_ItemLinkClick=0x3c66 # C
OP_NewSpawn=0x429b # C
OP_Track=0x709d # C
OP_TrackTarget=0x3f49 # C
OP_TrackUnknown=0x03e7 # C
OP_ClickDoor=0x6e97 # C
OP_MoveDoor=0x3154 # C
OP_RemoveAllDoors=0x6215 # C
OP_EnvDamage=0x2730 # C
OP_BoardBoat=0x7554 # C
OP_Forage=0x739b # C
OP_LeaveBoat=0x7286 # C
OP_ControlBoat=0x7ea8 # C
OP_SafeFallSuccess=0x6df7 # C
OP_RezzComplete=0x30a4 # C
OP_RezzRequest=0x32af # C
OP_RezzAnswer=0x2d41 # C
OP_Shielding=0x4675 # C
OP_RequestDuel=0x6cfe # C
OP_MobRename=0x0507 # C
OP_AugmentItem=0x7c87 # C
OP_WeaponEquip1=0x4572 # C
OP_PlayerStateAdd=0x399b # C
OP_PlayerStateRemove=0x416b # C
OP_ApplyPoison=0x5cd3 # C
OP_Save=0x6618 # C
OP_TestBuff=0x3415 # C
OP_CustomTitles=0x6a7e # C
OP_Split=0x1418 # C
OP_YellForHelp=0x55a8 # C
OP_LoadSpellSet=0x6617 # C
OP_Bandolier=0x510c # C
OP_PotionBelt=0x0651 # C
OP_DuelDecline=0x41a6 # C
OP_DuelAccept=0x6d60 # C
OP_SaveOnZoneReq=0x2913 # C
OP_ReadBook=0x465e # C
OP_Dye=0x2137 # C
OP_InterruptCast=0x7566 # C
OP_AAAction=0x2bad # C
OP_LeadershipExpToggle=0x5033 # C
OP_LeadershipExpUpdate=0x074f # C
OP_PurchaseLeadershipAA=0x5f55 # C
OP_UpdateLeadershipAA=0x77ed # C
OP_MarkNPC=0x66bf
OP_MarkRaidNPC=0x3ec7 # C
OP_ClearNPCMarks=0x5c29 # C
OP_ClearRaidNPCMarks=0x2af4
OP_DoGroupLeadershipAbility=0x0068 # C
OP_GroupLeadershipAAUpdate=0x167b # C
OP_DelegateAbility=0x6e58 # C
OP_SetGroupTarget=0x6b9e # C
OP_Charm=0x1fd5 # C
OP_Stun=0x3d00 # C
OP_SendFindableNPCs=0x6193 # C
OP_FindPersonRequest=0x1e04 # C
OP_FindPersonReply=0x7cae # C
OP_Sound=0x737a # C
OP_CashReward=0x039d
OP_PetBuffWindow=0x7b87 # C
OP_LevelAppearance=0x1bd4 # C
OP_Translocate=0x3d9c # C
OP_Sacrifice=0x301b # C
OP_PopupResponse=0x6d27 # C
OP_OnLevelMessage=0x24cb # C
OP_AugmentInfo=0x31b1 # C
OP_Petition=0x31d1 # C
OP_SomeItemPacketMaybe=0x2c27 # C
OP_PVPStats=0x5272 #
OP_PVPLeaderBoardRequest=0x4973 # C
OP_PVPLeaderBoardReply=0x3842 # C
OP_PVPLeaderBoardDetailsRequest=0x6c75 # C
OP_PVPLeaderBoardDetailsReply=0x7fd7 # C
OP_RestState=0x5d24 # C
OP_RespawnWindow=0x107f # C
OP_DisciplineTimer=0x047c # C
OP_LDoNButton=0x1031 # C
OP_SetStartCity=0x68f0 # C
OP_VoiceMacroIn=0x1524 # C
OP_VoiceMacroOut=0x1d99 # C
OP_ItemAdvancedLoreText=0x4eb3 # C
OP_VetRewardsAvaliable=0x0baa # C Mispelled?
OP_VetClaimRequest=0x34f8 # C
OP_VetClaimReply=0x6a5d # C
OP_CrystalCountUpdate=0x3fc8 # C
OP_DisciplineUpdate=0x6ed3 #
OP_BecomeCorpse=0x0000 #
OP_Action2=0x0000 # C OP_Damage?
OP_MobUpdate=0x4656 # Same as OP_SpawnPositionUpdate
OP_NPCMoveUpdate=0x0f3e #
OP_CameraEffect=0x6b0e # V
OP_SpellEffect=0x57a3 # V
OP_AddNimbusEffect=0x6361
OP_RemoveNimbusEffect=0x2c77 # C
OP_AltCurrency=0x659e
OP_AltCurrencyMerchantRequest=0x214C
OP_AltCurrencyMerchantReply=0x4348
OP_AltCurrencyPurchase=0x4ad7
OP_AltCurrencySell=0x14cf
OP_AltCurrencySellSelection=0x322a
OP_AltCurrencyReclaim=0x365d
OP_CrystalReclaim=0x726e
OP_CrystalCreate=0x12f3
OP_Untargetable=0x301d
OP_IncreaseStats=0x4acf
OP_Weblink=0x6840 # C
OP_InspectMessageUpdate=0x7fa1 # C
#OP_OpenInventory=0x0000 # Likely does not exist in UF -U
OP_OpenContainer=0x041a
OP_Marquee=0x3675
OP_Fling=0x51b1
OP_CancelSneakHide=0x7686
OP_UnderWorld=0x2d9d # clients sends up when they detect an underworld issue, might be useful for cheat detection
OP_BookButton=0x018e
OP_DzQuit=0x1539
OP_DzListTimers=0x21e9
OP_DzAddPlayer=0x3657
OP_DzRemovePlayer=0x054e
OP_DzSwapPlayer=0x4661
OP_DzMakeLeader=0x226f
OP_DzPlayerList=0x74e4
OP_DzExpeditionInvite=0x3c5e
OP_DzExpeditionInviteResponse=0x1154
OP_DzExpeditionInfo=0x1150
OP_DzExpeditionLockoutTimers=0x70d8
OP_DzMemberList=0x15c4
OP_DzMemberListName=0x2d17
OP_DzMemberListStatus=0x0d98
OP_DzSetLeaderName=0x2caf
OP_DzExpeditionEndsWarning=0x6ac2
OP_DzCompass=0x01cb
OP_DzChooseZone=0x65e1
OP_DzChooseZoneReply=0xa682
#shroud
OP_ShroudSelectionWindow=0x72ad
OP_ShroudRequestStats=0x488b
OP_ShroudRespondStats=0x1910
OP_ShroudSelect=0x45d7
OP_ShroudSelectCancel=0x666d
OP_ShroudProgress=0x6016 # This clears current progress and sets
OP_ShroudProgress2=0x66b4 # This just sets progress
OP_Shroud=0x1643
# New Opcodes
OP_SpawnPositionUpdate=0x4656 # C
OP_ManaUpdate=0x0433 # C
OP_EnduranceUpdate=0x6b76 # C
OP_MobManaUpdate=0x7901 # C
OP_MobEnduranceUpdate=0x1912 # C
# Looting
OP_LootRequest=0x6ad7 # C
OP_EndLootRequest=0x6546 # C
OP_LootItem=0x5960 # C
OP_LootComplete=0x604d # C
# bazaar trader stuff stuff:
OP_BazaarSearch=0x550f # C
OP_TraderDelItem=0x63c8 # C
OP_BecomeTrader=0x0a1d # C
OP_TraderShop=0x2881 # C
OP_Trader=0x0c08 # C
OP_TraderBuy=0x3672 # C
OP_Barter=0x6db5 # C
OP_ShopItem=0x0000 #
OP_BazaarInspect=0x0000 #
OP_Bazaar=0x0000 #
OP_TraderItemUpdate=0x0000 #
# pc/npc trading
OP_TradeRequest=0x7113 # C
OP_TradeAcceptClick=0x064a # C
OP_TradeRequestAck=0x606a # C
OP_TradeCoins=0x0149 # C
OP_FinishTrade=0x3ff6 # C
OP_CancelTrade=0x527e # C
OP_TradeMoneyUpdate=0x2a6d # C
OP_MoneyUpdate=0xd677 # C
OP_TradeBusy=0x5ed3 # C
# Sent after canceling trade or after closing tradeskill object
OP_FinishWindow=0x3c27 # C
OP_FinishWindow2=0x6759 # C
# Sent on Live for what seems to be item existance verification
# Ex. Before Right Click Effect happens from items
OP_ItemVerifyRequest=0x101e # C
OP_ItemVerifyReply=0x21c7 # C
# merchant crap
OP_ShopPlayerSell=0x0b27 # C
OP_ShopRequest=0x442a # C
OP_ShopEnd=0x3753 # C
OP_ShopEndConfirm=0x4578 # C
OP_ShopPlayerBuy=0x436a # C
OP_ShopDelItem=0x63c8 # C
# tradeskill stuff:
OP_ClickObject=0x33e5 # V
OP_ClickObjectAction=0x41b5 # V
OP_ClearObject=0x71d1 # C
OP_RecipeDetails=0x58d9 # C
OP_RecipesFavorite=0x7770 # C
OP_RecipesSearch=0x6948 # C
OP_RecipeReply=0x521c # C
OP_RecipeAutoCombine=0x0322 # C
OP_TradeSkillCombine=0x4212 # C
# Tribute Packets:
OP_OpenGuildTributeMaster=0x5e79 # C
OP_OpenTributeMaster=0x7c24 # C
OP_SelectTribute=0x0c98 # C
OP_TributeItem=0x0b89 # C
OP_TributeMoney=0x314f # C
OP_TributeToggle=0x6dc3 # C
OP_TributePointUpdate=0x15a7 # C
OP_TributeNPC=0x0000 #
OP_GuildTributeInfo=0x0000 #
OP_OpenTributeReply=0x0000 #
# OP_GuildTributeStatus=0x0000 #
# Adventure packets:
OP_LeaveAdventure=0x3ed4 # C
OP_AdventureFinish=0x6acc # C
OP_AdventureInfoRequest=0x3541 # C
OP_AdventureInfo=0x5cea # C
OP_AdventureRequest=0x2c03 # C
OP_AdventureDetails=0x1d40 # C
OP_AdventureData=0x34f2 # C
OP_AdventureUpdate=0x771f # C
OP_AdventureMerchantRequest=0x4e22 # C
OP_AdventureMerchantResponse=0x4dd5 # C
OP_AdventureMerchantPurchase=0x7b7f # C
OP_AdventureMerchantSell=0x179d # C
OP_AdventurePointsUpdate=0x7537 # C
OP_AdventureStatsRequest=0x4786 # C
OP_AdventureStatsReply=0x38b0 # C
OP_AdventureLeaderboardRequest=0x4cc6 # C
OP_AdventureLeaderboardReply=0x4423 # C
# Group Opcodes
OP_GroupDisband=0x54e8 # C
OP_GroupInvite=0x4f60 # C
OP_GroupFollow=0x7f2b # C
OP_GroupUpdate=0x5331 # C
OP_GroupUpdateB=0x0786 # C
OP_GroupCancelInvite=0x2736 # C - Same as OP_CancelInvite?
OP_GroupAcknowledge=0x3e22 # C
OP_GroupDelete=0x58e6 #
OP_CancelInvite=0x2736 # C
OP_GroupFollow2=0x6c16 # C
OP_GroupInvite2=0x5251 # C
OP_GroupDisbandYou=0x0bd0 # C
OP_GroupDisbandOther=0x49f6 # C
OP_GroupLeaderChange=0x0c33 # C
OP_GroupRoles=0x116d # C
OP_GroupMakeLeader=0x5851
OP_GroupMentor=0x292f
OP_InspectBuffs=0x105b
# LFG/LFP Opcodes
OP_LFGCommand=0x2c38 # C
OP_LFGGetMatchesRequest=0x28d4 # C
OP_LFGGetMatchesResponse=0x7a16 # C
OP_LFPGetMatchesRequest=0x189e # C
OP_LFPGetMatchesResponse=0x589f # C
OP_LFPCommand=0x7429 # C
OP_LFGAppearance=0x0000 #
OP_LFGResponse=0x0000 #
# Raid Opcodes
OP_RaidInvite=0x60b5 # C
OP_RaidUpdate=0x4d8b # C
OP_RaidJoin=0x0000 #
# Button-push commands
OP_Taunt=0x30e2 # C
OP_CombatAbility=0x36f8 # C
OP_SenseTraps=0x7e45 # C
OP_PickPocket=0x5821 # C
OP_DisarmTraps=0x0000 #
OP_Disarm=0x6def # C
OP_Sneak=0x1d22 # C
OP_Fishing=0x7093 # C
OP_InstillDoubt=0x221a # C
OP_FeignDeath=0x002b # C
OP_Mend=0x10a6 # C
OP_LDoNOpen=0x032b # C
OP_LDoNDisarmTraps=0x1a84
OP_LDoNPickLock=0x0370
OP_LDoNInspect=0x0aaa
# Task packets
OP_TaskActivityComplete=0x5832 # C
OP_AvaliableTask=0x6255 # C Mispelled?
OP_AcceptNewTask=0x17d5 # C
OP_TaskHistoryRequest=0x547c # C
OP_TaskHistoryReply=0x4524 # C
OP_CancelTask=0x3bf5 # C
OP_DeclineAllTasks=0x0000 #
OP_TaskRequestTimer=0x719e
OP_TaskSelectWindow=0x7309
# Shared Tasks
OP_SharedTaskMemberList=0x584e #
OP_SharedTaskRemovePlayer=0x18e2 # /taskremoveplayer
OP_SharedTaskAddPlayer=0x6255 # /taskaddplayer
OP_SharedTaskMakeLeader=0x5933 # /taskmakeleader
OP_SharedTaskInvite=0x55f4 # Dialog window
OP_SharedTaskInviteResponse=0x26e5 # Dialog window response
OP_SharedTaskAcceptNew=0x6ded # Not sure why this has a separate handler
OP_SharedTaskMemberChange=0x1402 # Not sure yet?
OP_TaskTimers=0x09b4 # /tasktimers
OP_SharedTaskQuit=0x6aba # /taskquit
OP_SharedTaskSelectWindow=0x98f6
OP_SharedTaskPlayerList=0x66ba # /taskplayerlist
# Title opcodes
OP_NewTitlesAvailable=0x4b49 # C
OP_RequestTitles=0x4d3e # C
OP_SendTitleList=0x0d96 # C
OP_SetTitle=0x675c # C
OP_SetTitleReply=0x75f5 # C
# Mercenary Opcodes
OP_MercenaryDataRequest=0x3015 #
OP_MercenaryDataResponse=0x0eaa #
OP_MercenaryHire=0x099e #
OP_MercenaryTimer=0x0cae #
OP_MercenaryAssign=0x2538 #
OP_MercenaryUnknown1=0x367f #
OP_MercenaryDataUpdate=0x57f2 #
OP_MercenaryCommand=0x50c1 #
OP_MercenarySuspendRequest=0x3c58 #
OP_MercenarySuspendResponse=0x4b82 #
OP_MercenaryUnsuspendResponse=0x5fe3
OP_MercenaryDataUpdateRequest=0x05f1
OP_MercenaryDismiss=0x319a #
OP_MercenaryTimerRequest=0x184e #
# 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=0x7f72 #
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 # U OP_SendSpellChecksum
#OP_LoginUnknown2=0x040b # U 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=0x0001 #
OP_Login=0x0002 #
OP_ServerListRequest=0x0004 #
OP_PlayEverquestRequest=0x000d #
OP_PlayEverquestResponse=0x0021 #
OP_ChatMessage=0x0016 #
OP_LoginAccepted=0x0017 #
OP_ServerListResponse=0x0018 #
OP_Poll=0x0029 #
OP_EnterChat=0x000f #
OP_PollResponse=0x0011 #
# 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 #
OP_ItemRecastDelay=0x82d7
# unhandled
OP_ShieldGroup=0x23a1
#aura related
OP_UpdateAura=0x2480
OP_RemoveTrap=0x0115