Page 3 of 6 FirstFirst 12345 ... LastLast
Results 31 to 45 of 89

Thread: Is Showeq working these days?

  1. #31
    Developer
    Join Date
    Sep 2005
    Posts
    155

    Re: Is Showeq working these days?

    Ok, it sounds like I need to ID two opcodes then. I tried that code in both of those with no success, but I get what you are saying I think. I'll look around tonight. Thanks!

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

    Re: Is Showeq working these days?

    I wish I had some logs to help. I just got it up and running tonight. There are still some things that are not working. Hopefully the opcodes can be found. When they are, Ill put out a new tarball (and/or svn if I can figure out how to update it).
    Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz

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

    Famous Quotes:

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

    Razzle: I showeq my wife

  3. #33
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: Is Showeq working these days?

    I will have some time later this week to update more opcodes if that helps. I've gotten pretty good at figuring out most of them but didn't have time to do more than mess around in the lobby before heading out of town for vacation.
    Last edited by fransick; 07-03-2012 at 12:52 PM. Reason: spelling

  4. #34
    Did you SEQ today? BlueAdept's Avatar
    Join Date
    Dec 2001
    Posts
    2,008

    Re: Is Showeq working these days?

    Not a problem. I just dont want to do a release and then have to update the release a couple days later. It has been a while since an actual release and needs everquest.h and zoneopcodes.xml updated in the tarball for it to function. Now that EQ is FTP, even after my Gold membership is up, I will try to keep the tarballs and svn up to date.
    Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz

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

    Famous Quotes:

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

    Razzle: I showeq my wife

  5. #35
    Registered User
    Join Date
    Oct 2002
    Posts
    40

    Re: Is Showeq working these days?

    Some handy opcodes:

    799c newCorpseStruct
    58c5 removeSpawnStruct

  6. #36
    Did you SEQ today? BlueAdept's Avatar
    Join Date
    Dec 2001
    Posts
    2,008

    Re: Is Showeq working these days?

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

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

    Famous Quotes:

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

    Razzle: I showeq my wife

  7. #37
    Developer
    Join Date
    Sep 2005
    Posts
    155

    Re: Is Showeq working these days?

    Thanks, it looks good. Boy, was I off on the mod death one. I still need to do some skillups.

  8. #38
    Did you SEQ today? BlueAdept's Avatar
    Join Date
    Dec 2001
    Posts
    2,008

    Re: Is Showeq working these days?

    I still have not really had a chance to use SEQ. Im still working on updating my gear and relearning how to use my toons. Any one notice anything else off or missing? If not, Ill make a new tarball.
    Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz

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

    Famous Quotes:

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

    Razzle: I showeq my wife

  9. #39
    Developer
    Join Date
    Sep 2005
    Posts
    155

    Re: Is Showeq working these days?

    The only other thing I noticed was I was seeing more than 54 players in an instance on a raid, which leads me to believe it's missing player despawns. I won't know if those latest opcodes fix that for a few more days.

  10. #40
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: Is Showeq working these days?

    Here's an updated complete zoneopcodes.xml. Checked most everything several times and it looks good as far as I can see. Holler if I missed anything.

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE seqopcodes SYSTEM "seqopcodes.dtd">
    <seqopcodes>
    
        <!-- Critical opcodes used directly by ShowEQ -->
        <opcode id="4f35" name="OP_NpcMoveUpdate" updated="06/27/12">
            <comment>Position updates</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="666d" name="OP_MovementHistory" updated="06/27/12">
            <comment>Movement data... rewind info?</comment>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="6c36" name="OP_DeleteSpawn" updated="06/27/12">
            <comment>DeleteSpawnCode</comment>
            <payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="4892" name="OP_ZoneEntry" updated="06/27/12">
            <comment>ZoneEntryCode</comment>
            <payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
        <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="4e19" name="OP_GuildMOTD" updated="06/27/12">
            <comment>GuildMOTD</comment>
            <payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="13da" name="OP_InspectAnswer" updated="06/27/12">
            <comment>InspectDataCode</comment>
            <payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="6dee" name="OP_TargetMouse" updated="06/27/12">
            <comment>Targeting a person - old ClientTargetCode</comment>
            <payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="169a" name="OP_Shroud" updated="06/27/12">
            <comment>Server putting players into shroud form</comment>
            <payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
        </opcode>
        <opcode id="5613" name="OP_GroupInvite" updated="06/27/12">
            <payload dir="both" typename="groupInviteStruct" sizechecktype="none"/>
            <comment>You invite someone while ungrouped or get invited by someone ungrouped </comment>
        </opcode>
        <opcode id="2736" name="OP_GroupInvite2" updated="06/27/12">
            <payload dir="client" typename="groupInviteStruct" sizechecktype="match"/>
            <comment>You're inviting someone and you are grouped or get invited by a group</comment>
        </opcode>
        <opcode id="7139" name="OP_GroupFollow" updated="06/27/12">
            <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
            <comment>You join a group or player joins group</comment>
        </opcode>
        <opcode id="9999" name="OP_GroupFollow2" updated="06/27/12">
            <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
            <comment>Player joins your group</comment>
        </opcode>
        <opcode id="367f" name="OP_GroupDisband" updated="06/27/12">
            <comment>You disband from group</comment>
            <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="3352" name="OP_GroupDisband2" updated="06/27/12">
            <comment>Other disbands from group</comment>
            <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="44c2" name="OP_GroupLeader" updated="06/27/12">
            <comment>Group leader change</comment>
            <payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="6c16" name="OP_GroupCancelInvite" updated="06/27/12">
            <payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
            <comment>Declining to join a group</comment>
        </opcode>
        <opcode id="194f" name="OP_DzSwitchInfo" updated="03/23/12">
            <comment>Expedition compass etc</comment>
            <payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
        </opcode>
        <opcode id="7fd7" name="OP_DzInfo" updated="06/27/12">
            <comment>Expedition Information</comment>
            <payload dir="server" typename="dzInfo" sizechecktype="match"/>
        </opcode>
        <opcode id="7092" name="OP_FormattedMessage" updated="06/27/12">
            <comment>FormattedMessageCode</comment>
            <payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="5a55" name="OP_SpawnDoor" updated="06/27/12">
            <comment>DoorSpawnsCode</comment>
            <payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
        </opcode>
        <opcode id="783c" name="OP_AAExpUpdate" updated="06/27/12">
          <comment>Receiving AA experience. Also when percent to AA changes.</comment>
          <payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="2370" name="OP_HPUpdate" updated="06/27/12">
            <comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
            <payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="79c9" name="OP_GuildMemberUpdate" updated="06/27/12">
            <comment>Info regarding guild members</comment>
            <payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
        </opcode>
        <opcode id="0598" name="OP_SpawnRename" updated="06/27/12">
            <comment>Spawns getting renamed after initial NewSpawn</comment>
            <payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="63c7" name="OP_SwapSpell" updated="06/27/12">
            <comment>TradeSpellBookSlotsCode</comment>
            <payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="4675" name="OP_SimpleMessage" updated="06/27/12">
            <comment>SimpleMessageCode</comment>
            <payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="2e4f" name="OP_SpecialMesg" updated="06/27/12">
            <comment>Communicate textual info to client</comment>
            <payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="30a4" name="OP_RandomReq" updated="06/27/12">
            <comment>RandomReqCode</comment>
            <payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="29df" name="OP_ConsentResponse" updated="06/27/12">
            <comment>Server replying with consent information after /consent</comment>
            <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="032b" name="OP_DenyResponse" updated="06/27/12">
            <comment>Server replying with deny information after /deny</comment>
            <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="058c" name="OP_BazaarSearch" updated="06/27/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</comment>
        </opcode>
        <opcode id="7b64" name="OP_SpawnUpdate" updated="06/27/12">
            <comment>SpawnUpdateCode</comment>
            <payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="3d00" name="OP_Stamina" updated="06/27/12">
            <comment>Server updating on hunger/thirst</comment>
            <payload dir="server" typename="staminaStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="30e2" name="OP_Consider" updated="06/27/12">
            <comment>ConsiderCode</comment>
            <payload dir="both" typename="considerStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="4118" name="OP_NewZone" updated="06/27/12">
            <comment>NewZoneCode</comment>
            <payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="5c85" name="OP_GroundSpawn" updated="06/27/12">
            <comment>MakeDropCode</comment>
            <payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="58c5" name="OP_RemoveSpawn" updated="06/27/12">
            <comment>Remove spawn from zone</comment>
        <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="799c" name="OP_Death" updated="06/27/12">
            <comment>old NewCorpseCode</comment>
            <payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="33e5" name="OP_ClickObject" updated="06/27/12">
            <comment>Items dropped on the ground</comment>
            <payload dir="both" typename="remDropStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="7f9e" name="OP_Action" updated="06/27/12">
            <comment>Spells cast etc</comment>
            <payload dir="both" typename="actionStruct" sizechecktype="match"/>
            <payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="3ea8" name="OP_Action2" updated="06/27/12">
            <comment>Combat actions i.e. bash, kick etc</comment>
            <payload dir="both" typename="action2Struct" sizechecktype="match"/>
        </opcode>
        <opcode id="4843" name="OP_Illusion" updated="06/27/12">
            <comment>Spawn being illusioned (changing forms)</comment>
            <payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="1b8a" name="OP_BuffFadeMsg" updated="06/27/12">
            <comment>SpellFadeCode</comment>
            <payload dir="both" typename="spellFadedStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="8543" name="OP_CastSpell" updated="06/27/12">
            <comment>StartCastCode</comment>
            <payload dir="both" typename="startCastStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="569e" name="OP_MemorizeSpell" updated="06/27/12">
            <comment>MemSpellCode</comment>
            <payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="3164" name="OP_Emote" updated="06/27/12">
            <comment>EmoteTextCode</comment>
            <payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="07fb" name="OP_RandomReply" updated="06/27/12">
            <comment>RandomCode</comment>
            <payload dir="server" typename="randomStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="3887" name="OP_ManaChange" updated="06/27/12">
            <comment>Mana change. Bards send this up with no size. Casters receive this for mana updates.</comment>
            <payload dir="server" typename="manaDecrementStruct" sizechecktype="match"/>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="7165" name="OP_MoneyOnCorpse" updated="06/27/12">
            <comment>MoneyOnCorpseCode</comment>
            <payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="6afd" name="OP_PlayerProfile" updated="06/27/12">
            <comment>CharProfileCode</comment>
            <payload dir="server" typename="charProfileStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="6015" name="OP_TimeOfDay" updated="06/27/12">
            <comment>TimeOfDayCode</comment>
            <payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="7062" name="OP_ClientUpdate" updated="06/27/12">
            <comment>Position updates</comment>
            <payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
            <payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0d5a" name="OP_BeginCast" updated="06/27/12">
            <comment>BeginCastCode</comment>
            <payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="2e79" name="OP_CommonMessage" updated="06/27/12">
            <comment>ChannelMessageCode</comment>
            <payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="7f01" name="OP_SkillUpdate" updated="06/27/12">
            <comment>Skill up code</comment>
            <payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="5488" name="OP_SpawnAppearance" updated="06/27/12">
            <comment>SpawnAppearanceCode</comment>
            <payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_ExpUpdate" updated="06/27/12">
            <comment>ExpUpdateCode - opcode looks to be 221a as of 06/27/12 but that value causes seg faults for some reason</comment>
            <payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="6e1c" name="OP_LevelUpdate" updated="06/27/12">
            <comment>LevelUpUpdateCode</comment>
            <payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="1af0" name="OP_LeaderExpUpdate" updated="06/27/12">
            <comment>Leadership AA Exp Update</comment>
            <payload dir="server" typename="leadExpUpdateStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="4656" name="OP_MobUpdate" updated="06/27/12">
            <comment>MobUpdateCode</comment>
            <payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
        </opcode>
        <opcode id="4aa2" name="OP_Trader" updated="06/27/12">
            <comment>PC's turning trader on and off</comment>
            <payload dir="server" typename="bazaarTraderRequest" sizechecktype="match"/>
        </opcode>
        <opcode id="6bb9" name="OP_Consent" updated="06/27/12">
            <comment>/consent someone</comment>
            <payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="0370" name="OP_ConsentDeny" updated="06/27/12">
            <comment>/deny someone</comment>
            <payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="399b" name="OP_ItemPacket" updated="06/27/12">
            <comment>ItemCode</comment>
            <payload dir="server" typename="itemPacketStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="521c" name="OP_ItemLinkResponse" updated="06/27/12">
            <comment>ItemInfoCode</comment>
            <payload dir="server" typename="itemInfoStruct" sizechecktype="none"/>
            <payload dir="client" typename="itemInfoReqStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="0254" name="OP_EnvDamage" updated="06/27/12">
            <comment>Environmental Damage</comment>
            <payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="59c3" name="OP_SetRunMode" updated="06/27/12">
            <comment>old cRunToggleCode</comment>
            <payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_WearChange" updated="03/23/12">
            <comment>Armor changes or give a pet a weapon (model changes)</comment>
            <payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
        </opcode>
    
        <!-- Not necessary for SEQ to run but here to name packets in logs. -->
        <opcode id="3671" name="OP_GroupUpdate" updated="06/27/12">
            <comment>Group member names - Variable length</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="51bc" name="OP_GuildMemberList" updated="06/27/12">
            <comment>List of guild members - Variable length</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="0c2b" name="OP_ManaUpdate" updated="06/27/12">
        <comment>Mana Update opcode - 10 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="5f51" name="OP_EndUpdate" updated="06/27/12">
        <comment>Endurance Update opcode - 10 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="5206" name="OP_Marketplace" updated="06/27/12">
            <comment>Marketplace data - Guessing variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="2edd" name="OP_DzMembers" updated="06/27/12">
            <comment>Expedition Members - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0d5f" name="OP_Campfire" updated="06/27/12">
            <comment>Fellowship campfire information - 1076 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="10c9" name="OP_SelectCampfire" updated="06/27/12">
            <comment>Fellowship campfire Choices - Guessing variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1d97" name="OP_Claims" updated="06/27/12">
            <comment>Contents of claims window - Guessing variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="5433" name="OP_VoiceChat" updated="06/27/12">
            <comment>Voice chat server info - Variable length (Data sent when joining group,raid etc)</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="7a52" name="OP_PollQuestions" updated="06/27/12">
            <comment>SOE in-game player poll questions - Variable length</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="591f" name="OP_PollResponses" updated="06/27/12">
            <comment>Poll response choices - 1004 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1d51" name="OP_ShroudProgression" updated="06/27/12">
            <comment>Unlocked shrouds - 244 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="2538" name="OP_Fellowship" updated="06/27/12">
            <comment>Fellowship information - 2552 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1a7b" name="OP_ExpandedGuildInfo" updated="06/27/12">
            <comment>Guild ranks and other misc guild data - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="18e2" name="OP_GuildBank" updated="06/27/12">
            <comment>Guild bank contents - Guessing variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1031" name="OP_OpenTradeskillContainer" updated="06/27/12">
            <comment>Opens forge, kiln etc - 92 Bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1ecf" name="OP_TradeskillRecipes" updated="06/27/12">
            <comment>Learned recipes - 84 Bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0000" name="OP_TradeSkillCombine" updated="06/27/12">
            <comment>Tradeskill combine using new tradeskill window - 40 Bytes</comment>
            <payload dir="both" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="4212" name="OP_TradeSkillCombineOld" updated="06/27/12">
            <comment>Tradeskill combine using old tradeskill window - 24 Bytes</comment>
            <payload dir="both" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="7113" name="OP_ItemPlayerPacket" updated="06/27/12">
            <comment>Inventory/bank items coming over during zone - Variable length</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="512b" name="OP_TaskDescription" updated="06/27/12">
            <comment>Task descriptions coming down for task window - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="47ea" name="OP_TaskActivity" updated="06/27/12">
            <comment>Task activity descriptions coming down for task window - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="189b" name="OP_CompletedTasks" updated="06/27/12">
            <comment>Task history for task window - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1b9c" name="OP_CustomTitles" updated="06/27/12">
            <comment>List of available titles - 1520 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0976" name="OP_Animation" updated="06/27/12">
            <comment>Combat animation, emote animations etc - 4 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="177a" name="OP_WhoAllRequest" updated="06/27/12">
            <comment>WhoAllReqCode - 156 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="4d5a" name="OP_WhoAllResponse" updated="06/27/12">
            <comment>WhoAllOutputCode - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0c54" name="OP_InspectRequest" updated="06/27/12">
            <comment>InspectRequestCode - 8 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="102f" name="OP_GetGuildMOTD" updated="06/27/12">
            <comment>GuildMOTD - 648 Bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="6617" name="OP_TradeRequest" updated="06/27/12">
            <comment>Client request trade session - 8 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1d40" name="OP_TradeDeny" updated="06/27/12">
            <comment>Target not ready to trade - 12 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="606a" name="OP_TradeRequestAck" updated="06/27/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="2c6d" name="OP_CancelTrade" updated="06/27/12">
            <comment>Cancel a trade window - 0 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="72f8" name="OP_FinishTrade" updated="06/27/12">
            <comment>Trade is over - 12 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0d1d" name="OP_TradeCoins" updated="06/27/12">
            <comment>You put coins put in a trade window - 20 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0149" name="OP_TradeCoins2" updated="06/27/12">
            <comment>Someone else puts coins put in your trade window - 12 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="064a" name="OP_TradeAcceptClick" updated="06/27/12">
            <comment>One side clicks Accept on the trade 8 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="3c66" name="OP_ItemLinkClick" updated="06/27/12">
            <comment>Click on itemlinks - 48 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="4074" name="OP_EndLootRequest" updated="06/27/12">
            <comment>DoneLootingCode - 4 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0b93" name="OP_LootItem" updated="06/27/12">
            <comment>Loot item from corpse - 20 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="47ae" name="OP_Track" updated="06/27/12">
            <comment>Tracking data - Variable length</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1564" name="OP_TraderShop" updated="06/27/12">
            <comment>OpenTraderCode right-click on a trader in bazaar - 16 bytes</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>        
        </opcode>
        <opcode id="3edc" name="OP_AutoAttack" updated="06/27/12">
            <comment>Attack on/off - 4 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1497" name="OP_AutoAttack2" updated="06/27/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="231f" name="OP_ClickDoor" updated="06/27/12">
            <comment>DoorOpenCode click request from client - 16 bytes</comment>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="3969" name="OP_MoveDoor" updated="06/27/12">
            <comment>DoorClickCode response from server - 2 bytes</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="1418" name="OP_MoveItem" updated="06/27/12">
            <comment>Client moving an item from one slot to another - 28 bytes</comment>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="0507" name="OP_TraderBuy" updated="06/27/12">
            <comment>buy from a trader in bazaar</comment>
        </opcode>
        <opcode id="00bc" name="OP_LootRequest" updated="06/27/12">
            <comment>LootCorpseCode - 4 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="132f" name="OP_Jump" updated="06/27/12">
            <comment>JumpCode - 0 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="37a7" name="OP_TGB" updated="06/27/12">
            <comment>Client telling server to set targetgroupbuff - 4 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="45d7" name="OP_Lockouts" updated="06/27/12">
            <comment>Client requesting lockouts - 0 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0bd0" name="OP_WelcomeScreenURL" updated="06/27/12">
            <comment>URLs for the welcome screen window - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0c08" name="OP_RaidJoin" updated="06/27/12">
            <comment>Client side raid invite requests 140 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="2bad" name="OP_RaidInvite" updated="06/27/12">
            <comment>Server side raid information - 140 bytes or 144 bytes</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1ebb" name="OP_Feedback" updated="06/27/12">
            <comment>Client sending feedback to server - 1148 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="5b0b" name="OP_GuildsList" updated="03/23/12">
            <comment>Listing of all guilds</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="4817" name="OP_LFGGetMatchesRequest" updated="06/27/12">
            <comment>LFG/LFP client request - 16 bytes</comment>
            <payload dir="client" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="1899" name="OP_LFGGetMatchesResponse" updated="06/27/12">
            <comment>LFG/LFP server response - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="27ac" name="OP_MercenaryList" updated="06/27/12">
            <comment>Listing of hired mercenaries - 427 bytes
            <payload dir="server" typename="unknown" sizechecktype="none"/></comment>
        </opcode>
        <opcode id="6fe7" name="OP_ClickInventory" updated="06/27/12">
            <comment>Click items from inventory or armor - 16 bytes 5th byte is Slot ID</comment>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="65fb" name="OP_ClickInventoryAck" updated="06/27/12">
            <comment>Server acknowledges click from inventory or armor - 20 bytes</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="3c2d" name="OP_BuffWindow" updated="06/27/12">
            <comment>Changes to buff window or song window - 100 bytes</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="7ae1" name="OP_ClickBuffOff" updated="06/27/12">
            <comment>Client clicks off buff - 8 bytes</comment>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="346b" name="OP_HouseAddress" updated="06/27/12">
            <comment>House and guildhall address information - Variable length</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="5546" name="OP_HouseContents" updated="06/27/12">
            <comment>Server sending house information and contents - variable length</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="3d24" name="OP_FriendsList" updated="06/27/12">
            <comment>Server sending friends list contents - variable length</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="2b5f" name="OP_Rewards" updated="06/27/12">
            <comment>Server sending pending rewards - variable length</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="7caa" name="OP_FTPNags" updated="06/27/12">
            <comment>Free to play nags and other data - 1852 bytes</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
        <opcode id="099e" name="OP_Find" updated="06/27/12">
            <comment>Find window data - 112 bytes</comment>
            <payload dir="server" typename="uint8_t" 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="5a6b" name="OP_Unknown1" updated="06/27/12">
            <comment>3 byte opcode that spam logs. Marked here to make reading logs easier</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="2018" name="OP_Unknown2" updated="06/27/12">
            <comment>3 byte opcode that spam logs. Marked here to make reading logs easier</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="3f49" name="OP_Unknown3" updated="06/27/12">
            <comment>3 byte opcode that spam logs. Marked here to make reading logs easier</comment>
            <payload dir="server" typename="unknown" sizechecktype="none"/>
        </opcode>
    
            <!-- Below are unverified -->
        <opcode id="0000" name="OP_Buff" updated="11/15/11">
            <comment>old BuffDropCode</comment>
            <payload dir="both" typename="buffStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_ZoneChange" updated="04/18/11">
            <comment>old ZoneChangeCode</comment>
            <payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_CorpseLocResponse" updated="06/12/09">
            <comment>old CorpseLocCode:</comment>
            <payload dir="server" typename="corpseLocStruct" sizechecktype="match"/>
        </opcode>
        <opcode id="0000" name="OP_SendZonePoints" updated="10/15/10">
            <comment>Coords in a zone that will port you to another zone</comment>
            <payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
        </opcode>
        <opcode id="24D8" 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="44AE" name="OP_Logout" updated="10/21/09">
            <comment></comment>
            <payload dir="server" typename="none" sizechecktype="match"/>
        </opcode>
        <opcode id="097f" name="OP_WelcomeScreenTitle" updated="05/16/11">
        <comment></comment>
        </opcode>
        <opcode id="0000" name="OP_VeteranRewards" update="04/18/11">
            <comment></comment>
        </opcode>
        <opcode id="3B85" name="OP_SendAATable" updated="08/12/09">
            <comment></comment>
        </opcode>
        <opcode id="5832" name="OP_SendAAStats" updated="08/12/09">
            <comment></comment>
        </opcode>
        <opcode id="4d38" name="OP_AckPacket" updated="03/14/07">
            <comment>Appears to be generic ack at the presentation level</comment>
        </opcode>
        <opcode id="71fb" name="OP_TributeUpdate" updated="03/14/07">
            <comment>Tribute information</comment>
        </opcode>
        <opcode id="70a5" name="OP_Weather" updated="03/14/07">
            <comment>old WeatherCode</comment>
        </opcode>
        <opcode id="5417" name="OP_ReqNewZone" updated="03/14/07">
            <comment>Client requesting NewZone_Struct</comment>
        </opcode>
        <opcode id="45d2" name="OP_ReqClientSpawn" updated="03/14/07">
            <comment>Client requesting spawn data</comment>
        </opcode>
        <opcode id="0000" name="OP_SendExpZonein" updated="03/14/07">
            <comment>Both directions. Negotiating sending of exp info.</comment>
        </opcode>
        <opcode id="0a4f" name="OP_AAAction" updated="03/14/07">
            <comment>Used for changing percent, buying? and activating skills</comment>
        </opcode>
        <opcode id="7038" name="OP_SetServerFilter" updated="03/14/07">
            <comment>Client telling server /filter information</comment>
        </opcode>
        <opcode id="3854" name="OP_ClientReady" updated="03/14/07">
            <comment></comment>
        </opcode>
        <opcode id="6774" name="OP_GuildTributeStatus" updated="03/14/07">
            <comment>Guild tribute stats send on zone</comment>
        </opcode>
        <opcode id="28c1" name="OP_GuildTributeInfo" updated="06/13/06">
            <comment>Guild tribute loadout, only if on</comment>
        </opcode>
        <opcode id="063b" name="OP_RespawnWindow" updated="03/14/07">
          <comment>Server telling client enough to populate the respawn window when you die</comment>
        </opcode>
        <opcode id="314f" 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="311a" name="OP_MobHealth" updated="03/14/07">
            <comment>health sent when a player clicks on the mob</comment>
        </opcode>
        <opcode id="16c1" name="OP_DeltaCheck" updated="03/14/07">
            <comment>Client sending server delta information.</comment>
        </opcode>
        <opcode id="61ac" name="OP_LoadSpellSet" updated="02/13/07">
            <comment>/mem spellsetname</comment>
        </opcode>
        <opcode id="00de" name="OP_Dye" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="31c2" 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="13e7" name="OP_Begging" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="68ac" name="OP_LFGCommand" updated="10/27/05">
            <comment>old LFGReqCode</comment>
        </opcode>
        <opcode id="7ac3" name="OP_Bug" updated="10/27/05">
            <comment>/bug</comment>
        </opcode>
        <opcode id="5c06" name="OP_Save" updated="04/19/06">
            <comment>Client asking server to save user state</comment>
        </opcode>
        <opcode id="2eeb" name="OP_Camp" updated="02/13/07">
            <comment>old cStartCampingCode</comment>
        </opcode>
        <opcode id="fe13" name="OP_ShopPlayerSell" updated="10/27/05">
            <comment>old SellItemCode</comment>
        </opcode>
        <opcode id="10a1" name="OP_PetCommands" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="1103" name="OP_SaveOnZoneReq" updated="03/14/07">
            <comment></comment>
        </opcode>
        <opcode id="7e03" name="OP_ShopEnd" updated="10/27/05">
            <comment>old CloseVendorCode</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="5666" name="OP_SenseTraps" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="05ac" name="OP_SenseHeading" updated="10/27/05">
            <comment>old cSenseHeadingCode</comment>
        </opcode> 
        <opcode id="528F" name="OP_LootComplete" updated="12/07/05">
            <comment>old sDoneLootingCode</comment>
        </opcode>
        <opcode id="10A6" name="OP_Split" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="4668" name="OP_Surname" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="45f9" name="OP_ShopRequest" updated="10/27/05">
            <comment>old OpenVendorCode</comment>
            <payload dir="both" typename="unknown" sizechecktype="none"/>
        </opcode>
        <opcode id="0f8e" name="OP_FaceChange" updated="10/27/05">
            <comment>/face</comment>
        </opcode>
        <opcode id="4312" name="OP_Sneak" updated="06/29/05">
            <comment>Clicked sneak</comment>
        </opcode>
        <opcode id="6f64" name="OP_Hide" updated="06/29/05">
            <comment></comment>
        </opcode>
        <opcode id="34e8" name="OP_DisarmTraps" updated="05/11/05">
            <comment>Clicked disarm traps</comment>
        </opcode>
        <opcode id="7c33" name="OP_Forage" updated="10/27/05">
            <comment>old ForageCode</comment>
        </opcode>
        <opcode id="4298" name="OP_BoardBoat" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="67c9" name="OP_LeaveBoat" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="35a6" name="OP_LFPGetMatchesRequest" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="6980" name="OP_GMKill" updated="10/27/05">
            <comment>GM /kill - Insta kill mob/pc</comment>
        </opcode>
        <opcode id="17a2" name="OP_GuildPublicNote" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="61ef" name="OP_YellForHelp" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="0af6" name="OP_ShopPlayerBuy" updated="05/11/05">
            <comment>old BuyItemCode</comment>
        </opcode>
        <opcode id="6f82" name="OP_LFPCommand" updated="10/27/05">
            <comment>looking for players</comment>
        </opcode>
        <opcode id="00dd" name="OP_ConsiderCorpse" updated="12/07/05">
            <comment>old cConCorpseCode</comment>
        </opcode>
        <opcode id="3838" name="OP_ConfirmDelete" updated="10/27/05">
            <comment>Client sends this to server to confirm op_deletespawn</comment>
        </opcode>
        <opcode id="0375" name="OP_Report" updated="06/29/05">
            <comment></comment>
        </opcode>
        <opcode id="40b6" name="OP_TargetCommand" updated="02/13/07">
            <comment>Target user</comment>
        </opcode>
        <opcode id="212d" name="OP_LFPGetMatchesResponse" updated="02/13/07">
            <comment></comment>
        </opcode>
        <opcode id="1089" name="OP_FindPersonRequest" updated="02/13/07">
            <comment>Control-F Find</comment>
        </opcode>
        <opcode id="71b1" name="OP_FindResponse" updated="02/13/07">
            <comment>Response to control-F</comment>
        </opcode>
        <opcode id="23a1" name="OP_GMLastName" updated="10/27/05">
            <comment>GM /lastname - Change user lastname</comment>
        </opcode>
        <opcode id="14ef" name="OP_Mend" updated="10/27/05">
            <comment></comment>
        </opcode>
        <opcode id="1ffa" name="OP_MendHPUpdate" updated="05/11/05">
            <comment></comment>
        </opcode>
        <opcode id="4775" 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>
    I made a few small struct changes as well. Will download the last tarball and create a diff off of that and post when I have a few minutes.
    Last edited by fransick; 07-07-2012 at 12:23 PM.

  11. #41
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: Is Showeq working these days?

    Let's see if this works... below is a full on diff from the latest tarball (5.13.10,4) that I created with emacs and pasted here using Firefox in Fedora14, Hoping it works for everyone. Just copy the code below and name it something like patch06-25-12.patch then put that file in your showeq directory (the one that has the conf, src directories in it) and use the command:

    Code:
    patch -p0 < patch06-25-12.patch
    Fingers crossed...

    Code:
    --- src/everquest.h    2012-03-04 15:07:47.000000000 -0500
    +++ src/everquest.h    2012-07-07 06:02:41.129508502 -0400
    @@ -288,7 +288,7 @@
       groupFindPathToPC,
       groupHealthOfTargetsTarget,
       groupUnknown15,
    -  raidMarkNPC,  //0x10
    +  raidMarkNPC,                                   //0x10
       raidNPCHealth,
       raidDelegateMainAssist,
       raidDelegateMarkNPC,
    @@ -314,14 +314,14 @@
     {
       RecastTimer0 = 0,
       RecastTimer1,
    -  WeaponHealClickTimer, // 2
    -  MuramiteBaneNukeClickTimer, // 3
    +  WeaponHealClickTimer,                          // 2
    +  MuramiteBaneNukeClickTimer,                    // 3
       RecastTimer4,
    -  DispellClickTimer, // 5 (also click heal orbs?)
    -  EpicTimer, // 6
    -  OoWBPClickTimer, // 7
    -  VishQuestClassItemTimer, // 8
    -  HealPotionTimer, // 9
    +  DispellClickTimer,                             // 5 (also click heal orbs?)
    +  EpicTimer,                                     // 6
    +  OoWBPClickTimer,                               // 7
    +  VishQuestClassItemTimer,                       // 8
    +  HealPotionTimer,                               // 9
       RecastTimer10,
       RecastTimer11,
       RecastTimer12,
    @@ -331,8 +331,8 @@
       RecastTimer16,
       RecastTimer17,
       RecastTimer18,
    -  ModRodTimer, // 19
    -  MAX_RECAST_TYPES // 20
    +  ModRodTimer,                                   // 19
    +  MAX_RECAST_TYPES                               // 20
     };
     
     
    @@ -433,16 +433,16 @@
     */
     struct spellBuff
     {
    -/*0000*/  uint8_t     unknown0000;    //
    -/*0001*/  int8_t      level;          // Level of person who cast buff
    -/*0002*/  uint8_t     unknown0002;    //
    -/*0003*/  uint8_t     unknown0003;    //
    +/*0000*/  uint8_t     unknown0000;               //
    +/*0001*/  int8_t      level;                     // Level of person who cast buff
    +/*0002*/  uint8_t     unknown0002;               //
    +/*0003*/  uint8_t     unknown0003;               //
     /*0004*/  float       unknown0004;
    -/*0008*/  int32_t     spellid;        // Spell
    -/*0012*/  int32_t     duration;       // Time remaining in ticks
    -/*0016*/  int32_t     effect;         // holds the dmg absorb amount on runes
    -/*0020*/  uint8_t     unknown0020[4]; // *** this might need to be swapped with playerId
    -/*0024*/  uint32_t    playerId;       // Global id of caster (for wear off)
    +/*0008*/  int32_t     spellid;                   // Spell
    +/*0012*/  int32_t     duration;                  // Time remaining in ticks
    +/*0016*/  int32_t     effect;                    // holds the dmg absorb amount on runes
    +/*0020*/  uint8_t     unknown0020[4];            // *** this might need to be swapped with playerId
    +/*0024*/  uint32_t    playerId;                  // Global id of caster (for wear off)
     /*0028*/  uint8_t     unknown0028[60];
     /*0088*/
     };
    @@ -513,14 +513,15 @@
     
     /*
      * Visible equiptment.
    - * Size: 12 Octets
    + * Size: 16 Octets
      */
     struct EquipStruct
     {
     /*00*/ uint32_t equip0;
     /*04*/ uint32_t equip1;
    -/*08*/ uint32_t itemId;
    -/*12*/
    +/*08*/ uint32_t equip2;
    +/*12*/ uint32_t itemId;
    +/*16*/
     };
     
     /*
    @@ -530,12 +531,12 @@
     */
     struct zoneChangeStruct
     {
    -/*0000*/ char     name[64];             // Character Name
    -/*0064*/ uint16_t zoneId;           // zone Id
    -/*0066*/ uint16_t zoneInstance;     // zone Instance
    -/*0068*/ uint8_t  unknown0068[8];   // unknown
    -/*0076*/ uint8_t  unknown0076[12];  // ***Placeholder (6/29/2005)
    -/*0088*/ uint8_t  unknown0088[4];   // HoT Beta (9/7/2010)
    +/*0000*/ char     name[64];                      // Character Name
    +/*0064*/ uint16_t zoneId;                        // zone Id
    +/*0066*/ uint16_t zoneInstance;                  // zone Instance
    +/*0068*/ uint8_t  unknown0068[8];                // unknown
    +/*0076*/ uint8_t  unknown0076[12];               // ***Placeholder (6/29/2005)
    +/*0088*/ uint8_t  unknown0088[4];                // HoT Beta (9/7/2010)
     /*0092*/
     };
     
    @@ -546,28 +547,28 @@
     */
     struct requestZoneChangeStruct
     {
    -/*0000*/ uint16_t zoneId;       // Zone to change to
    -/*0002*/ uint16_t zoneInstance; // Instance to change to
    -/*0004*/ float x;               // Zone in x coord in next zone
    -/*0008*/ float y;               // Zone in y coord in next zone
    -/*0012*/ float z;               // Zone in z coord in next zone
    -/*0016*/ float heading;               // Zone in heading in next zone
    -/*0020*/ uint32_t unknown0020;  // *** Placeholder
    +/*0000*/ uint16_t zoneId;                        // Zone to change to
    +/*0002*/ uint16_t zoneInstance;                  // Instance to change to
    +/*0004*/ float x;                                // Zone in x coord in next zone
    +/*0008*/ float y;                                // Zone in y coord in next zone
    +/*0012*/ float z;                                // Zone in z coord in next zone
    +/*0016*/ float heading;                          // Zone in heading in next zone
    +/*0020*/ uint32_t unknown0020;                   // *** Placeholder
     /*0024*/
     };
     
     /*
     ** Client Zone Entry struct
    -** Length: 68 Octets
    +** Length: 76 Octets
     ** OpCode: ZoneEntryCode (when direction == client)
     */
     struct ClientZoneEntryStruct
     {
    -/*0000*/ uint32_t unknown0000;            // ***Placeholder
    -/*0004*/ char     name[32];               // Player firstname
    -/*0036*/ uint8_t  unknown0036[28];        // ***Placeholder
    -/*0064*/ uint32_t unknown0064[3];            // unknown
    -/*0068*/
    +/*0000*/ uint32_t unknown0000;                   // ***Placeholder
    +/*0004*/ char     name[32];                      // Player firstname
    +/*0036*/ uint8_t  unknown0036[28];               // ***Placeholder
    +/*0064*/ uint32_t unknown0064[3];                // unknown
    +/*0076*/
     };
     
     
    @@ -578,44 +579,44 @@
     */
     struct newZoneStruct
     {
    -/*0000*/ char    name[64];                 // Character name
    -/*0064*/ char    shortName[32];            // Zone Short Name (maybe longer?)
    +/*0000*/ char    name[64];                       // Character name
    +/*0064*/ char    shortName[32];                  // Zone Short Name (maybe longer?)
     /*0096*/ char    unknown0096[96];
    -/*0192*/ char    longName[278];            // Zone Long Name
    -/*0470*/ uint8_t ztype;                    // Zone type
    -/*0471*/ uint8_t fog_red[4];               // Zone fog (red)
    -/*0475*/ uint8_t fog_green[4];             // Zone fog (green)
    -/*0479*/ uint8_t fog_blue[4];              // Zone fog (blue)
    -/*0483*/ uint8_t unknown0483[87];          // *** Placeholder
    -/*0570*/ uint8_t sky;                      // Zone sky
    -/*0571*/ uint8_t unknown0571[13];          // *** Placeholder
    -/*0584*/ float   zone_exp_multiplier;      // Experience Multiplier
    -/*0588*/ float   safe_y;                   // Zone Safe Y
    -/*0592*/ float   safe_x;                   // Zone Safe X
    -/*0596*/ float   safe_z;                   // Zone Safe Z
    -/*0600*/ float   unknown0600;              // *** Placeholder
    -/*0604*/ float   unknown0604;              // *** Placeholder
    -/*0608*/ float   underworld;               // Underworld
    -/*0612*/ float   minclip;                  // Minimum view distance
    -/*0616*/ float   maxclip;                  // Maximum view distance
    -/*0620*/ uint8_t unknown0616[84];          // *** Placeholder
    -/*0704*/ char    zonefile[64];             // Zone file name?
    -/*0768*/ uint8_t unknown0764[36];          // *** Placeholder (12/05/2006)
    -/*0804*/ uint8_t unknown0800[32];          // *** Placeholder (02/13/2007)
    -/*0836*/ uint8_t unknown0832[12];          // *** Placeholder 
    -/*0848*/ uint8_t unknown0844[4];           // *** Placeholder (06/29/2005)
    -/*0852*/ uint8_t unknown0848[4];           // *** Placeholder (09/13/2005)
    -/*0856*/ uint8_t unknown0852[4];           // *** Placeholder (02/21/2006)
    -/*0860*/ uint8_t unknown0856[36];          // *** Placeholder (06/13/2006)
    -/*0896*/ uint8_t unknown0892[12];          // *** Placeholder (12/05/2006)
    -/*0908*/ uint8_t unknown0904[8];           // *** Placeholder (02/13/2007)
    -/*0916*/ uint8_t unknown0916[4];           // *** Placeholder (11/24/2007)
    -/*0920*/ uint8_t unknown0920[4];           // *** Placeholder (01/17/2008)
    -/*0924*/ uint8_t unknown0924[4];           // *** Placeholder (09/03/2008)
    -/*0928*/ uint8_t unknown0928[4];           // *** Placeholder (10/07/2008)
    -/*0932*/ uint8_t unknown0932[8];           // *** Placeholder (11/04/2009)
    -/*0940*/ uint8_t unknown0940[4];           // *** Placeholder (12/15/2009)
    -/*0944*/ uint8_t unknown0944[4];           // *** Placeholder (11/15/2011)
    +/*0192*/ char    longName[278];                  // Zone Long Name
    +/*0470*/ uint8_t ztype;                          // Zone type
    +/*0471*/ uint8_t fog_red[4];                     // Zone fog (red)
    +/*0475*/ uint8_t fog_green[4];                   // Zone fog (green)
    +/*0479*/ uint8_t fog_blue[4];                    // Zone fog (blue)
    +/*0483*/ uint8_t unknown0483[87];                // *** Placeholder
    +/*0570*/ uint8_t sky;                            // Zone sky
    +/*0571*/ uint8_t unknown0571[13];                // *** Placeholder
    +/*0584*/ float   zone_exp_multiplier;            // Experience Multiplier
    +/*0588*/ float   safe_y;                         // Zone Safe Y
    +/*0592*/ float   safe_x;                         // Zone Safe X
    +/*0596*/ float   safe_z;                         // Zone Safe Z
    +/*0600*/ float   unknown0600;                    // *** Placeholder
    +/*0604*/ float   unknown0604;                    // *** Placeholder
    +/*0608*/ float   underworld;                     // Underworld
    +/*0612*/ float   minclip;                        // Minimum view distance
    +/*0616*/ float   maxclip;                        // Maximum view distance
    +/*0620*/ uint8_t unknown0616[84];                // *** Placeholder
    +/*0704*/ char    zonefile[64];                   // Zone file name?
    +/*0768*/ uint8_t unknown0764[36];                // *** Placeholder (12/05/2006)
    +/*0804*/ uint8_t unknown0800[32];                // *** Placeholder (02/13/2007)
    +/*0836*/ uint8_t unknown0832[12];                // *** Placeholder 
    +/*0848*/ uint8_t unknown0844[4];                 // *** Placeholder (06/29/2005)
    +/*0852*/ uint8_t unknown0848[4];                 // *** Placeholder (09/13/2005)
    +/*0856*/ uint8_t unknown0852[4];                 // *** Placeholder (02/21/2006)
    +/*0860*/ uint8_t unknown0856[36];                // *** Placeholder (06/13/2006)
    +/*0896*/ uint8_t unknown0892[12];                // *** Placeholder (12/05/2006)
    +/*0908*/ uint8_t unknown0904[8];                 // *** Placeholder (02/13/2007)
    +/*0916*/ uint8_t unknown0916[4];                 // *** Placeholder (11/24/2007)
    +/*0920*/ uint8_t unknown0920[4];                 // *** Placeholder (01/17/2008)
    +/*0924*/ uint8_t unknown0924[4];                 // *** Placeholder (09/03/2008)
    +/*0928*/ uint8_t unknown0928[4];                 // *** Placeholder (10/07/2008)
    +/*0932*/ uint8_t unknown0932[8];                 // *** Placeholder (11/04/2009)
    +/*0940*/ uint8_t unknown0940[4];                 // *** Placeholder (12/15/2009)
    +/*0944*/ uint8_t unknown0944[4];                 // *** Placeholder (11/15/2011)
     /*0948*/
     };
     
    @@ -627,10 +628,10 @@
     struct dzSwitchInfo
     {
     /*0000*/ uint32_t unknown0000;
    -/*0004*/ uint32_t show;          // Show compass line
    +/*0004*/ uint32_t show;                          // Show compass line
     /*0008*/ uint16_t zoneID;
     /*0010*/ uint16_t instanceID;
    -/*0012*/ uint32_t type;          // if(type != 1 && type > 2 && type <= 5) { color = green; } else { color = pink; }
    +/*0012*/ uint32_t type;                          // if(type != 1 && type > 2 && type <= 5) { color = green; } else { color = pink; }
     /*0016*/ uint32_t unknown0016;
     /*0020*/ float    y;
     /*0024*/ float    x;
    @@ -650,8 +651,8 @@
     /*0008*/ uint8_t  newDZ;
     /*0009*/ uint8_t  padding0009[3];
     /*0012*/ uint32_t maxPlayers;
    -/*0016*/ char     dzName[128];       // Instance name
    -/*0144*/ char     name[64];          // Your player's name
    +/*0016*/ char     dzName[128];                   // Instance name
    +/*0144*/ char     name[64];                      // Your player's name
     /*0208*/
     };
     
    @@ -664,167 +665,183 @@
      */
     struct playerProfileStruct
     {
    -/*00004*/ uint32_t  gender;             // Player Gender - 0 Male, 1 Female
    -/*00008*/ uint32_t  race;               // Player race
    -/*00012*/ uint32_t  class_;             // Player class
    -/*00016*/ uint8_t   unknown00016[40];   // ***Placeholder
    -/*00056*/ uint8_t   level;              // Level of player
    -/*00057*/ uint8_t   level1;             // Level of player (again?)
    -/*00058*/ uint8_t   unknown00058[2];    // ***Placeholder
    -/*00060*/ BindStruct binds[5];          // Bind points (primary is first)
    -/*00160*/ uint32_t  deity;              // deity
    -/*00164*/ uint32_t  intoxication;       // Alcohol level (in ticks till sober?)
    -/*00168*/ uint32_t  spellSlotRefresh[13]; // Refresh time (millis)
    -/*00220*/ uint8_t   haircolor;          // Player hair color
    -/*00221*/ uint8_t   beardcolor;         // Player beard color
    +/*00004*/ uint32_t  gender;                      // Player Gender - 0 Male, 1 Female
    +/*00008*/ uint32_t  race;                        // Player race
    +/*00012*/ uint32_t  class_;                      // Player class
    +/*00016*/ uint8_t   unknown00016[40];            // ***Placeholder
    +/*00056*/ uint8_t   level;                       // Level of player
    +/*00057*/ uint8_t   level1;                      // Level of player (again?)
    +/*00058*/ uint8_t   unknown00058[2];             // ***Placeholder
    +/*00060*/ BindStruct binds[5];                   // Bind points (primary is first)
    +/*00160*/ uint32_t  deity;                       // deity
    +/*00164*/ uint32_t  intoxication;                // Alcohol level (in ticks till sober?)
    +/*00168*/ uint32_t  spellSlotRefresh[13];        // Refresh time (millis)
    +/*00220*/ uint8_t   haircolor;                   // Player hair color
    +/*00221*/ uint8_t   beardcolor;                  // Player beard color
     /*00222*/ uint8_t unknown00222[6];
    -/*00228*/ uint8_t   eyecolor1;          // Player left eye color
    -/*00229*/ uint8_t   eyecolor2;          // Player right eye color
    -/*00230*/ uint8_t   hairstyle;          // Player hair style
    -/*00231*/ uint8_t   beard;              // Player beard type
    -/*00232*/ uint8_t unknown00232[22];
    -/*00254*/ uint32_t  item_material[9];   // Item texture/material of worn items
    -/*00290*/ uint8_t unknown00290[222];
    -/*00512*/ Color_Struct item_tint[9];    // RR GG BB 00
    -/*00548*/ AA_Array  aa_array[MAX_AA];   // AAs
    -/*04148*/ uint32_t  points;             // Unspent Practice points
    -/*04152*/ uint32_t  MANA;               // Current MANA
    -/*04156*/ uint32_t  curHp;              // Current HP without +HP equipment
    -/*04160*/ uint32_t  STR;                // Strength
    -/*04164*/ uint32_t  STA;                // Stamina
    -/*04168*/ uint32_t  CHA;                // Charisma
    -/*04172*/ uint32_t  DEX;                // Dexterity
    -/*04176*/ uint32_t  INT;                // Intelligence
    -/*04180*/ uint32_t  AGI;                // Agility
    -/*04184*/ uint32_t  WIS;                // Wisdom
    -/*04188*/ uint8_t   face;               // Player face
    -/*04189*/ uint8_t unknown04189[175];
    -/*04364*/ int32_t   sSpellBook[720];    // List of the Spells in spellbook
    -/*07244*/ int32_t   sMemSpells[MAX_SPELL_SLOTS]; // List of spells memorized
    -/*07292*/ uint8_t unknown07292[20];
    -/*07312*/ uint32_t  platinum;           // Platinum Pieces on player
    -/*07316*/ uint32_t  gold;               // Gold Pieces on player
    -/*07320*/ uint32_t  silver;             // Silver Pieces on player
    -/*07324*/ uint32_t  copper;             // Copper Pieces on player
    -/*07328*/ uint32_t  platinum_cursor;    // Platinum Pieces on cursor
    -/*07332*/ uint32_t  gold_cursor;        // Gold Pieces on cursor
    -/*07336*/ uint32_t  silver_cursor;      // Silver Pieces on cursor
    -/*07340*/ uint32_t  copper_cursor;      // Copper Pieces on cursor
    -/*07344*/ uint32_t  skills[MAX_KNOWN_SKILLS]; // List of skills
    -/*07744*/ uint32_t  innateSkills[25];
    -/*07844*/ uint8_t unknown07844[16];
    -/*07860*/ uint32_t  toxicity;           // Potion Toxicity (15=too toxic, each potion adds 3)
    -/*07864*/ uint32_t  thirst;             // Drink (ticks till next drink)
    -/*07868*/ uint32_t  hunger;             // Food (ticks till next eat)
    -/*07872*/ uint8_t unknown07872[20];
    -/*07892*/ spellBuff buffs[MAX_BUFFS];   // Buffs currently on the player
    -/*11588*/ uint32_t  disciplines[MAX_DISCIPLINES]; // Known disciplines
    -/*11988*/ uint8_t unknown10932[400];
    -/*12188*/ uint32_t recastTimers[MAX_RECAST_TYPES]; // Timers (GMT of last use)
    -/*12468*/ uint8_t unknown11412[480];
    -/*12948*/ uint32_t  endurance;          // Current endurance
    -/*12952*/ uint32_t  aa_spent;           // Number of spent AA points (including glyphs)
    -/*12956*/ uint32_t  aa_assigned;        // Number of points currently assigned to AAs
    -/*12960*/ uint32_t unknown11904[4];
    -/*12976*/ uint32_t  aa_unspent;         // Unspent AA points
    -/*12980*/ uint8_t unknown11924[4];
    -/*12984*/ BandolierStruct bandoliers[MAX_BANDOLIERS]; // bandolier contents
    -/*19384*/ InlineItem potionBelt[MAX_POTIONS_IN_BELT]; // potion belt
    -/*19744*/ uint8_t unknown18008[92];
    -/*19836*/
    -};
    +/*00228*/ uint8_t   eyecolor1;                   // Player left eye color
    +/*00229*/ uint8_t   eyecolor2;                   // Player right eye color
    +/*00230*/ uint8_t   hairstyle;                   // Player hair style
    +/*00231*/ uint8_t   beard;                       // Player beard type
    +/*00232*/ uint8_t   unknown00232[4];
    +/*00236*/ union
    +         {
    +           struct
    +           {
    +               /*00236*/ EquipStruct equip_helmet;     // Equiptment: Helmet visual
    +               /*00252*/ EquipStruct equip_chest;      // Equiptment: Chest visual
    +               /*00268*/ EquipStruct equip_arms;       // Equiptment: Arms visual
    +               /*00284*/ EquipStruct equip_bracers;    // Equiptment: Wrist visual
    +               /*00300*/ EquipStruct equip_hands;      // Equiptment: Hands visual
    +               /*00316*/ EquipStruct equip_legs;       // Equiptment: Legs visual
    +               /*00332*/ EquipStruct equip_feet;       // Equiptment: Boots visual
    +               /*00348*/ EquipStruct equip_primary;    // Equiptment: Main visual
    +               /*00364*/ EquipStruct equip_secondary;  // Equiptment: Off visual
    +           } equip;
    +            /*00380*/ EquipStruct equipment[9];
    +         };
    +/*00380*/ uint8_t unknown00380[220];
    +/*00600*/ Color_Struct item_tint[9];             // RR GG BB 00
    +/*00636*/ AA_Array  aa_array[MAX_AA];            // AAs
    +/*04236*/ uint32_t  points;                      // Unspent Practice points
    +/*04240*/ uint32_t  MANA;                        // Current MANA
    +/*04244*/ uint32_t  curHp;                       // Current HP without +HP equipment
    +/*04248*/ uint32_t  STR;                         // Strength
    +/*04252*/ uint32_t  STA;                         // Stamina
    +/*04256*/ uint32_t  CHA;                         // Charisma
    +/*04260*/ uint32_t  DEX;                         // Dexterity
    +/*04264*/ uint32_t  INT;                         // Intelligence
    +/*04268*/ uint32_t  AGI;                         // Agility
    +/*04272*/ uint32_t  WIS;                         // Wisdom
    +/*04276*/ uint8_t   unknown04276[28];
    +/*04304*/ uint32_t  face;                        // Player face
    +/*04308*/ uint8_t unknown04308[180];
    +/*04488*/ int32_t   sSpellBook[720];             // List of the Spells in spellbook
    +/*07368*/ int32_t   sMemSpells[MAX_SPELL_SLOTS]; // List of spells memorized
    +/*07416*/ uint8_t unknown07416[20];
    +/*07436*/ uint32_t  platinum;                    // Platinum Pieces on player
    +/*07442*/ uint32_t  gold;                        // Gold Pieces on player
    +/*07444*/ uint32_t  silver;                      // Silver Pieces on player
    +/*07448*/ uint32_t  copper;                      // Copper Pieces on player
    +/*07452*/ uint32_t  platinum_cursor;             // Platinum Pieces on cursor
    +/*07456*/ uint32_t  gold_cursor;                 // Gold Pieces on cursor
    +/*07460*/ uint32_t  silver_cursor;               // Silver Pieces on cursor
    +/*07464*/ uint32_t  copper_cursor;               // Copper Pieces on cursor
    +/*07468*/ uint32_t  skills[MAX_KNOWN_SKILLS];    // List of skills
    +/*07868*/ uint32_t  innateSkills[25];
    +/*07968*/ uint8_t unknown07968[16];
    +/*07984*/ uint32_t  toxicity;                    // Potion Toxicity (15=too toxic, each potion adds 3)
    +/*07988*/ uint32_t  thirst;                      // Drink (ticks till next drink)
    +/*07992*/ uint32_t  hunger;                      // Food (ticks till next eat)
    +/*07996*/ uint8_t unknown07996[20];
    +/*08016*/ spellBuff buffs[MAX_BUFFS];            // Buffs currently on the player
    +/*11712*/ uint32_t  disciplines[MAX_DISCIPLINES];// Known disciplines
    +/*12112*/ uint8_t unknown12112[400];
    +/*12312*/ uint32_t recastTimers[MAX_RECAST_TYPES];// Timers (GMT of last use)
    +/*12592*/ uint8_t unknown12592[480];
    +/*13072*/ uint32_t  endurance;                   // Current endurance
    +/*13076*/ uint32_t  aa_spent;                    // Number of spent AA points (including glyphs)
    +/*13080*/ uint32_t  aa_assigned;                 // Number of points currently assigned to AAs
    +/*13084*/ uint32_t unknown13084[4];
    +/*13100*/ uint32_t  aa_unspent;                  // Unspent AA points
    +/*13104*/ uint8_t unknown13104[4];
    +/*13108*/ BandolierStruct bandoliers[MAX_BANDOLIERS]; // bandolier contents
    +/*19508*/ InlineItem potionBelt[MAX_POTIONS_IN_BELT]; // potion belt
    +/*19868*/ uint8_t unknown19868[92];
    +/*19960*/
    + };
     
     /*
     ** Player Profile
    -** Length: 29560 Octets
    +** Length: 29688 Octets
     ** OpCode: CharProfileCode
     */
     struct charProfileStruct
     {
    -/*00000*/ uint32_t  checksum;           //
    -/*00004*/ playerProfileStruct profile;  // Profile
    -/*19836*/ char      name[64];           // Name of player
    -/*19900*/ char      lastName[32];       // Last name of player
    -/*19932*/ uint8_t   unknown18196[8];    //***Placeholder (1/18/2006)
    -/*19940*/ int32_t   guildID;            // guildID
    -/*19944*/ uint32_t  birthdayTime;       // character birthday
    -/*19948*/ uint32_t  lastSaveTime;       // character last save time
    -/*19952*/ uint32_t  timePlayedMin;      // time character played
    -/*19956*/ uint8_t unknown18220[4];
    -/*19960*/ uint8_t   pvp;                // 1=pvp, 0=not pvp
    -/*19961*/ uint8_t   anon;               // 2=roleplay, 1=anon, 0=not anon
    -/*19962*/ uint8_t   gm;                 // 0=no, 1=yes (guessing!)
    -/*19963*/ int8_t    guildstatus;        // 0=member, 1=officer, 2=guildleader
    -/*19964*/ uint8_t unknown18228[16];
    -/*19980*/ uint32_t  exp;                // Current Experience
    -/*19984*/ uint8_t unknown18240[12];
    -/*19996*/ uint8_t   languages[MAX_KNOWN_LANGS]; // List of languages    ccc
    -/*20022*/ uint8_t unknown18277[6];      // All 0x00 (language buffer?)
    -/*20028*/ float     y;                  // Players y position
    -/*20032*/ float     x;                  // Players x position
    -/*20036*/ float     z;                  // Players z position
    -/*20040*/ float     heading;            // Players heading
    -/*20044*/ uint32_t  standState;         // 0x64 = stand
    -/*20048*/ uint32_t  platinum_bank;      // Platinum Pieces in Bank
    -/*20052*/ uint32_t  gold_bank;          // Gold Pieces in Bank
    -/*20056*/ uint32_t  silver_bank;        // Silver Pieces in Bank
    -/*20060*/ uint32_t  copper_bank;        // Copper Pieces in Bank
    -/*20064*/ uint32_t  platinum_shared;    // Shared platinum pieces    ccc
    -/*20068*/ uint8_t unknown18324[2124];   // Added 1088 for HoT
    -/*22192*/ uint32_t  expansions;         // Bitmask for expansions    ccc
    -/*22196*/ uint8_t unknown20452[12];
    -/*22208*/ uint32_t  autosplit;          // 0 = off, 1 = on        ccc
    -/*22212*/ uint8_t unknown20468[16];
    -/*22228*/ uint16_t  zoneId;             // see zones.h            ccc
    -/*22230*/ uint16_t  zoneInstance;       // Instance id    ccc
    -/*22232*/ uint8_t unknown20486[992];
    -/*23224*/ uint32_t  leadAAActive;       // 0 = leader AA off, 1 = leader AA on    ccc
    -/*23228*/ uint8_t unknown21484[4];
    -/*23232*/ uint32_t  ldon_guk_points;    // Earned GUK points        ccc
    -/*23236*/ uint32_t  ldon_mir_points;    // Earned MIR points        ccc
    -/*23240*/ uint32_t  ldon_mmc_points;    // Earned MMC points        ccc
    -/*23244*/ uint32_t  ldon_ruj_points;    // Earned RUJ points        ccc
    -/*23248*/ uint32_t  ldon_tak_points;    // Earned TAK points        ccc
    -/*23252*/ uint32_t  ldon_avail_points;  // Available LDON points    ccc
    -/*23256*/ uint8_t unknown21512[144];
    -/*23400*/ uint32_t  tributeTime;        // Time remaining on tribute (millisecs)    ccc
    -/*23404*/ uint32_t  careerTribute;      // Total favor points for this char        ccc
    -/*23408*/ uint32_t  unknown21656;       // *** Placeholder                ccc
    -/*23412*/ uint32_t  currentTribute;     // Current tribute points            ccc
    -/*23416*/ uint32_t  unknown21664;       // *** Placeholder
    -/*23420*/ uint32_t  tributeActive;      // 0 = off, 1=on
    -/*23424*/ TributeStruct tributes[MAX_TRIBUTES]; // Current tribute loadout        ccc
    -/*23464*/ uint8_t unknown21712[84];    // Added 208 bytes for HoT BETA            ccc
    -/*23548*/ float     expGroupLeadAA;     // Current group lead exp points        ccc
    -/*23552*/ uint32_t unknown21808;
    -/*23556*/ float     expRaidLeadAA;      // Current raid lead AA exp points        ccc
    -/*23560*/ uint32_t unknown21816;
    -/*23564*/ uint32_t  groupLeadAAUnspent; // Unspent group lead AA points            ccc
    -/*23568*/ uint32_t  raidLeadAAUnspent;  // Unspent raid lead AA points            ccc
    -/*23572*/ uint32_t  leadershipAAs[MAX_LEAD_AA]; // Leader AA ranks            ccc
    -/*23700*/ uint8_t unknown21956[128];
    -/*23828*/ uint32_t  airRemaining;       // Air supply (seconds)                ccc
    -/*23832*/ uint8_t unknown22088[4608];
    -/*28440*/ uint32_t  expAA;              // Exp earned in current AA point        ccc
    -/*28444*/ uint8_t unknown26700[40];
    -/*28484*/ uint32_t  currentRadCrystals; // Current count of radiant crystals        ccc
    -/*28488*/ uint32_t  careerRadCrystals;  // Total count of radiant crystals ever        ccc
    -/*28492*/ uint32_t  currentEbonCrystals;// Current count of ebon crystals        ccc
    -/*28496*/ uint32_t  careerEbonCrystals; // Total count of ebon crystals ever        ccc
    -/*28500*/ uint8_t   groupAutoconsent;   // 0=off, 1=on
    -/*28501*/ uint8_t   raidAutoconsent;    // 0=off, 1=on
    -/*28502*/ uint8_t   guildAutoconsent;   // 0=off, 1=on
    -/*28503*/ uint8_t   unknown26759[5];    // ***Placeholder (6/29/2005)
    -/*28508*/ uint32_t  showhelm;           // 0=no, 1=yes
    -/*28512*/ uint8_t   unknown26768[1048]; // ***Placeholder (2/13/2007)
    -/*29560*/
    -};
    +/*00000*/ uint32_t  checksum;                    //
    +/*00004*/ playerProfileStruct profile;           // Profile
    +/*19960*/ char      name[64];                    // Name of player
    +/*20024*/ char      lastName[32];                // Last name of player
    +/*20054*/ uint8_t   unknown20054[12];            //***Placeholder (1/18/2006)
    +/*20066*/ int32_t   guildID;                     // guildID
    +/*20070*/ uint32_t  birthdayTime;                // character birthday
    +/*20074*/ uint32_t  lastSaveTime;                // character last save time
    +/*20078*/ uint32_t  timePlayedMin;               // time character played
    +/*20082*/ uint8_t unknown20082[4];
    +/*20086*/ uint8_t   pvp;                         // 1=pvp, 0=not pvp
    +/*20087*/ uint8_t   anon;                        // 2=roleplay, 1=anon, 0=not anon
    +/*20088*/ uint8_t   gm;                          // 0=no, 1=yes (guessing!)
    +/*20089*/ int8_t    guildstatus;                 // 0=member, 1=officer, 2=guildleader
    +/*20090*/ uint8_t unknown20090[16];
    +/*20106*/ uint32_t  exp;                         // Current Experience
    +/*20110*/ uint8_t unknown20110[12];
    +/*20122*/ uint8_t   languages[MAX_KNOWN_LANGS];  // List of languages    ccc
    +/*20150*/ uint8_t unknown20150[6];               // All 0x00 (language buffer?)
    +/*20156*/ float     y;                           // Players y position
    +/*20160*/ float     x;                           // Players x position
    +/*20164*/ float     z;                           // Players z position
    +/*20168*/ float     heading;                     // Players heading
    +/*20172*/ uint32_t  standState;                  // 0x64 = stand
    +/*20176*/ uint32_t  platinum_bank;               // Platinum Pieces in Bank
    +/*20180*/ uint32_t  gold_bank;                   // Gold Pieces in Bank
    +/*20184*/ uint32_t  silver_bank;                 // Silver Pieces in Bank
    +/*20188*/ uint32_t  copper_bank;                 // Copper Pieces in Bank
    +/*20192*/ uint32_t  platinum_shared;             // Shared platinum pieces
    +/*20196*/ uint8_t unknown20196[2124];            // Added 1088 for HoT
    +/*22320*/ uint32_t  expansions;                  // Bitmask for expansions
    +/*22324*/ uint8_t unknown22324[12];
    +/*22336*/ uint32_t  autosplit;                   // 0 = off, 1 = on
    +/*22340*/ uint8_t unknown22340[16];
    +/*22356*/ uint16_t  zoneId;                      // see zones.h
    +/*22358*/ uint16_t  zoneInstance;                // Instance id
    +/*22360*/ uint8_t unknown22360[992];
    +/*23352*/ uint32_t  leadAAActive;                // 0 = leader AA off, 1 = leader AA on
    +/*23356*/ uint8_t unknown23356[4];
    +/*23360*/ uint32_t  ldon_guk_points;             // Earned GUK points
    +/*23364*/ uint32_t  ldon_mir_points;             // Earned MIR points
    +/*23368*/ uint32_t  ldon_mmc_points;             // Earned MMC points
    +/*23372*/ uint32_t  ldon_ruj_points;             // Earned RUJ points
    +/*23376*/ uint32_t  ldon_tak_points;             // Earned TAK points
    +/*23380*/ uint32_t  ldon_avail_points;           // Available LDON points
    +/*23384*/ uint8_t unknown23384[144];
    +/*23528*/ uint32_t  tributeTime;                 // Time remaining on tribute (millisecs)
    +/*23532*/ uint32_t  careerTribute;               // Total favor points for this char
    +/*23536*/ uint32_t  unknown23536;                // *** Placeholder
    +/*23540*/ uint32_t  currentTribute;              // Current tribute points
    +/*23544*/ uint32_t  unknown23544;                // *** Placeholder
    +/*23548*/ uint32_t  tributeActive;               // 0 = off, 1=on
    +/*23552*/ TributeStruct tributes[MAX_TRIBUTES];  // Current tribute loadout
    +/*23592*/ uint8_t unknown23592[84];              // Added 208 bytes for HoT BETA
    +/*23676*/ float     expGroupLeadAA;              // Current group lead exp points
    +/*23680*/ uint32_t unknown23680;
    +/*23684*/ float     expRaidLeadAA;               // Current raid lead AA exp points
    +/*23688*/ uint32_t unknown23688;
    +/*23692*/ uint32_t  groupLeadAAUnspent;          // Unspent group lead AA points
    +/*23696*/ uint32_t  raidLeadAAUnspent;           // Unspent raid lead AA points
    +/*23700*/ uint32_t  leadershipAAs[MAX_LEAD_AA];  // Leader AA ranks
    +/*23828*/ uint8_t unknown23828[128];
    +/*23956*/ uint32_t  airRemaining;                // Air supply (seconds)
    +/*23960*/ uint8_t unknown23960[4608];
    +/*28568*/ uint32_t  expAA;                       // Exp earned in current AA point
    +/*28572*/ uint8_t unknown28572[40];
    +/*28612*/ uint32_t  currentRadCrystals;          // Current count of radiant crystals
    +/*28616*/ uint32_t  careerRadCrystals;           // Total count of radiant crystals ever
    +/*28620*/ uint32_t  currentEbonCrystals;         // Current count of ebon crystals
    +/*28624*/ uint32_t  careerEbonCrystals;          // Total count of ebon crystals ever
    +/*28628*/ uint8_t   groupAutoconsent;            // 0=off, 1=on
    +/*28629*/ uint8_t   raidAutoconsent;             // 0=off, 1=on
    +/*28630*/ uint8_t   guildAutoconsent;            // 0=off, 1=on
    +/*28631*/ uint8_t   unknown28631[5];             // ***Placeholder (6/29/2005)
    +/*28636*/ uint32_t  showhelm;                    // 0=no, 1=yes
    +/*28640*/ uint8_t   unknown28640[1048];          // ***Placeholder (2/13/2007)
    +/*29688*/
    + };
     
     #if 0
     // The following seem to be totally gone from charProfileStruct (9/13/05)
    -/*2384*/ char      title[32];          // Current character title
    -/*2352*/ char      servername[32];     // server the char was created on
    -/*2416*/ char      suffix[32];         // Current character suffix
    +/*2384*/ char      title[32];                    // Current character title
    +/*2352*/ char      servername[32];               // server the char was created on
    +/*2416*/ char      suffix[32];                   // Current character suffix
     #endif
     
     #if 1
    @@ -877,23 +894,23 @@
       union {
         uint8_t unnamed[93];
         struct _name {
    -/*   35 */  uint8_t mass_group_buff; // All group-buff-casting classes(?)
    +/*   35 */  uint8_t mass_group_buff;             // All group-buff-casting classes(?)
     // ===== Cleric =====
     /*   36 */  uint8_t divine_resurrection;
    -/*   37 */  uint8_t innate_invis_to_undead; // cleric, necromancer
    +/*   37 */  uint8_t innate_invis_to_undead;      // cleric, necromancer
     /*   38 */  uint8_t celestial_regeneration;
     /*   39 */  uint8_t bestow_divine_aura;
     /*   40 */  uint8_t turn_undead;
     /*   41 */  uint8_t purify_soul;
     // ===== Druid =====
    -/*   42 */  uint8_t quick_evacuation; // wizard, druid
    -/*   43 */  uint8_t exodus; // wizard, druid
    -/*   44 */  uint8_t quick_damage; // wizard, druid
    -/*   45 */  uint8_t enhanced_root; // druid
    -/*   46 */  uint8_t dire_charm; // enchanter, druid, necromancer
    +/*   42 */  uint8_t quick_evacuation;            // wizard, druid
    +/*   43 */  uint8_t exodus;                      // wizard, druid
    +/*   44 */  uint8_t quick_damage;                // wizard, druid
    +/*   45 */  uint8_t enhanced_root;               // druid
    +/*   46 */  uint8_t dire_charm;                  // enchanter, druid, necromancer
     // ===== Shaman =====
     /*   47 */  uint8_t cannibalization;
    -/*   48 */  uint8_t quick_buff; // shaman, enchanter
    +/*   48 */  uint8_t quick_buff;                  // shaman, enchanter
     /*   49 */  uint8_t alchemy_mastery;
     /*   50 */  uint8_t rabid_bear;
     // ===== Wizard =====
    @@ -906,7 +923,7 @@
     /*   56 */  uint8_t jewel_craft_mastery;
     /*   57 */  uint8_t gather_mana;
     // ===== Mage =====
    -/*   58 */  uint8_t mend_companion; // mage, necromancer
    +/*   58 */  uint8_t mend_companion;              // mage, necromancer
     /*   59 */  uint8_t quick_summoning;
     /*   60 */  uint8_t frenzied_burnout;
     /*   61 */  uint8_t elemental_form_fire;
    @@ -928,15 +945,15 @@
     /*   75 */  uint8_t slay_undead;
     /*   76 */  uint8_t act_of_valor;
     /*   77 */  uint8_t holy_steed;
    -/*   78 */  uint8_t fearless; // paladin, shadowknight
    +/*   78 */  uint8_t fearless;                    // paladin, shadowknight
     
    -/*   79 */  uint8_t two_hand_bash; // paladin, shadowknight
    +/*   79 */  uint8_t two_hand_bash;               // paladin, shadowknight
     // ===== Ranger =====
    -/*   80 */  uint8_t innate_camouflage; // ranger, druid
    -/*   81 */  uint8_t ambidexterity; // all "dual-wield" users
    -/*   82 */  uint8_t archery_mastery; // ranger
    +/*   80 */  uint8_t innate_camouflage;           // ranger, druid
    +/*   81 */  uint8_t ambidexterity;               // all "dual-wield" users
    +/*   82 */  uint8_t archery_mastery;             // ranger
     /*   83 */  uint8_t unknown83;
    -/*   84 */  uint8_t endless_quiver; // ranger
    +/*   84 */  uint8_t endless_quiver;              // ranger
     // ===== Shadow Knight =====
     /*   85 */  uint8_t unholy_steed;
     /*   86 */  uint8_t improved_harm_touch;
    @@ -960,10 +977,10 @@
     // ===== Rogue =====
     /*  102 */  uint8_t escape;
     /*  103 */  uint8_t poison_mastery;
    -/*  104 */  uint8_t double_riposte; // all "riposte" users
    +/*  104 */  uint8_t double_riposte;              // all "riposte" users
     /*  105 */  uint8_t unknown105;
     /*  106 */  uint8_t unknown106;
    -/*  107 */  uint8_t purge_poison; // rogue
    +/*  107 */  uint8_t purge_poison;                // rogue
     // ===== Warrior =====
     /*  108 */  uint8_t flurry;
     /*  109 */  uint8_t rampage;
    @@ -973,17 +990,17 @@
     // ===== (Other) =====
     /*  113 */  uint8_t spell_casting_reinforcement_mastery; // all "pure" casters
     /*  114 */  uint8_t unknown114;
    -/*  115 */  uint8_t extended_notes; // bard
    -/*  116 */  uint8_t dragon_punch; // monk
    -/*  117 */  uint8_t strong_root; // wizard
    -/*  118 */  uint8_t singing_mastery; // bard
    -/*  119 */  uint8_t body_and_mind_rejuvenation; // paladin, ranger, bard
    -/*  120 */  uint8_t physical_enhancement; // paladin, ranger, bard
    -/*  121 */  uint8_t adv_trap_negotiation; // rogue, bard
    -/*  122 */  uint8_t acrobatics; // all "safe-fall" users
    -/*  123 */  uint8_t scribble_notes; // bard
    -/*  124 */  uint8_t chaotic_stab; // rogue
    -/*  125 */  uint8_t pet_discipline; // all pet classes except enchanter
    +/*  115 */  uint8_t extended_notes;              // bard
    +/*  116 */  uint8_t dragon_punch;                // monk
    +/*  117 */  uint8_t strong_root;                 // wizard
    +/*  118 */  uint8_t singing_mastery;             // bard
    +/*  119 */  uint8_t body_and_mind_rejuvenation;  // paladin, ranger, bard
    +/*  120 */  uint8_t physical_enhancement;        // paladin, ranger, bard
    +/*  121 */  uint8_t adv_trap_negotiation;        // rogue, bard
    +/*  122 */  uint8_t acrobatics;                  // all "safe-fall" users
    +/*  123 */  uint8_t scribble_notes;              // bard
    +/*  124 */  uint8_t chaotic_stab;                // rogue
    +/*  125 */  uint8_t pet_discipline;              // all pet classes except enchanter
     /*  126 */  uint8_t unknown126;
     /*  127 */  uint8_t unknown127;
         } named;
    @@ -1008,7 +1025,7 @@
     /*0000*/ char     name[64];
     /*0000*/ uint32_t spawnId;
     /*0000*/ uint8_t  level;
    -/*0000*/ uint8_t  NPC;       // 0=player,1=npc,2=pc corpse,3=npc corpse
    +/*0000*/ uint8_t  NPC;                           // 0=player,1=npc,2=pc corpse,3=npc corpse
     /*0000*/ union
              {
                struct
    @@ -1021,9 +1038,9 @@
                  unsigned   invis:1;
                  unsigned   padding5:11;
                  unsigned   gm:1;
    -             unsigned   anon:1;        // 0=normal, 1=anon, 2=roleplay
    +             unsigned   anon:1;                  // 0=normal, 1=anon, 2=roleplay
                  unsigned   padding4:1;
    -             unsigned   gender:1;      // Gender (0=male, 1=female)
    +             unsigned   gender:1;                // Gender (0=male, 1=female)
                  unsigned   padding3:1;
                  unsigned   linkdead:1;
                  unsigned   betabuffed:1;
    @@ -1036,7 +1053,7 @@
                };
                int32_t miscData;
              };
    -/*0000*/ uint8_t  otherData; // & 4 - has title, & 8 - has suffix, & 1 - it's a chest or untargetable
    +/*0000*/ uint8_t  otherData;                     // & 4 - has title, & 8 - has suffix, & 1 - it's a chest or untargetable
     /*0000*/ uint32_t race;
     /*0000*/ uint8_t  charProperties;
     /*0000*/ uint32_t bodytype;
    @@ -1045,9 +1062,9 @@
     /*0000*/ uint8_t  holding;
     /*0000*/ uint32_t deity;
     /*0000*/ uint32_t guildID;
    -/*0000*/ uint32_t guildstatus;   // 0=member, 1=officer, 2=leader, -1=not guilded
    +/*0000*/ uint32_t guildstatus;                   // 0=member, 1=officer, 2=leader, -1=not guilded
     /*0000*/ uint8_t  class_;
    -/*0000*/ uint8_t  state;         // stand state 
    +/*0000*/ uint8_t  state;                         // stand state 
     /*0000*/ uint8_t  light;
     /*0000*/ char     lastName[32];
     /*0000*/ uint32_t petOwnerId;
    @@ -1055,19 +1072,19 @@
              {
                struct
                {
    -/*0000*/     signed   padding0000:12; // ***Placeholder
    -             signed   deltaX:13;      // change in x
    -             signed   padding0005:7;  // ***Placeholder
    -/*0000*/     signed   deltaHeading:10;// change in heading
    -             signed   deltaY:13;      // change in y
    -             signed   padding0006:9;  // ***Placeholder
    -/*0000*/     signed   y:19;           // y coord
    -             signed   animation:13;   // animation
    -/*0000*/     unsigned heading:12;     // heading
    -             signed   x:19;           // x coord
    -             signed   padding0014:1;  // ***Placeholder
    -/*0000*/     signed   z:19;           // z coord
    -             signed   deltaZ:13;      // change in z
    +/*0000*/     signed   padding0000:12;            // ***Placeholder
    +             signed   deltaX:13;                 // change in x
    +             signed   padding0005:7;             // ***Placeholder
    +/*0000*/     signed   deltaHeading:10;           // change in heading
    +             signed   deltaY:13;                 // change in y
    +             signed   padding0006:9;             // ***Placeholder
    +/*0000*/     signed   y:19;                      // y coord
    +             signed   animation:13;              // animation
    +/*0000*/     unsigned heading:12;                // heading
    +             signed   x:19;                      // x coord
    +             signed   padding0014:1;             // ***Placeholder
    +/*0000*/     signed   z:19;                      // z coord
    +             signed   deltaZ:13;                 // change in z
                };
                int32_t posData[5];
              };
    @@ -1110,14 +1127,14 @@
     
     #if 0
     // Basic structure of how the packet looks on the wire, for reference.
    -// May 29, 2008 eqgame.exe
    +// March 16, 2012 eqgame.exe
     struct spawnStruct
     {
     /*0000*/ char     name[0];
     /*0000*/ uint32_t spawnId;
     /*0000*/ uint8_t  level;
     /*0000*/ float    unknown1;
    -/*0000*/ uint8_t  NPC;           // 0=player,1=npc,2=pc corpse,3=npc corpse
    +/*0000*/ uint8_t  NPC;                           // 0=player,1=npc,2=pc corpse,3=npc corpse
     /*0000*/ unsigned   padding7:1;
              unsigned   AFK:1;
              unsigned   sneak:1;
    @@ -1126,9 +1143,9 @@
              unsigned   invis:1;
              unsigned   padding5:11;
              unsigned   gm:1;
    -         unsigned   anon:1;        // 0=normal, 1=anon, 2=roleplay
    +         unsigned   anon:1;                      // 0=normal, 1=anon, 2=roleplay
              unsigned   padding4:1;
    -         unsigned   gender:1;      // Gender (0=male, 1=female)
    +         unsigned   gender:1;                    // Gender (0=male, 1=female)
              unsigned   padding3:1;
              unsigned   linkdead:1;
              unsigned   betabuffed:1;
    @@ -1138,7 +1155,7 @@
              unsigned   padding1:2;
              unsigned   trader:1;
              unsigned   buyer:1;
    -/*0000*/ uint8_t  otherData; // & 4 - has title, & 8 - has suffix, & 1 - it's a chest or untargetable
    +/*0000*/ uint8_t  otherData;                     // & 8 - has title, & 16 - has suffix, & 2 - auras, & 1 - it's a chest or untargetable
     /*0000*/ uint32_t unknown3;
     /*0000*/ uint32_t unknown4;
     /*0000*/ uint32_t unknown5;
    @@ -1146,10 +1163,10 @@
     /*0000*/ float    walkspeed;
     /*0000*/ float    runspeed;
     /*0000*/ uint32_t race;
    -/*0000*/ uint8_t  charProperties; // for body types
    +/*0000*/ uint8_t  charProperties;                // for body types - value indicates how many properties are present
     /*0000*/ uint32_t bodytype;
    -/*0000*/ uint32_t bodytype2;      // this is only present if charProperties==2
    -                                  // are there more than two possible properties?
    +/*0000*/ uint32_t bodytype2;                     // this is only present if charProperties==2
    +                                                 // are there more than two possible properties?
     /*0000*/ uint8_t  curHp;
     /*0000*/ uint8_t  haircolor;
     /*0000*/ uint8_t  facialhaircolor;
    @@ -1163,10 +1180,10 @@
     /*0000*/ uint8_t  holding;
     /*0000*/ uint32_t deity;
     /*0000*/ uint32_t guildID;
    -/*0000*/ uint32_t guildstatus;   // 0=member, 1=officer, 2=leader, -1=not guilded
    +/*0000*/ uint32_t guildstatus;                   // 0=member, 1=officer, 2=leader, -1=not guilded
     /*0000*/ uint8_t  class_;
     /*0000*/ uint8_t  PVP;
    -/*0000*/ uint8_t  state;         // stand state 
    +/*0000*/ uint8_t  state;                         // stand state 
     /*0000*/ uint8_t  light;
     /*0000*/ uint8_t  unknown7;
     /*0000*/ uint8_t  unknown8;
    @@ -1184,19 +1201,31 @@
     /*0000*/ uint32_t unknown17;
     /*0000*/ uint32_t unknown18;
     /*0000*/ uint32_t unknown19;
    -/*0000*/ signed   padding0000:12; // ***Placeholder
    -         signed   deltaX:13;      // change in x
    -         signed   padding0005:7;  // ***Placeholder
    -/*0000*/ signed   deltaHeading:10;// change in heading
    -         signed   deltaY:13;      // change in y
    -         signed   padding0006:9;  // ***Placeholder
    -/*0000*/ signed   y:19;           // y coord
    -         signed   animation:13;   // animation
    -/*0000*/ unsigned heading:12;     // heading
    -         signed   x:19;           // x coord
    -         signed   padding0014:1;  // ***Placeholder
    -/*0000*/ signed   z:19;           // z coord
    -         signed   deltaZ:13;      // change in z
    +/*0000*/ signed   padding0000:12;                // ***Placeholder
    +         signed   deltaX:13;                     // change in x
    +         signed   padding0005:7;                 // ***Placeholder
    +/*0000*/ signed   deltaHeading:10;               // change in heading
    +         signed   deltaY:13;                     // change in y
    +         signed   padding0006:9;                 // ***Placeholder
    +/*0000*/ signed   y:19;                          // y coord
    +         signed   animation:13;                  // animation
    +/*0000*/ unsigned heading:12;                    // heading
    +         signed   x:19;                          // x coord
    +         signed   padding0014:1;                 // ***Placeholder
    +/*0000*/ signed   z:19;                          // z coord
    +         signed   deltaZ:13;                     // change in z
    +// If not a valid player race (skip these if a valid player race)
    +/*0000*/ union
    +         {
    +           struct
    +           {
    +               /*0000*/ EquipStruct equip_helmet;     // Equipment: Helmet visual (maybe)
    +               /*0000*/ EquipStruct equip_primary;    // Equipment: Main visual
    +               /*0000*/ EquipStruct equip_secondary;  // Equipment: Off visual
    +           } equip;
    +           /*0000*/ EquipStruct equipment[3];
    +         };
    +// skip these bytes if not a valid player race - colors[9] and equipment[9]
     /*0000*/ union
              {
                struct
    @@ -1212,9 +1241,7 @@
                    /*0000*/ Color_Struct color_secondary; // Color of secondary item
                } equipment_colors;
                 /*0000*/ Color_Struct colors[9]; // Array elements correspond to struct equipment_colors above
    -         };
    -
    -// skip these bytes if not a valid player race
    +        } 
     /*0000*/ union
              {
                struct
    @@ -1231,12 +1258,11 @@
                } equip;
                /*0000*/ EquipStruct equipment[9];
              };
    -
    -/*0000*/ char title[0];  // only read if(hasTitleOrSuffix & 4)
    -/*0000*/ char suffix[0]; // only read if(hasTitleOrSuffix & 8)
    +/*0000*/ char title[0];                          // only read if(otherData & 8)
    +/*0000*/ char suffix[0];                         // only read if(otherData & 16)
     /*0000*/ char unknown20[8];
     /*0000*/ uint8_t isMercenary;
    -/*0000*/ char unknown20[24];
    +/*0000*/ char unknown21[54];
     };
     #endif
     
    @@ -1244,31 +1270,31 @@
     #if 0
     // Old stuff from spawnStruct seq doesn't actually use at all..
     //
    -/*0004*/ float    size;           // Model size
    -/*0078*/ int8_t   aa_title;       // 0=none, 1=general, 2=archtype, 3=class
    -/*0074*/ uint8_t  invis;          // Invis (0=not, 1=invis)
    -/*0117*/ uint8_t  lfg;            // 0=off, 1=lfg on
    -/*0196*/ uint8_t  afk;            // 0=no, 1=afk
    -/*0207*/ int8_t   guildrank;      // 0=normal, 1=officer, 2=leader
    -/*0213*/ uint8_t  face;              // Face id for players
    -/*0247*/ uint8_t  is_pet;         // 0=no, 1=yes
    -/*0284*/ uint8_t  beardcolor;     // Beard color
    -/*0500*/ uint8_t  showhelm;       // 0=no, 1=yes
    -/*0501*/ uint8_t  helm;           // Helm texture
    -/*0660*/ uint8_t  hairstyle;      // Hair style
    -/*0090*/ uint8_t  eyecolor1;      // Player's left eye color
    -/*0542*/ uint8_t  eyecolor2;      // Left eye color
    -/*0547*/ uint8_t  haircolor;      // Hair color
    -/*0574*/ uint8_t  is_npc;         // 0=no, 1=yes
    -/*0575*/ uint8_t  findable;       // 0=can't be found, 1=can be found
    -/*0728*/ uint8_t  beard;          // Beard style (not totally, sure but maybe!)
    -/*0723*/ uint8_t  max_hp;         // (name prolly wrong)takes on the value 100 for players, 100 or 110 for NPCs and 120 for PC corpses...
    -/*122*/ uint8_t pvp; // 0=Not pvp,1=pvp
    +/*0004*/ float    size;                          // Model size
    +/*0078*/ int8_t   aa_title;                      // 0=none, 1=general, 2=archtype, 3=class
    +/*0074*/ uint8_t  invis;                         // Invis (0=not, 1=invis)
    +/*0117*/ uint8_t  lfg;                           // 0=off, 1=lfg on
    +/*0196*/ uint8_t  afk;                           // 0=no, 1=afk
    +/*0207*/ int8_t   guildrank;                     // 0=normal, 1=officer, 2=leader
    +/*0213*/ uint8_t  face;                             // Face id for players
    +/*0247*/ uint8_t  is_pet;                        // 0=no, 1=yes
    +/*0284*/ uint8_t  beardcolor;                    // Beard color
    +/*0500*/ uint8_t  showhelm;                      // 0=no, 1=yes
    +/*0501*/ uint8_t  helm;                          // Helm texture
    +/*0660*/ uint8_t  hairstyle;                     // Hair style
    +/*0090*/ uint8_t  eyecolor1;                     // Player's left eye color
    +/*0542*/ uint8_t  eyecolor2;                     // Left eye color
    +/*0547*/ uint8_t  haircolor;                     // Hair color
    +/*0574*/ uint8_t  is_npc;                        // 0=no, 1=yes
    +/*0575*/ uint8_t  findable;                      // 0=can't be found, 1=can be found
    +/*0728*/ uint8_t  beard;                         // Beard style (not totally, sure but maybe!)
    +/*0723*/ uint8_t  max_hp;                        // (name prolly wrong)takes on the value 100 for PCs, 100 or 110 for NPCs and 120 for PC corpses...
    +/*122*/ uint8_t pvp;                             // 0=Not pvp,1=pvp
     union 
     {
    -/*0091*/ int8_t equip_chest2;     // Second place in packet for chest texture (usually 0xFF in live packets)
    -                                  // Not sure why there are 2 of them, but it effects chest texture!
    -/*0091*/ int8_t mount_color;      // drogmor: 0=white, 1=black, 2=green, 3=red
    +/*0091*/ int8_t equip_chest2;                    // Second place in packet for chest texture (usually 0xFF in live packets)
    +                                                 // Not sure why there are 2 of them, but it effects chest texture!
    +/*0091*/ int8_t mount_color;                     // drogmor: 0=white, 1=black, 2=green, 3=red
     };
     #endif
     
    @@ -1293,21 +1319,21 @@
     
     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
    +/*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
    +/*0068*/ uint8_t unknown068[28];                 // ***Placeholder
     /*0096*/
     }; 
     
    @@ -1320,13 +1346,13 @@
     //       now only fill this with data we need from the serialized packet
     struct makeDropStruct
     {
    -   uint32_t dropId;                 // DropID
    -   float    heading;                // Heading
    -   float    z;                      // Z Position
    -   float    x;                      // X Position
    -   float    y;                      // Y Position
    -   char     idFile[30];             // ACTOR ID - The client reads 30 bytes from the packet
    -                                    //          - 20100210 eqgame.exe in EQItemList::UnpackNetData
    +   uint32_t dropId;                              // DropID
    +   float    heading;                             // Heading
    +   float    z;                                   // Z Position
    +   float    x;                                   // X Position
    +   float    y;                                   // Y Position
    +   char     idFile[30];                          // ACTOR ID - The client reads 30 bytes from the packet
    +                                                 //          - 20100210 eqgame.exe in EQItemList::UnpackNetData
     };
     
     /*
    @@ -1367,12 +1393,12 @@
     */
     struct timeOfDayStruct
     {
    -/*0000*/ uint8_t  hour;                   // Hour (1-24)
    -/*0001*/ uint8_t  minute;                 // Minute (0-59)
    -/*0002*/ uint8_t  day;                    // Day (1-28)
    -/*0003*/ uint8_t  month;                  // Month (1-12)
    -/*0004*/ uint16_t year;                   // Year
    -/*0006*/ uint16_t unknown0016;            // Placeholder
    +/*0000*/ uint8_t  hour;                          // Hour (1-24)
    +/*0001*/ uint8_t  minute;                        // Minute (0-59)
    +/*0002*/ uint8_t  day;                           // Day (1-28)
    +/*0003*/ uint8_t  month;                         // Month (1-12)
    +/*0004*/ uint16_t year;                          // Year
    +/*0006*/ uint16_t unknown0016;                   // Placeholder
     /*0008*/
     };
     
    @@ -1384,7 +1410,7 @@
     */
     struct itemPacketStruct
     {
    -/*000*/    ItemPacketType    packetType;       // See ItemPacketType for more info.
    +/*000*/    ItemPacketType    packetType;              // See ItemPacketType for more info.
     /*004*/    char        serializedItem[0];
     /*xx*/
     };
    @@ -1396,9 +1422,9 @@
     */
     struct itemInfoReqStruct
     {
    -/*000*/ uint32_t itemNr;                  // ItemNr 
    -/*005*/ uint32_t requestSeq;              // Request sequence number
    -/*008*/ char     name[64];                // Item name
    +/*000*/ uint32_t itemNr;                         // ItemNr 
    +/*005*/ uint32_t requestSeq;                     // Request sequence number
    +/*008*/ char     name[64];                       // Item name
     /*072*/
     };
     
    @@ -1409,7 +1435,7 @@
     */
     struct itemInfoStruct
     {
    -/*000*/    uint32_t    requestSeq;       // Corresponds to sequence # in req
    +/*000*/    uint32_t    requestSeq;              // Corresponds to sequence # in req
     /*004*/    char        serializedItem[0];
     /*xxx*/
     };
    @@ -1424,7 +1450,7 @@
     struct spawnPositionUpdate 
     {
     /*0000*/ int16_t  spawnId;
    -/*0002*/ uint8_t unk1[2];        // BSH 13 Apr 2011
    +/*0002*/ uint8_t unk1[2];                 // BSH 13 Apr 2011
     /*0004*/ int64_t  y:19, z:19, x:19, u3:7;
              unsigned heading:12;
              signed unused2:4;
    @@ -1433,38 +1459,38 @@
     
     /*
     ** Rename a spawn
    -** Length: 200 Octets
    +** Length: 232 Octets
     ** OpCode: SpawnRename
     */
     struct spawnRenameStruct
     {
     /*000*/    char        old_name[64];
    -/*064*/    char        old_name_again[64];    //not sure what the difference is
    +/*064*/    char        old_name_again[64];             //not sure what the difference is
     /*128*/    char        new_name[64];
    -/*192*/    uint32_t    unknown192;            //set to 0
    -/*196*/    uint32_t    unknown196;            //set to 1
    -/*200*/ uint8_t    unknown0084[32];     // ***Placeholder
    +/*192*/    uint32_t    unknown192;             //set to 0
    +/*196*/    uint32_t    unknown196;             //set to 1
    +/*200*/ uint8_t    unknown0084[32];              // ***Placeholder
     /*232*/
     };
     
     /*
     ** Illusion a spawn
    -** Length: 264 Octets
    +** Length: 300 Octets
     ** OpCode: Illusion
     */
     struct spawnIllusionStruct
     {
    -/*0000*/ uint32_t   spawnId;            // Spawn id of the target
    -/*0004*/ char       name[64];           // Name of the target
    -/*0068*/ uint32_t   race;               // New race
    -/*0072*/ uint8_t    gender;             // New gender (0=male, 1=female)
    -/*0073*/ uint8_t    texture;            // ???
    -/*0074*/ uint8_t    helm;               // ???
    -/*0075*/ uint8_t    unknown0075;        // ***Placeholder
    -/*0076*/ uint32_t   unknown0076;        // ***Placeholder
    -/*0080*/ uint32_t   face;               // New face
    -/*0084*/ uint8_t    unknown0084[180];   // ***Placeholder
    -/*0264*/
    +/*0000*/ uint32_t   spawnId;                     // Spawn id of the target
    +/*0004*/ char       name[64];                    // Name of the target
    +/*0068*/ uint32_t   race;                        // New race
    +/*0072*/ uint8_t    gender;                      // New gender (0=male, 1=female)
    +/*0073*/ uint8_t    texture;                     // ???
    +/*0074*/ uint8_t    helm;                        // ???
    +/*0075*/ uint8_t    unknown0075;                 // ***Placeholder
    +/*0076*/ uint32_t   unknown0076;                 // ***Placeholder
    +/*0080*/ uint32_t   face;                        // New face
    +/*0084*/ uint8_t    unknown0084[216];            // ***Placeholder
    +/*0300*/
     };
     
     /**
    @@ -1476,9 +1502,9 @@
      */
     struct spawnShroudOther
     {
    -/*00000*/ uint32_t spawnId;          // Spawn Id of the shrouded player
    -/*00004*/ uint16_t spawnStructSize;  // Size of spawnStruct (or start of)
    -/*00006*/ spawnStruct spawn;         // Updated spawn struct for the player (variable length)
    +/*00000*/ uint32_t spawnId;                      // Spawn Id of the shrouded player
    +/*00004*/ uint16_t spawnStructSize;              // Size of spawnStruct (or start of)
    +/*00006*/ spawnStruct spawn;                     // Updated spawn struct for the player (variable length)
     /*xxxxx*/
     };
     
    @@ -1493,11 +1519,11 @@
      */
     struct spawnShroudSelf
     {
    -/*00000*/ uint32_t spawnId;            // Spawn Id of you
    -/*00004*/ uint16_t ppStart;            // Start of playerProfile data (spawnId+ppStart+spawnStruct)
    -/*00004*/ spawnStruct spawn;           // Updated spawnStruct for you (variable length)
    -/*xxxxx*/ playerProfileStruct profile; // Character profile for shrouded char
    -/*xxxxx*/ uint8_t items;               // Items on the player
    +/*00000*/ uint32_t spawnId;                      // Spawn Id of you
    +/*00004*/ uint16_t ppStart;                      // Start of playerProfile data (spawnId+ppStart+spawnStruct)
    +/*00004*/ spawnStruct spawn;                     // Updated spawnStruct for you (variable length)
    +/*xxxxx*/ playerProfileStruct profile;           // Character profile for shrouded char
    +/*xxxxx*/ uint8_t items;                         // Items on the player
     /*xxxxx*/
     };
     
    @@ -1524,8 +1550,8 @@
     
     struct dbSpawnStruct
     {
    -/*0000*/ struct spawnStruct spawn;      // Spawn Information
    -/*0258*/ char   zoneName[40];           // Zone Information
    +/*0000*/ struct spawnStruct spawn;               // Spawn Information
    +/*0258*/ char   zoneName[40];                    // Zone Information
     };
     
     /*
    @@ -1534,8 +1560,8 @@
     
     struct petStruct
     {
    -/*0000*/ struct spawnStruct owner;      // Pet Owner Information
    -/*0258*/ struct spawnStruct pet;        // Pet Infromation
    +/*0000*/ struct spawnStruct owner;               // Pet Owner Information
    +/*0258*/ struct spawnStruct pet;                 // Pet Infromation
     };
     
     /*
    @@ -1546,7 +1572,7 @@
     
     struct sysMsgStruct
     {
    -/*0000*/ char     message[0];             // Variable length message
    +/*0000*/ char     message[0];                    // Variable length message
     };
     
     /*
    @@ -1557,8 +1583,8 @@
     
     struct emoteTextStruct
     {
    -/*0000*/ uint8_t  unknown0002[4];         // ***Placeholder
    -/*0002*/ char     text[0];                // Emote `Text
    +/*0000*/ uint8_t  unknown0002[4];                // ***Placeholder
    +/*0002*/ char     text[0];                       // Emote `Text
     };
     
     /*
    @@ -1568,19 +1594,19 @@
     
     This is how channelMessageStruct looks on the wire, for reference (8/12/09 eqgame.exe)
     
    -char            sender[0];             // Variable length senders name 
    -char            target[0];             // Variable length target characters name
    +char            sender[0];                       // Variable length senders name 
    +char            target[0];                       // Variable length target characters name
     uint32_t        unknown;
    -uint32_t        language;              // Language
    -uint32_t        chanNum;               // Channel
    +uint32_t        language;                        // Language
    +uint32_t        chanNum;                         // Channel
     uint32_t        unknown;
     uint8_t         unknown;
    -uint32_t        skillInLanguage;       // senders skill in language
    -char            message[0];            // Variable length message
    +uint32_t        skillInLanguage;                 // senders skill in language
    +char            message[0];                      // Variable length message
     uint8_t         unknown;
     uint32_t        unknown;
     uint32_t        unknown;
    -char            unknown[0];            // Variable legth unknown text
    +char            unknown[0];                      // Variable legth unknown text
     uint8_t         unknown;
     uint32_t        unknown;
     
    @@ -1594,7 +1620,7 @@
     /*0128*/ uint32_t language;
     /*0132*/ uint32_t chanNum;
     /*0144*/ uint32_t skillInLanguage;
    -/*0148*/ char     message[2048];       // Maximum message size according to eqgame.exe
    +/*0148*/ char     message[2048];                 // Maximum message size according to eqgame.exe
     };
     
     /*
    @@ -1605,11 +1631,11 @@
     
     struct formattedMessageStruct
     {
    -/*0000*/ uint8_t  unknown0002[4];         // ***Placeholder
    -/*0004*/ uint32_t messageFormat;          // Indicates the message format
    -/*0008*/ ChatColor messageColor;          // Message color
    -/*0012*/ char     messages[0];            // messages(NULL delimited)
    -/*0???*/ uint8_t  unknownXXXX[8];         // ***Placeholder
    +/*0000*/ uint8_t  unknown0002[4];                // ***Placeholder
    +/*0004*/ uint32_t messageFormat;                 // Indicates the message format
    +/*0008*/ ChatColor messageColor;                 // Message color
    +/*0012*/ char     messages[0];                   // messages(NULL delimited)
    +/*0???*/ uint8_t  unknownXXXX[8];                // ***Placeholder
     };
     
     /*
    @@ -1620,9 +1646,9 @@
     
     struct simpleMessageStruct
     {
    -/*0000*/ uint32_t  messageFormat;          // Indicates the message format
    -/*0004*/ ChatColor messageColor;                  // Message color
    -/*0008*/ uint32_t  unknown;                // ***Placeholder
    +/*0000*/ uint32_t  messageFormat;                // Indicates the message format
    +/*0004*/ ChatColor messageColor;                 // Message color
    +/*0008*/ uint32_t  unknown;                      // ***Placeholder
     /*0012*/
     };
     
    @@ -1634,13 +1660,13 @@
     
     struct specialMessageStruct
     {
    -  /*0000*/ uint8_t   unknown0000[3];  // message style?
    -  /*0003*/ ChatColor messageColor;    // message color
    -  /*0007*/ uint16_t  target;          // message target
    -  /*0009*/ uint16_t  padding;         // padding
    -  /*0011*/ char      source[0];       // message text
    -  /*0xxx*/ uint32_t  unknown0xxx[3];  //***Placeholder
    -  /*0yyy*/ char      message[0];      // message text
    +  /*0000*/ uint8_t   unknown0000[3];             // message style?
    +  /*0003*/ ChatColor messageColor;               // message color
    +  /*0007*/ uint16_t  target;                     // message target
    +  /*0009*/ uint16_t  padding;                    // padding
    +  /*0011*/ char      source[0];                  // message text
    +  /*0xxx*/ uint32_t  unknown0xxx[3];             //***Placeholder
    +  /*0yyy*/ char      message[0];                 // message text
     };
     
     /*
    @@ -1650,10 +1676,10 @@
     */
     struct guildMOTDStruct
     {
    -  /*0000*/ uint32_t unknown0000;      //***Placeholder
    -  /*0004*/ char     target[64];       // motd target
    -  /*0068*/ char     sender[64];       // motd "sender" (who set it)
    -  /*0132*/ uint32_t unknown0132;      //***Placeholder
    +  /*0000*/ uint32_t unknown0000;                 //***Placeholder
    +  /*0004*/ char     target[64];                  // motd target
    +  /*0068*/ char     sender[64];                  // motd "sender" (who set it)
    +  /*0132*/ uint32_t unknown0132;                 //***Placeholder
       /*0136*/ char     message[0];
     };
     
    @@ -1679,7 +1705,7 @@
     
     struct consentRequestStruct
     {
    -/*0000*/ char consentee[0];        // Name of player who was consented
    +/*0000*/ char consentee[0];                      // Name of player who was consented
     };
     
     /*
    @@ -1689,10 +1715,10 @@
     
     struct consentResponseStruct
     {
    -/*0000*/ char consentee[64];        // Name of player who was consented
    -/*0064*/ char consenter[64];        // Name of player who consented
    -/*0128*/ uint8_t allow;             // 00 = deny, 01 = allow
    -/*0129*/ char corpseZoneName[64];   // Zone where the corpse is
    +/*0000*/ char consentee[64];                     // Name of player who was consented
    +/*0064*/ char consenter[64];                     // Name of player who consented
    +/*0128*/ uint8_t allow;                          // 00 = deny, 01 = allow
    +/*0129*/ char corpseZoneName[64];                // Zone where the corpse is
     /*0193*/
     };
     
    @@ -1704,10 +1730,10 @@
     
     struct groupUpdateStruct
     {
    -/*0000*/ int32_t  action;           // Group update action
    -/*0004*/ char     yourname[64];     // Group Member Names
    -/*0068*/ char     membername[64];   // Group leader name
    -/*0132*/ uint8_t  unknown0132[324]; // ***Placeholder
    +/*0000*/ int32_t  action;                        // Group update action
    +/*0004*/ char     yourname[64];                  // Group Member Names
    +/*0068*/ char     membername[64];                // Group leader name
    +/*0132*/ uint8_t  unknown0132[324];              // ***Placeholder
     /*456*/
     };
     
    @@ -1736,9 +1762,9 @@
     
     struct groupInviteStruct
     {
    -/*0000*/ char     invitee[64];           // Invitee's Name
    -/*0064*/ char     inviter[64];           // Inviter's Name
    -/*0128*/ uint8_t  unknown0128[24];       // ***Placeholder
    +/*0000*/ char     invitee[64];                   // Invitee's Name
    +/*0064*/ char     inviter[64];                   // Inviter's Name
    +/*0128*/ uint8_t  unknown0128[24];               // ***Placeholder
     /*0152*/
     };
     
    @@ -1750,11 +1776,11 @@
     
     struct groupDeclineStruct
     {
    -/*0000*/ char     yourname[64];           // Player Name
    -/*0064*/ char     membername[64];         // Invited Member Name
    -/*0128*/ uint8_t  unknown0128[20];        // ***Placeholder
    -/*0148*/ uint8_t  reason;                 // Already in Group = 1, Declined Invite = 3
    -/*0149*/ uint8_t  unknown0141[3];         // ***Placeholder
    +/*0000*/ char     yourname[64];                  // Player Name
    +/*0064*/ char     membername[64];                // Invited Member Name
    +/*0128*/ uint8_t  unknown0128[20];               // ***Placeholder
    +/*0148*/ uint8_t  reason;                        // Already in Group = 1, Declined Invite = 3
    +/*0149*/ uint8_t  unknown0141[3];                // ***Placeholder
     /*0152*/
     };
     
    @@ -1766,11 +1792,11 @@
     
     struct groupFollowStruct
     {
    -/*0000*/ char     unknown0000[64];       // ***Placeholder (zeros)
    -/*0064*/ char     invitee[64];           // Invitee's Member Name
    -/*0128*/ uint8_t  unknown0132[4];        // ***Placeholder
    -/*0132*/ uint32_t level;                 // Invitee's level
    -/*0136*/ uint8_t  unknown0136[12];       // ***Placeholder (zeros)
    +/*0000*/ char     unknown0000[64];               // ***Placeholder (zeros)
    +/*0064*/ char     invitee[64];                   // Invitee's Member Name
    +/*0128*/ uint8_t  unknown0132[4];                // ***Placeholder
    +/*0132*/ uint32_t level;                         // Invitee's level
    +/*0136*/ uint8_t  unknown0136[12];               // ***Placeholder (zeros)
     /*0148*/
     };
     
    @@ -1782,9 +1808,9 @@
     
     struct groupDisbandStruct
     {
    -/*0000*/ char     yourname[64];           // Player Name
    -/*0064*/ char     membername[64];         // Invited Member Name
    -/*0128*/ uint8_t  unknown0128[20];        // ***Placeholder
    +/*0000*/ char     yourname[64];                  // Player Name
    +/*0064*/ char     membername[64];                // Invited Member Name
    +/*0128*/ uint8_t  unknown0128[20];               // ***Placeholder
     /*0148*/
     };
     
    @@ -1796,9 +1822,9 @@
     
     struct groupLeaderChangeStruct
     {
    -/*0000*/ char     unknown0000[64];        // ***Placeholder
    -/*0064*/ char     membername[64];         // Invited Member Name
    -/*0128*/ uint8_t  unknown0128[20];        // ***Placeholder
    +/*0000*/ char     unknown0000[64];               // ***Placeholder
    +/*0064*/ char     membername[64];                // Invited Member Name
    +/*0128*/ uint8_t  unknown0128[20];               // ***Placeholder
     /*0148*/
     };
     
    @@ -1810,7 +1836,7 @@
     
     struct deleteSpawnStruct
     {
    -/*0000*/ uint32_t spawnId;                // Spawn ID to delete
    +/*0000*/ uint32_t spawnId;                       // Spawn ID to delete
     /*0004*/
     };
     
    @@ -1822,8 +1848,8 @@
     
     struct removeSpawnStruct
     {
    -/*0000*/ uint32_t spawnId;                // Spawn ID to delete
    -/*0004*/ uint8_t  removeSpawn;            // 0 if spawn is not in your update radius
    +/*0000*/ uint32_t spawnId;                       // Spawn ID to delete
    +/*0004*/ uint8_t  removeSpawn;                   // 0 if spawn is not in your update radius
     /*0005*/
     };
     
    @@ -1835,10 +1861,10 @@
     
     struct remDropStruct
     {
    -/*0000*/ uint16_t dropId;                 // DropID - Guess
    -/*0002*/ uint8_t  unknown0004[2];         // ***Placeholder
    -/*0004*/ uint16_t spawnId;                // Pickup ID - Guess
    -/*0006*/ uint8_t  unknown0008[2];         // ***Placeholder
    +/*0000*/ uint16_t dropId;                        // ID assigned to drop
    +/*0002*/ uint8_t  unknown0004[2];                // ***Placeholder
    +/*0004*/ uint16_t spawnId;                       // ID of player picking item up
    +/*0006*/ uint8_t  unknown0008[2];                // ***Placeholder
     /*0008*/
     };
     
    @@ -1850,11 +1876,11 @@
     
     struct considerStruct
     {
    -/*0000*/ uint32_t playerid;               // PlayerID
    -/*0004*/ uint32_t targetid;               // TargetID
    -/*0008*/ int32_t  faction;                // Faction
    -/*0012*/ int32_t  level;                  // Level
    -/*0016*/ int32_t  unknown0016;            // unknown
    +/*0000*/ uint32_t playerid;                      // PlayerID
    +/*0004*/ uint32_t targetid;                      // TargetID
    +/*0008*/ int32_t  faction;                       // Faction
    +/*0012*/ int32_t  level;                         // Level
    +/*0016*/ int32_t  unknown0016;                   // unknown
     /*0020*/
     };
     
    @@ -1866,13 +1892,13 @@
     
     struct castOnStruct
     {
    -/*0000*/ uint16_t targetId;               // Target ID
    -/*0002*/ uint8_t  unknown0002[2];         // ***Placeholder
    -/*0004*/ int16_t  sourceId;                // ***Source ID
    -/*0006*/ uint8_t  unknown0006[2];         // ***Placeholder
    -/*0008*/ uint8_t  unknown0008[24];        // might be some spell info?
    -/*0032*/ uint16_t spellId;                // Spell Id
    -/*0034*/ uint8_t  unknown0034[2];         // ***Placeholder
    +/*0000*/ uint16_t targetId;                      // Target ID
    +/*0002*/ uint8_t  unknown0002[2];                // ***Placeholder
    +/*0004*/ int16_t  sourceId;                      // ***Source ID
    +/*0006*/ uint8_t  unknown0006[2];                // ***Placeholder
    +/*0008*/ uint8_t  unknown0008[24];               // might be some spell info?
    +/*0032*/ uint16_t spellId;                       // Spell Id
    +/*0034*/ uint8_t  unknown0034[2];                // ***Placeholder
     /*0036*/
     };
     
    @@ -1884,32 +1910,32 @@
     
     struct newCorpseStruct
     {
    -/*0000*/ uint32_t spawnId;                // Id of spawn that died
    -/*0004*/ uint32_t killerId;               // Killer
    -/*0008*/ uint32_t corpseid;               // corpses id
    -/*0012*/ int32_t  type;                   // corpse type?  
    -/*0016*/ uint32_t spellId;                // ID of Spell
    -/*0020*/ uint16_t zoneId;                 // Bind zone id
    -/*0022*/ uint16_t zoneInstance;           // Bind zone instance
    -/*0024*/ uint32_t damage;                 // Damage
    -/*0028*/ uint8_t  unknown0028[4];         // ***Placeholder
    +/*0000*/ uint32_t spawnId;                       // Id of spawn that died
    +/*0004*/ uint32_t killerId;                      // Killer
    +/*0008*/ uint32_t corpseid;                      // corpses id
    +/*0012*/ int32_t  type;                          // corpse type?  
    +/*0016*/ uint32_t spellId;                       // ID of Spell
    +/*0020*/ uint16_t zoneId;                        // Bind zone id
    +/*0022*/ uint16_t zoneInstance;                  // Bind zone instance
    +/*0024*/ uint32_t damage;                        // Damage
    +/*0028*/ uint8_t  unknown0028[4];                // ***Placeholder
     /*0032*/
     };
     
     /**
     ** Environmental damage (lava, falls)
    -** Length: 31 Octets
    +** Length: 39 Octets
     */
     
     struct environmentDamageStruct
     {
    -/*0000*/ uint32_t spawnId;          // Who is taking the damage
    +/*0000*/ uint32_t spawnId;                       // Who is taking the damage
     /*0004*/ uint8_t unknown0004[2];
    -/*0006*/ uint32_t damage;           // how much damage?
    +/*0006*/ uint32_t damage;                        // how much damage?
     /*0010*/ uint8_t unknown0010[12];
    -/*0022*/ uint8_t type;              // Damage type. FC = fall. FA = lava.
    -/*0023*/ uint8_t unknown0023[8];
    -/*0031*/
    +/*0022*/ uint8_t type;                           // Damage type. FC = fall. FA = lava.
    +/*0023*/ uint8_t unknown0023[16];
    +/*0039*/
     };
     
     /*
    @@ -1920,11 +1946,11 @@
     
     struct moneyOnCorpseStruct
     {
    -/*0000*/ uint8_t  unknown0002[4];         // ***Placeholder
    -/*0004*/ uint32_t platinum;               // Platinum Pieces
    -/*0008*/ uint32_t gold;                   // Gold Pieces
    -/*0012*/ uint32_t silver;                 // Silver Pieces
    -/*0016*/ uint32_t copper;                 // Copper Pieces
    +/*0000*/ uint8_t  unknown0002[4];                // ***Placeholder
    +/*0004*/ uint32_t platinum;                      // Platinum Pieces
    +/*0008*/ uint32_t gold;                          // Gold Pieces
    +/*0012*/ uint32_t silver;                        // Silver Pieces
    +/*0016*/ uint32_t copper;                        // Copper Pieces
     /*0020*/
     };
     
    @@ -1936,42 +1962,42 @@
     
     struct staminaStruct 
     {
    -/*0000*/ uint32_t food;                     // Hunger, in ticks till next eat
    -/*0004*/ uint32_t water;                    // Thirst, in ticks till next eat
    +/*0000*/ uint32_t food;                          // Hunger, in ticks till next eat
    +/*0004*/ uint32_t water;                         // Thirst, in ticks till next eat
     /*0008*/
     };
     
     /*
     ** Battle Code
    -** Length: 28 Octets
    +** Length: 30 Octets
     ** OpCode: ActionCode
     */
     
     // This can be used to gather info on spells cast on us
     struct action2Struct
     {
    -/*0000*/ uint16_t target;               // Target ID
    -/*0002*/ uint16_t source;               // Source ID
    -/*0004*/ uint8_t  type;                 // Bash, kick, cast, etc.
    -/*0005*/ int16_t  spell;                // SpellID
    +/*0000*/ uint16_t target;                        // Target ID
    +/*0002*/ uint16_t source;                        // Source ID
    +/*0004*/ uint8_t  type;                          // Bash, kick, cast, etc.
    +/*0005*/ int16_t  spell;                         // SpellID
     /*0007*/ int32_t  damage;
    -/*0011*/ uint8_t  unknown0011[13];  // ***Placeholder
    -/*0024*/ uint8_t  unknown0024[4];    // ***Placeholder (11/24/07)
    -/*0028*/
    +/*0011*/ uint8_t  unknown0011[13];               // ***Placeholder
    +/*0024*/ uint8_t  unknown0024[6];             // ***Placeholder (11/24/07)
    +/*0030*/
     };
     
     // This can be used to gather info on spells cast on us
     struct actionStruct
     {
    -/*0000*/ uint16_t target;                 // Target ID
    -/*0002*/ uint16_t source;                 // SourceID
    -/*0004*/ uint8_t  level;                  // Caster level
    -/*0005*/ uint8_t  unknown0005[21];        // ***Placeholder
    -/*0026*/ uint8_t  type;                   // Casts, Falls, Bashes, etc...
    +/*0000*/ uint16_t target;                        // Target ID
    +/*0002*/ uint16_t source;                        // SourceID
    +/*0004*/ uint8_t  level;                         // Caster level
    +/*0005*/ uint8_t  unknown0005[21];               // ***Placeholder
    +/*0026*/ uint8_t  type;                          // Casts, Falls, Bashes, etc...
     /*0027*/ uint8_t  unknown0031[6];
    -/*0033*/ int16_t  spell;                  // SpellID
    -/*0035*/ uint8_t  unknown0035[2];         // ***Placeholder
    -/*0037*/ uint8_t  unknown0037[2];         // ***Placeholder
    +/*0033*/ int16_t  spell;                         // SpellID
    +/*0035*/ uint8_t  unknown0035[2];                // ***Placeholder
    +/*0037*/ uint8_t  unknown0037[2];                // ***Placeholder
     /*0039*/
     };
     
    @@ -1980,14 +2006,14 @@
     // has to do with buff blocking??
     struct actionAltStruct
     {
    -/*0000*/ uint16_t target;                 // Target ID
    -/*0002*/ uint16_t source;                 // SourceID
    -/*0004*/ uint8_t  level;                  // Caster level
    -/*0005*/ uint8_t  unknown0005[21];        // ***Placeholder
    -/*0026*/ uint8_t  type;                   // Casts, Falls, Bashes, etc...
    +/*0000*/ uint16_t target;                        // Target ID
    +/*0002*/ uint16_t source;                        // SourceID
    +/*0004*/ uint8_t  level;                         // Caster level
    +/*0005*/ uint8_t  unknown0005[21];               // ***Placeholder
    +/*0026*/ uint8_t  type;                          // Casts, Falls, Bashes, etc...
     /*0027*/ uint8_t  unknown0031[6];
    -/*0033*/ int16_t  spell;                  // SpellID
    -/*0035*/ uint8_t  unknown0035[2];         // ***Placeholder
    +/*0033*/ int16_t  spell;                         // SpellID
    +/*0035*/ uint8_t  unknown0035[2];                // ***Placeholder
     /*0037*/ uint32_t unknown0037;
     /*0041*/ uint8_t  unknown0041[15];
     /*0056*/
    @@ -2001,7 +2027,7 @@
     
     struct clientTargetStruct
     {
    -/*0000*/ uint32_t newTarget;              // Target ID
    +/*0000*/ uint32_t newTarget;                     // Target ID
     /*0004*/ 
     };
     
    @@ -2013,13 +2039,13 @@
     
     struct startCastStruct 
     {
    -/*0000*/ int32_t  slot;                   // ***Placeholder
    -/*0004*/ uint32_t spellId;                // Spell ID
    -/*0008*/ int32_t  inventorySlot;          // ***Placeholder
    -/*0012*/ uint8_t  unknown0012[8];         // ***Placeholder
    -/*0020*/ uint32_t targetId;               // The current selected target
    -/*0024*/ uint8_t  unknown0024[4];         // ***Placeholder
    -/*0028*/ uint8_t  unknown0028[16];      // ***Placeholder (4/7/2009)
    +/*0000*/ int32_t  slot;                          // Spell slot
    +/*0004*/ uint32_t spellId;                       // Spell ID
    +/*0008*/ int32_t  inventorySlot;                 // ***Placeholder
    +/*0012*/ uint8_t  unknown0012[8];                // ***Placeholder
    +/*0020*/ uint32_t targetId;                      // The current selected target
    +/*0024*/ uint8_t  unknown0024[4];                // ***Placeholder
    +/*0028*/ uint8_t  unknown0028[16];             // ***Placeholder (4/7/2009)
     /*0044*/
     };
     
    @@ -2031,11 +2057,11 @@
     
     struct manaDecrementStruct
     {
    -/*0000*/ int32_t newMana;                  // New Mana AMount
    +/*0000*/ int32_t newMana;                        // New Mana AMount
     /*0004*/ int32_t unknown;
    -/*0008*/ int32_t spellId;                  // Last Spell Cast
    +/*0008*/ int32_t spellId;                        // Last Spell Cast
     /*0012*/ uint8_t unknown0012[4];
    -/*0016*/ uint8_t unknown0016[4];           //*** Placeholder (02/13/07)
    +/*0016*/ uint8_t unknown0016[4];                 //*** Placeholder (02/13/07)
     /*0020*/
     };
     
    @@ -2046,8 +2072,8 @@
     */
     struct spMesgStruct
     {
    -/*0000*/ int32_t msgType;                 // Type of message
    -/*0004*/ char    message[0];              // Message, followed by four Octets?
    +/*0000*/ int32_t msgType;                        // Type of message
    +/*0004*/ char    message[0];                     // Message, followed by four Octets?
     };
     
     /*
    @@ -2057,23 +2083,24 @@
     */
     struct spellFadedStruct
     {
    -/*0000*/ uint32_t color;                  // color of the spell fade message
    -/*0004*/ char     message[0];             // fade message
    -/*0???*/ uint8_t  paddingXXX[3];          // always 0's 
    +/*0000*/ uint32_t color;                         // color of the spell fade message
    +/*0004*/ char     message[0];                    // fade message
    +/*0???*/ uint8_t  paddingXXX[3];                 // always 0's 
     };
     
     /*
     ** Spell Action Struct
    -** Length: 8 Octets
    +** Length: 10 Octets
     ** OpCode: BeginCastCode
     */
     struct beginCastStruct
     {
    -/*0000*/ uint16_t spawnId;                // Id of who is casting
    -/*0002*/ uint16_t spellId;                // Id of spell
    -/*0004*/ int16_t  param1;                 // Paramater 1
    -/*0006*/ int16_t  param2;                 // Paramater 2
    -/*0008*/
    +/*0000*/ uint16_t spawnId;                       // Id of who is casting
    +/*0002*/ uint16_t spellId;                       // Id of spell
    +/*0004*/ int16_t  param1;                        // Paramater 1
    +/*0006*/ int16_t  param2;                        // Paramater 2
    +/*0008*/ int16_t  param3;                        // Paramater 3
    +/*0010*/
     };
     
     /*
    @@ -2084,11 +2111,11 @@
     
     struct memSpellStruct
     {
    -/*0000*/ uint32_t slotId;                 // Slot spell is being memorized in
    -/*0004*/ uint32_t spellId;                // Id of spell
    -/*0008*/ int16_t  param1;                 // Paramater 1
    -/*0010*/ int16_t  param2;                 // Paramater 2
    -/*0012*/ uint8_t  unknown0012[4];         // *** Placeholder
    +/*0000*/ uint32_t slotId;                        // Slot spell is being memorized in
    +/*0004*/ uint32_t spellId;                       // Id of spell
    +/*0008*/ int16_t  param1;                        // Paramater 1
    +/*0010*/ int16_t  param2;                        // Paramater 2
    +/*0012*/ uint8_t  unknown0012[4];                // *** Placeholder
     /*0016*/
     };
     
    @@ -2100,9 +2127,9 @@
     
     struct skillTrainStruct
     {
    -/*0000*/ int32_t  playerid;               // player doing the training
    -/*0004*/ int32_t  type;                   // type of training?
    -/*0008*/ uint32_t skillId;                // Id of skill
    +/*0000*/ int32_t  playerid;                      // player doing the training
    +/*0004*/ int32_t  type;                          // type of training?
    +/*0008*/ uint32_t skillId;                       // Id of skill
     /*0012*/
     };
     
    @@ -2114,9 +2141,9 @@
     
     struct skillIncStruct
     {
    -/*0000*/ uint32_t skillId;                // Id of skill
    -/*0004*/ int32_t  value;                  // New value of skill
    -/*0008*/ uint8_t  unknown0008[4];         // *** Placeholder
    +/*0000*/ uint32_t skillId;                       // Id of skill
    +/*0004*/ int32_t  value;                         // New value of skill
    +/*0008*/ uint8_t  unknown0008[4];                // *** Placeholder
     /*0012*/
     };
     
    @@ -2127,13 +2154,13 @@
     ** Opcode: WearChangeCode
     */
     
    -// ZBTEMP: Find newItemID
    +// ZBTEMP: Find newItemID ***
     struct wearChangeStruct
     {
    -/*0000*/ uint16_t spawnId;                // SpawnID
    -/*0002*/ Color_Struct color;              // item color
    -/*0006*/ uint8_t  wearSlotId;             // Slot ID
    -/*0007*/ uint8_t  unknown0007[7];         // unknown
    +/*0000*/ uint16_t spawnId;                       // SpawnID
    +/*0002*/ Color_Struct color;                     // item color
    +/*0006*/ uint8_t  wearSlotId;                    // Slot ID
    +/*0007*/ uint8_t  unknown0007[7];                // unknown
     /*0014*/
     };
     
    @@ -2145,9 +2172,9 @@
     
     struct levelUpUpdateStruct
     {
    -/*0000*/ uint32_t level;                  // New level
    -/*0004*/ uint32_t levelOld;               // Old level
    -/*0008*/ uint32_t exp;                    // Current Experience
    +/*0000*/ uint32_t level;                         // New level
    +/*0004*/ uint32_t levelOld;                      // Old level
    +/*0008*/ uint32_t exp;                           // Current Experience
     /*0012*/
     };
     
    @@ -2159,8 +2186,8 @@
     
     struct expUpdateStruct
     {
    -/*0000*/ uint32_t exp;                    // experience value  x/330
    -/*0004*/ uint32_t type;                   // 0=set, 2=update
    +/*0000*/ uint32_t exp;                           // experience value  x/330
    +/*0004*/ uint32_t type;                          // 0=set, 2=update
     /*0008*/
     };
     
    @@ -2171,10 +2198,10 @@
     */
     struct altExpUpdateStruct
     {
    -/*0000*/ uint32_t altexp;                 // alt exp x/330
    -/*0004*/ uint32_t aapoints;               // current number of AA points
    -/*0008*/ uint8_t  percent;                // percentage in integer form
    -/*0009*/ uint8_t  unknown0009[3];            // ***Place Holder
    +/*0000*/ uint32_t altexp;                        // alt exp x/330
    +/*0004*/ uint32_t aapoints;                      // current number of AA points
    +/*0008*/ uint8_t  percent;                       // percentage in integer form
    +/*0009*/ uint8_t  unknown0009[3];                // ***Place Holder
     /*0012*/
     };
     
    @@ -2185,32 +2212,32 @@
      */
     struct leadExpUpdateStruct
     {
    -/*0000*/ uint32_t unknown0000;          // All zeroes?
    -/*0004*/ uint32_t groupLeadExp;         // Group leadership exp value
    -/*0008*/ uint32_t unspentGroupPoints;   // Unspent group points
    -/*0012*/ uint32_t unknown0012;          // Type?
    -/*0016*/ uint32_t unknown0016;          // All zeroes?
    -/*0020*/ uint32_t raidLeadExp;          // Raid leadership exp value
    -/*0024*/ uint32_t unspentRaidPoints;    // Unspent raid points
    +/*0000*/ uint32_t unknown0000;                   // All zeroes?
    +/*0004*/ uint32_t groupLeadExp;                  // Group leadership exp value
    +/*0008*/ uint32_t unspentGroupPoints;            // Unspent group points
    +/*0012*/ uint32_t unknown0012;                   // Type?
    +/*0016*/ uint32_t unknown0016;                   // All zeroes?
    +/*0020*/ uint32_t raidLeadExp;                   // Raid leadership exp value
    +/*0024*/ uint32_t unspentRaidPoints;             // Unspent raid points
     /*0028*/ uint32_t unknown0028;
     /*0032*/
     };
     
     /*
     ** Player Spawn Update
    -** Length: 19 Octets
    +** Length: 23 Octets
     ** OpCode: SpawnUpdateCode
     */
     
     struct SpawnUpdateStruct
     {
    -/*0000*/ uint16_t spawnId;                // Id of spawn to update
    -/*0002*/ uint16_t subcommand;             // some sort of subcommand type
    -/*0004*/ int16_t  arg1;                   // first option
    -/*0006*/ int16_t  arg2;                   // second option
    -/*0008*/ uint8_t  arg3;                   // third option?
    -/*0009*/ uint8_t unknown0009[10];
    -/*0019*/
    +/*0000*/ uint16_t spawnId;                       // Id of spawn to update
    +/*0002*/ uint16_t subcommand;                    // some sort of subcommand type
    +/*0004*/ int16_t  arg1;                          // first option
    +/*0006*/ int16_t  arg2;                          // second option
    +/*0008*/ uint8_t  arg3;                          // third option?
    +/*0009*/ uint8_t unknown0009[14];
    +/*0023*/
     };
     
     /*
    @@ -2235,12 +2262,12 @@
     
     struct inspectDataStruct
     {
    -/*0000*/ uint8_t  unknown0000[8];         // ***Placeholder
    -/*0008*/ char     itemNames[23][64];      // 23 items with names 
    -                                          //    64 characters long.
    -/*1480*/ int32_t  icons[23];              // Icon Information
    -/*1572*/ char     mytext[200];            // Player Defined Text Info
    -/*1772*/ uint8_t  unknown1772[88];        // ***Placeholder
    +/*0000*/ uint8_t  unknown0000[8];                // ***Placeholder
    +/*0008*/ char     itemNames[23][64];             // 23 items with names 
    +                                                 //    64 characters long.
    +/*1480*/ int32_t  icons[23];                     // Icon Information
    +/*1572*/ char     mytext[200];                   // Player Defined Text Info
    +/*1772*/ uint8_t  unknown1772[88];               // ***Placeholder
     /*1860*/
     };
     
    @@ -2253,7 +2280,7 @@
     struct bookTextStruct
     {
     /*0000*/ uint16_t unknown0000;
    -/*0002*/ char     text[0];                  // Text of item reading
    +/*0002*/ char     text[0];                       // Text of item reading
     };
     
     /*
    @@ -2264,8 +2291,8 @@
     
     struct badCastStruct
     {
    -/*0000*/ uint32_t spawnId;                  // Id of who is casting
    -/*0004*/ char     message[0];               // Text Message
    +/*0000*/ uint32_t spawnId;                       // Id of who is casting
    +/*0004*/ char     message[0];                    // Text Message
     };
     
     /*
    @@ -2275,8 +2302,8 @@
     */
     struct randomReqStruct 
     {
    -/*0000*/ uint32_t bottom;                 // Low number
    -/*0004*/ uint32_t top;                    // High number
    +/*0000*/ uint32_t bottom;                        // Low number
    +/*0004*/ uint32_t top;                           // High number
     /*0008*/
     };
     
    @@ -2287,10 +2314,10 @@
     */
     struct randomStruct 
     {
    -/*0000*/ uint32_t bottom;                 // Low number
    -/*0004*/ uint32_t top;                    // High number
    -/*0008*/ uint32_t result;                 // result number
    -/*0012*/ char     name[64];               // name rolled by
    +/*0000*/ uint32_t bottom;                        // Low number
    +/*0004*/ uint32_t top;                           // High number
    +/*0008*/ uint32_t result;                        // result number
    +/*0012*/ char     name[64];                      // name rolled by
     /*0076*/
     };
     
    @@ -2303,21 +2330,21 @@
     struct playerSpawnPosStruct
     {
     /*0000*/ uint16_t spawnId;
    -     uint8_t  unk[2];      // BSH 13 Apr 2011
    -/*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:10;   // animation
    -         signed   padding0010:3;  // ***Placeholder
    -/*0014*/ unsigned heading:12;     // heading
    -         signed   x:19;           // x coord
    -         signed   padding0014:1;  // ***Placeholder
    -/*0020*/ signed   z:19;           // z coord
    -         signed   deltaZ:13;      // change in z
    +     uint8_t  unk[2];                     // BSH 13 Apr 2011
    +/*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:10;                  // animation
    +         signed   padding0010:3;                 // ***Placeholder
    +/*0014*/ unsigned heading:12;                    // heading
    +         signed   x:19;                          // x coord
    +         signed   padding0014:1;                 // ***Placeholder
    +/*0020*/ signed   z:19;                          // z coord
    +         signed   deltaZ:13;                     // change in z
     /*0024*/
     };
     
    @@ -2329,21 +2356,21 @@
     
     struct playerSelfPosStruct
     {
    -/*0000*/ uint16_t spawnId;        // Player's spawn id
    -/*0002*/ uint8_t unknown0002[2];  // ***Placeholder (update time counter?)
    -/*0004*/ uint8_t unknown0004[6];  // ***Placeholder -- BSH 13 Apr 2011
    -/*0010*/ float x;                 // x coord (2nd loc value)
    -/*0014*/ float y;                 // y coord (1st loc value)
    -/*0018*/ signed deltaHeading:10;  // change in heading
    -         unsigned animation:10;   // animation
    -         unsigned padding0016:12; // ***Placeholder 
    -/*0022*/ float deltaX;            // Change in x
    -/*0026*/ float deltaY;            // Change in y
    -/*0030*/ float z;                 // z coord (3rd loc value)
    -/*0034*/ float deltaZ;            // Change in z
    -/*0038*/ unsigned padding0036:10; // ***Placeholder
    -         unsigned heading:12;     // Directional heading
    -         unsigned padding0037:10; // ***Placeholder 
    +/*0000*/ uint16_t spawnId;                       // Player's spawn id
    +/*0002*/ uint8_t unknown0002[2];                 // ***Placeholder (update time counter?)
    +/*0004*/ uint8_t unknown0004[6];                 // ***Placeholder -- BSH 13 Apr 2011
    +/*0010*/ float x;                                // x coord (2nd loc value)
    +/*0014*/ float y;                                // y coord (1st loc value)
    +/*0018*/ signed deltaHeading:10;                 // change in heading
    +         unsigned animation:10;                  // animation
    +         unsigned padding0016:12;                // ***Placeholder 
    +/*0022*/ float deltaX;                           // Change in x
    +/*0026*/ float deltaY;                           // Change in y
    +/*0030*/ float z;                                // z coord (3rd loc value)
    +/*0034*/ float deltaZ;                           // Change in z
    +/*0038*/ unsigned padding0036:10;                // ***Placeholder
    +         unsigned heading:12;                    // Directional heading
    +         unsigned padding0037:10;                // ***Placeholder 
     /*0042*/
     };
     
    @@ -2356,9 +2383,9 @@
     
     struct spawnAppearanceStruct
     {
    -/*0000*/ uint16_t spawnId;                // ID of the spawn
    -/*0002*/ uint16_t type;                   // Type of data sent
    -/*0004*/ uint32_t parameter;              // Values associated with the type
    +/*0000*/ uint16_t spawnId;                       // ID of the spawn
    +/*0002*/ uint16_t type;                          // Type of data sent
    +/*0004*/ uint32_t parameter;                     // Values associated with the type
     /*0008*/
     };
     
    @@ -2370,55 +2397,55 @@
     
     struct bindWoundStruct
     {
    -/*0000*/ uint16_t playerid;             // TargetID
    -/*0002*/ uint8_t  unknown0002[2];       // ***Placeholder
    -/*0004*/ uint32_t hpmaybe;              // Hitpoints -- Guess
    +/*0000*/ uint16_t playerid;                      // TargetID
    +/*0002*/ uint8_t  unknown0002[2];                // ***Placeholder
    +/*0004*/ uint32_t hpmaybe;                       // Hitpoints -- Guess
     /*0008*/
     };
     
     struct inspectedStruct
     {
    -/*0000*/ uint16_t inspectorid;         // Source ID
    -/*0002*/ uint8_t  unknown0002[2];      // ***Placeholder
    -/*0004*/ uint16_t inspectedid;         // Target ID - Should be you
    -/*0006*/ uint8_t  unknown0006[2];      // ***Placeholder
    +/*0000*/ uint16_t inspectorid;                   // Source ID
    +/*0002*/ uint8_t  unknown0002[2];                // ***Placeholder
    +/*0004*/ uint16_t inspectedid;                   // Target ID - Should be you
    +/*0006*/ uint8_t  unknown0006[2];                // ***Placeholder
     /*0008*/
     };
     
     struct attack1Struct
     {
    -/*0000*/ uint16_t spawnId;                // Spawn ID
    -/*0002*/ int16_t  param1;                 // ***Placeholder
    -/*0004*/ int16_t  param2;                 // ***Placeholder
    -/*0006*/ int16_t  param3;                 // ***Placeholder
    -/*0008*/ int16_t  param4;                 // ***Placeholder
    -/*0010*/ int16_t  param5;                 // ***Placeholder
    +/*0000*/ uint16_t spawnId;                       // Spawn ID
    +/*0002*/ int16_t  param1;                        // ***Placeholder
    +/*0004*/ int16_t  param2;                        // ***Placeholder
    +/*0006*/ int16_t  param3;                        // ***Placeholder
    +/*0008*/ int16_t  param4;                        // ***Placeholder
    +/*0010*/ int16_t  param5;                        // ***Placeholder
     /*0012*/
     };
     
     struct attack2Struct
     {
    -/*0000*/ uint16_t spawnId;                // Spawn ID
    -/*0002*/ int16_t  param1;                 // ***Placeholder
    -/*0004*/ int16_t  param2;                 // ***Placeholder
    -/*0006*/ int16_t  param3;                 // ***Placeholder
    -/*0008*/ int16_t  param4;                 // ***Placeholder
    -/*0010*/ int16_t  param5;                 // ***Placeholder
    +/*0000*/ uint16_t spawnId;                       // Spawn ID
    +/*0002*/ int16_t  param1;                        // ***Placeholder
    +/*0004*/ int16_t  param2;                        // ***Placeholder
    +/*0006*/ int16_t  param3;                        // ***Placeholder
    +/*0008*/ int16_t  param4;                        // ***Placeholder
    +/*0010*/ int16_t  param5;                        // ***Placeholder
     /*0012*/
     };
     
     struct newGuildInZoneStruct
     {
    -/*0000*/ uint8_t  unknown0000[8];         // ***Placeholder
    -/*0008*/ char     guildname[56];          // Guildname
    +/*0000*/ uint8_t  unknown0000[8];                // ***Placeholder
    +/*0008*/ char     guildname[56];                 // Guildname
     /*0064*/
     };
     
     struct moneyUpdateStruct
     {
    -/*0000*/ uint32_t spawnid;            // ***Placeholder
    -/*0004*/ uint32_t cointype;           // Coin Type
    -/*0008*/ uint32_t amount;             // Amount
    +/*0000*/ uint32_t spawnid;                       // ***Placeholder
    +/*0004*/ uint32_t cointype;                      // Coin Type
    +/*0008*/ uint32_t amount;                        // Amount
     /*0012*/
     };
     
    @@ -2426,43 +2453,50 @@
     
     struct memorizeSlotStruct
     {
    -/*0000*/ uint32_t slot;                     // Memorization slot (0-7)
    -/*0004*/ uint32_t spellId;                  // Id of spell 
    -                                            // (offset of spell in spdat.eff)
    -/*0008*/ uint32_t action;                   // 1-memming,0-scribing,2-forget
    +/*0000*/ uint32_t slot;                          // Memorization slot (0-7)
    +/*0004*/ uint32_t spellId;                       // Id of spell 
    +                                                 // (offset of spell in spdat.eff)
    +/*0008*/ uint32_t action;                        // 1-memming,0-scribing,2-forget
     /*0012*/
     };
     
    +/*
    +** Spawn Appearance
    +** Length: 4 Octets
    +** OpCode: SetRunModeCode
    +*/
    +
     struct cRunToggleStruct
     {
    -/*0000*/ uint32_t status;                   //01=run  00=walk
    +/*0000*/ uint32_t status;                        //01=run  00=walk
    +/*0004*/
     };
     
     struct cChatFiltersStruct
     {
    -/*0000*/ uint32_t DamageShields;   //00=on  01=off
    -/*0004*/ uint32_t NPCSpells;       //00=on  01=off
    -/*0008*/ uint32_t PCSpells;        //00=all 01=off 02=grp
    -/*0012*/ uint32_t BardSongs;       //00=all 01=me  02=grp 03=off
    +/*0000*/ uint32_t DamageShields;                 //00=on  01=off
    +/*0004*/ uint32_t NPCSpells;                     //00=on  01=off
    +/*0008*/ uint32_t PCSpells;                      //00=all 01=off 02=grp
    +/*0012*/ uint32_t BardSongs;                     //00=all 01=me  02=grp 03=off
     /*0016*/ uint32_t Unused;
    -/*0020*/ uint32_t GuildChat;       //00=off 01=on
    -/*0024*/ uint32_t Socials;         //00=off 01=on
    -/*0028*/ uint32_t GroupChat;       //00=off 01=on
    -/*0032*/ uint32_t Shouts;          //00=off 01=on
    -/*0036*/ uint32_t Auctions;        //00=off 01=on
    -/*0040*/ uint32_t OOC;             //00=off 01=on
    -/*0044*/ uint32_t MyMisses;        //00=off 01=on
    -/*0048*/ uint32_t OthersMisses;    //00=off 01=on
    -/*0052*/ uint32_t OthersHits;      //00=off 01=on
    -/*0056*/ uint32_t AttackerMisses;  //00=off 01=on
    -/*0060*/ uint32_t CriticalSpells;  //00=all 01=me  02=off
    -/*0064*/ uint32_t CriticalMelee;   //00=all 01=me  02=off
    +/*0020*/ uint32_t GuildChat;                     //00=off 01=on
    +/*0024*/ uint32_t Socials;                       //00=off 01=on
    +/*0028*/ uint32_t GroupChat;                     //00=off 01=on
    +/*0032*/ uint32_t Shouts;                        //00=off 01=on
    +/*0036*/ uint32_t Auctions;                      //00=off 01=on
    +/*0040*/ uint32_t OOC;                           //00=off 01=on
    +/*0044*/ uint32_t MyMisses;                      //00=off 01=on
    +/*0048*/ uint32_t OthersMisses;                  //00=off 01=on
    +/*0052*/ uint32_t OthersHits;                    //00=off 01=on
    +/*0056*/ uint32_t AttackerMisses;                //00=off 01=on
    +/*0060*/ uint32_t CriticalSpells;                //00=all 01=me  02=off
    +/*0064*/ uint32_t CriticalMelee;                 //00=all 01=me  02=off
     /*0068*/
     };
     
     struct cOpenSpellBookStruct
     {
    -/*0000*/ int32_t status; //01=open 00=close
    +/*0000*/ int32_t status;                         //01=open 00=close
     /*0004*/
     };
     
    @@ -2484,7 +2518,7 @@
     {
     /*0000*/ uint16_t spawnID;
     /*0002*/ uint16_t unknown0004;
    -/*0004*/ uint16_t LFG;             //1=LFG
    +/*0004*/ uint16_t LFG;                           //1=LFG
     /*0006*/ uint16_t unknown0008;
     /*0008*/
     };
    @@ -2498,7 +2532,7 @@
     struct clientLFGStruct
     {
     /*0000*/ uint8_t  name[64];
    -/*0064*/ uint16_t LFG;             //1=LFG
    +/*0064*/ uint16_t LFG;                           //1=LFG
     /*0066*/ uint16_t unknown0008;
     };
     
    @@ -2510,16 +2544,16 @@
     
     struct buffStruct
     {
    -/*0000*/ uint32_t spawnid;        //spawn id
    +/*0000*/ uint32_t spawnid;                       //spawn id
     /*0004*/ uint8_t  unknown0004[4]; 
     /*0008*/ float    unknown0008;
    -/*0012*/ uint32_t spellid;        // spellid
    -/*0016*/ uint32_t duration;       // duration
    +/*0012*/ uint32_t spellid;                       // spellidbegin
    +/*0016*/ uint32_t duration;                      // duration
     /*0024*/ uint8_t  unknown0024[8];
    -/*0028*/ uint32_t playerId;       // Player id who cast the buff
    +/*0028*/ uint32_t playerId;                      // Player id who cast the buff
     /*0032*/ uint8_t  unknown0032[4]; 
    -/*0036*/ uint32_t spellslot;      // spellslot
    -/*0040*/ uint32_t changetype;     // 1=buff fading,2=buff duration
    +/*0036*/ uint32_t spellslot;                     // spellslot
    +/*0040*/ uint32_t changetype;                    // 1=buff fading,2=buff duration
     /*0044*/ 
     };
     
    @@ -2531,46 +2565,56 @@
     
     struct GuildMemberUpdate
     {
    -/*000*/ uint32_t guildId;       // guild id
    -/*004*/ char     name[64];      // member name
    -/*068*/ uint16_t zoneId;        // zone id 
    -/*070*/ uint16_t zoneInstance;  // zone instance
    -/*072*/ uint32_t lastOn;        // time the player was last on.
    +/*000*/ uint32_t guildId;                        // guild id
    +/*004*/ char     name[64];                       // member name
    +/*068*/ uint16_t zoneId;                         // zone id 
    +/*070*/ uint16_t zoneInstance;                   // zone instance
    +/*072*/ uint32_t lastOn;                         // time the player was last on.
     /*076*/
     };
     
     /*
     ** Bazaar trader on/off struct
    -** Length: 8 Octets
    +** Length: 76 Octets
     **
     */
     struct bazaarTraderRequest
     {
    -/*000*/ uint32_t spawnId;       // Spawn id of person turning trader on/off
    -/*004*/ uint8_t mode;           // 0=off, 1=on
    -/*005*/ uint8_t uknown005[3];   // 
    -/*008*/
    +/*000*/ uint32_t spawnId;                        // Spawn id of person turning trader on/off
    +/*004*/ uint8_t mode;                            // 0=off, 1=on
    +/*005*/ uint8_t uknown005[3];                    // 
    +/*008*/ char     name[64];                       // trader name
    +/*072*/ uint8_t uknown072[4];                    //
    +/*076*/
     };
     
     struct bazaarSearchQueryStruct 
     {
       uint32_t mark;
       uint32_t type;
    -  char unknownXXX0[20]; // Value seems to always be the same
    -  char searchstring[64];
    +  char     unknownXXX0[20];                      // Value seems to always be the same
    +  char     searchstring[64];
       uint32_t unknownXXX1;
       uint32_t unknownXXX2;
     };
     
    +/*
    +** Item Bazaar Search Result
    +** Length: 160 Octets
    +** OpCode: BazaarSearch
    +*/
     struct bazaarSearchResponseStruct 
     {
    -  uint32_t mark;
    -  uint32_t count;
    -  uint32_t item_id;
    -  uint32_t player_id;
    -  uint32_t price;
    -  uint32_t status; // XXX Still poorly understood. 0=simple search
    -  char item_name[64]; // nul-padded name with appended "(count)"
    +/*0000*/ uint32_t mark;                          // ***unknown***
    +/*0004*/ uint32_t player_id;                     // trader ID
    +/*0008*/ char     merchant_name[64];             // trader name
    +/*0072*/ uint32_t count;                         // Count of items for sale
    +/*0076*/ uint32_t item_id;                       // ID of item for sale
    +/*0080*/ uint8_t uknown0080[8];                  // ***unknown***
    +/*0088*/ char     item_name[64];                 // nul-padded name with appended "(count)"
    +/*0152*/ uint32_t price;                         // price in copper
    +/*0156*/ uint8_t uknown0156[4];                  // ***unknown***
    +/*0160*/
     };
     
     /*
    @@ -2608,7 +2652,7 @@
     {
     /*000*/ uint8_t   unknown000[64];
     /*064*/ uint32_t  numberOfGuilds; // ?
    -/*068*/ guildListStruct guilds[MAX_GUILDS]; // MAX_GUILDS varies by server now
    +/*068*/ guildListStruct guilds[MAX_GUILDS];      // MAX_GUILDS varies by server now
     };
     
     struct worldMOTDStruct
    --- src/filter.cpp    2012-03-04 14:47:14.000000000 -0500
    +++ src/filter.cpp    2012-04-04 00:19:40.750894500 -0400
    @@ -56,8 +56,8 @@
     /* FilterItem Class - allows easy creation / deletion of regex types */
     FilterItem::FilterItem(const QString& filterPattern, bool caseSensitive)
     {
    -  uint8_t minLevel = 0;
    -  uint8_t maxLevel = 0;
    +  uint32_t minLevel = 0;
    +  uint32_t maxLevel = 0;
       
       QString workString = filterPattern;
       
    --- src/main.cpp    2012-03-04 15:07:47.000000000 -0500
    +++ src/main.cpp    2012-04-04 00:19:15.531306855 -0400
    @@ -51,7 +51,7 @@
     #endif
     #include "datalocationmgr.h"
     
    -static const char *id="@(#) $Id: main.cpp 750 2010-02-20 23:01:46Z ieatacid $ $Name$";
    +static const char *id="@(#) $Id: main.cpp 760 2012-03-10 05:17:33Z ngdeao $ $Name$";
     
     /* **********************************
        defines used for option processing
    --- src/spawnshell.cpp    2012-03-04 15:07:47.000000000 -0500
    +++ src/spawnshell.cpp    2012-04-04 00:19:40.751894483 -0400
    @@ -654,20 +654,31 @@
        spawn->posData[3] = netStream.readUInt32NC();
        spawn->posData[4] = netStream.readUInt32NC();
     
    -   // skip color
    -   netStream.skipBytes(36);
    -
        race = spawn->race;
     
        // this is how the client checks if equipment should be read.
        if(spawn->NPC == 0 || race <= 12 || race == 128 || race == 130 || race == 330 || race == 522)
        {
    +      // skip color
    +      netStream.skipBytes(36);
           for(i = 0; i < 9; i++)
           {
              spawn->equipment[i].itemId = netStream.readUInt32NC();
    +         spawn->equipment[i].equip2 = netStream.readUInt32NC();
              spawn->equipment[i].equip1 = netStream.readUInt32NC();
              spawn->equipment[i].equip0 = netStream.readUInt32NC();
           }
    +   } else {
    +      netStream.skipBytes(16);
    +      spawn->equipment[7].itemId = netStream.readUInt32NC();
    +      spawn->equipment[7].equip2 = netStream.readUInt32NC();
    +      spawn->equipment[7].equip1 = netStream.readUInt32NC();
    +      spawn->equipment[7].equip0 = netStream.readUInt32NC();
    +      // secondary
    +      spawn->equipment[8].itemId = netStream.readUInt32NC();
    +      spawn->equipment[8].equip2 = netStream.readUInt32NC();
    +      spawn->equipment[8].equip1 = netStream.readUInt32NC();
    +      spawn->equipment[8].equip0 = netStream.readUInt32NC();
        }
     
        if(spawn->otherData & 8)
    --- src/terminal.cpp    2012-03-04 14:47:14.000000000 -0500
    +++ src/terminal.cpp    2012-04-04 00:19:40.752894466 -0400
    @@ -27,7 +27,7 @@
         "\e[0;32m",   // 5 - OOC
         NULL,         // 6
         "\e[0;35m",   // 7 - Tell
    -    "\e[1;37m",   // 8 - Say
    +    "\e[1;38m",   // 8 - Say
         NULL,         // 9
         NULL,         // 10
         "\e[5;31m",   // 11 - GM Say
    --- conf/worldopcodes.xml    2012-03-04 14:47:03.000000000 -0500
    +++ conf/worldopcodes.xml    2012-07-07 06:07:58.000000000 -0400
    @@ -15,7 +15,7 @@
             <comment>old GuildListCode</comment>
             <payload dir="server" typename="worldGuildListStruct" sizechecktype="none"/>
         </opcode>
    -    <opcode id="D677" name="OP_MOTD" updated="11/07/10">
    +    <opcode id="2042" name="OP_MOTD" updated="06/27/12">
             <comment>old MOTDCode Server message of the day</comment>
             <payload dir="server" typename="worldMOTDStruct" sizechecktype="none"/>
         </opcode>
    @@ -51,13 +51,13 @@
         <opcode id="2874" name="OP_SendSkillCapsChecksum" updated="11/07/10">
             <comment>Third client verification packet</comment>
         </opcode>
    -    <opcode id="0A54" name="OP_SetChatServer" updated="11/07/10">
    +    <opcode id="28d4" name="OP_SetChatServer" updated="06/27/12">
             <comment>Chatserver? IP,Port,servername.Charname,password(?)</comment>
         </opcode>
    -    <opcode id="37DB" name="OP_SetChatServer2" updated="11/07/10">
    +    <opcode id="75f5" name="OP_SetChatServer2" updated="06/27/12">
             <comment>Chatserver? IP,Port,servername.Charname,password(?)</comment>
         </opcode>
    -    <opcode id="0479" name="OP_ZoneServerInfo" updated="11/07/10">
    +    <opcode id="777c" name="OP_ZoneServerInfo" updated="06/27/12">
             <comment>old ZoneServerInfo</comment>
         </opcode>
         <opcode id="72F3" name="OP_WorldComplete" updated="11/07/10">
    --- conf/zoneopcodes.xml    2012-03-04 15:07:47.000000000 -0500
    +++ conf/zoneopcodes.xml    2012-07-07 16:20:37.000000000 -0400
    @@ -2,376 +2,636 @@
     <!DOCTYPE seqopcodes SYSTEM "seqopcodes.dtd">
     <seqopcodes>
     
    -    <!--
    -        Critical opcodes used directly by ShowEQ
    -    -->
    -    <opcode id="2339" name="OP_NpcMoveUpdate" updated="11/16/11">
    +    <!-- Critical opcodes used directly by ShowEQ -->
    +    <opcode id="4f35" name="OP_NpcMoveUpdate" updated="06/27/12">
             <comment>Position updates</comment>
             <payload dir="server" typename="uint8_t" sizechecktype="none"/>
         </opcode>
    -    <opcode id="45d7" name="OP_MovementHistory" updated="12/17/11">
    -        <comment></comment>
    +    <opcode id="666d" name="OP_MovementHistory" updated="06/27/12">
    +        <comment>Movement data... rewind info?</comment>
             <payload dir="client" typename="uint8_t" sizechecktype="none"/>
         </opcode>
    -    <opcode id="0CAE" name="OP_DeleteSpawn" updated="11/16/11">
    -        <comment>old DeleteSpawnCode</comment>
    +    <opcode id="6c36" name="OP_DeleteSpawn" updated="06/27/12">
    +        <comment>DeleteSpawnCode</comment>
             <payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="5821" name="OP_ZoneEntry" updated="11/16/11">
    -        <comment>old ZoneEntryCode</comment>
    +    <opcode id="4892" name="OP_ZoneEntry" updated="06/27/12">
    +        <comment>ZoneEntryCode</comment>
             <payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
         <payload dir="server" typename="uint8_t" sizechecktype="none"/>
         </opcode>
    -    <opcode id="102F" name="OP_GuildMOTD" updated="11/15/11">
    +    <opcode id="4e19" name="OP_GuildMOTD" updated="06/27/12">
             <comment>GuildMOTD</comment>
             <payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
         </opcode>
    -    <opcode id="0C54" name="OP_InspectAnswer" updated="11/15/11">
    -        <comment>old InspectDataCode</comment>
    +    <opcode id="13da" name="OP_InspectAnswer" updated="06/27/12">
    +        <comment>InspectDataCode</comment>
             <payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="000F" name="OP_SendZonePoints" updated="10/15/10">
    -        <comment>Coords in a zone that will port you to another zone</comment>
    -        <payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
    -    </opcode>
    -    <opcode id="3EDC" name="OP_TargetMouse" updated="11/15/11">
    +    <opcode id="6dee" name="OP_TargetMouse" updated="06/27/12">
             <comment>Targeting a person - old ClientTargetCode</comment>
             <payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="4878" name="OP_Shroud" updated="11/15/11">
    +    <opcode id="169a" name="OP_Shroud" updated="06/27/12">
             <comment>Server putting players into shroud form</comment>
             <payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
         </opcode>
    -    <opcode id="3671" name="OP_GroupFollow" updated="11/15/11">
    +    <opcode id="5613" name="OP_GroupInvite" updated="06/27/12">
    +        <payload dir="both" typename="groupInviteStruct" sizechecktype="none"/>
    +        <comment>You invite someone while ungrouped or get invited by someone ungrouped </comment>
    +    </opcode>
    +    <opcode id="2736" name="OP_GroupInvite2" updated="06/27/12">
    +        <payload dir="client" typename="groupInviteStruct" sizechecktype="match"/>
    +        <comment>You're inviting someone and you are grouped or get invited by a group</comment>
    +    </opcode>
    +    <opcode id="7139" name="OP_GroupFollow" updated="06/27/12">
             <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
    -        <comment>You join a group</comment>
    +        <comment>You join a group or player joins group</comment>
         </opcode>
    -    <opcode id="44C2" name="OP_GroupFollow2" updated="11/15/11">
    +    <opcode id="9999" name="OP_GroupFollow2" updated="06/27/12">
             <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
             <comment>Player joins your group</comment>
         </opcode>
    -    <opcode id="7139" name="OP_GroupUpdate" updated="11/15/11">
    -        <payload dir="server" typename="uint8_t" sizechecktype="none"/>
    -        <comment>Variable length packet with group member names</comment>
    -    </opcode>
    -    <opcode id="74E9" name="OP_GroupDisband" updated="11/15/11">
    +    <opcode id="367f" name="OP_GroupDisband" updated="06/27/12">
             <comment>You disband from group</comment>
             <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="3C58" name="OP_GroupDisband2" updated="11/15/11">
    +    <opcode id="3352" name="OP_GroupDisband2" updated="06/27/12">
             <comment>Other disbands from group</comment>
             <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="4B82" name="OP_GroupLeader" updated="11/15/11">
    +    <opcode id="44c2" name="OP_GroupLeader" updated="06/27/12">
             <comment>Group leader change</comment>
             <payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="3BDD" name="OP_DzSwitchInfo" updated="10/21/09">
    -        <comment></comment>
    +    <opcode id="6c16" name="OP_GroupCancelInvite" updated="06/27/12">
    +        <payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
    +        <comment>Declining to join a group</comment>
    +    </opcode>
    +    <opcode id="194f" name="OP_DzSwitchInfo" updated="03/23/12">
    +        <comment>Expedition compass etc</comment>
             <payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
         </opcode>
    -    <opcode id="4C14" name="OP_DzInfo" updated="10/21/09">
    -        <comment></comment>
    +    <opcode id="7fd7" name="OP_DzInfo" updated="06/27/12">
    +        <comment>Expedition Information</comment>
             <payload dir="server" typename="dzInfo" sizechecktype="match"/>
         </opcode>
    -    <opcode id="4675" name="OP_FormattedMessage" updated="11/15/11">
    -        <comment>old FormattedMessageCode</comment>
    +    <opcode id="7092" name="OP_FormattedMessage" updated="06/27/12">
    +        <comment>FormattedMessageCode</comment>
             <payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
         </opcode>
    -    <opcode id="0E24" name="OP_SpawnDoor" updated="11/15/11">
    -        <comment>old DoorSpawnsCode</comment>
    +    <opcode id="5a55" name="OP_SpawnDoor" updated="06/27/12">
    +        <comment>DoorSpawnsCode</comment>
             <payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
         </opcode>
    -    <opcode id="1318" name="OP_AAExpUpdate" updated="12/17/11">
    +    <opcode id="783c" name="OP_AAExpUpdate" updated="06/27/12">
           <comment>Receiving AA experience. Also when percent to AA changes.</comment>
           <payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="2370" name="OP_HPUpdate" updated="11/16/11">
    -        <comment>old NpcHpUpdateCode Update HP % of a PC or NPC</comment>
    +    <opcode id="2370" name="OP_HPUpdate" updated="06/27/12">
    +        <comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
             <payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="0ff4" name="OP_ManaUpdate" updated="04/18/11">
    -    <comment>Mana Update opcode</comment>
    -    </opcode>
    -    <opcode id="2370" name="OP_EndUpdate" updated="05/19/11">
    -    <comment>Endurance Update opcode</comment>
    -    </opcode>
    -    <opcode id="589f" name="OP_GuildMemberUpdate" updated="12/17/11">
    -        <comment></comment>
    +    <opcode id="79c9" name="OP_GuildMemberUpdate" updated="06/27/12">
    +        <comment>Info regarding guild members</comment>
             <payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
         </opcode>
    -    <opcode id="1055" name="OP_SpawnRename" updated="12/17/11">
    +    <opcode id="0598" name="OP_SpawnRename" updated="06/27/12">
             <comment>Spawns getting renamed after initial NewSpawn</comment>
             <payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="03CC" name="OP_GroupInvited" updated="11/15/11">
    -        <payload dir="server" typename="groupInviteStruct" sizechecktype="match"/>
    -        <comment>You got invited to a group</comment>
    -    </opcode>
    -    <opcode id="3288" name="OP_GroupInvite" updated="11/15/11">
    -        <payload dir="both" typename="groupInviteStruct" sizechecktype="none"/>
    -        <comment>You invite or get invited</comment>
    -    </opcode>
    -    <opcode id="28A7" name="OP_SwapSpell" updated="11/15/11">
    -        <comment>old TradeSpellBookSlotsCode</comment>
    +    <opcode id="63c7" name="OP_SwapSpell" updated="06/27/12">
    +        <comment>TradeSpellBookSlotsCode</comment>
             <payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="0698" name="OP_SimpleMessage" updated="11/15/11">
    -        <comment>old SimpleMessageCode</comment>
    +    <opcode id="4675" name="OP_SimpleMessage" updated="06/27/12">
    +        <comment>SimpleMessageCode</comment>
             <payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="039D" name="OP_SpecialMesg" updated="11/15/11">
    +    <opcode id="2e4f" name="OP_SpecialMesg" updated="06/27/12">
             <comment>Communicate textual info to client</comment>
             <payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
         </opcode>
    -    <opcode id="303E" name="OP_RandomReq" updated="11/15/11">
    -        <comment>old RandomReqCode</comment>
    +    <opcode id="30a4" name="OP_RandomReq" updated="06/27/12">
    +        <comment>RandomReqCode</comment>
             <payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="2C03" name="OP_ConsentResponse" updated="11/15/11">
    +    <opcode id="29df" name="OP_ConsentResponse" updated="06/27/12">
             <comment>Server replying with consent information after /consent</comment>
             <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="0AAA" name="OP_DenyResponse" updated="11/15/11">
    +    <opcode id="032b" name="OP_DenyResponse" updated="06/27/12">
             <comment>Server replying with deny information after /deny</comment>
             <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="2881" name="OP_BazaarSearch" updated="12/17/11">
    +    <opcode id="058c" name="OP_BazaarSearch" updated="06/27/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</comment>
         </opcode>
    -    <opcode id="1A58" name="OP_WearChange" updated="11/15/11">
    -        <comment>old SpawnUpdateCode</comment>
    +    <opcode id="7b64" name="OP_SpawnUpdate" updated="06/27/12">
    +        <comment>SpawnUpdateCode</comment>
             <payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="3E17" name="OP_SpawnAppearance" updated="10/21/09">
    -        <comment>old SpawnAppearanceCode</comment>
    -        <payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
    -    </opcode>
    -    <opcode id="7686" name="OP_Stamina" updated="12/17/11">
    +    <opcode id="3d00" name="OP_Stamina" updated="06/27/12">
             <comment>Server updating on hunger/thirst</comment>
             <payload dir="server" typename="staminaStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="70C6" name="OP_Consider" updated="11/16/11">
    -        <comment>old ConsiderCode</comment>
    +    <opcode id="30e2" name="OP_Consider" updated="06/27/12">
    +        <comment>ConsiderCode</comment>
             <payload dir="both" typename="considerStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="1111" name="OP_ZoneChange" updated="04/18/11">
    -        <comment>old ZoneChangeCode</comment>
    -        <payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
    -    </opcode>
    -    <opcode id="0000" name="OP_Buff" updated="11/15/11">
    -        <comment>old BuffDropCode</comment>
    -        <payload dir="both" typename="buffStruct" sizechecktype="match"/>
    -    </opcode>
    -    <opcode id="44AE" name="OP_Logout" updated="10/21/09">
    -        <comment></comment>
    -        <payload dir="server" typename="none" sizechecktype="match"/>
    -    </opcode>
    -    <opcode id="2736" name="OP_GroupInvite2" updated="11/15/11">
    -        <payload dir="client" typename="groupInviteStruct" sizechecktype="match"/>
    -        <comment>You're inviting someone and you are grouped</comment>
    -    </opcode>
    -    <opcode id="6C16" name="OP_GroupCancelInvite" updated="11/15/11">
    -        <payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
    -        <comment>Declining to join a group</comment>
    -    </opcode>
    -    <opcode id="4118" name="OP_NewZone" updated="11/16/11">
    -        <comment>old NewZoneCode</comment>
    +    <opcode id="4118" name="OP_NewZone" updated="06/27/12">
    +        <comment>NewZoneCode</comment>
             <payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="5C85" name="OP_GroundSpawn" updated="11/15/11">
    -        <comment>old MakeDropCode</comment>
    +    <opcode id="5c85" name="OP_GroundSpawn" updated="06/27/12">
    +        <comment>MakeDropCode</comment>
             <payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
             <payload dir="client" typename="uint8_t" sizechecktype="none"/>
         </opcode>
    -    <opcode id="0555" name="OP_ExpUpdate" updated="06/12/09">
    -        <comment>old ExpUpdateCode</comment>
    -        <payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
    -    </opcode>
    -    <opcode id="58c5" name="OP_RemoveSpawn" updated="11/16/11">
    +    <opcode id="58c5" name="OP_RemoveSpawn" updated="06/27/12">
             <comment>Remove spawn from zone</comment>
         <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
         </opcode>
    -    <opcode id="799C" name="OP_Death" updated="11/16/11">
    +    <opcode id="799c" name="OP_Death" updated="06/27/12">
             <comment>old NewCorpseCode</comment>
             <payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="33E5" name="OP_ClickObject" updated="11/15/11">
    -        <comment>old RemDropCode</comment>
    +    <opcode id="33e5" name="OP_ClickObject" updated="06/27/12">
    +        <comment>Items dropped on the ground</comment>
             <payload dir="both" typename="remDropStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="7F9E" name="OP_Action" updated="11/15/11">
    -        <comment></comment>
    +    <opcode id="7f9e" name="OP_Action" updated="06/27/12">
    +        <comment>Spells cast etc</comment>
             <payload dir="both" typename="actionStruct" sizechecktype="match"/>
             <payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="3EA8" name="OP_Action2" updated="11/15/11">
    -        <comment>old ActionCode</comment>
    +    <opcode id="3ea8" name="OP_Action2" updated="06/27/12">
    +        <comment>Combat actions i.e. bash, kick etc</comment>
             <payload dir="both" typename="action2Struct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="4843" name="OP_Illusion" updated="11/15/11">
    +    <opcode id="4843" name="OP_Illusion" updated="06/27/12">
             <comment>Spawn being illusioned (changing forms)</comment>
             <payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="8543" name="OP_BuffFadeMsg" updated="11/15/11">
    -        <comment>old SpellFadeCode</comment>
    +    <opcode id="1b8a" name="OP_BuffFadeMsg" updated="06/27/12">
    +        <comment>SpellFadeCode</comment>
             <payload dir="both" typename="spellFadedStruct" sizechecktype="none"/>
         </opcode>
    -    <opcode id="569A" name="OP_CastSpell" updated="11/15/11">
    -        <comment>old StartCastCode</comment>
    +    <opcode id="8543" name="OP_CastSpell" updated="06/27/12">
    +        <comment>StartCastCode</comment>
             <payload dir="both" typename="startCastStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="1B8A" name="OP_MemorizeSpell" updated="11/15/11">
    -        <comment>old MemSpellCode</comment>
    +    <opcode id="569e" name="OP_MemorizeSpell" updated="06/27/12">
    +        <comment>MemSpellCode</comment>
             <payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="3164" name="OP_Emote" updated="11/15/11">
    -        <comment>old EmoteTextCode</comment>
    +    <opcode id="3164" name="OP_Emote" updated="06/27/12">
    +        <comment>EmoteTextCode</comment>
             <payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
         </opcode>
    -    <opcode id="07FB" name="OP_RandomReply" updated="11/15/11">
    -        <comment>old RandomCode</comment>
    +    <opcode id="07fb" name="OP_RandomReply" updated="06/27/12">
    +        <comment>RandomCode</comment>
             <payload dir="server" typename="randomStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="71BF" name="OP_ManaChange" updated="11/15/11">
    +    <opcode id="3887" name="OP_ManaChange" updated="06/27/12">
             <comment>Mana change. Bards send this up with no size. Casters receive this for mana updates.</comment>
             <payload dir="server" typename="manaDecrementStruct" sizechecktype="match"/>
             <payload dir="client" typename="uint8_t" sizechecktype="none"/>
         </opcode>
    -    <opcode id="7165" name="OP_MoneyOnCorpse" updated="11/15/11">
    -        <comment>old MoneyOnCorpseCode</comment>
    +    <opcode id="7165" name="OP_MoneyOnCorpse" updated="06/27/12">
    +        <comment>MoneyOnCorpseCode</comment>
             <payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="2222" name="OP_CorpseLocResponse" updated="06/12/09">
    -        <comment>old CorpseLocCode:</comment>
    -        <payload dir="server" typename="corpseLocStruct" sizechecktype="match"/>
    -    </opcode>
    -    <opcode id="6AFD" name="OP_PlayerProfile" updated="11/16/11">
    -        <comment>old CharProfileCode</comment>
    +    <opcode id="6afd" name="OP_PlayerProfile" updated="06/27/12">
    +        <comment>CharProfileCode</comment>
             <payload dir="server" typename="charProfileStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="6015" name="OP_TimeOfDay" updated="01/17/08">
    -        <comment>old TimeOfDayCode</comment>
    +    <opcode id="6015" name="OP_TimeOfDay" updated="06/27/12">
    +        <comment>TimeOfDayCode</comment>
             <payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="51BC" name="OP_GuildMemberList" updated="12/17/11">
    -        <comment></comment>
    -        <payload dir="server" typename="uint8_t" sizechecktype="none"/>
    -    </opcode>
    -    <opcode id="7062" name="OP_ClientUpdate" updated="11/15/11">
    +    <opcode id="7062" name="OP_ClientUpdate" updated="06/27/12">
             <comment>Position updates</comment>
             <payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
             <payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="4656" name="OP_MobUpdate" updated="01/17/08">
    -        <comment>old MobUpdateCode</comment>
    -        <payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
    -    </opcode>
    -    <opcode id="0D5A" name="OP_BeginCast" updated="01/17/08">
    -        <comment>old BeginCastCode</comment>
    +    <opcode id="0d5a" name="OP_BeginCast" updated="06/27/12">
    +        <comment>BeginCastCode</comment>
             <payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="2E79" name="OP_CommonMessage" updated="11/15/11">
    -        <comment>old ChannelMessageCode</comment>
    +    <opcode id="2e79" name="OP_CommonMessage" updated="06/27/12">
    +        <comment>ChannelMessageCode</comment>
             <payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
         </opcode>
    -    <opcode id="7F01" name="OP_SkillUpdate" updated="11/15/11">
    -        <comment>old SkillIncCode</comment>
    +    <opcode id="7f01" name="OP_SkillUpdate" updated="06/27/12">
    +        <comment>Skill up code</comment>
             <payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="6A99" name="OP_LevelUpdate" updated="01/17/08">
    -        <comment>old LevelUpUpdateCode</comment>
    +    <opcode id="5488" name="OP_SpawnAppearance" updated="06/27/12">
    +        <comment>SpawnAppearanceCode</comment>
    +        <payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
    +    </opcode>
    +    <opcode id="0000" name="OP_ExpUpdate" updated="06/27/12">
    +        <comment>ExpUpdateCode - opcode looks to be 221a as of 06/27/12 but that value causes seg faults for some reason</comment>
    +        <payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
    +    </opcode>
    +    <opcode id="6e1c" name="OP_LevelUpdate" updated="06/27/12">
    +        <comment>LevelUpUpdateCode</comment>
             <payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
         </opcode>
    +    <opcode id="1af0" name="OP_LeaderExpUpdate" updated="06/27/12">
    +        <comment>Leadership AA Exp Update</comment>
    +        <payload dir="server" typename="leadExpUpdateStruct" sizechecktype="match"/>
    +    </opcode>
    +    <opcode id="4656" name="OP_MobUpdate" updated="06/27/12">
    +        <comment>MobUpdateCode</comment>
    +        <payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
    +    </opcode>
    +    <opcode id="4aa2" name="OP_Trader" updated="06/27/12">
    +        <comment>PC's turning trader on and off</comment>
    +        <payload dir="server" typename="bazaarTraderRequest" sizechecktype="match"/>
    +    </opcode>
    +    <opcode id="6bb9" name="OP_Consent" updated="06/27/12">
    +        <comment>/consent someone</comment>
    +        <payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="0370" name="OP_ConsentDeny" updated="06/27/12">
    +        <comment>/deny someone</comment>
    +        <payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="399b" name="OP_ItemPacket" updated="06/27/12">
    +        <comment>ItemCode</comment>
    +        <payload dir="server" typename="itemPacketStruct" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="521c" name="OP_ItemLinkResponse" updated="06/27/12">
    +        <comment>ItemInfoCode</comment>
    +        <payload dir="server" typename="itemInfoStruct" sizechecktype="none"/>
    +        <payload dir="client" typename="itemInfoReqStruct" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="0254" name="OP_EnvDamage" updated="06/27/12">
    +        <comment>Environmental Damage</comment>
    +        <payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/>
    +    </opcode>
    +    <opcode id="59c3" name="OP_SetRunMode" updated="06/27/12">
    +        <comment>old cRunToggleCode</comment>
    +        <payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/>
    +    </opcode>
    +    <opcode id="0000" name="OP_WearChange" updated="03/23/12">
    +        <comment>Armor changes or give a pet a weapon (model changes)</comment>
    +        <payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
    +    </opcode>
     
         <!-- Not necessary for SEQ to run but here to name packets in logs. -->
    -    <opcode id="758c" name="OP_Marketplace" updated="12/17/11">
    -        <comment>Marketplace data</comment>
    +    <opcode id="3671" name="OP_GroupUpdate" updated="06/27/12">
    +        <comment>Group member names - Variable length</comment>
    +        <payload dir="server" typename="uint8_t" sizechecktype="none"/>
         </opcode>
    -    <opcode id="097f" name="OP_WelcomeScreenTitle" updated="05/16/11">
    -    <comment></comment>
    +    <opcode id="51bc" name="OP_GuildMemberList" updated="06/27/12">
    +        <comment>List of guild members - Variable length</comment>
    +        <payload dir="server" typename="uint8_t" sizechecktype="none"/>
         </opcode>
    -    <opcode id="5d0f" name="OP_VeteranRewards" update="04/18/11">
    -        <comment></comment>
    +    <opcode id="0c2b" name="OP_ManaUpdate" updated="06/27/12">
    +    <comment>Mana Update opcode - 10 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="5f51" name="OP_EndUpdate" updated="06/27/12">
    +    <comment>Endurance Update opcode - 10 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="5206" name="OP_Marketplace" updated="06/27/12">
    +        <comment>Marketplace data - Guessing variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="2edd" name="OP_DzMembers" updated="06/27/12">
    +        <comment>Expedition Members - Variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="0d5f" name="OP_Campfire" updated="06/27/12">
    +        <comment>Fellowship campfire information - 1076 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="10c9" name="OP_SelectCampfire" updated="06/27/12">
    +        <comment>Fellowship campfire Choices - Guessing variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="1d97" name="OP_Claims" updated="06/27/12">
    +        <comment>Contents of claims window - Guessing variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="5433" name="OP_VoiceChat" updated="06/27/12">
    +        <comment>Voice chat server info - Variable length (Data sent when joining group,raid etc)</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="7209" name="OP_WelcomeScreenURL" updated="05/16/11">
    -        <comment></comment>
    +    <opcode id="7a52" name="OP_PollQuestions" updated="06/27/12">
    +        <comment>SOE in-game player poll questions - Variable length</comment>
    +        <payload dir="both" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="3B85" name="OP_SendAATable" updated="08/12/09">
    -        <comment></comment>
    +    <opcode id="591f" name="OP_PollResponses" updated="06/27/12">
    +        <comment>Poll response choices - 1004 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="1d51" name="OP_ShroudProgression" updated="06/27/12">
    +        <comment>Unlocked shrouds - 244 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="2538" name="OP_Fellowship" updated="06/27/12">
    +        <comment>Fellowship information - 2552 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="1a7b" name="OP_ExpandedGuildInfo" updated="06/27/12">
    +        <comment>Guild ranks and other misc guild data - Variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="18e2" name="OP_GuildBank" updated="06/27/12">
    +        <comment>Guild bank contents - Guessing variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="1031" name="OP_OpenTradeskillContainer" updated="06/27/12">
    +        <comment>Opens forge, kiln etc - 92 Bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="1ecf" name="OP_TradeskillRecipes" updated="06/27/12">
    +        <comment>Learned recipes - 84 Bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="5832" name="OP_SendAAStats" updated="08/12/09">
    -        <comment></comment>
    +    <opcode id="0000" name="OP_TradeSkillCombine" updated="06/27/12">
    +        <comment>Tradeskill combine using new tradeskill window - 40 Bytes</comment>
    +        <payload dir="both" typename="uint8_t" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="4212" name="OP_TradeSkillCombineOld" updated="06/27/12">
    +        <comment>Tradeskill combine using old tradeskill window - 24 Bytes</comment>
    +        <payload dir="both" typename="uint8_t" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="7113" name="OP_ItemPlayerPacket" updated="06/27/12">
    +        <comment>Inventory/bank items coming over during zone - Variable length</comment>
    +        <payload dir="server" typename="uint8_t" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="512b" name="OP_TaskDescription" updated="06/27/12">
    +        <comment>Task descriptions coming down for task window - Variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="47ea" name="OP_TaskActivity" updated="06/27/12">
    +        <comment>Task activity descriptions coming down for task window - Variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="189b" name="OP_CompletedTasks" updated="06/27/12">
    +        <comment>Task history for task window - Variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="1b9c" name="OP_CustomTitles" updated="06/27/12">
    +        <comment>List of available titles - 1520 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="0976" name="OP_Animation" updated="06/27/12">
    +        <comment>Combat animation, emote animations etc - 4 bytes</comment>
    +        <payload dir="both" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="177a" name="OP_WhoAllRequest" updated="06/27/12">
    +        <comment>WhoAllReqCode - 156 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="4d5a" name="OP_WhoAllResponse" updated="06/27/12">
    +        <comment>WhoAllOutputCode - Variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="0c54" name="OP_InspectRequest" updated="06/27/12">
    +        <comment>InspectRequestCode - 8 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="4e99" name="OP_Claims" updated="12/17/11">
    -        <comment>Contents of claims window</comment>
    +    <opcode id="102f" name="OP_GetGuildMOTD" updated="06/27/12">
    +        <comment>GuildMOTD - 648 Bytes</comment>
    +        <payload dir="both" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="2864" name="OP_PollQuestions" updated="12/17/11">
    -        <comment>SOE in-game player poll questions</comment>
    +    <opcode id="6617" name="OP_TradeRequest" updated="06/27/12">
    +        <comment>Client request trade session - 8 bytes</comment>
    +        <payload dir="both" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="0f6d" name="OP_PollResponses" updated="12/17/11">
    -        <comment>Poll response choices</comment>
    +    <opcode id="1d40" name="OP_TradeDeny" updated="06/27/12">
    +        <comment>Target not ready to trade - 12 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="2071" name="OP_ShroudProgression" updated="12/17/11">
    -        <comment>Unlocked shrouds</comment>
    +    <opcode id="606a" name="OP_TradeRequestAck" updated="06/27/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="01e5" name="OP_Fellowship" updated="12/17/11">
    -        <comment>Fellowship information</comment>
    +    <opcode id="2c6d" name="OP_CancelTrade" updated="06/27/12">
    +        <comment>Cancel a trade window - 0 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="4274" name="OP_ExpandedGuildInfo" updated="12/17/11">
    -        <comment>Variable length guild ranks and other misc guild data</comment>
    +    <opcode id="72f8" name="OP_FinishTrade" updated="06/27/12">
    +        <comment>Trade is over - 12 bytes</comment>
    +        <payload dir="both" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="0d1d" name="OP_TradeCoins" updated="06/27/12">
    +        <comment>You put coins put in a trade window - 20 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="0149" name="OP_TradeCoins2" updated="06/27/12">
    +        <comment>Someone else puts coins put in your trade window - 12 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="064a" name="OP_TradeAcceptClick" updated="06/27/12">
    +        <comment>One side clicks Accept on the trade 8 bytes</comment>
    +        <payload dir="both" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="6255" name="OP_GuildBank" updated="12/17/11">
    -        <comment>Guild bank contents</comment>
    +    <opcode id="3c66" name="OP_ItemLinkClick" updated="06/27/12">
    +        <comment>Click on itemlinks - 48 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="4074" name="OP_EndLootRequest" updated="06/27/12">
    +        <comment>DoneLootingCode - 4 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="1d40" name="OP_OpenTradeskillContainer" updated="12/17/11">
    -        <comment>Opens forge, kiln etc</comment>
    +    <opcode id="0b93" name="OP_LootItem" updated="06/27/12">
    +        <comment>Loot item from corpse - 20 bytes</comment>
    +        <payload dir="both" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="6fb9" name="OP_TradeskillRecipes" updated="12/17/11">
    -        <comment>Learned recipes</comment>
    +    <opcode id="47ae" name="OP_Track" updated="06/27/12">
    +        <comment>Tracking data - Variable length</comment>
    +        <payload dir="both" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="2369" name="OP_Unknown1" updated="02/13/07">
    -        <comment>Unkown packets that spam logs. Marked here to make reading logs easier</comment>
    +    <opcode id="1564" name="OP_TraderShop" updated="06/27/12">
    +        <comment>OpenTraderCode right-click on a trader in bazaar - 16 bytes</comment>
    +        <payload dir="both" typename="unknown" sizechecktype="none"/>        
    +    </opcode>
    +    <opcode id="3edc" name="OP_AutoAttack" updated="06/27/12">
    +        <comment>Attack on/off - 4 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="1497" name="OP_AutoAttack2" updated="06/27/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="7C94" name="OP_Unknown2" updated="02/13/07">
    -        <comment>Unkown packets that spam logs. Marked here to make reading logs easier</comment>
    +    <opcode id="231f" name="OP_ClickDoor" updated="06/27/12">
    +        <comment>DoorOpenCode click request from client - 16 bytes</comment>
    +        <payload dir="client" typename="uint8_t" sizechecktype="none"/>
         </opcode>
    -    <opcode id="5851" name="OP_Unknown3" updated="02/13/07">
    -        <comment>Unkown packets that spam logs. Marked here to make reading logs easier</comment>
    +    <opcode id="3969" name="OP_MoveDoor" updated="06/27/12">
    +        <comment>DoorClickCode response from server - 2 bytes</comment>
    +        <payload dir="server" typename="uint8_t" sizechecktype="none"/>
         </opcode>
    -    <opcode id="3333" name="OP_Unknown4" updated="02/13/07">
    -        <comment>Unkown packets that spam logs. Marked here to make reading logs easier</comment>
    +    <opcode id="1418" name="OP_MoveItem" updated="06/27/12">
    +        <comment>Client moving an item from one slot to another - 28 bytes</comment>
    +        <payload dir="client" typename="uint8_t" sizechecktype="none"/>
         </opcode>
    -    <opcode id="4444" name="OP_Unknown5" updated="02/13/07">
    -        <comment>Unkown packets that spam logs. Marked here to make reading logs easier</comment>
    +    <opcode id="0507" name="OP_TraderBuy" updated="06/27/12">
    +        <comment>buy from a trader in bazaar</comment>
         </opcode>
    -    <opcode id="5555" name="OP_Unknown6" updated="02/13/07">
    -        <comment>Unkown packets that spam logs. Marked here to make reading logs easier</comment>
    +    <opcode id="00bc" name="OP_LootRequest" updated="06/27/12">
    +        <comment>LootCorpseCode - 4 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="132f" name="OP_Jump" updated="06/27/12">
    +        <comment>JumpCode - 0 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="37a7" name="OP_TGB" updated="06/27/12">
    +        <comment>Client telling server to set targetgroupbuff - 4 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="45d7" name="OP_Lockouts" updated="06/27/12">
    +        <comment>Client requesting lockouts - 0 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="0bd0" name="OP_WelcomeScreenURL" updated="06/27/12">
    +        <comment>URLs for the welcome screen window - Variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="0c08" name="OP_RaidJoin" updated="06/27/12">
    +        <comment>Client side raid invite requests 140 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="2bad" name="OP_RaidInvite" updated="06/27/12">
    +        <comment>Server side raid information - 140 bytes or 144 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="1ebb" name="OP_Feedback" updated="06/27/12">
    +        <comment>Client sending feedback to server - 1148 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="5b0b" name="OP_GuildsList" updated="03/23/12">
    +        <comment>Listing of all guilds</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="4817" name="OP_LFGGetMatchesRequest" updated="06/27/12">
    +        <comment>LFG/LFP client request - 16 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="1899" name="OP_LFGGetMatchesResponse" updated="06/27/12">
    +        <comment>LFG/LFP server response - Variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="27ac" name="OP_MercenaryList" updated="06/27/12">
    +        <comment>Listing of hired mercenaries - 427 bytes
    +        <payload dir="server" typename="unknown" sizechecktype="none"/></comment>
    +    </opcode>
    +    <opcode id="6fe7" name="OP_ClickInventory" updated="06/27/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="65fb" name="OP_ClickInventoryAck" updated="06/27/12">
    +        <comment>Server acknowledges click from inventory or armor - 20 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="3c2d" name="OP_BuffWindow" updated="06/27/12">
    +        <comment>Changes to buff window or song window - 100 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="7ae1" name="OP_ClickBuffOff" updated="06/27/12">
    +        <comment>Client clicks off buff - 8 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="346b" name="OP_HouseAddress" updated="06/27/12">
    +        <comment>House and guildhall address information - Variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="5546" name="OP_HouseContents" updated="06/27/12">
    +        <comment>Server sending house information and contents - variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="3d24" name="OP_FriendsList" updated="06/27/12">
    +        <comment>Server sending friends list contents - variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="2b5f" name="OP_Rewards" updated="06/27/12">
    +        <comment>Server sending pending rewards - variable length</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="7caa" name="OP_FTPNags" updated="06/27/12">
    +        <comment>Free to play nags and other data - 1852 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="099e" name="OP_Find" updated="06/27/12">
    +        <comment>Find window data - 112 bytes</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="0698" name="OP_ConsiderCorpse" updated="06/27/12">
    +        <comment>ConCorpseCode - 20 bytes</comment>
    +        <payload dir="client" typename="unknown" sizechecktype="none"/>
         </opcode>
     
     
    -        <!-- Below are unverified as of 12-1-2007 -->
    -    <opcode id="4d38" name="OP_AckPacket" updated="03/14/07">
    -        <comment>Appears to be generic ack at the presentation level</comment>
    +
    +        <!-- 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="5a6b" name="OP_Unknown1" updated="06/27/12">
    +        <comment>3 byte opcode that spam logs. Marked here to make reading logs easier</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="2018" name="OP_Unknown2" updated="06/27/12">
    +        <comment>3 byte opcode that spam logs. Marked here to make reading logs easier</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
    +    </opcode>
    +    <opcode id="3f49" name="OP_Unknown3" updated="06/27/12">
    +        <comment>3 byte opcode that spam logs. Marked here to make reading logs easier</comment>
    +        <payload dir="server" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="71fb" name="OP_TributeUpdate" updated="03/14/07">
    -        <comment>Tribute information</comment>
    +
    +        <!-- Below are unverified -->
    +    <opcode id="0000" name="OP_Buff" updated="11/15/11">
    +        <comment>old BuffDropCode</comment>
    +        <payload dir="both" typename="buffStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="4849" name="OP_ItemPlayerPacket" updated="11/15/11">
    -        <comment>Inventory/bank items coming over during zone</comment>
    -        <payload dir="server" typename="uint8_t" sizechecktype="none"/>
    +    <opcode id="0000" name="OP_ZoneChange" updated="04/18/11">
    +        <comment>old ZoneChangeCode</comment>
    +        <payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="2E4F" name="OP_TaskDescription" updated="12/17/11">
    -        <comment>Task descriptions coming down for task window</comment>
    +    <opcode id="0000" name="OP_CorpseLocResponse" updated="06/12/09">
    +        <comment>old CorpseLocCode:</comment>
    +        <payload dir="server" typename="corpseLocStruct" sizechecktype="match"/>
         </opcode>
    -    <opcode id="512B" name="OP_TaskActivity" updated="12/17/11">
    -        <comment>Task activity descriptions coming down for task window</comment>
    +    <opcode id="0000" name="OP_SendZonePoints" updated="10/15/10">
    +        <comment>Coords in a zone that will port you to another zone</comment>
    +        <payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
         </opcode>
    -    <opcode id="6D1F" name="OP_CompletedTasks" updated="12/17/11">
    -        <comment>Task history for task window</comment>
    +    <opcode id="24D8" 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="44AE" name="OP_Logout" updated="10/21/09">
    +        <comment></comment>
    +        <payload dir="server" typename="none" sizechecktype="match"/>
    +    </opcode>
    +    <opcode id="097f" name="OP_WelcomeScreenTitle" updated="05/16/11">
    +    <comment></comment>
    +    </opcode>
    +    <opcode id="0000" name="OP_VeteranRewards" update="04/18/11">
    +        <comment></comment>
    +    </opcode>
    +    <opcode id="3B85" name="OP_SendAATable" updated="08/12/09">
    +        <comment></comment>
    +    </opcode>
    +    <opcode id="5832" name="OP_SendAAStats" updated="08/12/09">
    +        <comment></comment>
    +    </opcode>
    +    <opcode id="4d38" name="OP_AckPacket" updated="03/14/07">
    +        <comment>Appears to be generic ack at the presentation level</comment>
    +    </opcode>
    +    <opcode id="71fb" name="OP_TributeUpdate" updated="03/14/07">
    +        <comment>Tribute information</comment>
         </opcode>
         <opcode id="70a5" name="OP_Weather" updated="03/14/07">
             <comment>old WeatherCode</comment>
    @@ -379,13 +639,10 @@
         <opcode id="5417" name="OP_ReqNewZone" updated="03/14/07">
             <comment>Client requesting NewZone_Struct</comment>
         </opcode>
    -    <opcode id="0D8A" name="OP_CustomTitles" updated="11/15/11">
    -        <comment>List of available titles</comment>
    -    </opcode>
         <opcode id="45d2" name="OP_ReqClientSpawn" updated="03/14/07">
             <comment>Client requesting spawn data</comment>
         </opcode>
    -    <opcode id="3703" name="OP_SendExpZonein" updated="03/14/07">
    +    <opcode id="0000" name="OP_SendExpZonein" updated="03/14/07">
             <comment>Both directions. Negotiating sending of exp info.</comment>
         </opcode>
         <opcode id="0a4f" name="OP_AAAction" updated="03/14/07">
    @@ -397,15 +654,6 @@
         <opcode id="3854" name="OP_ClientReady" updated="03/14/07">
             <comment></comment>
         </opcode>
    -    <opcode id="0137" name="OP_TGB" updated="03/14/07">
    -        <comment>Client telling server to set targetgroupbuff</comment>
    -    </opcode>
    -    <opcode id="237e" name="OP_RaidJoin" updated="03/14/07">
    -        <comment></comment>
    -    </opcode>
    -    <opcode id="7161" name="OP_GuildExtendedInfo" updated="03/14/07">
    -        <comment>Extra guild info (i.e. chat channel, url)</comment>
    -    </opcode>
         <opcode id="6774" name="OP_GuildTributeStatus" updated="03/14/07">
             <comment>Guild tribute stats send on zone</comment>
         </opcode>
    @@ -415,10 +663,7 @@
         <opcode id="063b" name="OP_RespawnWindow" updated="03/14/07">
           <comment>Server telling client enough to populate the respawn window when you die</comment>
         </opcode>
    -    <opcode id="0B93" name="OP_Animation" updated="12/17/11">
    -        <comment></comment>
    -    </opcode>
    -    <opcode id="010D" name="OP_InitialMobHealth" updated="03/14/07">
    +    <opcode id="314f" 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="311a" name="OP_MobHealth" updated="03/14/07">
    @@ -427,63 +672,9 @@
         <opcode id="16c1" name="OP_DeltaCheck" updated="03/14/07">
             <comment>Client sending server delta information.</comment>
         </opcode>
    -    <opcode id="24D8" 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="117A" name="OP_WhoAllRequest" updated="11/15/11">
    -        <comment>old WhoAllReqCode</comment>
    -    </opcode>
    -    <opcode id="15DE" name="OP_WhoAllResponse" updated="11/15/11">
    -        <comment>old sWhoAllOutputCode</comment>
    -    </opcode>
         <opcode id="61ac" name="OP_LoadSpellSet" updated="02/13/07">
             <comment>/mem spellsetname</comment>
         </opcode>
    -    <opcode id="2683" name="OP_InspectRequest" updated="12/17/11">
    -        <comment>old InspectRequestCode</comment>
    -    </opcode>
    -    <opcode id="1B7B" name="OP_GetGuildMOTD" updated="12/17/11">
    -        <comment></comment>
    -    </opcode>
    -    <opcode id="00AA" name="OP_TradeRequest" updated="12/17/11">
    -        <comment>Client request trade session</comment>
    -    </opcode>
    -    <opcode id="606A" name="OP_TradeRequestAck" updated="12/17/11">
    -        <comment>Trade request recipient is acknowledging they are able to trade</comment>
    -    </opcode>
    -    <opcode id="527E" name="OP_CancelTrade" updated="12/17/11">
    -        <comment>Cancel a trade window</comment>
    -    </opcode>
    -    <opcode id="1EBB" name="OP_FinishTrade" updated="12/17/11">
    -        <comment>Trade is over</comment>
    -    </opcode>
    -    <opcode id="1418" name="OP_TradeCoins" updated="12/17/11">
    -        <comment>Coins put in trade window</comment>
    -    </opcode>
    -    <opcode id="064A" name="OP_TradeAcceptClick" updated="12/17/11">
    -        <comment>One side clicks Accept on the trade</comment>
    -    </opcode>
    -    <opcode id="6BB9" name="OP_Consent" updated="11/15/11">
    -        <comment>/consent someone</comment>
    -        <payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
    -    </opcode>
    -    <opcode id="7CAE" name="OP_ConsentDeny" updated="11/15/11">
    -        <comment>/deny someone</comment>
    -        <payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
    -    </opcode>
    -    <opcode id="3DF8" name="OP_ItemPacket" updated="11/15/11">
    -        <comment>old ItemCode</comment>
    -        <payload dir="server" typename="itemPacketStruct" sizechecktype="none"/>
    -    </opcode>
    -    <opcode id="6948" name="OP_ItemLinkClick" updated="12/17/11">
    -        <comment></comment>
    -    </opcode>
    -    <opcode id="24C9" name="OP_ItemLinkResponse" updated="12/17/11">
    -        <comment>old ItemInfoCode</comment>
    -        <payload dir="server" typename="itemInfoStruct" sizechecktype="none"/>
    -        <payload dir="client" typename="itemInfoReqStruct" sizechecktype="none"/>
    -    </opcode>
         <opcode id="00de" name="OP_Dye" updated="10/27/05">
             <comment></comment>
         </opcode>
    @@ -497,28 +688,9 @@
         <opcode id="68ac" name="OP_LFGCommand" updated="10/27/05">
             <comment>old LFGReqCode</comment>
         </opcode>
    -    <opcode id="022f" name="OP_LFGGetMatchesRequest" updated="10/27/05">
    -        <comment></comment>
    -    </opcode>
    -    <opcode id="4074" name="OP_EndLootRequest" updated="11/15/11">
    -        <comment>old cDoneLootingCode</comment>
    -    </opcode>
    -    <opcode id="5BD9" name="OP_LootItem" updated="11/15/11">
    -        <comment></comment>
    -    </opcode>
         <opcode id="7ac3" name="OP_Bug" updated="10/27/05">
             <comment>/bug</comment>
         </opcode>
    -    <opcode id="1ac1" name="OP_Track" updated="12/17/11">
    -        <comment>Clicked Track</comment>
    -    </opcode>
    -    <opcode id="0681" name="OP_TraderShop" updated="06/29/05">
    -        <comment>old OpenTraderCode right-click on a trader in bazaar</comment>
    -    </opcode>
    -    <opcode id="66f0" name="OP_Trader" updated="06/29/05">
    -        <comment>People turning trader on and off</comment>
    -        <payload dir="server" typename="bazaarTraderRequest" sizechecktype="match"/>
    -    </opcode>
         <opcode id="5c06" name="OP_Save" updated="04/19/06">
             <comment>Client asking server to save user state</comment>
         </opcode>
    @@ -528,18 +700,9 @@
         <opcode id="fe13" name="OP_ShopPlayerSell" updated="10/27/05">
             <comment>old SellItemCode</comment>
         </opcode>
    -    <opcode id="4b88" name="OP_AutoAttack" updated="02/13/07">
    -        <comment></comment>
    -    </opcode>
    -    <opcode id="3299" name="OP_AutoAttack2" updated="02/13/07">
    -        <comment></comment>
    -    </opcode>
         <opcode id="10a1" name="OP_PetCommands" updated="10/27/05">
             <comment></comment>
         </opcode>
    -    <opcode id="4ed9" name="OP_SetRunMode" updated="02/13/07">
    -        <comment>old cRunToggleCode</comment>
    -    </opcode>
         <opcode id="1103" name="OP_SaveOnZoneReq" updated="03/14/07">
             <comment></comment>
         </opcode>
    @@ -547,9 +710,6 @@
             <comment>old CloseVendorCode</comment>
             <payload dir="both" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="231F" name="OP_MoveDoor" updated="11/15/11">
    -        <comment>old DoorClickCode</comment>
    -    </opcode>
         <opcode id="5666" name="OP_SenseTraps" updated="10/27/05">
             <comment></comment>
         </opcode>
    @@ -559,10 +719,6 @@
         <opcode id="528F" name="OP_LootComplete" updated="12/07/05">
             <comment>old sDoneLootingCode</comment>
         </opcode>
    -    <opcode id="3980" name="OP_EnvDamage" updated="02/13/07">
    -        <comment>Environmental Damage</comment>
    -        <payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/>
    -    </opcode>
         <opcode id="10A6" name="OP_Split" updated="10/27/05">
             <comment></comment>
         </opcode>
    @@ -573,9 +729,6 @@
             <comment>old OpenVendorCode</comment>
             <payload dir="both" typename="unknown" sizechecktype="none"/>
         </opcode>
    -    <opcode id="2963" name="OP_MoveItem" updated="11/15/11">
    -        <comment>Client moving an item from one slot to another</comment>
    -    </opcode>
         <opcode id="0f8e" name="OP_FaceChange" updated="10/27/05">
             <comment>/face</comment>
         </opcode>
    @@ -600,25 +753,12 @@
         <opcode id="35a6" name="OP_LFPGetMatchesRequest" updated="10/27/05">
             <comment></comment>
         </opcode>
    -    <opcode id="5892" name="OP_RaidInvite" updated="10/27/05">
    -        <comment></comment>
    -    </opcode>
    -    <opcode id="6dd8" name="OP_TraderBuy" updated="10/27/05">
    -        <comment>buy from a trader in bazaar</comment>
    -    </opcode>
         <opcode id="6980" name="OP_GMKill" updated="10/27/05">
             <comment>GM /kill - Insta kill mob/pc</comment>
         </opcode>
    -    <opcode id="36e2" name="OP_ClickDoor" updated="02/13/07">
    -        <comment>old DoorOpenCode</comment>
    -        <payload dir="both" typename="uint8_t" sizechecktype="none"/>
    -    </opcode>
         <opcode id="17a2" name="OP_GuildPublicNote" updated="10/27/05">
             <comment></comment>
         </opcode>
    -    <opcode id="00BC" name="OP_LootRequest" updated="11/15/11">
    -        <comment>old cLootCorpseCode</comment>
    -    </opcode>
         <opcode id="61ef" name="OP_YellForHelp" updated="10/27/05">
             <comment></comment>
         </opcode>
    @@ -628,9 +768,6 @@
         <opcode id="6f82" name="OP_LFPCommand" updated="10/27/05">
             <comment>looking for players</comment>
         </opcode>
    -    <opcode id="00dd" name="OP_ConsiderCorpse" updated="12/07/05">
    -        <comment>old cConCorpseCode</comment>
    -    </opcode>
         <opcode id="3838" name="OP_ConfirmDelete" updated="10/27/05">
             <comment>Client sends this to server to confirm op_deletespawn</comment>
         </opcode>
    @@ -643,9 +780,6 @@
         <opcode id="212d" name="OP_LFPGetMatchesResponse" updated="02/13/07">
             <comment></comment>
         </opcode>
    -    <opcode id="132F" name="OP_Jump" updated="11/15/11">
    -        <comment>old cJumpCode?</comment>
    -    </opcode>
         <opcode id="1089" name="OP_FindPersonRequest" updated="02/13/07">
             <comment>Control-F Find</comment>
         </opcode>
    @@ -655,32 +789,15 @@
         <opcode id="23a1" name="OP_GMLastName" updated="10/27/05">
             <comment>GM /lastname - Change user lastname</comment>
         </opcode>
    -    <opcode id="0840" name="OP_TradeSkillCombine" updated="06/29/05">
    -        <comment></comment>
    -    </opcode>
    -    <opcode id="355b" name="OP_LFGGetMatchesResponse" updated="06/13/06">
    -        <comment></comment>
    -    </opcode>
         <opcode id="14ef" name="OP_Mend" updated="10/27/05">
             <comment></comment>
         </opcode>
         <opcode id="1ffa" name="OP_MendHPUpdate" updated="05/11/05">
             <comment></comment>
         </opcode>
    -    <opcode id="5306" name="OP_Feedback" updated="10/27/05">
    -        <comment>/feedback</comment>
    -    </opcode>
         <opcode id="4775" name="OP_TributeInfo" updated="02/13/07">
             <comment>Tribute information</comment>
         </opcode>
    -    <opcode id="7416" name="OP_LeaderExpUpdate" updated="06/29/05">
    -        <comment>Leadership AA Exp Update</comment>
    -        <payload dir="server" typename="leadExpUpdateStruct" sizechecktype="match"/>
    -    </opcode>
    -    <opcode id="062c" name="OP_Lockouts" updated="02/13/07">
    -        <comment>Server telling client lockouts</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
    --- ChangeLog    2012-03-09 23:40:19.000000000 -0500
    +++ ChangeLog    2012-07-07 17:26:43.927191179 -0400
    @@ -1,3 +1,7 @@
    +Fransick (06/25/2012)
    +- Updated opcodes
    +- Minor struct changes
    +
     Razzle (3/9/12)
     - Updated version to 5.13.10.4
     - Merged Fransick's patch
    Let me know if there are any problems patching. I tested against a clean download and compiled it without errors so hoping the same for everyone else.

  12. #42
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: Is Showeq working these days?

    In case anyone is lurking that better understands SEQ code...

    Here's a backtrace from the consistent segfaults I get when I set OP_ExpUdate to 221a which is correct and works on a few of my alts but crashes my main everytime.

    Code:
    (gdb) bt
    #0  0x0445c52d in QString::QString(QString const&) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #1  0x0447bcfb in QUType_QString::set(QUObject*, QString const&) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #2  0x080fa04a in Player::expGained (this=0x847d110, t0=..., t1=84, t2=13951645, t3=...) at player.moc:592
    #3  0x080fa340 in Player::updateExp (this=0x847d110, data=0x846a59b "\252") at player.cpp:669
    #4  0x080fc99c in Player::qt_invoke (this=0x847d110, _id=15, _o=0xbfffc380) at player.moc:737
    #5  0x04185642 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #6  0x080906cf in EQPacketDispatch::signal (this=0x8410588, t0=0x846a59b "\252", t1=8, t2=2 '\002') at packetinfo.moc:99
    #7  0x08089e19 in EQPacketStream::dispatchPacket (this=0x8326040, data=0x846a59b "\252", len=8, opCode=8730, opcodeEntry=0x843aa58) at  packetstream.cpp:435
    #8  0x0808c16a in EQPacketStream::processPacket (this=0x8326040, packet=..., isSubpacket=true) at packetstream.cpp:717
    #9  0x0808c44a in EQPacketStream::processPacket (this=0x8326040, packet=..., isSubpacket=false) at packetstream.cpp:805
    #10 0x0808ccc8 in EQPacketStream::handlePacket (this=0x8326040, packet=...) at packetstream.cpp:570
    #11 0x08093322 in EQPacket::dispatchPacket (this=0x82aa0b0, packet=...) at packet.cpp:659
    #12 0x08095bf5 in dispatchPacket (this=0x82aa0b0) at packet.cpp:583
    #13 EQPacket::processPackets (this=0x82aa0b0) at packet.cpp:400
    #14 0x08095ed0 in EQPacket::qt_invoke (this=0x82aa0b0, _id=2, _o=0xbfffe788) at packet.moc:577
    #15 0x04185642 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #16 0x04185724 in QObject::activate_signal(int) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #17 0x044ccc5a in QTimer::timeout() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #18 0x041a5e3e in QTimer::event(QEvent*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #19 0x04123ffd in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #20 0x0412418b in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #21 0x0411823c in QEventLoop::activateTimers() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #22 0x040d3182 in QEventLoop::processEvents(unsigned int) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #23 0x04139b50 in QEventLoop::enterLoop() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #24 0x04139ad7 in QEventLoop::exec() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #25 0x04124d20 in QApplication::exec() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #26 0x08067a8b in main (argc=1, argv=0xbffff414) at main.cpp:737
    Any thoughts are appreciated. I looked at the different files mentioned above and couldn't figure out a logical fix

  13. #43
    Did you SEQ today? BlueAdept's Avatar
    Join Date
    Dec 2001
    Posts
    2,008

    Re: Is Showeq working these days?

    So far, I havent had any segs (I haven't applied your patches yet). I run 3 toons (all casters). It is old hardware and old OS, centos 5.0. Possibly a qt version problem?
    Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz

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

    Famous Quotes:

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

    Razzle: I showeq my wife

  14. #44
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: Is Showeq working these days?

    I'm perplexed as the fix is just to not set the OP-ExpUpdate opcode in zoneopcodes.xml - i.e. set it to 0000. When I do that, SEQ is bombproof and will run for days at a time without issue. If I set that opcode to it's apparent correct value of 221a, it crashes my main but none of my alts. Weirdness!

    Let me know how it goes when you apply the patch above. Looking for some validation as I am by no means an expert programmer so this is new territory for me.

  15. #45
    Did you SEQ today? BlueAdept's Avatar
    Join Date
    Dec 2001
    Posts
    2,008

    Re: Is Showeq working these days?

    For me, it will be a couple days. I have new hardware and a new os to install (upgrades came today).
    Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz

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

    Famous Quotes:

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

    Razzle: I showeq my wife

Thread Information

Users Browsing this Thread

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

Posting Permissions

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