PDA

View Full Version : 12/12/12 Changes



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

Oh, and I never did get around to posting an announcement post... there is a new release in SVN that updated a lot of things for RoF. May want to grab that and compile then drop in opcodes below.

fransick
12-12-2012, 01:03 PM
Here are the opcodes I was able to update in 15 minutes...


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

<!-- Critical opcodes used directly by ShowEQ -->
<opcode id="1b21" name="OP_NpcMoveUpdate" updated="11/28/12">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="517d" name="OP_MovementHistory" updated="11/28/12">
<comment>Movement data... rewind info?</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="3c8e" name="OP_DeleteSpawn" updated="12/12/12">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
<opcode id="1665" name="OP_ZoneEntry" updated="12/12/12">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="0561" name="OP_GuildMOTD" updated="12/12/12">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
<opcode id="3a18" name="OP_InspectAnswer" updated="11/28/12">
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
<opcode id="0e25" name="OP_TargetMouse" updated="12/12/12">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
<opcode id="3eb2" name="OP_Shroud" updated="10/23/12">
<comment>Server putting players into shroud form</comment>
<payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
</opcode>
<opcode id="718f" name="OP_GroupInvite" updated="11/28/12">
<payload dir="both" typename="groupInviteStruct" sizechecktype="none"/>
<comment>You invite someone while ungrouped or get invited by someone ungrouped </comment>
</opcode>
<opcode id="13ec" name="OP_GroupInvite2" updated="11/28/12">
<payload dir="client" typename="groupInviteStruct" sizechecktype="none"/>
<comment>You're inviting someone and you are grouped or get invited by a group</comment>
</opcode>
<opcode id="3389" name="OP_GroupFollow" updated="11/28/12">
<payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
<comment>You join a group or player joins group</comment>
</opcode>
<opcode id="0000" name="OP_GroupFollow2" updated="11/28/12">
<payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
<comment>Player joins your group</comment>
</opcode>
<opcode id="7693" name="OP_GroupDisband" updated="11/28/12">
<comment>You disband from group</comment>
<payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
</opcode>
<opcode id="12ef" name="OP_GroupDisband2" updated="11/28/12">
<comment>Other disbands from group</comment>
<payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
</opcode>
<opcode id="4bf0" name="OP_GroupLeader" updated="11/28/12">
<comment>Group leader change</comment>
<payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/>
</opcode>
<opcode id="202b" name="OP_GroupCancelInvite" updated="11/28/12">
<payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
<comment>Declining to join a group</comment>
</opcode>
<opcode id="0e01" name="OP_DzSwitchInfo" updated="12/12/12">
<comment>Expedition compass etc</comment>
<payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
</opcode>
<opcode id="4676" name="OP_DzInfo" updated="11/28/12">
<comment>Expedition Information</comment>
<payload dir="server" typename="dzInfo" sizechecktype="match"/>
</opcode>
<opcode id="0aa1" name="OP_FormattedMessage" updated="11/28/12">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="7b6c" name="OP_SpawnDoor" updated="12/12/12">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
<opcode id="6c45" name="OP_AAExpUpdate" updated="11/28/12">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="07b8" name="OP_HPUpdate" updated="12/12/12">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="0954" name="OP_GuildMemberUpdate" updated="11/28/12">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
<opcode id="7daa" name="OP_SpawnRename" updated="11/28/12">
<comment>Spawns getting renamed after initial NewSpawn</comment>
<payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
</opcode>
<opcode id="5128" name="OP_SwapSpell" updated="11/28/12">
<comment>TradeSpellBookSlotsCode</comment>
<payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
</opcode>
<opcode id="0e3b" name="OP_SimpleMessage" updated="11/28/12">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
<opcode id="611d" name="OP_SpecialMesg" updated="11/28/12">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="2af0" name="OP_RandomReq" updated="11/28/12">
<comment>RandomReqCode</comment>
<payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
</opcode>
<opcode id="4717" name="OP_RandomReply" updated="11/28/12">
<comment>RandomCode</comment>
<payload dir="server" typename="randomStruct" sizechecktype="match"/>
</opcode>
<opcode id="2a1f" name="OP_ConsentResponse" updated="11/28/12">
<comment>Server replying with consent information after /consent</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
<opcode id="760d" name="OP_DenyResponse" updated="11/28/12">
<comment>Server replying with deny information after /deny</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
<opcode id="3116" name="OP_BazaarSearch" updated="11/28/12">
<payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/>
<payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
<comment>Bazaar search tool - struct changed and separated query from response with RoF launch. Needs work </comment>
</opcode>
<opcode id="1ad3" name="OP_SpawnUpdate" updated="12/12/12">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="2e7e" name="OP_Stamina" updated="11/28/12">
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
<opcode id="1469" name="OP_Consider" updated="11/28/12">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
<opcode id="7fff" name="OP_NewZone" updated="12/12/12">
<comment>NewZoneCode</comment>
<payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
</opcode>
<opcode id="4286" name="OP_GroundSpawn" updated="12/12/12">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="7cde" name="OP_RemoveSpawn" updated="11/28/12">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
<opcode id="777f" name="OP_Death" updated="11/28/12">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
<opcode id="20c9" name="OP_ClickObject" updated="11/28/12">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
<opcode id="7ce4" name="OP_Action" updated="11/28/12">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
<opcode id="01d0" name="OP_Action2" updated="11/28/12">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
<opcode id="79ee" name="OP_Illusion" updated="11/28/12">
<comment>Spawn being illusioned (changing forms)</comment>
<payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
</opcode>
<opcode id="0af7" name="OP_BuffFadeMsg" updated="11/28/12">
<comment>SpellFadeCode</comment>
<payload dir="both" typename="spellFadedStruct" sizechecktype="none"/>
</opcode>
<opcode id="62ee" name="OP_CastSpell" updated="11/28/12">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
<opcode id="4e39" name="OP_MemorizeSpell" updated="11/28/12">
<comment>MemSpellCode</comment>
<payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
</opcode>
<opcode id="212b" name="OP_Emote" updated="11/28/12">
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
<opcode id="6399" name="OP_ManaChange" updated="11/28/12">
<comment>Mana change. Bards send this up with no size. Casters receive this for mana updates.</comment>
<payload dir="server" typename="manaDecrementStruct" sizechecktype="match"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="06f8" name="OP_MoneyOnCorpse" updated="11/28/12">
<comment>MoneyOnCorpseCode</comment>
<payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
</opcode>
<opcode id="46bb" name="OP_PlayerProfile" updated="12/12/12">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="2db2" name="OP_TimeOfDay" updated="11/28/12">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
<opcode id="455d" name="OP_ClientUpdate" updated="12/12/12">
<comment>Position updates - looks to be 455d and 42 bytes as of 12/12/12</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
<opcode id="4cc9" name="OP_BeginCast" updated="11/28/12">
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
<opcode id="01cd" name="OP_CommonMessage" updated="11/28/12">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="4f2b" name="OP_SkillUpdate" updated="11/28/12">
<comment>Skill up code</comment>
<payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
</opcode>
<opcode id="7360" name="OP_SpawnAppearance" updated="12/12/12">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_ExpUpdate" updated="11/28/12">
<comment>ExpUpdateCode - opcode looks to be 67d1 as of 11/28/12 but that value causes seg faults for some reason</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_LevelUpdate" updated="11/28/12">
<comment>LevelUpUpdateCode - causing crashes as of 12/08/12 Investigating</comment>
<payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="3798" name="OP_LeaderExpUpdate" updated="11/28/12">
<comment>Leadership AA Exp Update</comment>
<payload dir="server" typename="leadExpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="4daf" name="OP_MobUpdate" updated="11/28/12">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
<opcode id="5c45" name="OP_Trader" updated="11/28/12">
<comment>PC's turning trader on and off</comment>
<payload dir="server" typename="bazaarTraderRequest" sizechecktype="match"/>
</opcode>
<opcode id="071e" name="OP_Consent" updated="11/28/12">
<comment>/consent someone</comment>
<payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
</opcode>
<opcode id="2860" name="OP_ConsentDeny" updated="11/28/12">
<comment>/deny someone</comment>
<payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
</opcode>
<opcode id="1d6d" name="OP_ItemPacket" updated="11/28/12">
<comment>ItemCode</comment>
<payload dir="server" typename="itemPacketStruct" sizechecktype="none"/>
</opcode>
<opcode id="361c" name="OP_ItemLinkResponse" updated="11/28/12">
<comment>ItemInfoCode</comment>
<payload dir="server" typename="itemInfoStruct" sizechecktype="none"/>
<payload dir="client" typename="itemInfoReqStruct" sizechecktype="none"/>
</opcode>
<opcode id="28a9" name="OP_EnvDamage" updated="11/28/12">
<comment>Environmental Damage</comment>
<payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/>
</opcode>
<opcode id="402d" name="OP_SetRunMode" updated="11/28/12">
<comment>old cRunToggleCode</comment>
<payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_WearChange" updated="03/23/12">
<comment>Armor changes or give a pet a weapon (model changes) This seems to be an artifact from a past patch. Need to fix</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>

<!-- Not necessary for SEQ to run but here to name packets in logs. -->
<opcode id="238d" name="OP_GroupUpdate" updated="11/28/12">
<comment>Group member names - Variable length</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="71f5" name="OP_UIUpdate" updated="12/12/12">
<comment>Seems to be sent to handle a variety of UI updates - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1aae" name="OP_GroupMemberList" updated="08/17/12">
<comment>List of group members - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4053" name="OP_GuildMemberList" updated="12/12/12">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="6675" name="OP_ManaUpdate" updated="12/12/12">
<comment>Mana Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="71fb" name="OP_EndUpdate" updated="12/12/12">
<comment>Endurance Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3929" name="OP_Marketplace" updated="11/28/12">
<comment>Marketplace data - Guessing variable length 11444 bytes as of 11/28/12</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2de6" name="OP_MarketplaceSelect" updated="11/28/12">
<comment>Sent when highlighting an item in Marketplace - 80 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4e34" name="OP_DzMembers" updated="11/28/12">
<comment>Expedition Members - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6562" name="OP_Campfire" updated="11/28/12">
<comment>Fellowship campfire information - 1076 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3c4b" name="OP_SelectCampfire" updated="11/28/12">
<comment>Fellowship campfire Choices - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="02d7" name="OP_Claims" updated="11/28/12">
<comment>Contents of claims window. /claim then refresh to capture packet - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3bcc" name="OP_VoiceChat" updated="12/12/12">
<comment>Voice chat server info - Variable length (Data sent when joining group,raid etc)</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6e6c" name="OP_PollQuestions" updated="12/12/12">
<comment>SOE in-game player poll questions - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="17ee" name="OP_PollResponses" updated="12/12/12">
<comment>Poll response choices - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7251" name="OP_ShroudProgression" updated="12/12/12">
<comment>Unlocked shrouds - 244 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="ba18" name="OP_ShroudTemplates" updated="10/23/12">
<comment>Shroud templates to choose from on shroud NPC - 18983 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="40fd" name="OP_Fellowship" updated="12/12/12">
<comment>Fellowship information - 2564 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7851" name="OP_ExpandedGuildInfo" updated="12/12/12">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1cbf" name="OP_GuildBank" updated="12/12/12">
<comment>Guild bank contents - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2db9" name="OP_OpenTradeskillContainer" updated="11/28/12">
<comment>Opens forge, kiln etc - 92 Bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="18c4" name="OP_TradeskillRecipes" updated="11/28/12">
<comment>Learned recipes - 84 Bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0397" name="OP_TradeSkillCombine" updated="11/28/12">
<comment>Tradeskill combine using new tradeskill window - 40 Bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="360d" name="OP_TradeSkillResult" updated="11/28/12">
<comment>Packets sent when tradeskill combine successful equals # of ingredients used in combine?- 12 Bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="0b69" name="OP_TradeSkillCombineOld" updated="11/28/12">
<comment>Tradeskill combine using old tradeskill window - 24 Bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="786e" name="OP_ItemPlayerPacket" updated="12/12/12">
<comment>Inventory/bank items coming over during zone - Variable length</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="2294" name="OP_TaskDescription" updated="12/12/12">
<comment>Task descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7181" name="OP_TaskActivity" updated="12/12/12">
<comment>Task activity descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="9495" name="OP_CompletedTasks" updated="12/12/12">
<comment>Task history for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="471a" name="OP_CustomTitles" updated="12/12/12">
<comment>List of available titles - 1520 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3df3" name="OP_Animation" updated="11/28/12">
<comment>Combat animation, emote animations etc - 4 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2bdd" name="OP_WhoAllRequest" updated="11/28/12">
<comment>WhoAllReqCode - 156 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="51a4" name="OP_WhoAllResponse" updated="11/28/12">
<comment>WhoAllOutputCode - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3d3c" name="OP_InspectRequest" updated="11/28/12">
<comment>InspectRequestCode - 8 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="40ca" name="OP_GetGuildMOTD" updated="11/28/12">
<comment>Request guildMOTD - 648 Bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1861" name="OP_GuildMOTDResponse" updated="11/28/12">
<comment>Response guildMOTD - 648 Bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="38e9" name="OP_TradeRequest" updated="11/28/12">
<comment>You request trade session - 8 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0ccc" name="OP_TradeDeny" updated="11/28/12">
<comment>Target not ready to trade - 12 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1439" name="OP_TradeRequestAck" updated="11/28/12">
<comment>Trade request recipient is acknowledging they are able to trade - 8 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="66f3" name="OP_CancelTrade" updated="11/28/12">
<comment>Cancel a trade window - 8 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0dd6" name="OP_FinishTrade" updated="11/28/12">
<comment>Trade is over - 12 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2320" name="OP_TradeCoins" updated="11/28/12">
<comment>You put coins put in a trade window - 20 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="428e" name="OP_TradeCoins2" updated="11/28/12">
<comment>Someone else puts coins put in your trade window - 12 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4cf9" name="OP_TradeAcceptClick" updated="11/28/12">
<comment>One side clicks Accept on the trade 8 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6f69" name="OP_ItemLinkClick" updated="11/28/12">
<comment>Click on itemlinks - 52 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6635" name="OP_LootRequest" updated="11/28/12">
<comment>LootCorpseCode - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0233" name="OP_LootItem" updated="11/28/12">
<comment>Loot item from corpse - 20 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="11bc" name="OP_EndLootRequest" updated="11/28/12">
<comment>DoneLootingCode - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3c94" name="OP_Track" updated="11/28/12">
<comment>Tracking data - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="5401" name="OP_AutoAttack" updated="11/28/12">
<comment>Attack on/off - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3fad" name="OP_AutoAttack2" updated="11/28/12">
<comment>Attack on/off appears to be same as OP_AutoAttack - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7488" name="OP_ClickDoor" updated="11/28/12">
<comment>DoorOpenCode click request from client - 16 bytes</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="38ab" name="OP_MoveDoor" updated="11/28/12">
<comment>DoorClickCode response from server - 2 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="29fa" name="OP_MoveItem" updated="11/28/12">
<comment>Client moving an item from one slot to another - 28 bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="5751" name="OP_Jump" updated="11/28/12">
<comment>JumpCode - 0 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="339c" name="OP_TGB" updated="11/28/12">
<comment>Client telling server to set targetgroupbuff - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1d6a" name="OP_Lockouts" updated="11/28/12">
<comment>Client requesting lockouts - 0 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4ee5" name="OP_RaidInvite" updated="11/28/12">
<comment>Client side raid invite requests 140 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="5dcf" name="OP_RaidJoin" updated="11/28/12">
<comment>Server side raid information - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="24c5" name="OP_Feedback" updated="07/18/12">
<comment>Client sending feedback to server - 1148 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="34f7" name="OP_GuildsList" updated="11/28/12">
<comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="284e" name="OP_LFGGetMatchesRequest" updated="11/28/12">
<comment>LFG/LFP client request - 16 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="11c8" name="OP_LFGGetMatchesResponse" updated="11/28/12">
<comment>LFG/LFP server response - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="5a7c" name="OP_MercenaryList" updated="12/12/12">
<comment>Listing of hired mercenaries - 429 bytes
<payload dir="server" typename="unknown" sizechecktype="none"/></comment>
</opcode>
<opcode id="6e0e" name="OP_ClickInventory" updated="11/28/12">
<comment>Click items from inventory or armor - 16 bytes 5th byte is Slot ID</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3459" name="OP_ClickInventoryAck" updated="11/28/12">
<comment>Server acknowledges click from inventory or armor - 20 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="60e2" name="OP_BuffWindow" updated="11/28/12">
<comment>Changes to buff window or song window - 100 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="40d5" name="OP_ClickBuffOff" updated="11/28/12">
<comment>Client clicks off buff - 8 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6786" name="OP_HouseAddress" updated="12/12/12">
<comment>House and guildhall address information - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7cda" name="OP_HouseContents" updated="11/28/12">
<comment>Server sending house information and contents - variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="54df" name="OP_FriendsList" updated="11/28/12">
<comment>Server sending friends list contents - variable length (Sent when choosing "Welcome" from EQ button)</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="5a4f" name="OP_FriendsOnline" updated="11/28/12">
<comment>Friends currently online - variable length (Sent when choosing "Welcome" form EQ button)</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="348e" name="OP_Rewards" updated="11/28/12">
<comment>Server sending pending rewards - variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="63ae" name="OP_FTPNags" updated="12/12/12">
<comment>Free to play nags and other data - 1852 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="34c3" name="OP_Find" updated="12/12/12">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="10cb" name="OP_ConsiderCorpse" updated="11/28/12">
<comment>ConCorpseCode - 20 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0000" name="OP_TributeUpdate" updated="11/28/12">
<comment>Tribute and trophy skills - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>

<!-- Below are used to help make sense of the logs when searching for opcodes
Using these marks unknown opcodes in logs for easier reading -->
<opcode id="218d" name="OP_Unknown1" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="48b5" name="OP_Unknown2" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7cb5" name="OP_Unknown3" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>

<!-- Below are unverified -->
<opcode id="0000" name="OP_Buff" updated="11/15/11">
<comment>old BuffDropCode</comment>
<payload dir="both" typename="buffStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_ZoneChange" updated="04/18/11">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_CorpseLocResponse" updated="06/12/09">
<comment>old CorpseLocCode:</comment>
<payload dir="server" typename="corpseLocStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_SendZonePoints" updated="10/15/10">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
<opcode id="0000" name="OP_RequestZoneChange" updated="10/20/07">
<comment>Send by server when a click causes zone. Also, origin</comment>
<payload dir="server" typename="requestZoneChangeStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_Logout" updated="10/21/09">
<comment></comment>
<payload dir="server" typename="none" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_WelcomeScreenTitle" updated="05/16/11">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_VeteranRewards" update="04/18/11">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_SendAATable" updated="08/12/09">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_SendAAStats" updated="08/12/09">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_AckPacket" updated="03/14/07">
<comment>Appears to be generic ack at the presentation level</comment>
</opcode>
<opcode id="0000" name="OP_Weather" updated="03/14/07">
<comment>old WeatherCode</comment>
</opcode>
<opcode id="0000" name="OP_ReqNewZone" updated="03/14/07">
<comment>Client requesting NewZone_Struct</comment>
</opcode>
<opcode id="0000" name="OP_ReqClientSpawn" updated="03/14/07">
<comment>Client requesting spawn data</comment>
</opcode>
<opcode id="0000" name="OP_SendExpZonein" updated="03/14/07">
<comment>Both directions. Negotiating sending of exp info.</comment>
</opcode>
<opcode id="0000" name="OP_AAAction" updated="03/14/07">
<comment>Used for changing percent, buying? and activating skills</comment>
</opcode>
<opcode id="0000" name="OP_SetServerFilter" updated="03/14/07">
<comment>Client telling server /filter information</comment>
</opcode>
<opcode id="0000" name="OP_ClientReady" updated="03/14/07">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_GuildTributeStatus" updated="03/14/07">
<comment>Guild tribute stats send on zone</comment>
</opcode>
<opcode id="0000" name="OP_GuildTributeInfo" updated="06/13/06">
<comment>Guild tribute loadout, only if on</comment>
</opcode>
<opcode id="0000" name="OP_RespawnWindow" updated="03/14/07">
<comment>Server telling client enough to populate the respawn window when you die</comment>
</opcode>
<opcode id="0000" name="OP_InitialMobHealth" updated="06/27/12">
<comment>Initial health sent when a player clicks on the mob. Subsequent updated will be OP_MobHealth</comment>
</opcode>
<opcode id="0000" name="OP_MobHealth" updated="03/14/07">
<comment>health sent when a player clicks on the mob</comment>
</opcode>
<opcode id="0000" name="OP_DeltaCheck" updated="03/14/07">
<comment>Client sending server delta information.</comment>
</opcode>
<opcode id="0000" name="OP_LoadSpellSet" updated="02/13/07">
<comment>/mem spellsetname</comment>
</opcode>
<opcode id="0000" name="OP_Dye" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_Consume" updated="12/07/05">
<comment>Client force feeding food/drink</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="0000" name="OP_Begging" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_LFGCommand" updated="10/27/05">
<comment>old LFGReqCode</comment>
</opcode>
<opcode id="0000" name="OP_Bug" updated="10/27/05">
<comment>/bug</comment>
</opcode>
<opcode id="0000" name="OP_Save" updated="04/19/06">
<comment>Client asking server to save user state</comment>
</opcode>
<opcode id="0000" name="OP_Camp" updated="02/13/07">
<comment>old cStartCampingCode</comment>
</opcode>
<opcode id="0000" name="OP_ShopPlayerSell" updated="10/27/05">
<comment>old SellItemCode</comment>
</opcode>
<opcode id="0000" name="OP_PetCommands" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_SaveOnZoneReq" updated="03/14/07">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_ShopEnd" updated="10/27/05">
<comment>old CloseVendorCode</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0000" name="OP_SenseTraps" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_SenseHeading" updated="10/27/05">
<comment>old cSenseHeadingCode</comment>
</opcode>
<opcode id="0000" name="OP_LootComplete" updated="12/07/05">
<comment>old sDoneLootingCode</comment>
</opcode>
<opcode id="0000" name="OP_Split" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_Surname" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_ShopRequest" updated="10/27/05">
<comment>old OpenVendorCode</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0000" name="OP_FaceChange" updated="10/27/05">
<comment>/face</comment>
</opcode>
<opcode id="0000" name="OP_Sneak" updated="06/29/05">
<comment>Clicked sneak</comment>
</opcode>
<opcode id="0000" name="OP_Hide" updated="06/29/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_DisarmTraps" updated="05/11/05">
<comment>Clicked disarm traps</comment>
</opcode>
<opcode id="0000" name="OP_Forage" updated="10/27/05">
<comment>old ForageCode</comment>
</opcode>
<opcode id="0000" name="OP_BoardBoat" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_LeaveBoat" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_LFPGetMatchesRequest" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_GMKill" updated="10/27/05">
<comment>GM /kill - Insta kill mob/pc</comment>
</opcode>
<opcode id="0000" name="OP_GuildPublicNote" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_YellForHelp" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_ShopPlayerBuy" updated="05/11/05">
<comment>old BuyItemCode</comment>
</opcode>
<opcode id="0000" name="OP_LFPCommand" updated="10/27/05">
<comment>looking for players</comment>
</opcode>
<opcode id="0000" name="OP_ConfirmDelete" updated="10/27/05">
<comment>Client sends this to server to confirm op_deletespawn</comment>
</opcode>
<opcode id="0000" name="OP_Report" updated="06/29/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_TargetCommand" updated="02/13/07">
<comment>Target user</comment>
</opcode>
<opcode id="0000" name="OP_LFPGetMatchesResponse" updated="02/13/07">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_FindPersonRequest" updated="02/13/07">
<comment>Control-F Find</comment>
</opcode>
<opcode id="0000" name="OP_FindResponse" updated="02/13/07">
<comment>Response to control-F</comment>
</opcode>
<opcode id="0000" name="OP_GMLastName" updated="10/27/05">
<comment>GM /lastname - Change user lastname</comment>
</opcode>
<opcode id="0000" name="OP_Mend" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_MendHPUpdate" updated="05/11/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_TributeInfo" updated="02/13/07">
<comment>Tribute information</comment>
</opcode>

<!-- OLD OPCODES. These haven't been mapped in a post 1/26/2005 world. If you
can find any of these in the current stream, please update them and let
us know!

<opcode id="1900" name="OP_ZoneSpawns" updated="05/29/08">
<comment>old ZoneSpawnsCode</comment>
<payload dir="server" typename="spawnStruct" sizechecktype="none"/>
</opcode>
<opcode id="0020" name="OP_GMServers" updated="05/26/04">
<comment>GM /servers - ?</comment>
</opcode>
<opcode id="790e" name="OP_GMKick" updated="01/26/05">
<comment>GM /kick - Boot player</comment>
</opcode>
<opcode id="0068" name="OP_Petition" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0074" name="OP_GMBecomeNPC" updated="05/26/04">
<comment>GM /becomenpc - Become an NPC</comment>
</opcode>
<opcode id="0076" name="OP_PetitionCheckout" updated="05/26/04">
<comment>Petition Checkout</comment>
</opcode>
<opcode id="007e" name="OP_PetitionCheckIn" updated="05/26/04">
<comment>Petition Checkin</comment>
</opcode>
<opcode id="688f" name="OP_PetitionResolve" updated="05/11/05">
<comment>Client Petition Resolve Request</comment>
</opcode>
<opcode id="0165" name="OP_DeletePetition" updated="01/26/05">
<comment>Player /deletepetition</comment>
</opcode>
<opcode id="0082" name="OP_PetitionQue" updated="05/26/04">
<comment>GM looking at petitions</comment>
</opcode>
<opcode id="0090" name="OP_PetitionUnCheckout" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0097" name="OP_GMSearchCorpse" updated="05/26/04">
<comment>GM /searchcorpse - Search all zones for named corpse</comment>
</opcode>
<opcode id="009a" name="OP_GuildPeace" updated="05/26/04">
<comment>/guildpeace</comment>
</opcode>
<opcode id="00a4" name="OP_GuildWar" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="00a7" name="OP_GuildLeader" updated="05/26/04">
<comment>/guildleader</comment>
</opcode>
<opcode id="00b6" name="OP_ApplyPoison" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="00da" name="OP_GMInquire" updated="05/26/04">
<comment>GM /inquire - Search soulmark data</comment>
</opcode>
<opcode id="00dc" name="OP_GMSoulmark" updated="05/26/04">
<comment>GM /praise /warn - Add soulmark comment to user file</comment>
</opcode>
<opcode id="00de" name="OP_GMHideMe" updated="05/26/04">
<comment>GM /hideme - Remove self from spawn lists and make invis</comment>
</opcode>
<opcode id="00ef" name="OP_SafePoint" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="010b" name="OP_GMGoto" updated="05/26/04">
<comment>GM /goto - Transport to another loc</comment>
</opcode>
<opcode id="012d" name="OP_BindWound" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0132" name="OP_GuildRemove" updated="05/26/04">
<comment>/guildremove</comment>
</opcode>
<opcode id="013b" name="OP_GMTraining" updated="05/26/04">
<comment>old OpenGMCode</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="013c" name="OP_GMEndTraining" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0152" name="OP_MoveCash" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0160" name="OP_Taunt" updated="05/26/04">
<comment>old ConsumeCode</comment>
</opcode>
<opcode id="016c" name="OP_Stun" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0175" name="OP_GMTrainSkill" updated="05/26/04">
<comment>old SkillTrainCode</comment>
</opcode>
<opcode id="0178" name="OP_GMEndTrainingResponse" updated="05/26/04">
<comment>old CloseGMCode</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="0183" name="OP_GMZoneRequest" updated="05/26/04">
<comment>/zone</comment>
</opcode>
<opcode id="018f" name="OP_BecomePK" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0197" name="OP_SetDataRate" updated="05/26/04">
<comment>Client sending datarate.txt value</comment>
</opcode>
<opcode id="0198" name="OP_GMDelCorpse" updated="05/26/04">
<comment>/delcorpse</comment>
</opcode>
<opcode id="0199" name="OP_Sacrifice" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01af" name="OP_GMApproval" updated="05/26/04">
<comment>GM /approval - Name approval duty?</comment>
</opcode>
<opcode id="01b2" name="OP_GMToggle" updated="05/26/04">
<comment>GM /toggle - Toggle ability to receive tells from other PC's</comment>
</opcode>
<opcode id="01bc" name="OP_MoneyUpdate" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ba" name="OP_ReqZoneObjects" updated="05/26/04">
<comment>Client requesting zone objects</comment>
</opcode>
<opcode id="01c4" name="OP_Translocate" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ea" name="OP_RespondAA" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ed" name="OP_IncreaseStats" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ef" name="OP_ViewPetition" updated="05/26/04">
<comment>Player /viewpetition</comment>
</opcode>
<opcode id="01ff" name="OP_ExpansionSetting" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0205" name="OP_GainMoney" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0225" name="OP_GMZoneRequest2" updated="05/26/04">
<comment>/zone 2</comment>
</opcode>
<opcode id="0245" name="?" implicitlen="6" updated="07/14/04">
<comment>Unknown, but has implicit length</comment>
</opcode>
<opcode id="0261" name="OP_CrashDump" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0263" name="OP_GuildDemote" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0264" name="OP_ZoneUnavail" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="028b" name="OP_GMSummon" updated="05/26/04">
<comment>GM /summon - Summon PC to self</comment>
</opcode>
<opcode id="0296" name="OP_ItemTextFile" updated="05/26/04">
<comment>old BookTextCode</comment>
<payload dir="server" typename="bookTextStruct" sizechecktype="none"/>
</opcode>
<opcode id="029e" name="OP_OpenObject" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="028e" name="OP_GMEmoteZone" updated="05/26/04">
<comment>GM /emotezone - Send zonewide emote</comment>
</opcode>
<opcode id="0296" name="OP_ReadBook" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02b4" name="OP_SummonCorpse" updated="05/26/04">
<comment>/summoncorpse</comment>
</opcode>
<opcode id="02cc" name="OP_ShopItem" updated="05/26/04">
<comment>Merchant Item data</comment>
</opcode>
<opcode id="02d0" name="OP_AdventureRequest" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02d1" name="OP_AdventureMerchantResponse" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02d2" name="OP_AdventureMerchantPurchase" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02e2" name="OP_AdventurePointsUpdate" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02ef" name="OP_Adventure" updated="05/26/04">
<comment>/adventure</comment>
</opcode>
<opcode id="1ee8" name="OP_CombatAbility" updated="02/15/05">
<comment></comment>
</opcode>
-->
</seqopcodes>

BlueAdept
12-14-2012, 10:26 AM
Thanks fransick!

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

Confused

rogues
12-14-2012, 03:21 PM
I tried for a few hours the other night, fransick, but decided it was way beyond me for the same reasons they were beyond you, and you're way ahead of me on these. Sorry :(

fransick
12-14-2012, 03:52 PM
I tried for a few hours the other night, fransick, but decided it was way beyond me for the same reasons they were beyond you, and you're way ahead of me on these. Sorry :(

Thanks for trying... with a little sleep after the redeye flight maybe it will make a little more sense. We'll see!

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

purple
12-15-2012, 01:46 PM
Oh and they are packed so the data boundaries don't align on byte boundaries. That's why you can't just look at the packet dumps and figure things out.

fransick
12-15-2012, 01:55 PM
Thanks Purple... I got playerSelfPos figured out just looking at the logs. playerPos is a different story. Will try your suggestion.

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

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

fransick
12-15-2012, 06:17 PM
This fix will position you on the map correctly... still working on the struct for PC updates. That one is giving me fits.


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

Newby
12-16-2012, 10:28 AM
In everquest.h, struct spawnStruct, under the posData union, the following works to get initial spawn locations in their correct spots:

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

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

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

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

Stuff in Green should be correct...
/*0000*/ uint16_t spawnId; // PC's spawn ID
/*0002*/ uint8_t unk[2]; // BSH 13 Apr 2011
/*0004*/ signed padding0000:12; // ***Placeholder
signed y:19; // y coord
signed padding0005:10; // ***Placeholder
/*0008*/ signed deltaHeading:10; // change in heading
signed deltaZ:13; // change in z
/*0012*/ signed deltaX:13; // change in x
signed z:19; // z coord
/*0016*/ signed x:19; // x coord
signed deltaY:13; // change in y
/*0020*/ unsigned heading:12; // heading
signed animation:10; // animation
signed padding0006:10; // ***Placeholder
/*0024*/



Using the debug tools in spawnshell.cpp, I am pretty sure animation actually contains deltaZ data and padding0005 looks to contain the deltaY data but switching them around messes everything else up. Finally, I am pretty sure deltaX and deltaHeading are correct but would need to get everything else right to confirm.

Fun times... hopefully someone smarter can carry it across the finish line. It's beyond my capability.

rogues
12-17-2012, 03:47 AM
Hang in there guys, it's coming along. Appreciate the hard work, you guys have gone way beyond what I'm capable of. Any way to get r6 on the bat phone?

fransick
12-20-2012, 09:59 AM
Hang in there guys, it's coming along. Appreciate the hard work, you guys have gone way beyond what I'm capable of. Any way to get r6 on the bat phone?

Yep... needing a lifeline now.

I have been thinking about it while on the road this week and am gearing up for another go at it this weekend. Going to look more closely at spawnshell.cpp handling to see if that sheds any clues on how to parse the struct. Looks a lot like the playerprofile handling that r6express helped with. Perhaps a closer look will make sense of the changes.

rogues
12-20-2012, 09:07 PM
Question about the difference between the x,y, and z values and their deltas. If the x,y, z values are correct then I assume that it's a combination of that and their deltas that gives the initial location on zone-in?

purple
12-21-2012, 09:10 AM
I think the deltas are only used to draw the little gray vectors on the map. The deltas have nothing to do with the initial map location on zone in. That comes completely from ZoneSpawns, which is just a sequence of spawn structs. So if initial zone locs are off, spawn struct is off.

rogues
12-21-2012, 09:12 AM
Ok, the reason I asked is because it sounds like the x,y, and z info is right but the NPC, PC locations are only picked up if they move. I would have thought if the x, y and z were ok in the spawnStruct that it would have been ok and if the deltas were off then the moves would have been wrong.

fransick
12-21-2012, 11:16 AM
Because the deltas are wrong, it maps their starting point correctly then they all vector off the map and go all over the place. So it does place the initial location correctly based on XYZ but then incorrectly mapped data sends them off the map.

rogues
12-21-2012, 11:53 AM
Thanks. If I get some time this weekend maybe I'll play around with it. I'd be tempted to see if there's a way to turn off reading the deltas competely. Then maybe you could turn them back on one at a time?

fransick
12-21-2012, 12:40 PM
There is some debug code that helps a lot. I think the difficulty comes from the fact that we are pulling only certain data off the wire and each piece of data has a field identifier. Wondering if there is new data on the wire that is throwing things off. I haven't done any raw packet capture outside of SEQ before and have only used SEQ logs to this point. Might have to expand my horizons to get a better clue what's going on.

ieatacid
12-22-2012, 12:34 AM
BlueAdept asked me to come by and help out.


struct playerSpawnPosStruct
{
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/ signed padding0004:13;
signed y:19; // y coord
/*0008*/ signed deltaX:13; // change in x
signed deltaHeading:10;// change in heading
signed padding0008:9;
/*0012*/ signed deltaY:13; // change in y
signed z:19; // z coord
/*0016*/ signed x:19; // x coord
signed animation:10; // animation
signed padding0016:3;
/*0020*/ unsigned heading:12; // heading
signed deltaZ:13; // change in z
signed padding0020:7;
/*0024*/
};

Edit: Unless they changed things, that should be the same order in spawnStruct.
Edit2: semicolons and animation was off.

fransick
12-22-2012, 06:16 AM
Thank you... thank you... thank you...

Now to look at what you did to see if I can understand what I was missing.

rogues
12-22-2012, 06:45 AM
Thanks so much!

I applied the changes but they don't seem to have made changes. I may have screwed up something somewhere else in all the messing around. Did they work for you, fransick?

For anybody else applying these, you need to add semi-colons to the end of those lines that have them missing. But then again, if you are messing with the code you probably know that!

Thanks again, good to see you around!!!

fransick
12-22-2012, 06:48 AM
It's an improvement... I am recompiling with debug and messing around with output to see what's happening. Looks like Delta is correct but X & Y are off. Perhaps the pieces are the right size now so the puzzle will go together unlike before.

ieatacid
12-22-2012, 08:12 AM
I fixed the semi colons. And animation was off. I don't know why x and y are off. Did you make the changes in (I forget) the function that decodes spawnStruct using a NetStream?

fransick
12-22-2012, 08:51 AM
I don't think so. Taking a look at all the changes I've made to make sure I didn't cross something up. Details forthcoming...

No changes to NetStream. I think it may be that spawnStruct is indeed different. Rogues, can you confirm that you are seeing the same wonkiness with spawnStruct? I've been looking at this so long, I don't trust what my eyes are telling me anymore haha

ieatacid
12-22-2012, 10:26 AM
SpawnShell::FillSpawnStruct needs to be updated. It reads the data in a specific order and is probably filling in the position data wrong.

This is where it reads in the position data:

spawn->posData[0] = netStream.readUInt32NC();
spawn->posData[1] = netStream.readUInt32NC();
spawn->posData[2] = netStream.readUInt32NC();
spawn->posData[3] = netStream.readUInt32NC();
spawn->posData[4] = netStream.readUInt32NC();

And spawnStruct in everquest.h should be arranged in the right order as well -- it keeps it less confusing.

This part (from spawnStruct in everquest.h) is the position data that gets filled in in SpawnShell::FillSpawnStruct:

union
{
struct
{
signed padding0000:12; // ***Placeholder
signed deltaHeading:10; // change in heading
signed padding0005:10; // ***Placeholder
signed z:19; // z coord
signed deltaZ:13; // change in z
signed deltaY:13; // change in y
signed y:19; // y coord
signed x:19; // x coord
signed deltaX:13; // change in x
unsigned heading:12; // heading
signed animation:10; // animation
signed padding0006:10; // ***Placeholder
};
int32_t posData[5];
};

ieatacid
12-22-2012, 11:30 AM
If you want, I can look at spawnStruct when I get home later and fix it fairly quickly.

fransick
12-22-2012, 11:32 AM
That would be helpful... at this stage I think a lot of the code is a bandaid on a bandaid making it hard for someone of very limited means (me) to understand what it is doing. I have zero programming experience and everything I've done to this point has come from experimenting and learning as I go.

BlueAdept
12-22-2012, 01:07 PM
Thank you ieatacid for helping with this.
I never fully understood how people figured out so much of this and I have so little time now that I know I never will. My knowledge of the code is very minute but I do try to keep it going as best as I can.

ieatacid
12-22-2012, 02:39 PM
Is there a way to run ShowEQ on Ubuntu within a VM on Windows? It would really be nice to be able to see what's really going on -- I don't have a computer running linux anymore.

rogues
12-22-2012, 02:53 PM
Probably with VMware player and Ubuntu 12. The NIC would have to be in bridged mode I think.

Razzle
12-22-2012, 03:07 PM
Yes, you can. I have a set up that will run it. You have to run with it wired network. Won't work with a wireless. I have had it running with Ubuntu 12.

Razzle

ieatacid
12-22-2012, 03:31 PM
Yes, you can. I have a set up that will run it. You have to run with it wired network. Won't work with a wireless. I have had it running with Ubuntu 12.

Razzle
My main PC is wired to the router, though it also has antenna so other devices can connect wirelessly.

Can you give a little more detail on how to do it?

Razzle
12-22-2012, 05:52 PM
I ran vmware player on same pc as i was running eq. Not sure if i was running NAT or Bridged. Trying to replicate it now. And i was mistaken about the versions. I tested up to Ubuntu 11.10. That was the most recent version the last time I had it running. I will confirm what works in a little while. Patching EQ and upgrading Ubuntu to 12.04 now on that laptop so I can give you more specific settings. I run wireless most of the time with MySEQ, and never SEQ anymore. But I was set up for testing about 9 months ago.

Razzle

Razzle
12-22-2012, 06:01 PM
Ok, that was a disaster. That virtual machine was not big enough to do the upgrade of versions. Ooops. Will have to fix that. So not goin to be able to test anything quick. Gotta go do family time. But I was running either NAT or Bridged. I had no problems getting it running on same PC as EQ on a wired connection at all.

Razzle

ieatacid
12-22-2012, 06:57 PM
Ok, thanks for the help. I'll mess around with it and see what I can get.

Razzle
12-22-2012, 07:08 PM
I remember something weird too. I would have a different setting when I was running seq for the vmware settings where my net would not connect to the rest of the world. So I would use 2 diff settings for the vm player depending if I was running seq or if I needed network connectivity.

Razzle
12-22-2012, 07:11 PM
I would only swap the net setting of player between NAT and Bridged. Depending on what I was doing. I think.

Razzle

purple
12-22-2012, 07:18 PM
Bridged is what you want. Hi ieatacid!



Because the deltas are wrong, it maps their starting point correctly then they all vector off the map and go all over the place. So it does place the initial location correctly based on XYZ but then incorrectly mapped data sends them off the map.


I really think this is wrong.

If things show up in the right spot, then start jumping around to bad positioning, then ZoneSpawns worked (i.e. spawn struct is right) to set their initial point, but then the npc movement struct is messed up. If your player shows up in the right spot, it could be because player profile is right or because zone spawns is right. If your player then gets wiggy when you move, the player movement struct is messed up.

Deltas just draw little gray vectors from your dude so when the map animates it looks good. If you have weird lines going all over the place, deltas are screwed up.

fransick
12-22-2012, 07:38 PM
Bridged is what you want. Hi ieatacid!



I really think this is wrong.

If things show up in the right spot, then start jumping around to bad positioning, then ZoneSpawns worked (i.e. spawn struct is right) to set their initial point, but then the npc movement struct is messed up. If your player shows up in the right spot, it could be because player profile is right or because zone spawns is right. If your player then gets wiggy when you move, the player movement struct is messed up.

Deltas just draw little gray vectors from your dude so when the map animates it looks good. If you have weird lines going all over the place, deltas are screwed up.

I don't doubt it... I do know something wasn't right with movement on PC's. Movement would hop around and once stationary they would show in the proper spot. This was using playerSpawnPosStruct. I am no expert, though so my observations are very much open to correction.

Razzle
12-22-2012, 07:57 PM
Yep. What purple said. Bridged got seq to work for me too.

Razzle

ieatacid
12-23-2012, 12:57 AM
Sorry to get off topic here, but have any of you gotten ShowEQ to work with QT4? I'm on Ubuntu 12.10 and can't get past ./configure telling me to verify my QT devel install.

fransick
12-23-2012, 01:42 AM
Sorry to get off topic here, but have any of you gotten ShowEQ to work with QT4? I'm on Ubuntu 12.10 and can't get past ./configure telling me to verify my QT devel install.

I've always had to downgrade to 3 to get it to compile... I believe there was talk a long time ago of making it QT4 compatible but those efforts never came to fruition.

ieatacid
12-23-2012, 01:50 AM
Having trouble getting Qt3 installed/working in 12.10 :(

fransick
12-23-2012, 08:11 AM
Having trouble getting Qt3 installed/working in 12.10 :(

Did you read INSTALL.newbies? :) Just kidding!

ieatacid
12-23-2012, 02:27 PM
I ended up installing 10.04 and got everything set up.

This diff contains the working changes from this thread and gives skittles. It's just a band aid for now as there are still things that needs to be fixed.


Index: conf/zoneopcodes.xml
================================================== =================
--- conf/zoneopcodes.xml (revision 779)
+++ conf/zoneopcodes.xml (working copy)
@@ -11,16 +11,16 @@
<comment>Movement data... rewind info?</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="50dc" name="OP_DeleteSpawn" updated="11/28/122">
+ <opcode id="3c8e" name="OP_DeleteSpawn" updated="12/12/12">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3b49" name="OP_ZoneEntry" updated="11/28/12">
+ <opcode id="1665" name="OP_ZoneEntry" updated="12/12/12">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
- <payload dir="server" typename="uint8_t" sizechecktype="none"/>
+ <payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="24cb" name="OP_GuildMOTD" updated="11/28/12">
+ <opcode id="0561" name="OP_GuildMOTD" updated="12/12/12">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
@@ -28,7 +28,7 @@
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1d80" name="OP_TargetMouse" updated="11/28/12">
+ <opcode id="0e25" name="OP_TargetMouse" updated="12/12/12">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
@@ -68,7 +68,7 @@
<payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
<comment>Declining to join a group</comment>
</opcode>
- <opcode id="63db" name="OP_DzSwitchInfo" updated="11/28/12">
+ <opcode id="0e01" name="OP_DzSwitchInfo" updated="12/12/12">
<comment>Expedition compass etc</comment>
<payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
</opcode>
@@ -80,7 +80,7 @@
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="5557" name="OP_SpawnDoor" updated="11/28/12">
+ <opcode id="7b6c" name="OP_SpawnDoor" updated="12/12/12">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
@@ -88,7 +88,7 @@
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="16ef" name="OP_HPUpdate" updated="11/28/12">
+ <opcode id="07b8" name="OP_HPUpdate" updated="12/12/12">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
@@ -134,7 +134,7 @@
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
<comment>Bazaar search tool - struct changed and separated query from response with RoF launch. Needs work </comment>
</opcode>
- <opcode id="20fd" name="OP_SpawnUpdate" updated="11/28/12">
+ <opcode id="1ad3" name="OP_SpawnUpdate" updated="12/12/12">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
@@ -146,18 +146,18 @@
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4dae" name="OP_NewZone" updated="11/28/12">
+ <opcode id="7fff" name="OP_NewZone" updated="12/12/12">
<comment>NewZoneCode</comment>
<payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
</opcode>
- <opcode id="769a" name="OP_GroundSpawn" updated="11/28/12">
+ <opcode id="4286" name="OP_GroundSpawn" updated="12/12/12">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="7cde" name="OP_RemoveSpawn" updated="11/28/12">
<comment>Remove spawn from zone</comment>
- <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
+ <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
<opcode id="777f" name="OP_Death" updated="11/28/12">
<comment>old NewCorpseCode</comment>
@@ -205,7 +205,7 @@
<comment>MoneyOnCorpseCode</comment>
<payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1603" name="OP_PlayerProfile" updated="11/28/12">
+ <opcode id="46bb" name="OP_PlayerProfile" updated="12/12/12">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -213,8 +213,8 @@
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="44ef" name="OP_ClientUpdate" updated="11/28/12">
- <comment>Position updates</comment>
+ <opcode id="455d" name="OP_ClientUpdate" updated="12/12/12">
+ <comment>Position updates - looks to be 455d and 42 bytes as of 12/12/12</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
@@ -230,7 +230,7 @@
<comment>Skill up code</comment>
<payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6128" name="OP_SpawnAppearance" updated="11/28/12">
+ <opcode id="7360" name="OP_SpawnAppearance" updated="12/12/12">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -246,7 +246,7 @@
<comment>Leadership AA Exp Update</comment>
<payload dir="server" typename="leadExpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4daf" name="OP_MobUpdate" updated="11/28/12">
+ <opcode id="6b5a" name="OP_MobUpdate" updated="12/12/12">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
@@ -289,7 +289,7 @@
<comment>Group member names - Variable length</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4281" name="OP_UIUpdate" updated="11/28/12">
+ <opcode id="71f5" name="OP_UIUpdate" updated="12/12/12">
<comment>Seems to be sent to handle a variety of UI updates - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -297,16 +297,16 @@
<comment>List of group members - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="4ea3" name="OP_GuildMemberList" updated="10/23/12">
+ <opcode id="4053" name="OP_GuildMemberList" updated="12/12/12">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1370" name="OP_ManaUpdate" updated="11/28/12">
- <comment>Mana Update opcode - 10 bytes</comment>
+ <opcode id="6675" name="OP_ManaUpdate" updated="12/12/12">
+ <comment>Mana Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="1e36" name="OP_EndUpdate" updated="11/28/12">
- <comment>Endurance Update opcode - 10 bytes</comment>
+ <opcode id="71fb" name="OP_EndUpdate" updated="12/12/12">
+ <comment>Endurance Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3929" name="OP_Marketplace" updated="11/28/12">
@@ -333,19 +333,19 @@
<comment>Contents of claims window. /claim then refresh to capture packet - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="7b6c" name="OP_VoiceChat" updated="11/28/12">
+ <opcode id="3bcc" name="OP_VoiceChat" updated="12/12/12">
<comment>Voice chat server info - Variable length (Data sent when joining group,raid etc)</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="758a" name="OP_PollQuestions" updated="11/28/12">
+ <opcode id="6e6c" name="OP_PollQuestions" updated="12/12/12">
<comment>SOE in-game player poll questions - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="5615" name="OP_PollResponses" updated="11/28/12">
+ <opcode id="17ee" name="OP_PollResponses" updated="12/12/12">
<comment>Poll response choices - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="0321" name="OP_ShroudProgression" updated="11/28/12">
+ <opcode id="7251" name="OP_ShroudProgression" updated="12/12/12">
<comment>Unlocked shrouds - 244 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -353,15 +353,15 @@
<comment>Shroud templates to choose from on shroud NPC - 18983 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="23ad" name="OP_Fellowship" updated="11/28/12">
+ <opcode id="40fd" name="OP_Fellowship" updated="12/12/12">
<comment>Fellowship information - 2564 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="4234" name="OP_ExpandedGuildInfo" updated="11/28/12">
+ <opcode id="7851" name="OP_ExpandedGuildInfo" updated="12/12/12">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="18e7" name="OP_GuildBank" updated="11/28/12">
+ <opcode id="1cbf" name="OP_GuildBank" updated="12/12/12">
<comment>Guild bank contents - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -385,23 +385,23 @@
<comment>Tradeskill combine using old tradeskill window - 24 Bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="0adc" name="OP_ItemPlayerPacket" updated="11/28/12">
+ <opcode id="786e" name="OP_ItemPlayerPacket" updated="12/12/12">
<comment>Inventory/bank items coming over during zone - Variable length</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="19e1" name="OP_TaskDescription" updated="11/28/12">
+ <opcode id="2294" name="OP_TaskDescription" updated="12/12/12">
<comment>Task descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="6c31" name="OP_TaskActivity" updated="11/28/12">
+ <opcode id="7181" name="OP_TaskActivity" updated="12/12/12">
<comment>Task activity descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="0525" name="OP_CompletedTasks" updated="11/28/12">
+ <opcode id="9495" name="OP_CompletedTasks" updated="12/12/12">
<comment>Task history for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="6f1b" name="OP_CustomTitles" updated="11/28/12">
+ <opcode id="471a" name="OP_CustomTitles" updated="12/12/12">
<comment>List of available titles - 1520 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -537,7 +537,7 @@
<comment>LFG/LFP server response - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="6f15" name="OP_MercenaryList" updated="11/28/12">
+ <opcode id="5a7c" name="OP_MercenaryList" updated="12/12/12">
<comment>Listing of hired mercenaries - 429 bytes
<payload dir="server" typename="unknown" sizechecktype="none"/></comment>
</opcode>
@@ -557,7 +557,7 @@
<comment>Client clicks off buff - 8 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="0d4b" name="OP_HouseAddress" updated="11/28/12">
+ <opcode id="6786" name="OP_HouseAddress" updated="12/12/12">
<comment>House and guildhall address information - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -577,11 +577,11 @@
<comment>Server sending pending rewards - variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="630b" name="OP_FTPNags" updated="11/28/12">
+ <opcode id="63ae" name="OP_FTPNags" updated="12/12/12">
<comment>Free to play nags and other data - 1852 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="5d95" name="OP_Find" updated="11/28/12">
+ <opcode id="34c3" name="OP_Find" updated="12/12/12">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -596,15 +596,15 @@

<!-- 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="496f" name="OP_Unknown1" updated="11/28/12">
+ <opcode id="218d" name="OP_Unknown1" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="7d71" name="OP_Unknown2" updated="11/28/12">
+ <opcode id="48b5" name="OP_Unknown2" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="4a6e" name="OP_Unknown3" updated="11/28/12">
+ <opcode id="7cb5" name="OP_Unknown3" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -635,10 +635,10 @@
<payload dir="server" typename="none" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_WelcomeScreenTitle" updated="05/16/11">
- <comment></comment>
+ <comment></comment>
</opcode>
<opcode id="0000" name="OP_VeteranRewards" update="04/18/11">
- <comment></comment>
+ <comment></comment>
</opcode>
<opcode id="0000" name="OP_SendAATable" updated="08/12/09">
<comment></comment>
Index: src/everquest.h
================================================== =================
--- src/everquest.h (revision 779)
+++ src/everquest.h (working copy)
@@ -1075,18 +1075,19 @@
{
struct
{
- signed padding0000:12; // ***Placeholder
- signed deltaHeading:10; // change in heading
- signed padding0005:10; // ***Placeholder
- signed z:19; // z coord
- signed deltaZ:13; // change in z
- signed deltaY:13; // change in y
- signed y:19; // y coord
- signed x:19; // x coord
- signed deltaX:13; // change in x
- unsigned heading:12; // heading
- signed animation:10; // animation
- signed padding0006:10; // ***Placeholder
+ signed padding0004:13;
+ signed y:19; // y coord
+ signed deltaX:13; // change in x
+ signed deltaHeading:10;// change in heading
+ signed padding0008:9;
+ signed deltaY:13; // change in y
+ signed z:19; // z coord
+ signed x:19; // x coord
+ signed animation:10; // animation
+ signed padding0016:3;
+ unsigned heading:12; // heading
+ signed deltaZ:13; // change in z
+ signed padding0020:7;
};
int32_t posData[5];
};
@@ -2332,19 +2333,20 @@
struct playerSpawnPosStruct
{
/*0000*/ uint16_t spawnId;
-/*0002*/ uint8_t unk[2]; // BSH 13 Apr 2011
-/*0004*/ signed padding0000:12; // ***Placeholder
- signed deltaHeading:10; // change in heading
- signed padding0005:10; // ***Placeholder
-/*0008*/ signed z:19; // z coord
- signed deltaZ:13; // change in z
-/*0012*/ signed deltaY:13; // change in y
- signed y:19; // y coord
-/*0016*/ signed x:19; // x coord
- signed deltaX:13; // change in x
-/*0020*/ unsigned heading:12; // heading
- signed animation:10; // animation
- signed padding0006:10; // ***Placeholder
+/*0002*/ uint16_t spawnId2;
+/*0004*/ signed padding0004:13;
+ signed y:19; // y coord
+/*0008*/ signed deltaX:13; // change in x
+ signed deltaHeading:10;// change in heading
+ signed padding0008:9;
+/*0012*/ signed deltaY:13; // change in y
+ signed z:19; // z coord
+/*0016*/ signed x:19; // x coord
+ signed animation:10; // animation
+ signed padding0016:3;
+/*0020*/ unsigned heading:12; // heading
+ signed deltaZ:13; // change in z
+ signed padding0020:7;
/*0024*/
};

@@ -2356,18 +2358,22 @@

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

rogues
12-23-2012, 07:00 PM
Thanks! I might be patching it wrong but I didn't get any errors. I think the PC's are way off in my compile, they're spawning way to the north. Is that to be expected at this point?

Edit: strike that, PCs are pretty close, it's those purple dots that are off. PCs are almost like they're mirrored off the horizontal axis, at least in the GL. Where normally they would show north, nearer the guild hall doors, showeq showed them south.

Really appreciate you helping out!

Razzle
12-23-2012, 07:29 PM
Looks like QT3 was pulled totally out of Ubuntu 12. What a bummer.

Razzle

purple
12-23-2012, 08:10 PM
The dude doing the qt4 port put it on github I think if anyone wants to take up the torch. qt3 is very different than qt4.

Razzle
12-23-2012, 08:45 PM
I might need a new project soon. Hah! In all my spare time. A baby due in June. One in diapers. Another that just turned three. Ya. Gonna have to pass right now. I will keep myseq going for the time being.

Razzle

ieatacid
12-24-2012, 05:07 PM
This fixes positioning -- there was a change to how the "y" coordinate is handled in the client.

This should work against the previous diff I posted:

Index: src/spawnshell.cpp
================================================== =================
--- src/spawnshell.cpp (revision 779)
+++ src/spawnshell.cpp (working copy)
@@ -666,7 +666,7 @@
spawn->posData[2] = netStream.readUInt32NC();
spawn->posData[3] = netStream.readUInt32NC();
spawn->posData[4] = netStream.readUInt32NC();
-
+
if(spawn->otherData & 16)
{
name = netStream.readText();
@@ -852,7 +852,7 @@

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

@@ -866,20 +866,21 @@
struct pos
{
/*0000*/ uint16_t spawnId;
-/*0002*/ signed padding0000:12; // ***Placeholder
- signed deltaX:13; // change in x
- signed padding0005:7; // ***Placeholder
-/*0006*/ signed deltaHeading:10;// change in heading
- signed deltaY:13; // change in y
- signed padding0006:9; // ***Placeholder
-/*0010*/ signed y:19; // y coord
- signed animation:13; // animation
-/*0014*/ unsigned heading:12; // heading
- signed x:19; // x coord
- signed padding0014:1; // ***Placeholder
-/*0018*/ signed z:19; // z coord
+/*0002*/ uint16_t spawnId2;
+/*0004*/ signed padding0004:13;
+ signed y:19; // y coord
+/*0008*/ signed deltaX:13; // change in x
+ signed deltaHeading:10;// change in heading
+ signed padding0008:9;
+/*0012*/ signed deltaY:13; // change in y
+ signed z:19; // z coord
+/*0016*/ signed x:19; // x coord
+ signed animation:10; // animation
+ signed padding0016:3;
+/*0020*/ unsigned heading:12; // heading
signed deltaZ:13; // change in z
-/*0022*/
+ signed padding0020:7;
+/*0024*/
};
#pragma pack(0)
struct pos *p = (struct pos *)data;
@@ -888,8 +889,8 @@
float(p->deltaX)/4.0, float(p->deltaY)/4.0,
float(p->deltaZ)/4.0,
float(p->heading), float(p->deltaHeading),
- p->animation, p->padding0000, p->padding0005,
- p->padding0006, p->padding0014);
+ p->animation, p->padding0004, p->padding0008,
+ p->padding0016, p->padding0020);
#endif

updateSpawn(pupdate->spawnId, x, y, z, dx, dy, dz,
Index: src/spawn.cpp
================================================== =================
--- src/spawn.cpp (revision 779)
+++ src/spawn.cpp (working copy)
@@ -413,13 +413,12 @@
// clear out the spawn track list
m_spawnTrackList.clear();
}
-
+#include "diagnosticmessages.h"
void Spawn::update(const spawnStruct* s)
{
setName(s->name);
setLastName(s->lastName);
-
- setPos(s->x >> 3, s->y >> 3, s->z >> 3);
+ setPos(s->x >> 3, (s->y + s->y) >> 3, s->z >> 3);
setPetOwnerID(s->petOwnerId);
setLight(s->light);
setGender(s->gender);

And this is all the changes in one diff:

Index: conf/zoneopcodes.xml
================================================== =================
--- conf/zoneopcodes.xml (revision 779)
+++ conf/zoneopcodes.xml (working copy)
@@ -11,16 +11,16 @@
<comment>Movement data... rewind info?</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="50dc" name="OP_DeleteSpawn" updated="11/28/122">
+ <opcode id="3c8e" name="OP_DeleteSpawn" updated="12/12/12">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3b49" name="OP_ZoneEntry" updated="11/28/12">
+ <opcode id="1665" name="OP_ZoneEntry" updated="12/12/12">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
- <payload dir="server" typename="uint8_t" sizechecktype="none"/>
+ <payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="24cb" name="OP_GuildMOTD" updated="11/28/12">
+ <opcode id="0561" name="OP_GuildMOTD" updated="12/12/12">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
@@ -28,7 +28,7 @@
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1d80" name="OP_TargetMouse" updated="11/28/12">
+ <opcode id="0e25" name="OP_TargetMouse" updated="12/12/12">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
@@ -68,7 +68,7 @@
<payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
<comment>Declining to join a group</comment>
</opcode>
- <opcode id="63db" name="OP_DzSwitchInfo" updated="11/28/12">
+ <opcode id="0e01" name="OP_DzSwitchInfo" updated="12/12/12">
<comment>Expedition compass etc</comment>
<payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
</opcode>
@@ -80,7 +80,7 @@
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="5557" name="OP_SpawnDoor" updated="11/28/12">
+ <opcode id="7b6c" name="OP_SpawnDoor" updated="12/12/12">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
@@ -88,7 +88,7 @@
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="16ef" name="OP_HPUpdate" updated="11/28/12">
+ <opcode id="07b8" name="OP_HPUpdate" updated="12/12/12">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
@@ -134,7 +134,7 @@
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
<comment>Bazaar search tool - struct changed and separated query from response with RoF launch. Needs work </comment>
</opcode>
- <opcode id="20fd" name="OP_SpawnUpdate" updated="11/28/12">
+ <opcode id="1ad3" name="OP_SpawnUpdate" updated="12/12/12">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
@@ -146,18 +146,18 @@
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4dae" name="OP_NewZone" updated="11/28/12">
+ <opcode id="7fff" name="OP_NewZone" updated="12/12/12">
<comment>NewZoneCode</comment>
<payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
</opcode>
- <opcode id="769a" name="OP_GroundSpawn" updated="11/28/12">
+ <opcode id="4286" name="OP_GroundSpawn" updated="12/12/12">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="7cde" name="OP_RemoveSpawn" updated="11/28/12">
<comment>Remove spawn from zone</comment>
- <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
+ <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
<opcode id="777f" name="OP_Death" updated="11/28/12">
<comment>old NewCorpseCode</comment>
@@ -205,7 +205,7 @@
<comment>MoneyOnCorpseCode</comment>
<payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1603" name="OP_PlayerProfile" updated="11/28/12">
+ <opcode id="46bb" name="OP_PlayerProfile" updated="12/12/12">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -213,8 +213,8 @@
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="44ef" name="OP_ClientUpdate" updated="11/28/12">
- <comment>Position updates</comment>
+ <opcode id="455d" name="OP_ClientUpdate" updated="12/12/12">
+ <comment>Position updates - looks to be 455d and 42 bytes as of 12/12/12</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
@@ -230,7 +230,7 @@
<comment>Skill up code</comment>
<payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6128" name="OP_SpawnAppearance" updated="11/28/12">
+ <opcode id="7360" name="OP_SpawnAppearance" updated="12/12/12">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -246,7 +246,7 @@
<comment>Leadership AA Exp Update</comment>
<payload dir="server" typename="leadExpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4daf" name="OP_MobUpdate" updated="11/28/12">
+ <opcode id="6b5a" name="OP_MobUpdate" updated="12/12/12">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
@@ -289,7 +289,7 @@
<comment>Group member names - Variable length</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4281" name="OP_UIUpdate" updated="11/28/12">
+ <opcode id="71f5" name="OP_UIUpdate" updated="12/12/12">
<comment>Seems to be sent to handle a variety of UI updates - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -297,16 +297,16 @@
<comment>List of group members - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="4ea3" name="OP_GuildMemberList" updated="10/23/12">
+ <opcode id="4053" name="OP_GuildMemberList" updated="12/12/12">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1370" name="OP_ManaUpdate" updated="11/28/12">
- <comment>Mana Update opcode - 10 bytes</comment>
+ <opcode id="6675" name="OP_ManaUpdate" updated="12/12/12">
+ <comment>Mana Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="1e36" name="OP_EndUpdate" updated="11/28/12">
- <comment>Endurance Update opcode - 10 bytes</comment>
+ <opcode id="71fb" name="OP_EndUpdate" updated="12/12/12">
+ <comment>Endurance Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3929" name="OP_Marketplace" updated="11/28/12">
@@ -333,19 +333,19 @@
<comment>Contents of claims window. /claim then refresh to capture packet - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="7b6c" name="OP_VoiceChat" updated="11/28/12">
+ <opcode id="3bcc" name="OP_VoiceChat" updated="12/12/12">
<comment>Voice chat server info - Variable length (Data sent when joining group,raid etc)</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="758a" name="OP_PollQuestions" updated="11/28/12">
+ <opcode id="6e6c" name="OP_PollQuestions" updated="12/12/12">
<comment>SOE in-game player poll questions - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="5615" name="OP_PollResponses" updated="11/28/12">
+ <opcode id="17ee" name="OP_PollResponses" updated="12/12/12">
<comment>Poll response choices - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="0321" name="OP_ShroudProgression" updated="11/28/12">
+ <opcode id="7251" name="OP_ShroudProgression" updated="12/12/12">
<comment>Unlocked shrouds - 244 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -353,15 +353,15 @@
<comment>Shroud templates to choose from on shroud NPC - 18983 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="23ad" name="OP_Fellowship" updated="11/28/12">
+ <opcode id="40fd" name="OP_Fellowship" updated="12/12/12">
<comment>Fellowship information - 2564 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="4234" name="OP_ExpandedGuildInfo" updated="11/28/12">
+ <opcode id="7851" name="OP_ExpandedGuildInfo" updated="12/12/12">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="18e7" name="OP_GuildBank" updated="11/28/12">
+ <opcode id="1cbf" name="OP_GuildBank" updated="12/12/12">
<comment>Guild bank contents - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -385,23 +385,23 @@
<comment>Tradeskill combine using old tradeskill window - 24 Bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="0adc" name="OP_ItemPlayerPacket" updated="11/28/12">
+ <opcode id="786e" name="OP_ItemPlayerPacket" updated="12/12/12">
<comment>Inventory/bank items coming over during zone - Variable length</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="19e1" name="OP_TaskDescription" updated="11/28/12">
+ <opcode id="2294" name="OP_TaskDescription" updated="12/12/12">
<comment>Task descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="6c31" name="OP_TaskActivity" updated="11/28/12">
+ <opcode id="7181" name="OP_TaskActivity" updated="12/12/12">
<comment>Task activity descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="0525" name="OP_CompletedTasks" updated="11/28/12">
+ <opcode id="9495" name="OP_CompletedTasks" updated="12/12/12">
<comment>Task history for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="6f1b" name="OP_CustomTitles" updated="11/28/12">
+ <opcode id="471a" name="OP_CustomTitles" updated="12/12/12">
<comment>List of available titles - 1520 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -537,7 +537,7 @@
<comment>LFG/LFP server response - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="6f15" name="OP_MercenaryList" updated="11/28/12">
+ <opcode id="5a7c" name="OP_MercenaryList" updated="12/12/12">
<comment>Listing of hired mercenaries - 429 bytes
<payload dir="server" typename="unknown" sizechecktype="none"/></comment>
</opcode>
@@ -557,7 +557,7 @@
<comment>Client clicks off buff - 8 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="0d4b" name="OP_HouseAddress" updated="11/28/12">
+ <opcode id="6786" name="OP_HouseAddress" updated="12/12/12">
<comment>House and guildhall address information - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -577,11 +577,11 @@
<comment>Server sending pending rewards - variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="630b" name="OP_FTPNags" updated="11/28/12">
+ <opcode id="63ae" name="OP_FTPNags" updated="12/12/12">
<comment>Free to play nags and other data - 1852 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="5d95" name="OP_Find" updated="11/28/12">
+ <opcode id="34c3" name="OP_Find" updated="12/12/12">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -596,15 +596,15 @@

<!-- 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="496f" name="OP_Unknown1" updated="11/28/12">
+ <opcode id="218d" name="OP_Unknown1" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="7d71" name="OP_Unknown2" updated="11/28/12">
+ <opcode id="48b5" name="OP_Unknown2" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="4a6e" name="OP_Unknown3" updated="11/28/12">
+ <opcode id="7cb5" name="OP_Unknown3" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -635,10 +635,10 @@
<payload dir="server" typename="none" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_WelcomeScreenTitle" updated="05/16/11">
- <comment></comment>
+ <comment></comment>
</opcode>
<opcode id="0000" name="OP_VeteranRewards" update="04/18/11">
- <comment></comment>
+ <comment></comment>
</opcode>
<opcode id="0000" name="OP_SendAATable" updated="08/12/09">
<comment></comment>
Index: src/everquest.h
================================================== =================
--- src/everquest.h (revision 779)
+++ src/everquest.h (working copy)
@@ -1075,18 +1075,19 @@
{
struct
{
- signed padding0000:12; // ***Placeholder
- signed deltaHeading:10; // change in heading
- signed padding0005:10; // ***Placeholder
- signed z:19; // z coord
- signed deltaZ:13; // change in z
- signed deltaY:13; // change in y
- signed y:19; // y coord
- signed x:19; // x coord
- signed deltaX:13; // change in x
- unsigned heading:12; // heading
- signed animation:10; // animation
- signed padding0006:10; // ***Placeholder
+ signed padding0004:13;
+ signed y:19; // y coord
+ signed deltaX:13; // change in x
+ signed deltaHeading:10;// change in heading
+ signed padding0008:9;
+ signed deltaY:13; // change in y
+ signed z:19; // z coord
+ signed x:19; // x coord
+ signed animation:10; // animation
+ signed padding0016:3;
+ unsigned heading:12; // heading
+ signed deltaZ:13; // change in z
+ signed padding0020:7;
};
int32_t posData[5];
};
@@ -2332,19 +2333,20 @@
struct playerSpawnPosStruct
{
/*0000*/ uint16_t spawnId;
-/*0002*/ uint8_t unk[2]; // BSH 13 Apr 2011
-/*0004*/ signed padding0000:12; // ***Placeholder
- signed deltaHeading:10; // change in heading
- signed padding0005:10; // ***Placeholder
-/*0008*/ signed z:19; // z coord
- signed deltaZ:13; // change in z
-/*0012*/ signed deltaY:13; // change in y
- signed y:19; // y coord
-/*0016*/ signed x:19; // x coord
- signed deltaX:13; // change in x
-/*0020*/ unsigned heading:12; // heading
- signed animation:10; // animation
- signed padding0006:10; // ***Placeholder
+/*0002*/ uint16_t spawnId2;
+/*0004*/ signed padding0004:13;
+ signed y:19; // y coord
+/*0008*/ signed deltaX:13; // change in x
+ signed deltaHeading:10;// change in heading
+ signed padding0008:9;
+/*0012*/ signed deltaY:13; // change in y
+ signed z:19; // z coord
+/*0016*/ signed x:19; // x coord
+ signed animation:10; // animation
+ signed padding0016:3;
+/*0020*/ unsigned heading:12; // heading
+ signed deltaZ:13; // change in z
+ signed padding0020:7;
/*0024*/
};

@@ -2356,18 +2358,22 @@

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


Index: src/spawnshell.cpp
================================================== =================
--- src/spawnshell.cpp (revision 779)
+++ src/spawnshell.cpp (working copy)
@@ -666,7 +666,7 @@
spawn->posData[2] = netStream.readUInt32NC();
spawn->posData[3] = netStream.readUInt32NC();
spawn->posData[4] = netStream.readUInt32NC();
-
+
if(spawn->otherData & 16)
{
name = netStream.readText();
@@ -852,7 +852,7 @@

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

@@ -866,20 +866,21 @@
struct pos
{
/*0000*/ uint16_t spawnId;
-/*0002*/ signed padding0000:12; // ***Placeholder
- signed deltaX:13; // change in x
- signed padding0005:7; // ***Placeholder
-/*0006*/ signed deltaHeading:10;// change in heading
- signed deltaY:13; // change in y
- signed padding0006:9; // ***Placeholder
-/*0010*/ signed y:19; // y coord
- signed animation:13; // animation
-/*0014*/ unsigned heading:12; // heading
- signed x:19; // x coord
- signed padding0014:1; // ***Placeholder
-/*0018*/ signed z:19; // z coord
+/*0002*/ uint16_t spawnId2;
+/*0004*/ signed padding0004:13;
+ signed y:19; // y coord
+/*0008*/ signed deltaX:13; // change in x
+ signed deltaHeading:10;// change in heading
+ signed padding0008:9;
+/*0012*/ signed deltaY:13; // change in y
+ signed z:19; // z coord
+/*0016*/ signed x:19; // x coord
+ signed animation:10; // animation
+ signed padding0016:3;
+/*0020*/ unsigned heading:12; // heading
signed deltaZ:13; // change in z
-/*0022*/
+ signed padding0020:7;
+/*0024*/
};
#pragma pack(0)
struct pos *p = (struct pos *)data;
@@ -888,8 +889,8 @@
float(p->deltaX)/4.0, float(p->deltaY)/4.0,
float(p->deltaZ)/4.0,
float(p->heading), float(p->deltaHeading),
- p->animation, p->padding0000, p->padding0005,
- p->padding0006, p->padding0014);
+ p->animation, p->padding0004, p->padding0008,
+ p->padding0016, p->padding0020);
#endif

updateSpawn(pupdate->spawnId, x, y, z, dx, dy, dz,
Index: src/spawn.cpp
================================================== =================
--- src/spawn.cpp (revision 779)
+++ src/spawn.cpp (working copy)
@@ -413,13 +413,12 @@
// clear out the spawn track list
m_spawnTrackList.clear();
}
-
+#include "diagnosticmessages.h"
void Spawn::update(const spawnStruct* s)
{
setName(s->name);
setLastName(s->lastName);
-
- setPos(s->x >> 3, s->y >> 3, s->z >> 3);
+ setPos(s->x >> 3, (s->y + s->y) >> 3, s->z >> 3);
setPetOwnerID(s->petOwnerId);
setLight(s->light);
setGender(s->gender);

Merry Christmas!

fransick
12-24-2012, 05:55 PM
It's an early Christmas present... thanks acid! Your help is most appreciated. Clearly not something I would have ever figured out to be sure.

rogues
12-24-2012, 05:55 PM
Thanks! I applied the diffs, no errors and a cursory check seems to indicate that the diffs took, but skittles seem to be way off for the most part. It's likely I messed up on some step or missed one of the steps, so just to confirm, with what you posted above, things should be working pretty much correctly, is that right?

Merry Christmas! We need to set up some sort of Paypal or something to donate for all the great help you guys are providing for all of us that just can't let go.

rogues
12-24-2012, 06:06 PM
Nevermind, I got it working I think. I had done some... I don't want to explain, the latest svn I was grabbing didn't have the right stuff to do a ./configure so I had put things together on my own and that didn't go so well (evidently you can't steal the missing makefiles from other versions of eq). I copied the changes to my 5.13.10.7 directory and reran make and there is much goodness! THANKS!!!!

ieatacid
12-24-2012, 06:12 PM
Merry Christmas! We need to set up some sort of Paypal or something to donate for all the great help you guys are providing for all of us that just can't let go.

I have a paypal donation link set as my "homepage" if you click my user name then "Visit Homepage" :o

rogues
12-24-2012, 06:32 PM
Again, Merry Christmas. :cool: On behalf of everybody, we appreciate it. That was way beyond me. Hopefully Sony sticks to screwing with opcodes.

ieatacid
12-24-2012, 06:46 PM
I saw some other stuff that was off or not right, that I'd like to work on, hopefully after the holidays.

BlueAdept
12-24-2012, 08:13 PM
Thank you ieatacid for helping. It is really appreciated.

ieatacid
12-24-2012, 08:39 PM
Are NPCs not moving around on the map?

This is the correct opcode for that
<opcode id="5BD9" name="OP_NpcMoveUpdate" updated="12/12/12">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>

fransick
12-25-2012, 06:49 AM
I'll have time later today to work on some opcodes as it looks like many changed during the last emergency patch.

Merry Christmas!

rogues
12-25-2012, 08:33 AM
I'm pretty sure ground spawns aren't despawning. I won't have a chance to look at it today but will try to help hunting down some of these things tomorrow.

ieatacid
12-25-2012, 08:41 AM
I got a bunch done yesterday that I'll post later when done with presents and what not.

fransick
12-25-2012, 12:30 PM
Here's a very fast update of the critical opcodes that should get most of the good stuff working again.

Acid, what's the syntax of the diff command you use? My diffs and subsequent patches have been hit or miss for people when applying.


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

<!-- Critical opcodes used directly by ShowEQ -->
<opcode id="5bd9" name="OP_NpcMoveUpdate" updated="12/12/12">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="7a19" name="OP_MovementHistory" updated="12/12/12">
<comment>Movement data... rewind info?</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="3c8e" name="OP_DeleteSpawn" updated="12/12/12">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
<opcode id="1665" name="OP_ZoneEntry" updated="12/12/12">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="0561" name="OP_GuildMOTD" updated="12/12/12">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
<opcode id="5794" name="OP_InspectAnswer" updated="12/12/12">
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
<opcode id="0e25" name="OP_TargetMouse" updated="12/12/12">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
<opcode id="3eb2" name="OP_Shroud" updated="10/23/12">
<comment>Server putting players into shroud form</comment>
<payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
</opcode>
<opcode id="718f" name="OP_GroupInvite" updated="11/28/12">
<payload dir="both" typename="groupInviteStruct" sizechecktype="none"/>
<comment>You invite someone while ungrouped or get invited by someone ungrouped </comment>
</opcode>
<opcode id="13ec" name="OP_GroupInvite2" updated="11/28/12">
<payload dir="client" typename="groupInviteStruct" sizechecktype="none"/>
<comment>You're inviting someone and you are grouped or get invited by a group</comment>
</opcode>
<opcode id="3389" name="OP_GroupFollow" updated="11/28/12">
<payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
<comment>You join a group or player joins group</comment>
</opcode>
<opcode id="0000" name="OP_GroupFollow2" updated="11/28/12">
<payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
<comment>Player joins your group</comment>
</opcode>
<opcode id="7693" name="OP_GroupDisband" updated="11/28/12">
<comment>You disband from group</comment>
<payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
</opcode>
<opcode id="12ef" name="OP_GroupDisband2" updated="11/28/12">
<comment>Other disbands from group</comment>
<payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
</opcode>
<opcode id="4bf0" name="OP_GroupLeader" updated="11/28/12">
<comment>Group leader change</comment>
<payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/>
</opcode>
<opcode id="202b" name="OP_GroupCancelInvite" updated="11/28/12">
<payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
<comment>Declining to join a group</comment>
</opcode>
<opcode id="0e01" name="OP_DzSwitchInfo" updated="12/12/12">
<comment>Expedition compass etc</comment>
<payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
</opcode>
<opcode id="4676" name="OP_DzInfo" updated="11/28/12">
<comment>Expedition Information</comment>
<payload dir="server" typename="dzInfo" sizechecktype="match"/>
</opcode>
<opcode id="6afe" name="OP_FormattedMessage" updated="12/12/12">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="7b6c" name="OP_SpawnDoor" updated="12/12/12">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
<opcode id="25c5" name="OP_AAExpUpdate" updated="12/12/12">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="07b8" name="OP_HPUpdate" updated="12/12/12">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="0954" name="OP_GuildMemberUpdate" updated="11/28/12">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
<opcode id="7daa" name="OP_SpawnRename" updated="11/28/12">
<comment>Spawns getting renamed after initial NewSpawn</comment>
<payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
</opcode>
<opcode id="5128" name="OP_SwapSpell" updated="11/28/12">
<comment>TradeSpellBookSlotsCode</comment>
<payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
</opcode>
<opcode id="02a5" name="OP_SimpleMessage" updated="12/12/12">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
<opcode id="362c" name="OP_SpecialMesg" updated="12/12/12">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="2af0" name="OP_RandomReq" updated="11/28/12">
<comment>RandomReqCode</comment>
<payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
</opcode>
<opcode id="4717" name="OP_RandomReply" updated="11/28/12">
<comment>RandomCode</comment>
<payload dir="server" typename="randomStruct" sizechecktype="match"/>
</opcode>
<opcode id="2a1f" name="OP_ConsentResponse" updated="11/28/12">
<comment>Server replying with consent information after /consent</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
<opcode id="760d" name="OP_DenyResponse" updated="11/28/12">
<comment>Server replying with deny information after /deny</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
<opcode id="3116" name="OP_BazaarSearch" updated="11/28/12">
<payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/>
<payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
<comment>Bazaar search tool - struct changed and separated query from response with RoF launch. Needs work </comment>
</opcode>
<opcode id="1ad3" name="OP_SpawnUpdate" updated="12/12/12">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="2e7e" name="OP_Stamina" updated="11/28/12">
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
<opcode id="4d8d" name="OP_Consider" updated="12/12/12">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
<opcode id="7fff" name="OP_NewZone" updated="12/12/12">
<comment>NewZoneCode</comment>
<payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
</opcode>
<opcode id="4286" name="OP_GroundSpawn" updated="12/12/12">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="3b06" name="OP_RemoveSpawn" updated="12/12/12">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
<opcode id="3a65" name="OP_Death" updated="12/12/12">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
<opcode id="7992" name="OP_ClickObject" updated="12/12/12">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
<opcode id="0ea7" name="OP_Action" updated="12/12/12">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
<opcode id="5428" name="OP_Action2" updated="12/12/12">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
<opcode id="79ee" name="OP_Illusion" updated="11/28/12">
<comment>Spawn being illusioned (changing forms)</comment>
<payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
</opcode>
<opcode id="41cb" name="OP_BuffFadeMsg" updated="12/12/12">
<comment>SpellFadeCode</comment>
<payload dir="both" typename="spellFadedStruct" sizechecktype="none"/>
</opcode>
<opcode id="1cb5" name="OP_CastSpell" updated="12/12/12">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
<opcode id="4e39" name="OP_MemorizeSpell" updated="11/28/12">
<comment>MemSpellCode</comment>
<payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
</opcode>
<opcode id="212b" name="OP_Emote" updated="11/28/12">
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
<opcode id="6399" name="OP_ManaChange" updated="11/28/12">
<comment>Mana change. Bards send this up with no size. Casters receive this for mana updates.</comment>
<payload dir="server" typename="manaDecrementStruct" sizechecktype="match"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="06f8" name="OP_MoneyOnCorpse" updated="11/28/12">
<comment>MoneyOnCorpseCode</comment>
<payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
</opcode>
<opcode id="46bb" name="OP_PlayerProfile" updated="12/12/12">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="3be2" name="OP_TimeOfDay" updated="12/12/12">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
<opcode id="455d" name="OP_ClientUpdate" updated="12/12/12">
<comment>Position updates - looks to be 455d and 42 bytes as of 12/12/12</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
<opcode id="17ff" name="OP_BeginCast" updated="12/12/12">
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
<opcode id="33bc" name="OP_CommonMessage" updated="12/12/12">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="4f2b" name="OP_SkillUpdate" updated="11/28/12">
<comment>Skill up code</comment>
<payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
</opcode>
<opcode id="7360" name="OP_SpawnAppearance" updated="12/12/12">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_ExpUpdate" updated="11/28/12">
<comment>ExpUpdateCode - opcode looks to be 67d1 as of 11/28/12 but that value causes seg faults for some reason</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_LevelUpdate" updated="11/28/12">
<comment>LevelUpUpdateCode - causing crashes as of 12/08/12 Investigating</comment>
<payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="3798" name="OP_LeaderExpUpdate" updated="11/28/12">
<comment>Leadership AA Exp Update</comment>
<payload dir="server" typename="leadExpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="6b5a" name="OP_MobUpdate" updated="12/12/12">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
<opcode id="5c45" name="OP_Trader" updated="11/28/12">
<comment>PC's turning trader on and off</comment>
<payload dir="server" typename="bazaarTraderRequest" sizechecktype="match"/>
</opcode>
<opcode id="071e" name="OP_Consent" updated="11/28/12">
<comment>/consent someone</comment>
<payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
</opcode>
<opcode id="2860" name="OP_ConsentDeny" updated="11/28/12">
<comment>/deny someone</comment>
<payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
</opcode>
<opcode id="1d6d" name="OP_ItemPacket" updated="11/28/12">
<comment>ItemCode</comment>
<payload dir="server" typename="itemPacketStruct" sizechecktype="none"/>
</opcode>
<opcode id="361c" name="OP_ItemLinkResponse" updated="11/28/12">
<comment>ItemInfoCode</comment>
<payload dir="server" typename="itemInfoStruct" sizechecktype="none"/>
<payload dir="client" typename="itemInfoReqStruct" sizechecktype="none"/>
</opcode>
<opcode id="28a9" name="OP_EnvDamage" updated="11/28/12">
<comment>Environmental Damage</comment>
<payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/>
</opcode>
<opcode id="402d" name="OP_SetRunMode" updated="11/28/12">
<comment>old cRunToggleCode</comment>
<payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_WearChange" updated="03/23/12">
<comment>Armor changes or give a pet a weapon (model changes) This seems to be an artifact from a past patch. Need to fix</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>

<!-- Not necessary for SEQ to run but here to name packets in logs. -->
<opcode id="238d" name="OP_GroupUpdate" updated="11/28/12">
<comment>Group member names - Variable length</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="71f5" name="OP_UIUpdate" updated="12/12/12">
<comment>Seems to be sent to handle a variety of UI updates - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1aae" name="OP_GroupMemberList" updated="08/17/12">
<comment>List of group members - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4053" name="OP_GuildMemberList" updated="12/12/12">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="6675" name="OP_ManaUpdate" updated="12/12/12">
<comment>Mana Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="71fb" name="OP_EndUpdate" updated="12/12/12">
<comment>Endurance Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3929" name="OP_Marketplace" updated="11/28/12">
<comment>Marketplace data - Guessing variable length 11444 bytes as of 11/28/12</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2de6" name="OP_MarketplaceSelect" updated="11/28/12">
<comment>Sent when highlighting an item in Marketplace - 80 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4e34" name="OP_DzMembers" updated="11/28/12">
<comment>Expedition Members - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6562" name="OP_Campfire" updated="11/28/12">
<comment>Fellowship campfire information - 1076 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7abb" name="OP_SelectCampfire" updated="12/12/12">
<comment>Fellowship campfire Choices - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="02d7" name="OP_Claims" updated="11/28/12">
<comment>Contents of claims window. /claim then refresh to capture packet - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3bcc" name="OP_VoiceChat" updated="12/12/12">
<comment>Voice chat server info - Variable length (Data sent when joining group,raid etc)</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6e6c" name="OP_PollQuestions" updated="12/12/12">
<comment>SOE in-game player poll questions - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="17ee" name="OP_PollResponses" updated="12/12/12">
<comment>Poll response choices - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7251" name="OP_ShroudProgression" updated="12/12/12">
<comment>Unlocked shrouds - 244 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="ba18" name="OP_ShroudTemplates" updated="10/23/12">
<comment>Shroud templates to choose from on shroud NPC - 18983 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="40fd" name="OP_Fellowship" updated="12/12/12">
<comment>Fellowship information - 2564 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7851" name="OP_ExpandedGuildInfo" updated="12/12/12">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1cbf" name="OP_GuildBank" updated="12/12/12">
<comment>Guild bank contents - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2db9" name="OP_OpenTradeskillContainer" updated="11/28/12">
<comment>Opens forge, kiln etc - 92 Bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="18c4" name="OP_TradeskillRecipes" updated="11/28/12">
<comment>Learned recipes - 84 Bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0397" name="OP_TradeSkillCombine" updated="11/28/12">
<comment>Tradeskill combine using new tradeskill window - 40 Bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="360d" name="OP_TradeSkillResult" updated="11/28/12">
<comment>Packets sent when tradeskill combine successful equals # of ingredients used in combine?- 12 Bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="0b69" name="OP_TradeSkillCombineOld" updated="11/28/12">
<comment>Tradeskill combine using old tradeskill window - 24 Bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="786e" name="OP_ItemPlayerPacket" updated="12/12/12">
<comment>Inventory/bank items coming over during zone - Variable length</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="2294" name="OP_TaskDescription" updated="12/12/12">
<comment>Task descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7181" name="OP_TaskActivity" updated="12/12/12">
<comment>Task activity descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="9495" name="OP_CompletedTasks" updated="12/12/12">
<comment>Task history for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="471a" name="OP_CustomTitles" updated="12/12/12">
<comment>List of available titles - 1520 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3df3" name="OP_Animation" updated="11/28/12">
<comment>Combat animation, emote animations etc - 4 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2bdd" name="OP_WhoAllRequest" updated="11/28/12">
<comment>WhoAllReqCode - 156 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="51a4" name="OP_WhoAllResponse" updated="11/28/12">
<comment>WhoAllOutputCode - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3d3c" name="OP_InspectRequest" updated="11/28/12">
<comment>InspectRequestCode - 8 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="40ca" name="OP_GetGuildMOTD" updated="11/28/12">
<comment>Request guildMOTD - 648 Bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="38e9" name="OP_TradeRequest" updated="11/28/12">
<comment>You request trade session - 8 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0ccc" name="OP_TradeDeny" updated="11/28/12">
<comment>Target not ready to trade - 12 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1439" name="OP_TradeRequestAck" updated="11/28/12">
<comment>Trade request recipient is acknowledging they are able to trade - 8 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="66f3" name="OP_CancelTrade" updated="11/28/12">
<comment>Cancel a trade window - 8 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0dd6" name="OP_FinishTrade" updated="11/28/12">
<comment>Trade is over - 12 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2320" name="OP_TradeCoins" updated="11/28/12">
<comment>You put coins put in a trade window - 20 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="428e" name="OP_TradeCoins2" updated="11/28/12">
<comment>Someone else puts coins put in your trade window - 12 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4cf9" name="OP_TradeAcceptClick" updated="11/28/12">
<comment>One side clicks Accept on the trade 8 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6f69" name="OP_ItemLinkClick" updated="11/28/12">
<comment>Click on itemlinks - 52 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6635" name="OP_LootRequest" updated="11/28/12">
<comment>LootCorpseCode - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0233" name="OP_LootItem" updated="11/28/12">
<comment>Loot item from corpse - 20 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="11bc" name="OP_EndLootRequest" updated="11/28/12">
<comment>DoneLootingCode - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3c94" name="OP_Track" updated="11/28/12">
<comment>Tracking data - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="5401" name="OP_AutoAttack" updated="11/28/12">
<comment>Attack on/off - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3fad" name="OP_AutoAttack2" updated="11/28/12">
<comment>Attack on/off appears to be same as OP_AutoAttack - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7488" name="OP_ClickDoor" updated="11/28/12">
<comment>DoorOpenCode click request from client - 16 bytes</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="38ab" name="OP_MoveDoor" updated="11/28/12">
<comment>DoorClickCode response from server - 2 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="29fa" name="OP_MoveItem" updated="11/28/12">
<comment>Client moving an item from one slot to another - 28 bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="5751" name="OP_Jump" updated="11/28/12">
<comment>JumpCode - 0 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="339c" name="OP_TGB" updated="11/28/12">
<comment>Client telling server to set targetgroupbuff - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1d6a" name="OP_Lockouts" updated="11/28/12">
<comment>Client requesting lockouts - 0 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4ee5" name="OP_RaidInvite" updated="11/28/12">
<comment>Client side raid invite requests 140 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="5dcf" name="OP_RaidJoin" updated="11/28/12">
<comment>Server side raid information - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="24c5" name="OP_Feedback" updated="07/18/12">
<comment>Client sending feedback to server - 1148 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="34f7" name="OP_GuildsList" updated="11/28/12">
<comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="284e" name="OP_LFGGetMatchesRequest" updated="11/28/12">
<comment>LFG/LFP client request - 16 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="11c8" name="OP_LFGGetMatchesResponse" updated="11/28/12">
<comment>LFG/LFP server response - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="5a7c" name="OP_MercenaryList" updated="12/12/12">
<comment>Listing of hired mercenaries - 429 bytes
<payload dir="server" typename="unknown" sizechecktype="none"/></comment>
</opcode>
<opcode id="6e0e" name="OP_ClickInventory" updated="11/28/12">
<comment>Click items from inventory or armor - 16 bytes 5th byte is Slot ID</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3459" name="OP_ClickInventoryAck" updated="11/28/12">
<comment>Server acknowledges click from inventory or armor - 20 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="60e2" name="OP_BuffWindow" updated="11/28/12">
<comment>Changes to buff window or song window - 100 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="40d5" name="OP_ClickBuffOff" updated="11/28/12">
<comment>Client clicks off buff - 8 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="589c" name="OP_HouseAddress" updated="12/12/12">
<comment>House and guildhall address information - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1078" name="OP_HouseContents" updated="12/12/12">
<comment>Server sending house information and contents - variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="54df" name="OP_FriendsList" updated="11/28/12">
<comment>Server sending friends list contents - variable length (Sent when choosing "Welcome" from EQ button)</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="5a4f" name="OP_FriendsOnline" updated="11/28/12">
<comment>Friends currently online - variable length (Sent when choosing "Welcome" form EQ button)</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="348e" name="OP_Rewards" updated="11/28/12">
<comment>Server sending pending rewards - variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="63ae" name="OP_FTPNags" updated="12/12/12">
<comment>Free to play nags and other data - 1852 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="34c3" name="OP_Find" updated="12/12/12">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="10cb" name="OP_ConsiderCorpse" updated="11/28/12">
<comment>ConCorpseCode - 20 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0000" name="OP_TributeUpdate" updated="11/28/12">
<comment>Tribute and trophy skills - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>

<!-- Below are used to help make sense of the logs when searching for opcodes
Using these marks unknown opcodes in logs for easier reading -->
<opcode id="218d" name="OP_Unknown1" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="48b5" name="OP_Unknown2" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7cb5" name="OP_Unknown3" updated="12/12/12">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>

<!-- Below are unverified -->
<opcode id="0000" name="OP_Buff" updated="11/15/11">
<comment>old BuffDropCode</comment>
<payload dir="both" typename="buffStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_ZoneChange" updated="04/18/11">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_CorpseLocResponse" updated="06/12/09">
<comment>old CorpseLocCode:</comment>
<payload dir="server" typename="corpseLocStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_SendZonePoints" updated="10/15/10">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
<opcode id="0000" name="OP_RequestZoneChange" updated="10/20/07">
<comment>Send by server when a click causes zone. Also, origin</comment>
<payload dir="server" typename="requestZoneChangeStruct" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_Logout" updated="10/21/09">
<comment></comment>
<payload dir="server" typename="none" sizechecktype="match"/>
</opcode>
<opcode id="0000" name="OP_WelcomeScreenTitle" updated="05/16/11">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_VeteranRewards" update="04/18/11">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_SendAATable" updated="08/12/09">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_SendAAStats" updated="08/12/09">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_AckPacket" updated="03/14/07">
<comment>Appears to be generic ack at the presentation level</comment>
</opcode>
<opcode id="0000" name="OP_Weather" updated="03/14/07">
<comment>old WeatherCode</comment>
</opcode>
<opcode id="0000" name="OP_ReqNewZone" updated="03/14/07">
<comment>Client requesting NewZone_Struct</comment>
</opcode>
<opcode id="0000" name="OP_ReqClientSpawn" updated="03/14/07">
<comment>Client requesting spawn data</comment>
</opcode>
<opcode id="0000" name="OP_SendExpZonein" updated="03/14/07">
<comment>Both directions. Negotiating sending of exp info.</comment>
</opcode>
<opcode id="0000" name="OP_AAAction" updated="03/14/07">
<comment>Used for changing percent, buying? and activating skills</comment>
</opcode>
<opcode id="0000" name="OP_SetServerFilter" updated="03/14/07">
<comment>Client telling server /filter information</comment>
</opcode>
<opcode id="0000" name="OP_ClientReady" updated="03/14/07">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_GuildTributeStatus" updated="03/14/07">
<comment>Guild tribute stats send on zone</comment>
</opcode>
<opcode id="0000" name="OP_GuildTributeInfo" updated="06/13/06">
<comment>Guild tribute loadout, only if on</comment>
</opcode>
<opcode id="0000" name="OP_RespawnWindow" updated="03/14/07">
<comment>Server telling client enough to populate the respawn window when you die</comment>
</opcode>
<opcode id="0000" name="OP_InitialMobHealth" updated="06/27/12">
<comment>Initial health sent when a player clicks on the mob. Subsequent updated will be OP_MobHealth</comment>
</opcode>
<opcode id="0000" name="OP_MobHealth" updated="03/14/07">
<comment>health sent when a player clicks on the mob</comment>
</opcode>
<opcode id="0000" name="OP_DeltaCheck" updated="03/14/07">
<comment>Client sending server delta information.</comment>
</opcode>
<opcode id="0000" name="OP_LoadSpellSet" updated="02/13/07">
<comment>/mem spellsetname</comment>
</opcode>
<opcode id="0000" name="OP_Dye" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_Consume" updated="12/07/05">
<comment>Client force feeding food/drink</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="0000" name="OP_Begging" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_LFGCommand" updated="10/27/05">
<comment>old LFGReqCode</comment>
</opcode>
<opcode id="0000" name="OP_Bug" updated="10/27/05">
<comment>/bug</comment>
</opcode>
<opcode id="0000" name="OP_Save" updated="04/19/06">
<comment>Client asking server to save user state</comment>
</opcode>
<opcode id="0000" name="OP_Camp" updated="02/13/07">
<comment>old cStartCampingCode</comment>
</opcode>
<opcode id="0000" name="OP_ShopPlayerSell" updated="10/27/05">
<comment>old SellItemCode</comment>
</opcode>
<opcode id="0000" name="OP_PetCommands" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_SaveOnZoneReq" updated="03/14/07">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_ShopEnd" updated="10/27/05">
<comment>old CloseVendorCode</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0000" name="OP_SenseTraps" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_SenseHeading" updated="10/27/05">
<comment>old cSenseHeadingCode</comment>
</opcode>
<opcode id="0000" name="OP_LootComplete" updated="12/07/05">
<comment>old sDoneLootingCode</comment>
</opcode>
<opcode id="0000" name="OP_Split" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_Surname" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_ShopRequest" updated="10/27/05">
<comment>old OpenVendorCode</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0000" name="OP_FaceChange" updated="10/27/05">
<comment>/face</comment>
</opcode>
<opcode id="0000" name="OP_Sneak" updated="06/29/05">
<comment>Clicked sneak</comment>
</opcode>
<opcode id="0000" name="OP_Hide" updated="06/29/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_DisarmTraps" updated="05/11/05">
<comment>Clicked disarm traps</comment>
</opcode>
<opcode id="0000" name="OP_Forage" updated="10/27/05">
<comment>old ForageCode</comment>
</opcode>
<opcode id="0000" name="OP_BoardBoat" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_LeaveBoat" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_LFPGetMatchesRequest" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_GMKill" updated="10/27/05">
<comment>GM /kill - Insta kill mob/pc</comment>
</opcode>
<opcode id="0000" name="OP_GuildPublicNote" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_YellForHelp" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_ShopPlayerBuy" updated="05/11/05">
<comment>old BuyItemCode</comment>
</opcode>
<opcode id="0000" name="OP_LFPCommand" updated="10/27/05">
<comment>looking for players</comment>
</opcode>
<opcode id="0000" name="OP_ConfirmDelete" updated="10/27/05">
<comment>Client sends this to server to confirm op_deletespawn</comment>
</opcode>
<opcode id="0000" name="OP_Report" updated="06/29/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_TargetCommand" updated="02/13/07">
<comment>Target user</comment>
</opcode>
<opcode id="0000" name="OP_LFPGetMatchesResponse" updated="02/13/07">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_FindPersonRequest" updated="02/13/07">
<comment>Control-F Find</comment>
</opcode>
<opcode id="0000" name="OP_FindResponse" updated="02/13/07">
<comment>Response to control-F</comment>
</opcode>
<opcode id="0000" name="OP_GMLastName" updated="10/27/05">
<comment>GM /lastname - Change user lastname</comment>
</opcode>
<opcode id="0000" name="OP_Mend" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_MendHPUpdate" updated="05/11/05">
<comment></comment>
</opcode>
<opcode id="0000" name="OP_TributeInfo" updated="02/13/07">
<comment>Tribute information</comment>
</opcode>

<!-- OLD OPCODES. These haven't been mapped in a post 1/26/2005 world. If you
can find any of these in the current stream, please update them and let
us know!

<opcode id="1900" name="OP_ZoneSpawns" updated="05/29/08">
<comment>old ZoneSpawnsCode</comment>
<payload dir="server" typename="spawnStruct" sizechecktype="none"/>
</opcode>
<opcode id="0020" name="OP_GMServers" updated="05/26/04">
<comment>GM /servers - ?</comment>
</opcode>
<opcode id="790e" name="OP_GMKick" updated="01/26/05">
<comment>GM /kick - Boot player</comment>
</opcode>
<opcode id="0068" name="OP_Petition" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0074" name="OP_GMBecomeNPC" updated="05/26/04">
<comment>GM /becomenpc - Become an NPC</comment>
</opcode>
<opcode id="0076" name="OP_PetitionCheckout" updated="05/26/04">
<comment>Petition Checkout</comment>
</opcode>
<opcode id="007e" name="OP_PetitionCheckIn" updated="05/26/04">
<comment>Petition Checkin</comment>
</opcode>
<opcode id="688f" name="OP_PetitionResolve" updated="05/11/05">
<comment>Client Petition Resolve Request</comment>
</opcode>
<opcode id="0165" name="OP_DeletePetition" updated="01/26/05">
<comment>Player /deletepetition</comment>
</opcode>
<opcode id="0082" name="OP_PetitionQue" updated="05/26/04">
<comment>GM looking at petitions</comment>
</opcode>
<opcode id="0090" name="OP_PetitionUnCheckout" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0097" name="OP_GMSearchCorpse" updated="05/26/04">
<comment>GM /searchcorpse - Search all zones for named corpse</comment>
</opcode>
<opcode id="009a" name="OP_GuildPeace" updated="05/26/04">
<comment>/guildpeace</comment>
</opcode>
<opcode id="00a4" name="OP_GuildWar" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="00a7" name="OP_GuildLeader" updated="05/26/04">
<comment>/guildleader</comment>
</opcode>
<opcode id="00b6" name="OP_ApplyPoison" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="00da" name="OP_GMInquire" updated="05/26/04">
<comment>GM /inquire - Search soulmark data</comment>
</opcode>
<opcode id="00dc" name="OP_GMSoulmark" updated="05/26/04">
<comment>GM /praise /warn - Add soulmark comment to user file</comment>
</opcode>
<opcode id="00de" name="OP_GMHideMe" updated="05/26/04">
<comment>GM /hideme - Remove self from spawn lists and make invis</comment>
</opcode>
<opcode id="00ef" name="OP_SafePoint" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="010b" name="OP_GMGoto" updated="05/26/04">
<comment>GM /goto - Transport to another loc</comment>
</opcode>
<opcode id="012d" name="OP_BindWound" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0132" name="OP_GuildRemove" updated="05/26/04">
<comment>/guildremove</comment>
</opcode>
<opcode id="013b" name="OP_GMTraining" updated="05/26/04">
<comment>old OpenGMCode</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="013c" name="OP_GMEndTraining" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0152" name="OP_MoveCash" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0160" name="OP_Taunt" updated="05/26/04">
<comment>old ConsumeCode</comment>
</opcode>
<opcode id="016c" name="OP_Stun" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0175" name="OP_GMTrainSkill" updated="05/26/04">
<comment>old SkillTrainCode</comment>
</opcode>
<opcode id="0178" name="OP_GMEndTrainingResponse" updated="05/26/04">
<comment>old CloseGMCode</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="0183" name="OP_GMZoneRequest" updated="05/26/04">
<comment>/zone</comment>
</opcode>
<opcode id="018f" name="OP_BecomePK" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0197" name="OP_SetDataRate" updated="05/26/04">
<comment>Client sending datarate.txt value</comment>
</opcode>
<opcode id="0198" name="OP_GMDelCorpse" updated="05/26/04">
<comment>/delcorpse</comment>
</opcode>
<opcode id="0199" name="OP_Sacrifice" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01af" name="OP_GMApproval" updated="05/26/04">
<comment>GM /approval - Name approval duty?</comment>
</opcode>
<opcode id="01b2" name="OP_GMToggle" updated="05/26/04">
<comment>GM /toggle - Toggle ability to receive tells from other PC's</comment>
</opcode>
<opcode id="01bc" name="OP_MoneyUpdate" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ba" name="OP_ReqZoneObjects" updated="05/26/04">
<comment>Client requesting zone objects</comment>
</opcode>
<opcode id="01c4" name="OP_Translocate" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ea" name="OP_RespondAA" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ed" name="OP_IncreaseStats" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ef" name="OP_ViewPetition" updated="05/26/04">
<comment>Player /viewpetition</comment>
</opcode>
<opcode id="01ff" name="OP_ExpansionSetting" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0205" name="OP_GainMoney" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0225" name="OP_GMZoneRequest2" updated="05/26/04">
<comment>/zone 2</comment>
</opcode>
<opcode id="0245" name="?" implicitlen="6" updated="07/14/04">
<comment>Unknown, but has implicit length</comment>
</opcode>
<opcode id="0261" name="OP_CrashDump" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0263" name="OP_GuildDemote" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0264" name="OP_ZoneUnavail" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="028b" name="OP_GMSummon" updated="05/26/04">
<comment>GM /summon - Summon PC to self</comment>
</opcode>
<opcode id="0296" name="OP_ItemTextFile" updated="05/26/04">
<comment>old BookTextCode</comment>
<payload dir="server" typename="bookTextStruct" sizechecktype="none"/>
</opcode>
<opcode id="029e" name="OP_OpenObject" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="028e" name="OP_GMEmoteZone" updated="05/26/04">
<comment>GM /emotezone - Send zonewide emote</comment>
</opcode>
<opcode id="0296" name="OP_ReadBook" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02b4" name="OP_SummonCorpse" updated="05/26/04">
<comment>/summoncorpse</comment>
</opcode>
<opcode id="02cc" name="OP_ShopItem" updated="05/26/04">
<comment>Merchant Item data</comment>
</opcode>
<opcode id="02d0" name="OP_AdventureRequest" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02d1" name="OP_AdventureMerchantResponse" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02d2" name="OP_AdventureMerchantPurchase" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02e2" name="OP_AdventurePointsUpdate" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02ef" name="OP_Adventure" updated="05/26/04">
<comment>/adventure</comment>
</opcode>
<opcode id="1ee8" name="OP_CombatAbility" updated="02/15/05">
<comment></comment>
</opcode>
-->
</seqopcodes>

ieatacid
12-25-2012, 04:51 PM
Acid, what's the syntax of the diff command you use? My diffs and subsequent patches have been hit or miss for people when applying.


svn diff | less

Here's the opcodes I did so far. Some looked like they haven't been updated in a while. I was also going off of this zoneopcodes.xml (http://seq.svn.sourceforge.net/viewvc/seq/showeq/trunk/conf/zoneopcodes.xml?revision=715&view=markup) from October 27 2008, since I think that was the last time I really verified everything. That's why the order is re-arranged -- it's easier to put the updated ones in the same order rather than jumping all over the place and getting confused or misplaced.


<!-- Critical opcodes used directly by ShowEQ -->
<opcode id="46bb" name="OP_PlayerProfile" updated="12/12/12">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="1665" name="OP_ZoneEntry" updated="12/12/12">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="3be2" name="OP_TimeOfDay" updated="12/12/12">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
<opcode id="7fff" name="OP_NewZone" updated="12/12/12">
<comment>NewZoneCode</comment>
<payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
</opcode>
<opcode id="7b6c" name="OP_SpawnDoor" updated="12/12/12">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
<opcode id="4286" name="OP_GroundSpawn" updated="12/12/12">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="7922" name="OP_SendZonePoints" updated="12/12/12">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
<opcode id="25C5" name="OP_AAExpUpdate" updated="12/12/12">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="47E3" name="OP_ExpUpdate" updated="12/12/12">
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="0561" name="OP_GuildMOTD" updated="12/12/12">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
<opcode id="455d" name="OP_ClientUpdate" updated="12/12/12">
<comment>Position updates - looks to be 455d and 42 bytes as of 12/12/12</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
<opcode id="5BD9" name="OP_NpcMoveUpdate" updated="12/12/12">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="6b5a" name="OP_MobUpdate" updated="12/12/12">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
<opcode id="3c8e" name="OP_DeleteSpawn" updated="12/12/12">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
<opcode id="3B06" name="OP_RemoveSpawn" updated="12/12/12">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>

rogues
12-25-2012, 07:34 PM
FYI, 47E3 (OP_ExpUpdate) seems to be causing a segfault on at least one of my toons. Lower level toon it handled fine but it crashed with a level 100.

fransick
12-25-2012, 08:18 PM
FYI, 47E3 (OP_ExpUpdate) seems to be causing a segfault on at least one of my toons. Lower level toon it handled fine but it crashed with a level 100.

I've been having the same issue for months... so I just set it to "0000" until I had time to dig in and see what the problem is. Every time I get around to looking at it, Sony patches and gives me a whole new set of things to do.

ieatacid
12-25-2012, 09:00 PM
FYI, 47E3 (OP_ExpUpdate) seems to be causing a segfault on at least one of my toons. Lower level toon it handled fine but it crashed with a level 100.

Can you get a crash dump?

fransick
12-26-2012, 03:29 AM
Can you get a crash dump?

Here's an old one but I believe still relevant:


Program received signal SIGSEGV, Segmentation fault.
0x0445c52d in QString::QString(QString const&) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
Missing separate debuginfos, use: debuginfo-install expat-2.0.1-10.fc13.i686 fontconfig-2.8.0-2.fc14.i686 freetype-2.4.2-7.fc14.i686 glibc-2.13-2.i686
lcms-libs-1.19-2.fc14.i686 libICE-1.0.6-2.fc13.i686 libSM-1.1.0-7.fc12.i686 libX11-1.3.4-4.fc14.i686 libXau-1.0.6-1.fc14.i686 libXcursor-1.1.10-5.fc14.i686
libXext-1.1.2-2.fc14.i686 libXfixes-4.0.5-1.fc14.i686 libXft-2.1.14-1.fc13.i686 libXi-1.3.2-1.fc14.i686 libXinerama-1.1-2.fc13.i686
libXrandr-1.3.0-5.fc13.i686 libXrender-0.9.6-1.fc14.i686 libgcc-4.5.1-4.fc14.i686 libjpeg-turbo-1.1.1-1.fc14.i686 libmng-1.0.10-4.fc12.i686
libpcap-1.1.1-3.fc14.i686 libpng-1.2.46-1.fc14.i686libstdc++-4.5.1-4.fc14.i686 libuuid-2.18-4.8.fc14.i686 libxcb-1.7-1.fc14.i686 qt3-3.3.8b-37.fc14.i686
zlib-1.2.5-2.fc14.i686

(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=0x847d118, t0=..., t1=84, t2=0, t3=...) at player.moc:592
#3 0x080fa340 in Player::updateExp (this=0x847d118, data=0x856d41d "^") at player.cpp:669
#4 0x080fc99c in Player::qt_invoke (this=0x847d118, _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=0x841b230, t0=0x856d41d "^", t1=8, t2=2 '\002') at packetinfo.moc:99
#7 0x08089e19 in EQPacketStream::dispatchPacket (this=0x8307590, data=0x856d41d "^", len=8, opCode=8730, opcodeEntry=0x843e1f0) at packetstream.cpp:435
#8 0x0808c16a in EQPacketStream::processPacket (this=0x8307590, packet=..., isSubpacket=true) at packetstream.cpp:717
#9 0x0808c44a in EQPacketStream::processPacket (this=0x8307590, packet=..., isSubpacket=false) at packetstream.cpp:805
#10 0x0808ccc8 in EQPacketStream::handlePacket (this=0x8307590, packet=...) at packetstream.cpp:570
#11 0x08093322 in EQPacket::dispatchPacket (this=0x82cfbb0, packet=...) at packet.cpp:659
#12 0x08095bf5 in dispatchPacket (this=0x82cfbb0) at packet.cpp:583
#13 EQPacket::processPackets (this=0x82cfbb0) at packet.cpp:400
#14 0x08095ed0 in EQPacket::qt_invoke (this=0x82cfbb0, _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

ieatacid
12-26-2012, 07:39 PM
I can't get it to crash, but I only have a level 74 to test with and the opcode is right and the struct is right.

BlueAdept
12-27-2012, 08:47 PM
The dude doing the qt4 port put it on github I think if anyone wants to take up the torch. qt3 is very different than qt4.


https://github.com/brainiac/showeq


ShowEQ v6.x
-----------

This is a work in progress. ShowEQ has been ported from Qt3 to Qt4.6
and has been proven to be in a workable state on Linux, Mac, and Windows.

Mac and Linux might be currently broken. Most development has taken
place using windows.

Development for Windows has been using the visual studio 2010 Qt addin.

It was done by brainiac. I dont think anything has been done to it in about 2 years.

ieatacid
12-27-2012, 08:51 PM
It was done by brainiac. I dont think anything has been done to it in about 2 years.
Yeah, I talked to him in IRC last weekend and he said he stopped working on it.

ieatacid
12-27-2012, 10:25 PM
Man, this is a mess, lol. Why is playerProfile being processed in zoneMgr? 'zoneMgr' is for zone stuff, 'player' is for player stuff, 'spawn'/'spawnShell' are for spawn stuff, etc, etc. :eek:

Anyway, I fixed the expUpdate crash and updated all the opcodes that can be used by SEQ. I'd like to rearrange that stuff I just mentioned - it just defeats the concept of 'object oriented', since objects are... disoriented - if no one would mind. It would still work the same, but then the playerProfile stuff can be done in player.cpp instead of zoneMgr.cpp and I can get rid of the annoying empty 'Debug: Player::backfill(): Pos (0.000000/0.000000/0.000000) Heading: 0.000000' messages :)

fransick
12-28-2012, 11:02 AM
Man, this is a mess, lol. Why is playerProfile being processed in zoneMgr? 'zoneMgr' is for zone stuff, 'player' is for player stuff, 'spawn'/'spawnShell' are for spawn stuff, etc, etc. :eek:

Anyway, I fixed the expUpdate crash and updated all the opcodes that can be used by SEQ. I'd like to rearrange that stuff I just mentioned - it just defeats the concept of 'object oriented', since objects are... disoriented - if no one would mind. It would still work the same, but then the playerProfile stuff can be done in player.cpp instead of zoneMgr.cpp and I can get rid of the annoying empty 'Debug: Player::backfill(): Pos (0.000000/0.000000/0.000000) Heading: 0.000000' messages :)

No arguments here... Like I said, it looks like band-aids on band-aids in some places and I just don't know enough to fix it.

My contributions have been insignificant and done in the hopes we could keep things "functionally running" long enough for more skilled contributors to find their way back.

I would venture no one is going to argue with improvements and face-lifts where necessary! ;)

BlueAdept
12-28-2012, 12:20 PM
Dont mind at all. I am just the gate keeper since I am not skilled enough to keep SEQ going. I rely on anyone that can help keep it going.

ieatacid
12-31-2012, 04:28 PM
Anyone know how to get rid of this error when doing a "make dist" ?


make: *** No rule to make target `Doxyfile', needed by `distdir'. Stop.

The only way I could get it to work without throwing that error was to remove "Doxyfile" from the last line below in Makefile.in -- which is generated from Makefile.am

# include doxygen.am
EXTRA_DIST = BUGS ChangeLog FAQ INSTALL.newbies Makefile.dist README.libEQ \
ROADMAP showeq.1 TODO showeq.kdevelop Doxyfile depcomp $(DX_CONFIG)

Doxygen packages are installed.

purple
01-01-2013, 02:46 PM
No one will cry if the doxygen stuff disappears. It has always been more trouble than it is worth to me. Refactor anything that makes sense to your, ieatacid. No one else is going to stop you!