PDA

View Full Version : 03/13/13 Changes



ShortBuss
03-13-2013, 12:19 PM
Seems to be several changes that happened to structs. Starting with opcodes:
<opcode id="48b7" name="OP_PlayerProfile" updated="03/13/13">
<opcode id="9e82" name="OP_ZoneEntry" updated="03/13/13">
<opcode id="6665" name="OP_TimeOfDay" updated="03/13/13">
<opcode id="23ef" name="OP_NewZone" updated="03/13/13">
<opcode id="5ab7" name="OP_SpawnDoor" updated="03/13/13">
<opcode id="6410" name="OP_GroundSpawn" updated="03/13/13">
<opcode id="2694" name="OP_SendZonePoints" updated="03/13/13">
<opcode id="5906" name="OP_GuildMOTD" updated="03/13/13">
<opcode id="1ad3" name="OP_ClientUpdate" updated="03/13/13">
<opcode id="1df9" name="OP_NpcMoveUpdate" updated="03/13/13">
<opcode id="3c0e" name="OP_MobUpdate" updated="03/13/13">

In Everquest.h doorStruct had 4 bytes added to the end:


struct doorStruct
{
/*0000*/ char name[32]; // Filename of Door?
/*0016*/ // uint8_t unknown016[16]; // ***Placeholder
/*0032*/ float y; // y loc
/*0036*/ float x; // x loc
/*0040*/ float z; // z loc
/*0044*/ float heading; // heading
/*0048*/ uint32_t incline; // incline
/*0052*/ uint32_t size; // size
/*0056*/ uint8_t unknown0056[4]; // ***Placeholder
/*0060*/ uint8_t doorId; // door's id #
/*0061*/ uint8_t opentype; // open type
/*0062*/ uint8_t spawnstate; // spawn state
/*0063*/ uint8_t invertstate; // invert state
/*0064*/ uint32_t zonePoint;
/*0068*/ uint8_t unknown068[28]; // ***Placeholder
/*0096*/ uint8_t unknown096[4]; // ***Placeholder
/*0100*/
};


**Updated this section based on post from fransick. The 4 bytes added in the spawn struct parse were added to the position data. See later posts for updated structs.


I don't think the playerSpawnPosStruct changed, because I can see things like auras, familiars, and pets in proper locations on the map. However players are in the wrong location. Haven't figured this out yet. Also playerSelfPosStruct may be changed.

**Update - Corrected OP_ClientUpdate

fransick
03-13-2013, 12:34 PM
I don't think the playerSpawnPosStruct changed, because I can see things like auras, familiars, and pets in proper locations on the map. However players are in the wrong location. Haven't figured this out yet. Also playerSelfPosStruct may be changed.

Looks like they messed with playerSpawnPosStruct and playerSelfPosStruct as both grew by 4 bytes (28 and 46 bytes now).

ShortBuss
03-13-2013, 12:58 PM
That explains a couple things. The extra 4 bytes in spawnshell.cpp will go into the position data, not where I had it. Also op-code for client update was wrong in my original post and is now corrected. Now just need to work out how x/y/z shifted around for the position structures.

fransick
03-13-2013, 01:27 PM
That explains a couple things. The extra 4 bytes in spawnshell.cpp will go into the position data, not where I had it. Also op-code for client update was wrong in my original post and is now corrected. Now just need to work out how x/y/z shifted around for the position structures.

While you are working out position data, I'll grind away at more opcodes...

ShortBuss
03-13-2013, 02:23 PM
Managed to get playerselfposstruct figured out, still have to do the other:


struct playerSelfPosStruct
{
/*0000*/ uint16_t unknown0000; // ***Placeholder (update time counter?)
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/ unsigned pitch:12; // pitch (up/down heading)
unsigned padding1:20; // ***Placeholder
/*0010*/ float y; // y coord (2nd loc value)
/*0014*/ unsigned heading:12; // Directional heading
unsigned padding2:10; // ***Placeholder
unsigned padding3:10; // ***Placeholder
/*0018*/ float z; // z coord (3rd loc value)
/*0022*/ signed animation:10; // velocity
unsigned padding6:22; // **Placeholder
/*0026*/ float deltaZ; // Change in z
/*0030*/ float x; // x coord (1st loc value)
/*0034*/ float deltaX; // Change in x
/*0038*/ float deltaY; // Change in y
/*0042*/ signed deltaHeading:10; // change in heading
unsigned padding4:10; // ***Placeholder
unsigned padding5:12; // ***Placeholder
/*0048*/
};

fransick
03-13-2013, 04:26 PM
Here's a quick update of critical opcodes. I pulled them pretty fast so changes may be forthcoming but this should get you going:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE seqopcodes SYSTEM "seqopcodes.dtd">
<seqopcodes>

<!-- Critical opcodes used directly by ShowEQ -->
<opcode id="48b7" name="OP_PlayerProfile" updated="03/13/13">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="9e82" name="OP_ZoneEntry" updated="03/13/13">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="6665" name="OP_TimeOfDay" updated="03/13/13">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
<opcode id="23ef" name="OP_NewZone" updated="03/13/13">
<comment>NewZoneCode</comment>
<payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
</opcode>
<opcode id="5ab7" name="OP_SpawnDoor" updated="03/13/13">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
<opcode id="6410" name="OP_GroundSpawn" updated="03/13/13">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="2694" name="OP_SendZonePoints" updated="03/13/13">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
<opcode id="0eae" name="OP_AAExpUpdate" updated="02/13/13">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="7814" name="OP_ExpUpdate" updated="02/13/13">
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="5906" name="OP_GuildMOTD" updated="03/13/13">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
<opcode id="1ad3" name="OP_ClientUpdate" updated="03/13/13">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
<opcode id="1df9" name="OP_NpcMoveUpdate" updated="03/13/13">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="3c0e" name="OP_MobUpdate" updated="03/13/13">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
<opcode id="17f1" name="OP_DeleteSpawn" updated="03/13/13">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
<opcode id="49e0" name="OP_RemoveSpawn" updated="03/13/13">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
<opcode id="43a6" name="OP_Death" updated="03/13/13">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
<opcode id="18ea" name="OP_WearChange" updated="03/13/13">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="3fe5" name="OP_SpawnAppearance" updated="03/13/13">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
<opcode id="54fb" name="OP_Stamina" updated="02/13/13">
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
<opcode id="462c" name="OP_HPUpdate" updated="03/13/13">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="6719" name="OP_GuildMemberUpdate" updated="02/13/13">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
<opcode id="00c6" name="OP_ClickObject" updated="03/13/13">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
<opcode id="4965" name="OP_Action" updated="03/13/13">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
<opcode id="002e" name="OP_Action2" updated="03/13/13">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
<opcode id="476f" name="OP_Consider" updated="03/13/13">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
<opcode id="698f" name="OP_TargetMouse" updated="03/13/13">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
<opcode id="362a" name="OP_SpawnRename" updated="03/13/13">
<comment>Spawns getting renamed after initial NewSpawn</comment>
<payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
</opcode>
<opcode id="739c" name="OP_Illusion" updated="03/13/13">
<comment>Spawn being illusioned (changing forms)</comment>
<payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
</opcode>
<opcode id="0a43" name="OP_Shroud" updated="03/13/13">
<comment>Server putting players into shroud form</comment>
<payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
</opcode>
<opcode id="6976" name="OP_ZoneChange" updated="03/13/13">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
<opcode id="4533" name="OP_GroupInvite" updated="03/13/13">
<payload dir="both" typename="groupInviteStruct" sizechecktype="none"/>
<comment>You invite someone while ungrouped or get invited by someone ungrouped </comment>
</opcode>
<opcode id="1a45" name="OP_GroupInvite2" updated="03/13/13">
<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="2fb6" name="OP_GroupCancelInvite" updated="03/13/13">
<payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
<comment>Declining to join a group</comment>
</opcode>
<opcode id="2b6a" name="OP_GroupFollow" updated="03/13/13">
<payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
<comment>You join a group or player joins group</comment>
</opcode>
<opcode id="5fae" name="OP_GroupFollow2" updated="12/12/12">
<payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
<comment>Player joins your group</comment>
</opcode>
<opcode id="7056" name="OP_GroupUpdate" updated="01/16/13">
<comment>Group updates</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="34d7" name="OP_GroupDisband" updated="03/13/13">
<comment>You disband from group</comment>
<payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
</opcode>
<opcode id="39f0" name="OP_GroupDisband2" updated="03/13/13">
<comment>Other disbands from group</comment>
<payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
</opcode>
<opcode id="00f0" name="OP_GroupLeader" updated="03/13/13">
<comment>Group leader change</comment>
<payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/>
</opcode>
<opcode id="08ed" name="OP_Buff" updated="12/12/12">
<comment>old BuffDropCode</comment>
<payload dir="both" typename="buffStruct" sizechecktype="match"/>
</opcode>
<opcode id="46b9" name="OP_BuffFadeMsg" updated="03/13/13">
<comment>SpellFadeCode</comment>
<payload dir="both" typename="spellFadedStruct" sizechecktype="none"/>
</opcode>
<opcode id="436d" name="OP_BeginCast" updated="03/13/13">
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
<opcode id="56ab" name="OP_CastSpell" updated="03/13/13">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
<opcode id="21d2" name="OP_SwapSpell" updated="03/13/13">
<comment>TradeSpellBookSlotsCode</comment>
<payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
</opcode>
<opcode id="4d4b" name="OP_MemorizeSpell" updated="03/13/13">
<comment>MemSpellCode</comment>
<payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
</opcode>
<opcode id="5168" name="OP_InspectAnswer" updated="03/13/13">
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
<opcode id="4773" name="OP_Emote" updated="03/13/13">
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
<opcode id="0e87" name="OP_SimpleMessage" updated="03/13/13">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
<opcode id="69ee" name="OP_FormattedMessage" updated="03/13/13">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="1f4e" name="OP_CommonMessage" updated="03/13/13">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="76d5" name="OP_SpecialMesg" updated="03/13/13">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="3599" name="OP_RandomReq" updated="03/13/13">
<comment>RandomReqCode</comment>
<payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
</opcode>
<opcode id="467d" name="OP_RandomReply" updated="03/13/13">
<comment>RandomCode</comment>
<payload dir="server" typename="randomStruct" sizechecktype="match"/>
</opcode>
<opcode id="183d" name="OP_ConsentResponse" updated="12/12/12">
<comment>Server replying with consent information after /consent</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
<opcode id="344a" name="OP_DenyResponse" updated="12/12/12">
<comment>Server replying with deny information after /deny</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
<opcode id="7db5" name="OP_ManaChange" updated="03/13/13">
<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="3206" name="OP_BazaarSearch" updated="12/12/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="2a0f" name="OP_MoneyOnCorpse" updated="01/16/13">
<comment>MoneyOnCorpseCode</comment>
<payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
</opcode>
<opcode id="2389" name="OP_SkillUpdate" updated="12/12/12">
<comment>Skill up code</comment>
<payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
</opcode>
<opcode id="7ce0" name="OP_LevelUpdate" updated="12/12/12">
<comment>LevelUpUpdateCode - causing crashes as of 12/08/12 Investigating</comment>
<payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="ffff" name="OP_CorpseLocResponse" updated="12/12/12">
<comment>old CorpseLocCode:</comment>
<payload dir="server" typename="corpseLocStruct" sizechecktype="match"/>
</opcode>
<opcode id="68df" name="OP_Logout" updated="12/12/12">
<comment></comment>
<payload dir="server" typename="none" sizechecktype="match"/>
</opcode>
<opcode id="3dfd" name="OP_DzSwitchInfo" updated="03/13/13">
<comment>Expedition compass etc</comment>
<payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
</opcode>
<opcode id="3861" name="OP_DzInfo" updated="12/12/12">
<comment>Expedition Information</comment>
<payload dir="server" typename="dzInfo" sizechecktype="match"/>
</opcode>

<!-- Not necessary for SEQ to run but here to name packets in logs. -->
<opcode id="42e1" name="OP_MovementHistory" updated="03/13/13">
<comment>Movement history for speed/movement hack detection</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</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="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="0518" name="OP_EnvDamage" updated="01/16/13">
<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="3e45" name="OP_UIUpdate" updated="03/13/13">
<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="2aca" name="OP_GroupMemberList" updated="01/16/13">
<comment>List of group members - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4f53" name="OP_GuildMemberList" updated="03/13/13">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="48e4" name="OP_ManaUpdate" updated="03/13/13">
<comment>Mana Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1e36" name="OP_EndUpdate" updated="03/13/13">
<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="7802" name="OP_SelectCampfire" updated="01/16/13">
<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="3b17" name="OP_VoiceChat" updated="03/13/13">
<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="65b6" name="OP_PollQuestions" updated="03/13/13">
<comment>SOE in-game player poll questions - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="00e0" name="OP_PollResponses" updated="03/13/13">
<comment>Poll response choices - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="68f0" name="OP_ShroudProgression" updated="03/13/13">
<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="7eb8" name="OP_Fellowship" updated="03/13/13">
<comment>Fellowship information - 2564 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3d53" name="OP_ExpandedGuildInfo" updated="03/13/13">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6f73" name="OP_GuildBank" updated="03/13/13">
<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="3efe" name="OP_ItemPlayerPacket" updated="03/13/13">
<comment>Inventory/bank items coming over during zone - Variable length</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="2b71" name="OP_TaskDescription" updated="03/13/13">
<comment>Task descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="53b3" name="OP_TaskActivity" updated="03/13/13">
<comment>Task activity descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7c6b" name="OP_CompletedTasks" updated="03/13/13">
<comment>Task history for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3fab" name="OP_CustomTitles" updated="03/13/13">
<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="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="6988" name="OP_RaidJoin" updated="03/13/13">
<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="7f41" name="OP_MercenaryList" updated="03/13/13">
<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="1a58" name="OP_HouseAddress" updated="03/13/13">
<comment>House and guildhall address information - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="49b7" name="OP_HouseContents" updated="03/13/13">
<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="4ee2" name="OP_FTPNags" updated="03/13/13">
<comment>Free to play nags and other data - 1852 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6788" name="OP_Find" updated="03/13/13">
<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="ffff" 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="0294" name="OP_Unknown1" updated="03/13/13">
<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="752a" name="OP_Unknown2" updated="01/16/13">
<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="244c" name="OP_Unknown3" updated="01/16/13">
<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="ffff" 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="ffff" name="OP_WelcomeScreenTitle" updated="05/16/11">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_VeteranRewards" update="04/18/11">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_SendAATable" updated="08/12/09">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_SendAAStats" updated="08/12/09">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_AckPacket" updated="03/14/07">
<comment>Appears to be generic ack at the presentation level</comment>
</opcode>
<opcode id="ffff" name="OP_Weather" updated="03/14/07">
<comment>old WeatherCode</comment>
</opcode>
<opcode id="ffff" name="OP_ReqNewZone" updated="03/14/07">
<comment>Client requesting NewZone_Struct</comment>
</opcode>
<opcode id="ffff" name="OP_ReqClientSpawn" updated="03/14/07">
<comment>Client requesting spawn data</comment>
</opcode>
<opcode id="ffff" name="OP_SendExpZonein" updated="03/14/07">
<comment>Both directions. Negotiating sending of exp info.</comment>
</opcode>
<opcode id="ffff" name="OP_AAAction" updated="03/14/07">
<comment>Used for changing percent, buying? and activating skills</comment>
</opcode>
<opcode id="ffff" name="OP_SetServerFilter" updated="03/14/07">
<comment>Client telling server /filter information</comment>
</opcode>
<opcode id="ffff" name="OP_ClientReady" updated="03/14/07">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_GuildTributeStatus" updated="03/14/07">
<comment>Guild tribute stats send on zone</comment>
</opcode>
<opcode id="ffff" name="OP_GuildTributeInfo" updated="06/13/06">
<comment>Guild tribute loadout, only if on</comment>
</opcode>
<opcode id="ffff" name="OP_RespawnWindow" updated="03/14/07">
<comment>Server telling client enough to populate the respawn window when you die</comment>
</opcode>
<opcode id="ffff" 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="ffff" name="OP_MobHealth" updated="03/14/07">
<comment>health sent when a player clicks on the mob</comment>
</opcode>
<opcode id="ffff" name="OP_DeltaCheck" updated="03/14/07">
<comment>Client sending server delta information.</comment>
</opcode>
<opcode id="ffff" name="OP_LoadSpellSet" updated="02/13/07">
<comment>/mem spellsetname</comment>
</opcode>
<opcode id="ffff" name="OP_Dye" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" 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="ffff" name="OP_Begging" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_LFGCommand" updated="10/27/05">
<comment>old LFGReqCode</comment>
</opcode>
<opcode id="ffff" name="OP_Bug" updated="10/27/05">
<comment>/bug</comment>
</opcode>
<opcode id="ffff" name="OP_Save" updated="04/19/06">
<comment>Client asking server to save user state</comment>
</opcode>
<opcode id="ffff" name="OP_Camp" updated="02/13/07">
<comment>old cStartCampingCode</comment>
</opcode>
<opcode id="ffff" name="OP_ShopPlayerSell" updated="10/27/05">
<comment>old SellItemCode</comment>
</opcode>
<opcode id="ffff" name="OP_PetCommands" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_SaveOnZoneReq" updated="03/14/07">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_ShopEnd" updated="10/27/05">
<comment>old CloseVendorCode</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="ffff" name="OP_SenseTraps" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_SenseHeading" updated="10/27/05">
<comment>old cSenseHeadingCode</comment>
</opcode>
<opcode id="ffff" name="OP_LootComplete" updated="12/07/05">
<comment>old sDoneLootingCode</comment>
</opcode>
<opcode id="ffff" name="OP_Split" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_Surname" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_ShopRequest" updated="10/27/05">
<comment>old OpenVendorCode</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="ffff" name="OP_FaceChange" updated="10/27/05">
<comment>/face</comment>
</opcode>
<opcode id="ffff" name="OP_Sneak" updated="06/29/05">
<comment>Clicked sneak</comment>
</opcode>
<opcode id="ffff" name="OP_Hide" updated="06/29/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_DisarmTraps" updated="05/11/05">
<comment>Clicked disarm traps</comment>
</opcode>
<opcode id="ffff" name="OP_Forage" updated="10/27/05">
<comment>old ForageCode</comment>
</opcode>
<opcode id="ffff" name="OP_BoardBoat" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_LeaveBoat" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_LFPGetMatchesRequest" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_GMKill" updated="10/27/05">
<comment>GM /kill - Insta kill mob/pc</comment>
</opcode>
<opcode id="ffff" name="OP_GuildPublicNote" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_YellForHelp" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_ShopPlayerBuy" updated="05/11/05">
<comment>old BuyItemCode</comment>
</opcode>
<opcode id="ffff" name="OP_LFPCommand" updated="10/27/05">
<comment>looking for players</comment>
</opcode>
<opcode id="ffff" name="OP_ConfirmDelete" updated="10/27/05">
<comment>Client sends this to server to confirm op_deletespawn</comment>
</opcode>
<opcode id="ffff" name="OP_Report" updated="06/29/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_TargetCommand" updated="02/13/07">
<comment>Target user</comment>
</opcode>
<opcode id="ffff" name="OP_LFPGetMatchesResponse" updated="02/13/07">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_FindPersonRequest" updated="02/13/07">
<comment>Control-F Find</comment>
</opcode>
<opcode id="ffff" name="OP_FindResponse" updated="02/13/07">
<comment>Response to control-F</comment>
</opcode>
<opcode id="ffff" name="OP_GMLastName" updated="10/27/05">
<comment>GM /lastname - Change user lastname</comment>
</opcode>
<opcode id="ffff" name="OP_Mend" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_MendHPUpdate" updated="05/11/05">
<comment></comment>
</opcode>
<opcode id="ffff" 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>

ShortBuss
03-13-2013, 06:09 PM
well that was a lot more difficult than expected. Seems finding the first one is hardest then it gets easier from there. Anyway here's the other struct:


struct playerSpawnPosStruct
{
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/ unsigned pitch:12;
signed deltaHeading:10;// change in heading
unsigned padding05:10;
/*0008*/ signed deltaZ:13; // change in z
unsigned heading:12; // heading
unsigned padding01:7;
/*0012*/ signed z:19; // z coord
unsigned padding02:13;
/*0016*/ signed x:19; // x coord
signed deltaX:13; // change in x
/*0020*/ signed y:19; // y coord
signed animation:10; // velocity
unsigned padding04:3;
/*0024*/ signed deltaY:13; // change in y
unsigned padding03:19; //Unknown
/*0028*/
};


Remember to drop that, minus the two ID rows, into the spawnstruct also. I'll update to the new op-codes and see if I can find any further problems.

**Update
Forgot to mention that this also requires a change in spawnshell.cpp to add a 5th line for position data:
spawn->posData[2] = netStream.readUInt32NC();
spawn->posData[3] = netStream.readUInt32NC();
spawn->posData[4] = netStream.readUInt32NC();
spawn->posData[5] = netStream.readUInt32NC();

ShortBuss
03-13-2013, 07:11 PM
To simplify the process, here is the full patch from current SVN. You can drop this into a file and then run "patch -p0 < filename" after either reverting to current SVN or extracting the current SVN to a new location.



Index: src/everquest.h
================================================== =================
--- src/everquest.h (revision 783)
+++ src/everquest.h (working copy)
@@ -1034,7 +1034,7 @@
{
struct
{
- unsigned padding7:1;
+ unsigned gender:1; // Gender (0=male, 1=female)
unsigned AFK:1;
unsigned sneak:1;
unsigned LFG:1;
@@ -1044,7 +1044,7 @@
unsigned gm:1;
unsigned anon:1; // 0=normal, 1=anon, 2=roleplay
unsigned padding4:1;
- unsigned gender:1; // Gender (0=male, 1=female)
+ unsigned padding7:1;
unsigned padding3:1;
unsigned linkdead:1;
unsigned betabuffed:1;
@@ -1076,23 +1076,21 @@
{
struct
{
- signed padding0004:13;
- signed y:19; // y coord
-
- signed deltaX:13; // change in x
- signed deltaHeading:10;// change in heading
- signed padding0008:9;
-
- signed deltaY:13; // change in y
- signed z:19; // z coord
-
- signed x:19; // x coord
- signed animation:10; // animation
- signed padding0016:3;
-
- unsigned heading:12; // heading
- signed deltaZ:13; // change in z
- signed padding0020:7;
+ unsigned pitch:12;
+ signed deltaHeading:10;// change in heading
+ unsigned padding05:10;
+ signed deltaZ:13; // change in z
+ unsigned heading:12; // heading
+ unsigned padding01:7;
+ signed z:19; // z coord
+ unsigned padding02:13;
+ signed x:19; // x coord
+ signed deltaX:13; // change in x
+ signed y:19; // y coord
+ signed animation:10; // velocity
+ unsigned padding04:3;
+ signed deltaY:13; // change in y
+ unsigned padding03:19; //Unknown
};
int32_t posData[5];
};
@@ -1342,7 +1340,8 @@
/*0063*/ uint8_t invertstate; // invert state
/*0064*/ uint32_t zonePoint;
/*0068*/ uint8_t unknown068[28]; // ***Placeholder
-/*0096*/
+/*0096*/ uint8_t unknown096[4]; // ***Placeholder
+/*0100*/
};

/*
@@ -2339,20 +2338,22 @@
{
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
-/*0004*/ signed padding0004:13;
- signed y:19; // y coord
-/*0008*/ signed deltaX:13; // change in x
- signed deltaHeading:10;// change in heading
- signed padding0008:9;
-/*0012*/ signed deltaY:13; // change in y
- signed z:19; // z coord
+/*0004*/ unsigned pitch:12;
+ signed deltaHeading:10;// change in heading
+ unsigned padding05:10;
+/*0008*/ signed deltaZ:13; // change in z
+ unsigned heading:12; // heading
+ unsigned padding01:7;
+/*0012*/ signed z:19; // z coord
+ unsigned padding02:13;
/*0016*/ signed x:19; // x coord
- signed animation:10; // animation
- signed padding0016:3;
-/*0020*/ unsigned heading:12; // heading
- signed deltaZ:13; // change in z
- signed padding0020:7;
-/*0024*/
+ signed deltaX:13; // change in x
+/*0020*/ signed y:19; // y coord
+ signed animation:10; // velocity
+ unsigned padding04:3;
+/*0024*/ signed deltaY:13; // change in y
+ unsigned padding03:19; //Unknown
+/*0028*/
};

/*
@@ -2363,22 +2364,26 @@

struct playerSelfPosStruct
{
-/*0000*/ uint8_t unknown0000[2]; // ***Placeholder (update time counter?)
+/*0000*/ uint16_t unknown0000; // ***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
+/*0004*/ uint16_t unknown0004; // ***Placeholder
+/*0006*/ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding1:20; // ***Placeholder
+/*0010*/ float y; // y coord (2nd loc value)
+/*0014*/ unsigned heading:12; // Directional heading
+ unsigned padding2:10; // ***Placeholder
+ unsigned padding3:10; // ***Placeholder
+/*0018*/ float z; // z coord (3rd loc value)
+/*0022*/ signed animation:10; // velocity
+ unsigned padding6:22; // **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*/
+/*0030*/ float x; // x coord (1st loc value)
+/*0034*/ float deltaX; // Change in x
+/*0038*/ float deltaY; // Change in y
+/*0042*/ signed deltaHeading:10; // change in heading
+ unsigned padding4:10; // ***Placeholder
+ unsigned padding5:12; // ***Placeholder
+/*0048*/
};


Index: src/spawnshell.cpp
================================================== =================
--- src/spawnshell.cpp (revision 783)
+++ src/spawnshell.cpp (working copy)
@@ -501,31 +501,33 @@
#pragma pack(1)
struct pos
{
-/*0002*/ signed padding0000:12; // ***Placeholder
- signed deltaX:13; // change in x
- signed padding0005:7; // ***Placeholder
-/*0006*/ signed deltaHeading:10;// change in heading
- signed deltaY:13; // change in y
- signed padding0006:9; // ***Placeholder
-/*0010*/ signed y:19; // y coord
- signed animation:13; // animation
-/*0014*/ unsigned heading:12; // heading
- signed x:19; // x coord
- signed padding0014:1; // ***Placeholder
-/*0018*/ signed z:19; // z coord
- signed deltaZ:13; // change in z
-/*0022*/
+ /*0000*/ uint16_t spawnId;
+ /*0002*/ uint16_t spawnId2;
+ /*0004*/ unsigned pitch:12;
+ signed z:19; // z coord
+ unsigned padding01:1;
+ /*0008*/ signed deltaX:13; // change in x
+ signed y:19; // y coord
+ /*0012*/ signed deltaHeading:10;// change in heading
+ unsigned heading:12; // heading
+ signed animation:10; // velocity
+ /*0016*/ signed deltaZ:13; // change in z
+ signed x:19; // x coord
+ /*0020*/ signed deltaY:13; // change in y
+ unsigned padding02:19;
+ /*0024*/ unsigned padding03:32; //Unknown
+ /*0028*/
};
#pragma pack(0)
struct pos *p = (struct pos *)(data + i*sizeof(spawnStruct) + 151);
- printf("[%.2x](%f, %f, %f), dx %f dy %f dz %f head %f dhead %f anim %d (%x, %x, %x, %x)\n",
- zspawns[i].spawnId,
- float(p->x)/8.0, float(p->y/8.0), float(p->z)/8.0,
- float(p->deltaX)/4.0, float(p->deltaY)/4.0,
- float(p->deltaZ)/4.0,
- float(p->heading), float(p->deltaHeading),
- p->animation, p->padding0000,
- p->padding0005, p->padding0006, p->padding0014);
+ if (p->spawnId == 0x1234)
+ printf("[%.2x](%f, %f, %f), dx %f dy %f dz %f\n head %d dhead %d anim %d pitch %d (%x, %x, %x)\n",
+ p->spawnId, float(p->x)/8.0, float(p->y/8.0), float(p->z)/8.0,
+ float(p->deltaX)/4.0, float(p->deltaY)/4.0,
+ float(p->deltaZ)/4.0,
+ p->heading, p->deltaHeading,
+ p->animation, p->pitch,
+ p->padding01, p->padding02, p->padding03);
#endif
newSpawn(zspawns[i]);
}
@@ -568,6 +570,7 @@
// skip unknown3, unknown4
netStream.skipBytes(8);

+ /* & 1 is no longer chest/untargetable. It is now /buyer flag as of 01/16/13.
if(spawn->otherData & 1)
{
// it's a chest or untargetable
@@ -596,6 +599,7 @@
// skip the last long
netStream.skipBytes(4);
}
+ */

if(spawn->otherData & 4) // aura stuff
{
@@ -610,19 +614,26 @@
#endif

i = spawn->charProperties;
- do
+ if(i == 0)
+ {
+ spawn->bodytype = 0;
+ }
+ else
{
- nTmp = netStream.readUInt32NC();
+ do
+ {
+ nTmp = netStream.readUInt32NC();

- if(i == spawn->charProperties)
- {
- spawn->bodytype = nTmp;
+ if(i == spawn->charProperties)
+ {
+ spawn->bodytype = nTmp;
#ifdef FILLSPAWNSTRUCT_DIAG
- seqDebug("bodytype = %d", spawn->bodytype);
+ seqDebug("bodytype = %d", spawn->bodytype);
#endif
- }
+ }
+ }
+ while(--i);
}
- while(--i);

spawn->curHp = netStream.readUInt8();
#ifdef FILLSPAWNSTRUCT_DIAG
@@ -696,6 +707,7 @@
spawn->posData[2] = netStream.readUInt32NC();
spawn->posData[3] = netStream.readUInt32NC();
spawn->posData[4] = netStream.readUInt32NC();
+ spawn->posData[5] = netStream.readUInt32NC();

if(spawn->otherData & 16)
{
@@ -882,7 +894,7 @@

if (dir != DIR_Client)
{
- int16_t y = (pupdate->y + pupdate->y) >> 3;
+ int16_t y = pupdate->y >> 3;
int16_t x = pupdate->x >> 3;
int16_t z = pupdate->z >> 3;

@@ -895,32 +907,35 @@
#pragma pack(1)
struct pos
{
-/*0000*/ uint16_t spawnId;
-/*0002*/ uint16_t spawnId2;
-/*0004*/ signed padding0004:13;
- signed y:19; // y coord
-/*0008*/ signed deltaX:13; // change in x
- signed deltaHeading:10;// change in heading
- signed padding0008:9;
-/*0012*/ signed deltaY:13; // change in y
- signed z:19; // z coord
-/*0016*/ signed x:19; // x coord
- signed animation:10; // animation
- signed padding0016:3;
-/*0020*/ unsigned heading:12; // heading
- signed deltaZ:13; // change in z
- signed padding0020:7;
-/*0024*/
+ /*0000*/ uint16_t spawnId;
+ /*0002*/ uint16_t spawnId2;
+ /*0004*/ unsigned pitch:12; // (good @4 ?)
+ signed deltaHeading:10;// change in heading (good?)
+ unsigned padding05:10;
+ /*0008*/ signed deltaZ:13; // change in z (good)
+ unsigned heading:12; // heading
+ unsigned padding01:7;
+ /*0012*/ signed z:19; // z coord (good)
+ unsigned padding02:13;
+ /*0016*/ signed x:19; // x coord (good)
+ signed deltaX:13; // change in x (good)
+ /*0020*/ signed y:19; // y coord (good)
+ signed animation:10; // velocity
+ unsigned padding04:3;
+ /*0024*/ signed deltaY:13; // change in y (good)
+ unsigned padding03:19; //Unknown
+ /*0028*/
};
#pragma pack(0)
struct pos *p = (struct pos *)data;
- printf("[%.2x](%f, %f, %f), dx %f dy %f dz %f head %f dhead %f anim %d (%x, %x, %x, %x)\n",
- p->spawnId, float(p->x)/8.0, float(p->y/8.0), float(p->z)/8.0,
- float(p->deltaX)/4.0, float(p->deltaY)/4.0,
- float(p->deltaZ)/4.0,
- float(p->heading), float(p->deltaHeading),
- p->animation, p->padding0004, p->padding0008,
- p->padding0016, p->padding0020);
+ if (p->spawnId == 0x1234)
+ printf("[%.2x](%f, %f, %f), dx %f dy %f dz %f\n head %d dhead %d anim %d pitch %d (%x, %x, %x, %x, %x)\n",
+ p->spawnId, float(p->x)/8.0, float(p->y/8.0), float(p->z)/8.0,
+ float(p->deltaX)/4.0, float(p->deltaY)/4.0,
+ float(p->deltaZ)/4.0,
+ p->heading, p->deltaHeading,
+ p->animation, p->pitch,
+ p->padding01, p->padding02, p->padding03, p->padding04, p->padding05);
#endif

updateSpawn(pupdate->spawnId, x, y, z, dx, dy, dz,
Index: src/player.cpp
================================================== =================
--- src/player.cpp (revision 783)
+++ src/player.cpp (working copy)
@@ -848,32 +848,37 @@
#pragma pack(1)
struct pos
{
-/*0000*/ uint16_t spawnId; // Player's spawn id
-/*0002*/ uint8_t unknown0002[2]; // ***Placeholder (update time counter?)
-/*0004*/ uint8_t unknown0004[4]; // ***Placeholder
-/*0008*/ float x; // x coord (2nd loc value)
-/*0012*/ float y; // y coord (1st loc value)
-/*0016*/ signed deltaHeading:10; // change in heading
- unsigned animation:10; // animation
- unsigned padding0016:12; // ***Placeholder
-/*0020*/ float deltaX; // Change in x
-/*0024*/ float deltaY; // Change in y
-/*0028*/ float z; // z coord (3rd loc value)
-/*0032*/ float deltaZ; // Change in z
-/*0036*/ unsigned padding0036:10; // animation
- unsigned heading:12; // Directional heading
- unsigned padding0037:10; // ***Placeholder
-/*0040*/
+ /*0000*/ uint16_t unknown0000; // ***Placeholder (update time counter?)
+ /*0002*/ uint16_t spawnId; // Player's spawn id
+ /*0004*/ uint16_t unknown0004; // ***Placeholder
+ /*0006*/ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding1:20; // ***Placeholder
+ /*0010*/ float y; // y coord (2nd loc value)
+ /*0014*/ unsigned heading:12; // Directional heading
+ unsigned padding2:10; // ***Placeholder
+ unsigned padding3:10; // ***Placeholder
+ /*0018*/ float z; // z coord (3rd loc value)
+ /*0022*/ signed animation:10; // velocity
+ unsigned padding6:22; // **Placeholder
+ /*0026*/ float deltaZ; // Change in z
+ /*0030*/ float x; // x coord (1st loc value)
+ /*0034*/ float deltaX; // Change in x
+ /*0038*/ float deltaY; // Change in y
+ /*0042*/ signed deltaHeading:10; // change in heading
+ unsigned padding4:10; // ***Placeholder
+ unsigned padding5:12; // ***Placeholder
+ /*0048*/
};
#pragma pack(0)
struct pos *p = (struct pos *)data;
- printf("[%.2x](%f, %f, %f), dx %f dy %f dz %f head %f dhead %f anim %d (%x, %x, %x, %x)\n",
- p->spawnId, p->x, p->y, p->z,
- p->deltaX, p->deltaY, p->deltaZ,
- float(p->heading), float(p->deltaHeading),
- p->animation, *(uint16_t*) p->unknown0002, p->padding0016,
- p->padding0028,
- *(uint32_t*) p->unknown0004);
+ printf("[%.2x](%f, %f, %f), dx %f dy %f dz %f head %d dhead %d anim %d pitch %d (%x, %x, %x, %x, %x, %x)\n",
+ p->spawnId, p->x, p->y, p->z,
+ p->deltaX, p->deltaY, p->deltaZ,
+ p->heading, p->deltaHeading,
+ p->animation, p->pitch,
+ p->padding1, p->padding2, p->padding3,
+ p->padding4, p->padding5, p->padding6 );
+
#endif

setPos(px, py, pz, showeq_params->walkpathrecord, showeq_params->walkpathlength);
Index: src/player.h
================================================== =================
--- src/player.h (revision 783)
+++ src/player.h (working copy)
@@ -21,7 +21,7 @@

//----------------------------------------------------------------------
// constants
-const int maxSpawnLevel = 100;
+const int maxSpawnLevel = 255;

enum ColorLevel
{
Index: src/spawn.cpp
================================================== =================
--- src/spawn.cpp (revision 783)
+++ src/spawn.cpp (working copy)
@@ -418,7 +418,7 @@
{
setName(s->name);
setLastName(s->lastName);
- setPos(s->x >> 3, (s->y + s->y) >> 3, s->z >> 3);
+ setPos(s->x >> 3, s->y >> 3, s->z >> 3);
setPetOwnerID(s->petOwnerId);
setLight(s->light);
setGender(s->gender);
Index: conf/zoneopcodes.xml
================================================== =================
--- conf/zoneopcodes.xml (revision 783)
+++ conf/zoneopcodes.xml (working copy)
@@ -3,231 +3,231 @@
<seqopcodes>

<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="46bb" name="OP_PlayerProfile" updated="12/12/12">
+ <opcode id="48b7" name="OP_PlayerProfile" updated="03/13/13">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1665" name="OP_ZoneEntry" updated="12/12/12">
+ <opcode id="9e82" name="OP_ZoneEntry" updated="03/13/13">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3be2" name="OP_TimeOfDay" updated="12/12/12">
+ <opcode id="6665" name="OP_TimeOfDay" updated="03/13/13">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7fff" name="OP_NewZone" updated="12/12/12">
+ <opcode id="23ef" name="OP_NewZone" updated="03/13/13">
<comment>NewZoneCode</comment>
<payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7b6c" name="OP_SpawnDoor" updated="12/12/12">
+ <opcode id="5ab7" name="OP_SpawnDoor" updated="03/13/13">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="4286" name="OP_GroundSpawn" updated="12/12/12">
+ <opcode id="6410" name="OP_GroundSpawn" updated="03/13/13">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7922" name="OP_SendZonePoints" updated="12/12/12">
+ <opcode id="2694" name="OP_SendZonePoints" updated="03/13/13">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="25C5" name="OP_AAExpUpdate" updated="12/12/12">
+ <opcode id="0eae" name="OP_AAExpUpdate" updated="02/13/13">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="47E3" name="OP_ExpUpdate" updated="12/12/12">
+ <opcode id="7814" name="OP_ExpUpdate" updated="02/13/13">
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0561" name="OP_GuildMOTD" updated="12/12/12">
+ <opcode id="5906" name="OP_GuildMOTD" updated="03/13/13">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</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>
+ <opcode id="1ad3" name="OP_ClientUpdate" updated="03/13/13">
+ <comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5BD9" name="OP_NpcMoveUpdate" updated="12/12/12">
+ <opcode id="1df9" name="OP_NpcMoveUpdate" updated="03/13/13">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="6b5a" name="OP_MobUpdate" updated="12/12/12">
+ <opcode id="3c0e" name="OP_MobUpdate" updated="03/13/13">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="3c8e" name="OP_DeleteSpawn" updated="12/12/12">
+ <opcode id="17f1" name="OP_DeleteSpawn" updated="03/13/13">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3B06" name="OP_RemoveSpawn" updated="12/12/12">
+ <opcode id="49e0" name="OP_RemoveSpawn" updated="03/13/13">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="3a65" name="OP_Death" updated="12/12/12">
+ <opcode id="43a6" name="OP_Death" updated="03/13/13">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1ad3" name="OP_WearChange" updated="12/12/12">
+ <opcode id="18ea" name="OP_WearChange" updated="03/13/13">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7360" name="OP_SpawnAppearance" updated="12/12/12">
+ <opcode id="3fe5" name="OP_SpawnAppearance" updated="03/13/13">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1949" name="OP_Stamina" updated="12/12/12">
+ <opcode id="54fb" name="OP_Stamina" updated="02/13/13">
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
- <opcode id="07b8" name="OP_HPUpdate" updated="12/12/12">
+ <opcode id="462c" name="OP_HPUpdate" updated="03/13/13">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0048" name="OP_GuildMemberUpdate" updated="12/12/12">
+ <opcode id="6719" name="OP_GuildMemberUpdate" updated="02/13/13">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="7992" name="OP_ClickObject" updated="12/12/12">
+ <opcode id="00c6" name="OP_ClickObject" updated="03/13/13">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0ea7" name="OP_Action" updated="12/12/12">
+ <opcode id="4965" name="OP_Action" updated="03/13/13">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5428" name="OP_Action2" updated="12/12/12">
+ <opcode id="002e" name="OP_Action2" updated="03/13/13">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="4d8d" name="OP_Consider" updated="12/12/12">
+ <opcode id="476f" name="OP_Consider" updated="03/13/13">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0e25" name="OP_TargetMouse" updated="12/12/12">
+ <opcode id="698f" name="OP_TargetMouse" updated="03/13/13">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5040" name="OP_SpawnRename" updated="12/12/12">
+ <opcode id="362a" name="OP_SpawnRename" updated="03/13/13">
<comment>Spawns getting renamed after initial NewSpawn</comment>
<payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6C43" name="OP_Illusion" updated="12/12/12">
+ <opcode id="739c" name="OP_Illusion" updated="03/13/13">
<comment>Spawn being illusioned (changing forms)</comment>
<payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0747" name="OP_Shroud" updated="12/12/12">
+ <opcode id="0a43" name="OP_Shroud" updated="03/13/13">
<comment>Server putting players into shroud form</comment>
<payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
</opcode>
- <opcode id="1EB4" name="OP_ZoneChange" updated="12/12/12">
+ <opcode id="6976" name="OP_ZoneChange" updated="03/13/13">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1602" name="OP_GroupInvite" updated="12/12/12">
+ <opcode id="4533" name="OP_GroupInvite" updated="03/13/13">
<payload dir="both" typename="groupInviteStruct" sizechecktype="none"/>
<comment>You invite someone while ungrouped or get invited by someone ungrouped </comment>
</opcode>
- <opcode id="6E80" name="OP_GroupInvite2" updated="12/12/12">
+ <opcode id="1a45" name="OP_GroupInvite2" updated="03/13/13">
<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="2B26" name="OP_GroupCancelInvite" updated="12/12/12">
+ <opcode id="2fb6" name="OP_GroupCancelInvite" updated="03/13/13">
<payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
<comment>Declining to join a group</comment>
</opcode>
- <opcode id="0BA4" name="OP_GroupFollow" updated="12/12/12">
+ <opcode id="2b6a" name="OP_GroupFollow" updated="03/13/13">
<payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
<comment>You join a group or player joins group</comment>
</opcode>
- <opcode id="5FAE" name="OP_GroupFollow2" updated="12/12/12">
+ <opcode id="5fae" name="OP_GroupFollow2" updated="12/12/12">
<payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
<comment>Player joins your group</comment>
</opcode>
- <opcode id="5A07" name="OP_GroupUpdate" updated="12/12/12">
- <comment>Group member names - Variable length</comment>
+ <opcode id="7056" name="OP_GroupUpdate" updated="01/16/13">
+ <comment>Group updates</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="623D" name="OP_GroupDisband" updated="12/12/12">
+ <opcode id="34d7" name="OP_GroupDisband" updated="03/13/13">
<comment>You disband from group</comment>
<payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
</opcode>
- <opcode id="74FA" name="OP_GroupDisband2" updated="12/12/12">
+ <opcode id="39f0" name="OP_GroupDisband2" updated="03/13/13">
<comment>Other disbands from group</comment>
<payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
</opcode>
- <opcode id="46FC" name="OP_GroupLeader" updated="12/12/12">
+ <opcode id="00f0" name="OP_GroupLeader" updated="03/13/13">
<comment>Group leader change</comment>
<payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/>
</opcode>
- <opcode id="08ED" name="OP_Buff" updated="12/12/12">
+ <opcode id="08ed" name="OP_Buff" updated="12/12/12">
<comment>old BuffDropCode</comment>
<payload dir="both" typename="buffStruct" sizechecktype="match"/>
</opcode>
- <opcode id="41cb" name="OP_BuffFadeMsg" updated="12/12/12">
+ <opcode id="46b9" name="OP_BuffFadeMsg" updated="03/13/13">
<comment>SpellFadeCode</comment>
<payload dir="both" typename="spellFadedStruct" sizechecktype="none"/>
</opcode>
- <opcode id="17FF" name="OP_BeginCast" updated="12/12/12">
+ <opcode id="436d" name="OP_BeginCast" updated="03/13/13">
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1cb5" name="OP_CastSpell" updated="12/12/12">
+ <opcode id="56ab" name="OP_CastSpell" updated="03/13/13">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4736" name="OP_SwapSpell" updated="12/12/12">
+ <opcode id="21d2" name="OP_SwapSpell" updated="03/13/13">
<comment>TradeSpellBookSlotsCode</comment>
<payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2FAC" name="OP_MemorizeSpell" updated="12/12/12">
+ <opcode id="4d4b" name="OP_MemorizeSpell" updated="03/13/13">
<comment>MemSpellCode</comment>
<payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5794" name="OP_InspectAnswer" updated="12/12/12">
+ <opcode id="5168" name="OP_InspectAnswer" updated="03/13/13">
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
- <opcode id="37FD" name="OP_Emote" updated="12/12/12">
+ <opcode id="4773" name="OP_Emote" updated="03/13/13">
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="02A5" name="OP_SimpleMessage" updated="12/12/12">
+ <opcode id="0e87" name="OP_SimpleMessage" updated="03/13/13">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6AFE" name="OP_FormattedMessage" updated="12/12/12">
+ <opcode id="69ee" name="OP_FormattedMessage" updated="03/13/13">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="33BC" name="OP_CommonMessage" updated="12/12/12">
+ <opcode id="1f4e" name="OP_CommonMessage" updated="03/13/13">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="362C" name="OP_SpecialMesg" updated="12/12/12">
+ <opcode id="76d5" name="OP_SpecialMesg" updated="03/13/13">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="59DB" name="OP_RandomReq" updated="12/12/12">
+ <opcode id="3599" name="OP_RandomReq" updated="03/13/13">
<comment>RandomReqCode</comment>
<payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6525" name="OP_RandomReply" updated="12/12/12">
+ <opcode id="467d" name="OP_RandomReply" updated="03/13/13">
<comment>RandomCode</comment>
<payload dir="server" typename="randomStruct" sizechecktype="match"/>
</opcode>
- <opcode id="183D" name="OP_ConsentResponse" updated="12/12/12">
+ <opcode id="183d" name="OP_ConsentResponse" updated="12/12/12">
<comment>Server replying with consent information after /consent</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="344A" name="OP_DenyResponse" updated="12/12/12">
+ <opcode id="344a" name="OP_DenyResponse" updated="12/12/12">
<comment>Server replying with deny information after /deny</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1E3B" name="OP_ManaChange" updated="12/12/12">
+ <opcode id="7db5" name="OP_ManaChange" updated="03/13/13">
<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"/>
@@ -238,19 +238,19 @@
<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="1837" name="OP_MoneyOnCorpse" updated="12/12/12">
+ <opcode id="2a0f" name="OP_MoneyOnCorpse" updated="01/16/13">
<comment>MoneyOnCorpseCode</comment>
<payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="52C6" name="OP_SkillUpdate" updated="12/12/12">
+ <opcode id="2389" name="OP_SkillUpdate" updated="12/12/12">
<comment>Skill up code</comment>
<payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7CE0" name="OP_LevelUpdate" updated="12/12/12">
+ <opcode id="7ce0" name="OP_LevelUpdate" updated="12/12/12">
<comment>LevelUpUpdateCode - causing crashes as of 12/08/12 Investigating</comment>
<payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5437" name="OP_CorpseLocResponse" updated="12/12/12">
+ <opcode id="ffff" name="OP_CorpseLocResponse" updated="12/12/12">
<comment>old CorpseLocCode:</comment>
<payload dir="server" typename="corpseLocStruct" sizechecktype="match"/>
</opcode>
@@ -258,7 +258,7 @@
<comment></comment>
<payload dir="server" typename="none" sizechecktype="match"/>
</opcode>
- <opcode id="0e01" name="OP_DzSwitchInfo" updated="12/12/12">
+ <opcode id="3dfd" name="OP_DzSwitchInfo" updated="03/13/13">
<comment>Expedition compass etc</comment>
<payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
</opcode>
@@ -268,7 +268,7 @@
</opcode>

<!-- Not necessary for SEQ to run but here to name packets in logs. -->
- <opcode id="7a19" name="OP_MovementHistory" updated="12/12/12">
+ <opcode id="42e1" name="OP_MovementHistory" updated="03/13/13">
<comment>Movement history for speed/movement hack detection</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -297,7 +297,7 @@
<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">
+ <opcode id="0518" name="OP_EnvDamage" updated="01/16/13">
<comment>Environmental Damage</comment>
<payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/>
</opcode>
@@ -305,23 +305,23 @@
<comment>old cRunToggleCode</comment>
<payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/>
</opcode>
- <opcode id="71f5" name="OP_UIUpdate" updated="12/12/12">
+ <opcode id="3e45" name="OP_UIUpdate" updated="03/13/13">
<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">
+ <opcode id="2aca" name="OP_GroupMemberList" updated="01/16/13">
<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">
+ <opcode id="4f53" name="OP_GuildMemberList" updated="03/13/13">
<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">
+ <opcode id="48e4" name="OP_ManaUpdate" updated="03/13/13">
<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">
+ <opcode id="1e36" name="OP_EndUpdate" updated="03/13/13">
<comment>Endurance Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -341,7 +341,7 @@
<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">
+ <opcode id="7802" name="OP_SelectCampfire" updated="01/16/13">
<comment>Fellowship campfire Choices - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -349,19 +349,19 @@
<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">
+ <opcode id="3b17" name="OP_VoiceChat" updated="03/13/13">
<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">
+ <opcode id="65b6" name="OP_PollQuestions" updated="03/13/13">
<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">
+ <opcode id="00e0" name="OP_PollResponses" updated="03/13/13">
<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">
+ <opcode id="68f0" name="OP_ShroudProgression" updated="03/13/13">
<comment>Unlocked shrouds - 244 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -369,15 +369,15 @@
<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">
+ <opcode id="7eb8" name="OP_Fellowship" updated="03/13/13">
<comment>Fellowship information - 2564 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="7851" name="OP_ExpandedGuildInfo" updated="12/12/12">
+ <opcode id="3d53" name="OP_ExpandedGuildInfo" updated="03/13/13">
<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">
+ <opcode id="6f73" name="OP_GuildBank" updated="03/13/13">
<comment>Guild bank contents - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -401,23 +401,23 @@
<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">
+ <opcode id="3efe" name="OP_ItemPlayerPacket" updated="03/13/13">
<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">
+ <opcode id="2b71" name="OP_TaskDescription" updated="03/13/13">
<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">
+ <opcode id="53b3" name="OP_TaskActivity" updated="03/13/13">
<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">
+ <opcode id="7c6b" name="OP_CompletedTasks" updated="03/13/13">
<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">
+ <opcode id="3fab" name="OP_CustomTitles" updated="03/13/13">
<comment>List of available titles - 1520 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -441,10 +441,6 @@
<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"/>
@@ -533,7 +529,7 @@
<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">
+ <opcode id="6988" name="OP_RaidJoin" updated="03/13/13">
<comment>Server side raid information - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -553,7 +549,7 @@
<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">
+ <opcode id="7f41" name="OP_MercenaryList" updated="03/13/13">
<comment>Listing of hired mercenaries - 429 bytes
<payload dir="server" typename="unknown" sizechecktype="none"/></comment>
</opcode>
@@ -573,11 +569,11 @@
<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">
+ <opcode id="1a58" name="OP_HouseAddress" updated="03/13/13">
<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">
+ <opcode id="49b7" name="OP_HouseContents" updated="03/13/13">
<comment>Server sending house information and contents - variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -593,11 +589,11 @@
<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">
+ <opcode id="4ee2" name="OP_FTPNags" updated="03/13/13">
<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">
+ <opcode id="6788" name="OP_Find" updated="03/13/13">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -605,22 +601,22 @@
<comment>ConCorpseCode - 20 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="0000" name="OP_TributeUpdate" updated="11/28/12">
+ <opcode id="ffff" 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">
+ <opcode id="0294" name="OP_Unknown1" updated="03/13/13">
<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">
+ <opcode id="752a" name="OP_Unknown2" updated="01/16/13">
<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">
+ <opcode id="244c" name="OP_Unknown3" updated="01/16/13">
<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>
@@ -629,188 +625,188 @@



- <opcode id="0000" name="OP_RequestZoneChange" updated="10/20/07">
+ <opcode id="ffff" 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_WelcomeScreenTitle" updated="05/16/11">
+ <opcode id="ffff" name="OP_WelcomeScreenTitle" updated="05/16/11">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_VeteranRewards" update="04/18/11">
+ <opcode id="ffff" name="OP_VeteranRewards" update="04/18/11">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_SendAATable" updated="08/12/09">
+ <opcode id="ffff" name="OP_SendAATable" updated="08/12/09">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_SendAAStats" updated="08/12/09">
+ <opcode id="ffff" name="OP_SendAAStats" updated="08/12/09">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_AckPacket" updated="03/14/07">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" name="OP_Weather" updated="03/14/07">
<comment>old WeatherCode</comment>
</opcode>
- <opcode id="0000" name="OP_ReqNewZone" updated="03/14/07">
+ <opcode id="ffff" name="OP_ReqNewZone" updated="03/14/07">
<comment>Client requesting NewZone_Struct</comment>
</opcode>
- <opcode id="0000" name="OP_ReqClientSpawn" updated="03/14/07">
+ <opcode id="ffff" name="OP_ReqClientSpawn" updated="03/14/07">
<comment>Client requesting spawn data</comment>
</opcode>
- <opcode id="0000" name="OP_SendExpZonein" updated="03/14/07">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" name="OP_ClientReady" updated="03/14/07">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_GuildTributeStatus" updated="03/14/07">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" name="OP_LoadSpellSet" updated="02/13/07">
<comment>/mem spellsetname</comment>
</opcode>
- <opcode id="0000" name="OP_Dye" updated="10/27/05">
+ <opcode id="ffff" name="OP_Dye" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_Consume" updated="12/07/05">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" name="OP_Begging" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_LFGCommand" updated="10/27/05">
+ <opcode id="ffff" name="OP_LFGCommand" updated="10/27/05">
<comment>old LFGReqCode</comment>
</opcode>
- <opcode id="0000" name="OP_Bug" updated="10/27/05">
+ <opcode id="ffff" name="OP_Bug" updated="10/27/05">
<comment>/bug</comment>
</opcode>
- <opcode id="0000" name="OP_Save" updated="04/19/06">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" name="OP_Camp" updated="02/13/07">
<comment>old cStartCampingCode</comment>
</opcode>
- <opcode id="0000" name="OP_ShopPlayerSell" updated="10/27/05">
+ <opcode id="ffff" name="OP_ShopPlayerSell" updated="10/27/05">
<comment>old SellItemCode</comment>
</opcode>
- <opcode id="0000" name="OP_PetCommands" updated="10/27/05">
+ <opcode id="ffff" name="OP_PetCommands" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_SaveOnZoneReq" updated="03/14/07">
+ <opcode id="ffff" name="OP_SaveOnZoneReq" updated="03/14/07">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_ShopEnd" updated="10/27/05">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" name="OP_SenseTraps" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_SenseHeading" updated="10/27/05">
+ <opcode id="ffff" name="OP_SenseHeading" updated="10/27/05">
<comment>old cSenseHeadingCode</comment>
</opcode>
- <opcode id="0000" name="OP_LootComplete" updated="12/07/05">
+ <opcode id="ffff" name="OP_LootComplete" updated="12/07/05">
<comment>old sDoneLootingCode</comment>
</opcode>
- <opcode id="0000" name="OP_Split" updated="10/27/05">
+ <opcode id="ffff" name="OP_Split" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_Surname" updated="10/27/05">
+ <opcode id="ffff" name="OP_Surname" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_ShopRequest" updated="10/27/05">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" name="OP_FaceChange" updated="10/27/05">
<comment>/face</comment>
</opcode>
- <opcode id="0000" name="OP_Sneak" updated="06/29/05">
+ <opcode id="ffff" name="OP_Sneak" updated="06/29/05">
<comment>Clicked sneak</comment>
</opcode>
- <opcode id="0000" name="OP_Hide" updated="06/29/05">
+ <opcode id="ffff" name="OP_Hide" updated="06/29/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_DisarmTraps" updated="05/11/05">
+ <opcode id="ffff" name="OP_DisarmTraps" updated="05/11/05">
<comment>Clicked disarm traps</comment>
</opcode>
- <opcode id="0000" name="OP_Forage" updated="10/27/05">
+ <opcode id="ffff" name="OP_Forage" updated="10/27/05">
<comment>old ForageCode</comment>
</opcode>
- <opcode id="0000" name="OP_BoardBoat" updated="10/27/05">
+ <opcode id="ffff" name="OP_BoardBoat" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_LeaveBoat" updated="10/27/05">
+ <opcode id="ffff" name="OP_LeaveBoat" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_LFPGetMatchesRequest" updated="10/27/05">
+ <opcode id="ffff" name="OP_LFPGetMatchesRequest" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_GMKill" updated="10/27/05">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" name="OP_GuildPublicNote" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_YellForHelp" updated="10/27/05">
+ <opcode id="ffff" name="OP_YellForHelp" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_ShopPlayerBuy" updated="05/11/05">
+ <opcode id="ffff" name="OP_ShopPlayerBuy" updated="05/11/05">
<comment>old BuyItemCode</comment>
</opcode>
- <opcode id="0000" name="OP_LFPCommand" updated="10/27/05">
+ <opcode id="ffff" name="OP_LFPCommand" updated="10/27/05">
<comment>looking for players</comment>
</opcode>
- <opcode id="0000" name="OP_ConfirmDelete" updated="10/27/05">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" name="OP_Report" updated="06/29/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_TargetCommand" updated="02/13/07">
+ <opcode id="ffff" name="OP_TargetCommand" updated="02/13/07">
<comment>Target user</comment>
</opcode>
- <opcode id="0000" name="OP_LFPGetMatchesResponse" updated="02/13/07">
+ <opcode id="ffff" name="OP_LFPGetMatchesResponse" updated="02/13/07">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_FindPersonRequest" updated="02/13/07">
+ <opcode id="ffff" name="OP_FindPersonRequest" updated="02/13/07">
<comment>Control-F Find</comment>
</opcode>
- <opcode id="0000" name="OP_FindResponse" updated="02/13/07">
+ <opcode id="ffff" name="OP_FindResponse" updated="02/13/07">
<comment>Response to control-F</comment>
</opcode>
- <opcode id="0000" name="OP_GMLastName" updated="10/27/05">
+ <opcode id="ffff" 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">
+ <opcode id="ffff" name="OP_Mend" updated="10/27/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_MendHPUpdate" updated="05/11/05">
+ <opcode id="ffff" name="OP_MendHPUpdate" updated="05/11/05">
<comment></comment>
</opcode>
- <opcode id="0000" name="OP_TributeInfo" updated="02/13/07">
+ <opcode id="ffff" name="OP_TributeInfo" updated="02/13/07">
<comment>Tribute information</comment>
</opcode>

@@ -1012,4 +1008,4 @@
<comment></comment>
</opcode>
-->
-</seqopcodes>
+</seqopcodes>
\ No newline at end of file

fransick
03-13-2013, 07:12 PM
Nice work SB!

I was able to eliminate the spawnshell warnings by adding:
spawn->posData[5] = netStream.readUInt32NC(); after
spawn->posData[0] = netStream.readUInt32NC();
spawn->posData[1] = netStream.readUInt32NC();
spawn->posData[2] = netStream.readUInt32NC();
spawn->posData[3] = netStream.readUInt32NC();
spawn->posData[4] = netStream.readUInt32NC();
around line 705

ShortBuss
03-13-2013, 07:24 PM
Sorry I should have mentioned that when I provided the updated struct. I updated that post to avoid confusion. Everything seems to be working so far.