Page 1 of 6 123 ... LastLast
Results 1 to 15 of 79

Thread: 12/12/12 Changes

  1. #1
    Administrator
    Join Date
    Sep 2005
    Posts
    353

    12/12/12 Changes

    A quick look seems to be patch mostly changed opcodes. I mapped a bunch quickly but noticed that playerSpawnPosStruct and paleyrSelfPosStruct both changed. I am hopping on a plane and won't be back until Saturday and may have time to look at the struct changes then. If anyone wants to jump in and fix those between now and then...

    Oh, and I never did get around to posting an announcement post... there is a new release in SVN that updated a lot of things for RoF. May want to grab that and compile then drop in opcodes below.
    Last edited by fransick; 12-12-2012 at 01:05 PM.

  2. #2
    Administrator
    Join Date
    Sep 2005
    Posts
    353

    Re: 12/12/12 Changes

    Here are the opcodes I was able to update in 15 minutes...

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE seqopcodes SYSTEM "seqopcodes.dtd">
    <seqopcodes>
    
        <!-- Critical opcodes used directly by ShowEQ -->
        <opcode id="1b21" name="OP_NpcMoveUpdate" updated="11/28/12">
            <comment>Position updates</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="517d" name="OP_MovementHistory" updated="11/28/12">
            <comment>Movement data... rewind info?</comment>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="3c8e" name="OP_DeleteSpawn" updated="12/12/12">
            <comment>DeleteSpawnCode</comment>
            <payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="1665" name="OP_ZoneEntry" updated="12/12/12">
            <comment>ZoneEntryCode</comment>
            <payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
        <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="0561" name="OP_GuildMOTD" updated="12/12/12">
            <comment>GuildMOTD</comment>
            <payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="3a18" name="OP_InspectAnswer" updated="11/28/12">
            <comment>InspectDataCode</comment>
            <payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0e25" name="OP_TargetMouse" updated="12/12/12">
            <comment>Targeting a person - old ClientTargetCode</comment>
            <payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="3eb2" name="OP_Shroud" updated="10/23/12">
            <comment>Server putting players into shroud form</comment>
            <payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
        </opcode>
        <opcode id="718f" name="OP_GroupInvite" updated="11/28/12">
            <payload dir="both" typename="groupInviteStruct" sizechecktype="none"/>
            <comment>You invite someone while ungrouped or get invited by someone ungrouped </comment>
        </opcode>
        <opcode id="13ec" name="OP_GroupInvite2" updated="11/28/12">
            <payload dir="client" typename="groupInviteStruct" sizechecktype="none"/>
            <comment>You're inviting someone and you are grouped or get invited by a group</comment>
        </opcode>
        <opcode id="3389" name="OP_GroupFollow" updated="11/28/12">
            <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
            <comment>You join a group or player joins group</comment>
        </opcode>
        <opcode id="0000" name="OP_GroupFollow2" updated="11/28/12">
            <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
            <comment>Player joins your group</comment>
        </opcode>
        <opcode id="7693" name="OP_GroupDisband" updated="11/28/12">
            <comment>You disband from group</comment>
            <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="12ef" name="OP_GroupDisband2" updated="11/28/12">
            <comment>Other disbands from group</comment>
            <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="4bf0" name="OP_GroupLeader" updated="11/28/12">
            <comment>Group leader change</comment>
            <payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="202b" name="OP_GroupCancelInvite" updated="11/28/12">
            <payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
            <comment>Declining to join a group</comment>
        </opcode>
        <opcode id="0e01" name="OP_DzSwitchInfo" updated="12/12/12">
            <comment>Expedition compass etc</comment>
            <payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
        </opcode>
        <opcode id="4676" name="OP_DzInfo" updated="11/28/12">
            <comment>Expedition Information</comment>
            <payload dir="server" typename="dzInfo" sizechecktype="match"/>
        </opcode>
        <opcode id="0aa1" name="OP_FormattedMessage" updated="11/28/12">
            <comment>FormattedMessageCode i.e. pet dismissed etc</comment>
            <payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="7b6c" name="OP_SpawnDoor" updated="12/12/12">
            <comment>DoorSpawnsCode</comment>
            <payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
        </opcode>
        <opcode id="6c45" name="OP_AAExpUpdate" updated="11/28/12">
          <comment>Receiving AA experience. Also when percent to AA changes.</comment>
          <payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="07b8" name="OP_HPUpdate" updated="12/12/12">
            <comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
            <payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0954" name="OP_GuildMemberUpdate" updated="11/28/12">
            <comment>Info regarding guild members</comment>
            <payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
        </opcode>
        <opcode id="7daa" name="OP_SpawnRename" updated="11/28/12">
            <comment>Spawns getting renamed after initial NewSpawn</comment>
            <payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="5128" name="OP_SwapSpell" updated="11/28/12">
            <comment>TradeSpellBookSlotsCode</comment>
            <payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0e3b" name="OP_SimpleMessage" updated="11/28/12">
            <comment>SimpleMessageCode</comment>
            <payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="611d" name="OP_SpecialMesg" updated="11/28/12">
            <comment>Communicate textual info to client including hail responses etc</comment>
            <payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="2af0" name="OP_RandomReq" updated="11/28/12">
            <comment>RandomReqCode</comment>
            <payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="4717" name="OP_RandomReply" updated="11/28/12">
            <comment>RandomCode</comment>
            <payload dir="server" typename="randomStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="2a1f" name="OP_ConsentResponse" updated="11/28/12">
            <comment>Server replying with consent information after /consent</comment>
            <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="760d" name="OP_DenyResponse" updated="11/28/12">
            <comment>Server replying with deny information after /deny</comment>
            <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="3116" name="OP_BazaarSearch" updated="11/28/12">
            <payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/>
            <payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
            <comment>Bazaar search tool - struct changed and separated query from response with RoF launch.  Needs work </comment>
        </opcode>
        <opcode id="1ad3" name="OP_SpawnUpdate" updated="12/12/12">
            <comment>SpawnUpdateCode</comment>
            <payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="2e7e" name="OP_Stamina" updated="11/28/12">
            <comment>Server updating on hunger/thirst</comment>
            <payload dir="server" typename="staminaStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="1469" name="OP_Consider" updated="11/28/12">
            <comment>ConsiderCode</comment>
            <payload dir="both" typename="considerStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="7fff" name="OP_NewZone" updated="12/12/12">
            <comment>NewZoneCode</comment>
            <payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="4286" name="OP_GroundSpawn" updated="12/12/12">
            <comment>MakeDropCode</comment>
            <payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="7cde" name="OP_RemoveSpawn" updated="11/28/12">
            <comment>Remove spawn from zone</comment>
        <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="777f" name="OP_Death" updated="11/28/12">
            <comment>old NewCorpseCode</comment>
            <payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="20c9" name="OP_ClickObject" updated="11/28/12">
            <comment>Items dropped on the ground</comment>
            <payload dir="both" typename="remDropStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="7ce4" name="OP_Action" updated="11/28/12">
            <comment>Spells cast etc</comment>
            <payload dir="both" typename="actionStruct" sizechecktype="match"/>
            <payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="01d0" name="OP_Action2" updated="11/28/12">
            <comment>Combat actions i.e. bash, kick etc</comment>
            <payload dir="both" typename="action2Struct" sizechecktype="match"/>
        </opcode>
        <opcode id="79ee" name="OP_Illusion" updated="11/28/12">
            <comment>Spawn being illusioned (changing forms)</comment>
            <payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0af7" name="OP_BuffFadeMsg" updated="11/28/12">
            <comment>SpellFadeCode</comment>
            <payload dir="both" typename="spellFadedStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="62ee" name="OP_CastSpell" updated="11/28/12">
            <comment>StartCastCode</comment>
            <payload dir="both" typename="startCastStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="4e39" name="OP_MemorizeSpell" updated="11/28/12">
            <comment>MemSpellCode</comment>
            <payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="212b" name="OP_Emote" updated="11/28/12">
            <comment>EmoteTextCode</comment>
            <payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="6399" name="OP_ManaChange" updated="11/28/12">
            <comment>Mana change. Bards send this up with no size. Casters receive this for mana updates.</comment>
            <payload dir="server" typename="manaDecrementStruct" sizechecktype="match"/>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="06f8" name="OP_MoneyOnCorpse" updated="11/28/12">
            <comment>MoneyOnCorpseCode</comment>
            <payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="46bb" name="OP_PlayerProfile" updated="12/12/12">
            <comment>CharProfileCode</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="2db2" name="OP_TimeOfDay" updated="11/28/12">
            <comment>TimeOfDayCode</comment>
            <payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="455d" name="OP_ClientUpdate" updated="12/12/12">
            <comment>Position updates - looks to be 455d and 42 bytes as of 12/12/12</comment>
            <payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
            <payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="4cc9" name="OP_BeginCast" updated="11/28/12">
            <comment>BeginCastCode</comment>
            <payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="01cd" name="OP_CommonMessage" updated="11/28/12">
            <comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
            <payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="4f2b" name="OP_SkillUpdate" updated="11/28/12">
            <comment>Skill up code</comment>
            <payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="7360" name="OP_SpawnAppearance" updated="12/12/12">
            <comment>SpawnAppearanceCode</comment>
            <payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_ExpUpdate" updated="11/28/12">
            <comment>ExpUpdateCode - opcode looks to be 67d1 as of 11/28/12 but that value causes seg faults for some reason</comment>
            <payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_LevelUpdate" updated="11/28/12">
            <comment>LevelUpUpdateCode - causing crashes as of 12/08/12  Investigating</comment>
            <payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="3798" name="OP_LeaderExpUpdate" updated="11/28/12">
            <comment>Leadership AA Exp Update</comment>
            <payload dir="server" typename="leadExpUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="4daf" name="OP_MobUpdate" updated="11/28/12">
            <comment>MobUpdateCode</comment>
            <payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
        </opcode>
        <opcode id="5c45" name="OP_Trader" updated="11/28/12">
            <comment>PC's turning trader on and off</comment>
            <payload dir="server" typename="bazaarTraderRequest" sizechecktype="match"/>
        </opcode>
        <opcode id="071e" name="OP_Consent" updated="11/28/12">
            <comment>/consent someone</comment>
            <payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="2860" name="OP_ConsentDeny" updated="11/28/12">
            <comment>/deny someone</comment>
            <payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="1d6d" name="OP_ItemPacket" updated="11/28/12">
            <comment>ItemCode</comment>
            <payload dir="server" typename="itemPacketStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="361c" name="OP_ItemLinkResponse" updated="11/28/12">
            <comment>ItemInfoCode</comment>
            <payload dir="server" typename="itemInfoStruct" sizechecktype="none"/>
            <payload dir="client" typename="itemInfoReqStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="28a9" name="OP_EnvDamage" updated="11/28/12">
            <comment>Environmental Damage</comment>
            <payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="402d" name="OP_SetRunMode" updated="11/28/12">
            <comment>old cRunToggleCode</comment>
            <payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_WearChange" updated="03/23/12">
            <comment>Armor changes or give a pet a weapon (model changes)  This seems to be an artifact from a past patch.  Need to fix</comment>
            <payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
        </opcode>
    
        <!-- Not necessary for SEQ to run but here to name packets in logs. -->
        <opcode id="238d" name="OP_GroupUpdate" updated="11/28/12">
            <comment>Group member names - Variable length</comment>
            <payload dir="both" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="71f5" name="OP_UIUpdate" updated="12/12/12">
            <comment>Seems to be sent to handle a variety of UI updates - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1aae" name="OP_GroupMemberList" updated="08/17/12">
            <comment>List of group members -  Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="4053" name="OP_GuildMemberList" updated="12/12/12">
            <comment>List of guild members - Variable length</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="6675" name="OP_ManaUpdate" updated="12/12/12">
        <comment>Mana Update opcode - 10 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="71fb" name="OP_EndUpdate" updated="12/12/12">
        <comment>Endurance Update opcode - 10 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="3929" name="OP_Marketplace" updated="11/28/12">
            <comment>Marketplace data - Guessing variable length 11444 bytes as of 11/28/12</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="2de6" name="OP_MarketplaceSelect" updated="11/28/12">
            <comment>Sent when highlighting an item in Marketplace - 80 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="4e34" name="OP_DzMembers" updated="11/28/12">
            <comment>Expedition Members - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="6562" name="OP_Campfire" updated="11/28/12">
            <comment>Fellowship campfire information - 1076 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="3c4b" name="OP_SelectCampfire" updated="11/28/12">
            <comment>Fellowship campfire Choices - Guessing variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="02d7" name="OP_Claims" updated="11/28/12">
            <comment>Contents of claims window. /claim then refresh to capture packet - Guessing variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="3bcc" name="OP_VoiceChat" updated="12/12/12">
            <comment>Voice chat server info - Variable length (Data sent when joining group,raid etc)</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="6e6c" name="OP_PollQuestions" updated="12/12/12">
            <comment>SOE in-game player poll questions - Variable length</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="17ee" name="OP_PollResponses" updated="12/12/12">
            <comment>Poll response choices - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="7251" name="OP_ShroudProgression" updated="12/12/12">
            <comment>Unlocked shrouds - 244 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="ba18" name="OP_ShroudTemplates" updated="10/23/12">
            <comment>Shroud templates to choose from on shroud NPC - 18983 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="40fd" name="OP_Fellowship" updated="12/12/12">
            <comment>Fellowship information - 2564 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="7851" name="OP_ExpandedGuildInfo" updated="12/12/12">
            <comment>Guild ranks and other misc guild data - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1cbf" name="OP_GuildBank" updated="12/12/12">
            <comment>Guild bank contents - Guessing variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="2db9" name="OP_OpenTradeskillContainer" updated="11/28/12">
            <comment>Opens forge, kiln etc - 92 Bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="18c4" name="OP_TradeskillRecipes" updated="11/28/12">
            <comment>Learned recipes - 84 Bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0397" name="OP_TradeSkillCombine" updated="11/28/12">
            <comment>Tradeskill combine using new tradeskill window - 40 Bytes</comment>
            <payload dir="both" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="360d" name="OP_TradeSkillResult" updated="11/28/12">
            <comment>Packets sent when tradeskill combine successful equals # of ingredients used in combine?- 12 Bytes</comment>
            <payload dir="both" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="0b69" name="OP_TradeSkillCombineOld" updated="11/28/12">
            <comment>Tradeskill combine using old tradeskill window - 24 Bytes</comment>
            <payload dir="both" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="786e" name="OP_ItemPlayerPacket" updated="12/12/12">
            <comment>Inventory/bank items coming over during zone - Variable length</comment>
            <payload dir="both" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="2294" name="OP_TaskDescription" updated="12/12/12">
            <comment>Task descriptions coming down for task window - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="7181" name="OP_TaskActivity" updated="12/12/12">
            <comment>Task activity descriptions coming down for task window - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="9495" name="OP_CompletedTasks" updated="12/12/12">
            <comment>Task history for task window - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="471a" name="OP_CustomTitles" updated="12/12/12">
            <comment>List of available titles - 1520 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="3df3" name="OP_Animation" updated="11/28/12">
            <comment>Combat animation, emote animations etc - 4 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="2bdd" name="OP_WhoAllRequest" updated="11/28/12">
            <comment>WhoAllReqCode - 156 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="51a4" name="OP_WhoAllResponse" updated="11/28/12">
            <comment>WhoAllOutputCode - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="3d3c" name="OP_InspectRequest" updated="11/28/12">
            <comment>InspectRequestCode - 8 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="40ca" name="OP_GetGuildMOTD" updated="11/28/12">
            <comment>Request guildMOTD - 648 Bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1861" name="OP_GuildMOTDResponse" updated="11/28/12">
            <comment>Response guildMOTD - 648 Bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="38e9" name="OP_TradeRequest" updated="11/28/12">
            <comment>You request trade session - 8 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0ccc" name="OP_TradeDeny" updated="11/28/12">
            <comment>Target not ready to trade - 12 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1439" name="OP_TradeRequestAck" updated="11/28/12">
            <comment>Trade request recipient is acknowledging they are able to trade - 8 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="66f3" name="OP_CancelTrade" updated="11/28/12">
            <comment>Cancel a trade window - 8 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0dd6" name="OP_FinishTrade" updated="11/28/12">
            <comment>Trade is over - 12 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="2320" name="OP_TradeCoins" updated="11/28/12">
            <comment>You put coins put in a trade window - 20 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="428e" name="OP_TradeCoins2" updated="11/28/12">
            <comment>Someone else puts coins put in your trade window - 12 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="4cf9" name="OP_TradeAcceptClick" updated="11/28/12">
            <comment>One side clicks Accept on the trade 8 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="6f69" name="OP_ItemLinkClick" updated="11/28/12">
            <comment>Click on itemlinks - 52 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="6635" name="OP_LootRequest" updated="11/28/12">
            <comment>LootCorpseCode - 4 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0233" name="OP_LootItem" updated="11/28/12">
            <comment>Loot item from corpse - 20 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="11bc" name="OP_EndLootRequest" updated="11/28/12">
            <comment>DoneLootingCode - 4 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="3c94" name="OP_Track" updated="11/28/12">
            <comment>Tracking data - Variable length</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="5401" name="OP_AutoAttack" updated="11/28/12">
            <comment>Attack on/off - 4 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="3fad" name="OP_AutoAttack2" updated="11/28/12">
            <comment>Attack on/off appears to be same as OP_AutoAttack - 4 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="7488" name="OP_ClickDoor" updated="11/28/12">
            <comment>DoorOpenCode click request from client - 16 bytes</comment>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="38ab" name="OP_MoveDoor" updated="11/28/12">
            <comment>DoorClickCode response from server - 2 bytes</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="29fa" name="OP_MoveItem" updated="11/28/12">
            <comment>Client moving an item from one slot to another - 28 bytes</comment>
            <payload dir="both" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="5751" name="OP_Jump" updated="11/28/12">
            <comment>JumpCode - 0 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="339c" name="OP_TGB" updated="11/28/12">
            <comment>Client telling server to set targetgroupbuff - 4 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1d6a" name="OP_Lockouts" updated="11/28/12">
            <comment>Client requesting lockouts - 0 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="4ee5" name="OP_RaidInvite" updated="11/28/12">
            <comment>Client side raid invite requests 140 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="5dcf" name="OP_RaidJoin" updated="11/28/12">
            <comment>Server side raid information - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="24c5" name="OP_Feedback" updated="07/18/12">
            <comment>Client sending feedback to server - 1148 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="34f7" name="OP_GuildsList" updated="11/28/12">
            <comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="284e" name="OP_LFGGetMatchesRequest" updated="11/28/12">
            <comment>LFG/LFP client request - 16 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="11c8" name="OP_LFGGetMatchesResponse" updated="11/28/12">
            <comment>LFG/LFP server response - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="5a7c" name="OP_MercenaryList" updated="12/12/12">
            <comment>Listing of hired mercenaries - 429 bytes
            <payload dir="server" typename="unknown" sizechecktype="none"/></comment>
        </opcode>
        <opcode id="6e0e" name="OP_ClickInventory" updated="11/28/12">
            <comment>Click items from inventory or armor - 16 bytes 5th byte is Slot ID</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="3459" name="OP_ClickInventoryAck" updated="11/28/12">
            <comment>Server acknowledges click from inventory or armor - 20 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="60e2" name="OP_BuffWindow" updated="11/28/12">
            <comment>Changes to buff window or song window - 100 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="40d5" name="OP_ClickBuffOff" updated="11/28/12">
            <comment>Client clicks off buff - 8 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="6786" name="OP_HouseAddress" updated="12/12/12">
            <comment>House and guildhall address information - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="7cda" name="OP_HouseContents" updated="11/28/12">
            <comment>Server sending house information and contents - variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="54df" name="OP_FriendsList" updated="11/28/12">
            <comment>Server sending friends list contents - variable length (Sent when choosing "Welcome" from EQ button)</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="5a4f" name="OP_FriendsOnline" updated="11/28/12">
            <comment>Friends currently online - variable length (Sent when choosing "Welcome" form EQ button)</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="348e" name="OP_Rewards" updated="11/28/12">
            <comment>Server sending pending rewards - variable length</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="63ae" name="OP_FTPNags" updated="12/12/12">
            <comment>Free to play nags and other data - 1852 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="34c3" name="OP_Find" updated="12/12/12">
            <comment>Find window data - 112 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="10cb" name="OP_ConsiderCorpse" updated="11/28/12">
            <comment>ConCorpseCode - 20 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0000" name="OP_TributeUpdate" updated="11/28/12">
            <comment>Tribute and trophy skills - Variable length</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
    
            <!-- Below are used to help make sense of the logs when searching for opcodes
                 Using these marks unknown opcodes in logs for easier reading  -->
        <opcode id="218d" name="OP_Unknown1" updated="12/12/12">
            <comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="48b5" name="OP_Unknown2" updated="12/12/12">
            <comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="7cb5" name="OP_Unknown3" updated="12/12/12">
            <comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
    
            <!-- Below are unverified -->
        <opcode id="0000" name="OP_Buff" updated="11/15/11">
            <comment>old BuffDropCode</comment>
            <payload dir="both" typename="buffStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_ZoneChange" updated="04/18/11">
            <comment>old ZoneChangeCode</comment>
            <payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_CorpseLocResponse" updated="06/12/09">
            <comment>old CorpseLocCode:</comment>
            <payload dir="server" typename="corpseLocStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_SendZonePoints" updated="10/15/10">
            <comment>Coords in a zone that will port you to another zone</comment>
            <payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="0000" name="OP_RequestZoneChange" updated="10/20/07">
            <comment>Send by server when a click causes zone. Also, origin</comment>
            <payload dir="server" typename="requestZoneChangeStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_Logout" updated="10/21/09">
            <comment></comment>
            <payload dir="server" typename="none" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_WelcomeScreenTitle" updated="05/16/11">
        <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_VeteranRewards" update="04/18/11">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_SendAATable" updated="08/12/09">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_SendAAStats" updated="08/12/09">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_AckPacket" updated="03/14/07">
            <comment>Appears to be generic ack at the presentation level</comment>
        </opcode>
        <opcode id="0000" name="OP_Weather" updated="03/14/07">
            <comment>old WeatherCode</comment>
        </opcode>
        <opcode id="0000" name="OP_ReqNewZone" updated="03/14/07">
            <comment>Client requesting NewZone_Struct</comment>
        </opcode>
        <opcode id="0000" name="OP_ReqClientSpawn" updated="03/14/07">
            <comment>Client requesting spawn data</comment>
        </opcode>
        <opcode id="0000" name="OP_SendExpZonein" updated="03/14/07">
            <comment>Both directions. Negotiating sending of exp info.</comment>
        </opcode>
        <opcode id="0000" name="OP_AAAction" updated="03/14/07">
            <comment>Used for changing percent, buying? and activating skills</comment>
        </opcode>
        <opcode id="0000" name="OP_SetServerFilter" updated="03/14/07">
            <comment>Client telling server /filter information</comment>
        </opcode>
        <opcode id="0000" name="OP_ClientReady" updated="03/14/07">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_GuildTributeStatus" updated="03/14/07">
            <comment>Guild tribute stats send on zone</comment>
        </opcode>
        <opcode id="0000" name="OP_GuildTributeInfo" updated="06/13/06">
            <comment>Guild tribute loadout, only if on</comment>
        </opcode>
        <opcode id="0000" name="OP_RespawnWindow" updated="03/14/07">
          <comment>Server telling client enough to populate the respawn window when you die</comment>
        </opcode>
        <opcode id="0000" name="OP_InitialMobHealth" updated="06/27/12">
            <comment>Initial health sent when a player clicks on the mob. Subsequent updated will be OP_MobHealth</comment>
        </opcode>
        <opcode id="0000" name="OP_MobHealth" updated="03/14/07">
            <comment>health sent when a player clicks on the mob</comment>
        </opcode>
        <opcode id="0000" name="OP_DeltaCheck" updated="03/14/07">
            <comment>Client sending server delta information.</comment>
        </opcode>
        <opcode id="0000" name="OP_LoadSpellSet" updated="02/13/07">
            <comment>/mem spellsetname</comment>
        </opcode>
        <opcode id="0000" name="OP_Dye" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_Consume" updated="12/07/05">
            <comment>Client force feeding food/drink</comment>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="0000" name="OP_Begging" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_LFGCommand" updated="10/27/05">
            <comment>old LFGReqCode</comment>
        </opcode>
        <opcode id="0000" name="OP_Bug" updated="10/27/05">
            <comment>/bug</comment>
        </opcode>
        <opcode id="0000" name="OP_Save" updated="04/19/06">
            <comment>Client asking server to save user state</comment>
        </opcode>
        <opcode id="0000" name="OP_Camp" updated="02/13/07">
            <comment>old cStartCampingCode</comment>
        </opcode>
        <opcode id="0000" name="OP_ShopPlayerSell" updated="10/27/05">
            <comment>old SellItemCode</comment>
        </opcode>
        <opcode id="0000" name="OP_PetCommands" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_SaveOnZoneReq" updated="03/14/07">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_ShopEnd" updated="10/27/05">
            <comment>old CloseVendorCode</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0000" name="OP_SenseTraps" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_SenseHeading" updated="10/27/05">
            <comment>old cSenseHeadingCode</comment>
        </opcode> 
        <opcode id="0000" name="OP_LootComplete" updated="12/07/05">
            <comment>old sDoneLootingCode</comment>
        </opcode>
        <opcode id="0000" name="OP_Split" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_Surname" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_ShopRequest" updated="10/27/05">
            <comment>old OpenVendorCode</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0000" name="OP_FaceChange" updated="10/27/05">
            <comment>/face</comment>
        </opcode>
        <opcode id="0000" name="OP_Sneak" updated="06/29/05">
            <comment>Clicked sneak</comment>
        </opcode>
        <opcode id="0000" name="OP_Hide" updated="06/29/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_DisarmTraps" updated="05/11/05">
            <comment>Clicked disarm traps</comment>
        </opcode>
        <opcode id="0000" name="OP_Forage" updated="10/27/05">
            <comment>old ForageCode</comment>
        </opcode>
        <opcode id="0000" name="OP_BoardBoat" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_LeaveBoat" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_LFPGetMatchesRequest" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_GMKill" updated="10/27/05">
            <comment>GM /kill - Insta kill mob/pc</comment>
        </opcode>
        <opcode id="0000" name="OP_GuildPublicNote" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_YellForHelp" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_ShopPlayerBuy" updated="05/11/05">
            <comment>old BuyItemCode</comment>
        </opcode>
        <opcode id="0000" name="OP_LFPCommand" updated="10/27/05">
            <comment>looking for players</comment>
        </opcode>
        <opcode id="0000" name="OP_ConfirmDelete" updated="10/27/05">
            <comment>Client sends this to server to confirm op_deletespawn</comment>
        </opcode>
        <opcode id="0000" name="OP_Report" updated="06/29/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_TargetCommand" updated="02/13/07">
            <comment>Target user</comment>
        </opcode>
        <opcode id="0000" name="OP_LFPGetMatchesResponse" updated="02/13/07">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_FindPersonRequest" updated="02/13/07">
            <comment>Control-F Find</comment>
        </opcode>
        <opcode id="0000" name="OP_FindResponse" updated="02/13/07">
            <comment>Response to control-F</comment>
        </opcode>
        <opcode id="0000" name="OP_GMLastName" updated="10/27/05">
            <comment>GM /lastname - Change user lastname</comment>
        </opcode>
        <opcode id="0000" name="OP_Mend" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_MendHPUpdate" updated="05/11/05">
            <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_TributeInfo" updated="02/13/07">
            <comment>Tribute information</comment>
        </opcode>
    
    <!-- OLD OPCODES. These haven't been mapped in a post 1/26/2005 world. If you
         can find any of these in the current stream, please update them and let
         us know!
    
        <opcode id="1900" name="OP_ZoneSpawns" updated="05/29/08">
            <comment>old ZoneSpawnsCode</comment>
            <payload dir="server" typename="spawnStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="0020" name="OP_GMServers" updated="05/26/04">
            <comment>GM /servers - ?</comment>
        </opcode>
        <opcode id="790e" name="OP_GMKick" updated="01/26/05">
            <comment>GM /kick - Boot player</comment>
        </opcode>
        <opcode id="0068" name="OP_Petition" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="0074" name="OP_GMBecomeNPC" updated="05/26/04">
            <comment>GM /becomenpc - Become an NPC</comment>
        </opcode>
        <opcode id="0076" name="OP_PetitionCheckout" updated="05/26/04">
            <comment>Petition Checkout</comment>
        </opcode>
        <opcode id="007e" name="OP_PetitionCheckIn" updated="05/26/04">
            <comment>Petition Checkin</comment>
        </opcode>
        <opcode id="688f" name="OP_PetitionResolve" updated="05/11/05">
            <comment>Client Petition Resolve Request</comment>
        </opcode>
        <opcode id="0165" name="OP_DeletePetition" updated="01/26/05">
            <comment>Player /deletepetition</comment>
        </opcode>
        <opcode id="0082" name="OP_PetitionQue" updated="05/26/04">
            <comment>GM looking at petitions</comment>
        </opcode>
        <opcode id="0090" name="OP_PetitionUnCheckout" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="0097" name="OP_GMSearchCorpse" updated="05/26/04">
            <comment>GM /searchcorpse - Search all zones for named corpse</comment>
        </opcode>
        <opcode id="009a" name="OP_GuildPeace" updated="05/26/04">
            <comment>/guildpeace</comment>
        </opcode>
        <opcode id="00a4" name="OP_GuildWar" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="00a7" name="OP_GuildLeader" updated="05/26/04">
            <comment>/guildleader</comment>
        </opcode>
        <opcode id="00b6" name="OP_ApplyPoison" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="00da" name="OP_GMInquire" updated="05/26/04">
            <comment>GM /inquire - Search soulmark data</comment>
        </opcode>
        <opcode id="00dc" name="OP_GMSoulmark" updated="05/26/04">
            <comment>GM /praise /warn - Add soulmark comment to user file</comment>
        </opcode>
        <opcode id="00de" name="OP_GMHideMe" updated="05/26/04">
            <comment>GM /hideme - Remove self from spawn lists and make invis</comment>
        </opcode>
        <opcode id="00ef" name="OP_SafePoint" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="010b" name="OP_GMGoto" updated="05/26/04">
            <comment>GM /goto - Transport to another loc</comment>
        </opcode>
        <opcode id="012d" name="OP_BindWound" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="0132" name="OP_GuildRemove" updated="05/26/04">
            <comment>/guildremove</comment>
        </opcode>
        <opcode id="013b" name="OP_GMTraining" updated="05/26/04">
            <comment>old OpenGMCode</comment>
            <payload dir="both" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="013c" name="OP_GMEndTraining" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="0152" name="OP_MoveCash" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="0160" name="OP_Taunt" updated="05/26/04">
            <comment>old ConsumeCode</comment>
        </opcode>
        <opcode id="016c" name="OP_Stun" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="0175" name="OP_GMTrainSkill" updated="05/26/04">
            <comment>old SkillTrainCode</comment>
        </opcode>
        <opcode id="0178" name="OP_GMEndTrainingResponse" updated="05/26/04">
            <comment>old CloseGMCode</comment>
            <payload dir="both" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="0183" name="OP_GMZoneRequest" updated="05/26/04">
            <comment>/zone</comment>
        </opcode>
        <opcode id="018f" name="OP_BecomePK" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="0197" name="OP_SetDataRate" updated="05/26/04">
            <comment>Client sending datarate.txt value</comment>
        </opcode>
        <opcode id="0198" name="OP_GMDelCorpse" updated="05/26/04">
            <comment>/delcorpse</comment>
        </opcode>
        <opcode id="0199" name="OP_Sacrifice" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="01af" name="OP_GMApproval" updated="05/26/04">
            <comment>GM /approval - Name approval duty?</comment>
        </opcode>
        <opcode id="01b2" name="OP_GMToggle" updated="05/26/04">
            <comment>GM /toggle - Toggle ability to receive tells from other PC's</comment>
        </opcode>
        <opcode id="01bc" name="OP_MoneyUpdate" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="01ba" name="OP_ReqZoneObjects" updated="05/26/04">
            <comment>Client requesting zone objects</comment>
        </opcode>
        <opcode id="01c4" name="OP_Translocate" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="01ea" name="OP_RespondAA" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="01ed" name="OP_IncreaseStats" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="01ef" name="OP_ViewPetition" updated="05/26/04">
            <comment>Player /viewpetition</comment>
        </opcode>
        <opcode id="01ff" name="OP_ExpansionSetting" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="0205" name="OP_GainMoney" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="0225" name="OP_GMZoneRequest2" updated="05/26/04">
            <comment>/zone 2</comment>
        </opcode>
        <opcode id="0245" name="?" implicitlen="6" updated="07/14/04">
            <comment>Unknown, but has implicit length</comment>
        </opcode>
        <opcode id="0261" name="OP_CrashDump" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="0263" name="OP_GuildDemote" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="0264" name="OP_ZoneUnavail" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="028b" name="OP_GMSummon" updated="05/26/04">
            <comment>GM /summon - Summon PC to self</comment>
        </opcode>
        <opcode id="0296" name="OP_ItemTextFile" updated="05/26/04">
            <comment>old BookTextCode</comment>
            <payload dir="server" typename="bookTextStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="029e" name="OP_OpenObject" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="028e" name="OP_GMEmoteZone" updated="05/26/04">
            <comment>GM /emotezone - Send zonewide emote</comment>
        </opcode>
        <opcode id="0296" name="OP_ReadBook" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="02b4" name="OP_SummonCorpse" updated="05/26/04">
            <comment>/summoncorpse</comment>
        </opcode>
        <opcode id="02cc" name="OP_ShopItem" updated="05/26/04">
            <comment>Merchant Item data</comment>
        </opcode>
        <opcode id="02d0" name="OP_AdventureRequest" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="02d1" name="OP_AdventureMerchantResponse" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="02d2" name="OP_AdventureMerchantPurchase" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="02e2" name="OP_AdventurePointsUpdate" updated="05/26/04">
            <comment></comment>
        </opcode>
        <opcode id="02ef" name="OP_Adventure" updated="05/26/04">
            <comment>/adventure</comment>
        </opcode>
        <opcode id="1ee8" name="OP_CombatAbility" updated="02/15/05">
            <comment></comment>
        </opcode>
    -->
    </seqopcodes>
    Last edited by fransick; 12-12-2012 at 01:06 PM.

  3. #3
    Did you SEQ today? BlueAdept's Avatar
    Join Date
    Dec 2001
    Posts
    2,004

    Re: 12/12/12 Changes

    Thanks fransick!
    Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz

    ShowEQ file section is here. https://sourceforge.net/project/show...roup_id=10131#

    Famous Quotes:

    Ratt: WTF you talkin' about BA? (Ok.. that sounds like a bad combo of Diffrent Strokes and A-Team)

    Razzle: I showeq my wife

  4. #4
    Administrator
    Join Date
    Sep 2005
    Posts
    353

    Re: 12/12/12 Changes

    As I feared, playerSelf and playerPos packets have always been hard for me to understand struct wise. Having a difficult time correlating the packets captured to meaningful values so as to determine what is where. Anyone have any helpful wisdom for a noob in this area? I've been reading about signed vs. unsigned and float values but still cannot make heads or tails of the packets as none of the values seem to correspond to anything known like /loc

    Confused
    Last edited by fransick; 12-14-2012 at 01:58 PM.

  5. #5
    Developer
    Join Date
    Sep 2005
    Posts
    155

    Re: 12/12/12 Changes

    I tried for a few hours the other night, fransick, but decided it was way beyond me for the same reasons they were beyond you, and you're way ahead of me on these. Sorry

  6. #6
    Administrator
    Join Date
    Sep 2005
    Posts
    353

    Re: 12/12/12 Changes

    Quote Originally Posted by rogues View Post
    I tried for a few hours the other night, fransick, but decided it was way beyond me for the same reasons they were beyond you, and you're way ahead of me on these. Sorry
    Thanks for trying... with a little sleep after the redeye flight maybe it will make a little more sense. We'll see!

  7. #7
    Developer
    Join Date
    Jul 2004
    Posts
    920

    Re: 12/12/12 Changes

    There are debug printfs that are #if 0'd out in player.cpp. #if 1 them and just play with the structs. There are only 6 things to play around with. Go to a quiet zone and run directly X and directly Y and watch the debug spam. You'll eventually get used to it.

  8. #8
    Developer
    Join Date
    Jul 2004
    Posts
    920

    Re: 12/12/12 Changes

    Oh and they are packed so the data boundaries don't align on byte boundaries. That's why you can't just look at the packet dumps and figure things out.

  9. #9
    Administrator
    Join Date
    Sep 2005
    Posts
    353

    Re: 12/12/12 Changes

    Thanks Purple... I got playerSelfPos figured out just looking at the logs. playerPos is a different story. Will try your suggestion.

  10. #10
    Administrator
    Join Date
    Sep 2005
    Posts
    353

    Re: 12/12/12 Changes

    I think the Debug validated that I had playerSelfPos right. When running you "shimmy" slightly left and right on the map which makes me wonder if I have delta off by a little. As best I can tell the debug doesn't really help with playerPos. Very lost on that one at the moment. All PCs way out of place on the map. Grinding on...

  11. #11
    Developer
    Join Date
    Oct 2010
    Posts
    214

    Re: 12/12/12 Changes

    OP_MobUpdate is 6b5a. That'll get skittles in the correct spots, if they move. Initial spawn locations are messed up, though. The problem is in spawnStruct. Lengths are correct, they've moved position data around in there too. Trying to work it out now.

  12. #12
    Administrator
    Join Date
    Sep 2005
    Posts
    353

    Re: 12/12/12 Changes

    This fix will position you on the map correctly... still working on the struct for PC updates. That one is giving me fits.

    Code:
    struct playerSelfPosStruct
    {
    /*0000*/ uint8_t unknown0000[2];                 // ***Placeholder (update time counter?)
    /*0002*/ uint16_t spawnId;                       // Player's spawn id
    /*0004*/ uint8_t unknown0004[6];                 // ***Placeholder -- BSH 13 Apr 2011
    /*0010*/ float deltaY;                           // Change in x
    /*0014*/ float x;                                // x coord (1st loc value)
    /*0018*/ float y;                                // y coord (2nd loc value)
    /*0022*/ signed deltaHeading:10;                 // change in heading
             unsigned animation:10;                  // animation
             unsigned padding0024:12;                // ***Placeholder
    /*0026*/ float deltaZ;                           // Change in z
    /*0030*/ float deltaX;                           // Change in y
    /*0034*/ float z;                                // z coord (3rd loc value)
    /*0038*/ unsigned heading:12;                    // Directional heading
             unsigned padding0040:10;                // ***Placeholder
             unsigned padding0041:10;                // ***Placeholder
    /*0042*/
    };

  13. #13
    Developer
    Join Date
    Oct 2010
    Posts
    214

    Re: 12/12/12 Changes

    In everquest.h, struct spawnStruct, under the posData union, the following works to get initial spawn locations in their correct spots:

    signed padding0000:12; // ***Placeholder
    signed y:19; // y coord
    signed deltaZ:13; // change in z
    signed deltaHeading:10; // change in heading
    signed padding0005:10; // ***Placeholder
    signed deltaY:13; // change in y
    signed z:19; // z coord
    signed x:19; // x coord
    signed deltaX:13; // change in x
    unsigned heading:12; // heading
    signed animation:10; // animation
    signed padding0006:10; // ***Placeholder

    I'm confident on the x, y, z and heading members. The deltas and animation are probably wrong.

  14. #14
    Administrator
    Join Date
    Sep 2005
    Posts
    353

    Re: 12/12/12 Changes

    Like you, Newby, I am able to get XYZ in playerSpawnPosStruct. Got Heading now but every time I change the delta structs it throws everything else off because I am not positive on the size of the structs I am moving around. Heck, I am not even sure the size of the padding000X entries. Pretty lost at the moment.

    Because I got the 42 bytes struct right, I have a good idea what it should look like but am having a heck of time getting the pieces in order. You'd think I'd have lucked into the combination by now.

    Stuff in Green should be correct...
    Code:
    /*0000*/ uint16_t spawnId;                       // PC's spawn ID
    /*0002*/ uint8_t  unk[2];                        // BSH 13 Apr 2011
    /*0004*/ signed   padding0000:12;                // ***Placeholder
             signed   y:19;                          // y coord
             signed   padding0005:10;                // ***Placeholder
    /*0008*/ signed   deltaHeading:10;               // change in heading
             signed   deltaZ:13;                     // change in z
    /*0012*/ signed   deltaX:13;                     // change in x
             signed   z:19;                          // z coord
    /*0016*/ signed   x:19;                          // x coord
             signed   deltaY:13;                     // change in y
    /*0020*/ unsigned heading:12;                    // heading
             signed   animation:10;                  // animation
             signed   padding0006:10;                // ***Placeholder
    /*0024*/
    Using the debug tools in spawnshell.cpp, I am pretty sure animation actually contains deltaZ data and padding0005 looks to contain the deltaY data but switching them around messes everything else up. Finally, I am pretty sure deltaX and deltaHeading are correct but would need to get everything else right to confirm.

    Fun times... hopefully someone smarter can carry it across the finish line. It's beyond my capability.
    Last edited by fransick; 12-16-2012 at 03:27 PM. Reason: Edited for additional clarity

  15. #15
    Developer
    Join Date
    Sep 2005
    Posts
    155

    Re: 12/12/12 Changes

    Hang in there guys, it's coming along. Appreciate the hard work, you guys have gone way beyond what I'm capable of. Any way to get r6 on the bat phone?

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

You may post new threads
You may post replies
You may post attachments
You may edit your posts
HTML code is Off
vB code is On
Smilies are On
[IMG] code is On