View Full Version : 04/17/13 Changes
ShortBuss
04-17-2013, 09:44 AM
Just getting started but looks like it's going to be painful again. Tried to automate the finding of some of these, hopefully they are good.
<opcode id="6b5b" name="OP_PlayerProfile" updated="04/17/13">
<opcode id="31d8" name="OP_ZoneEntry" updated="04/17/13">
<opcode id="3377" name="OP_TimeOfDay" updated="04/17/13">
<opcode id="0bf6" name="OP_NewZone" updated="04/17/13">
<opcode id="375d" name="OP_SpawnDoor" updated="04/17/13">
<opcode id="3a2b" name="OP_GroundSpawn" updated="04/17/13">
<opcode id="41b8" name="OP_SendZonePoints" updated="04/17/13">
<opcode id="4e44" name="OP_GuildMOTD" updated="04/17/13">
<opcode id="6962" name="OP_ClientUpdate" updated="04/17/13">
<opcode id="5a39" name="OP_NpcMoveUpdate" updated="04/17/13">
<opcode id="6d4b" name="OP_MobUpdate" updated="04/17/13">
<opcode id="0b78" name="OP_DeleteSpawn" updated="04/17/13">
<opcode id="5279" name="OP_RemoveSpawn" updated="04/17/13">
<opcode id="130f" name="OP_SpawnAppearance" updated="04/17/13">
Looks like the position data went from sizes 28/46 to 24/46. Also I see SpawnStruct is getting a bad size again and I assume that's just from the 4 bytes removed from the position data. Testing it out now.
ShortBuss
04-17-2013, 10:14 AM
1 of 2:
struct playerSelfPosStruct
{
/*0000*/ uint16_t unknown0000; // ***Placeholder (update time counter?)
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/ unsigned pitch:12; // pitch (up/down heading)
unsigned padding1:20; // ***Placeholder
/*0010*/ float deltaX; // Change in x
/*0014*/ signed animation:10; // velocity
unsigned padding2:12; // ***Placeholder
unsigned padding3:10; // ***Placeholder
/*0018*/ float x; // x coord (1st loc value)
/*0022*/ unsigned heading:12; // Directional heading
unsigned padding6:20; // **Placeholder
/*0026*/ float z; // z coord (3rd loc value)
/*0030*/ signed deltaHeading:10; // change in heading
unsigned padding4:10; // ***Placeholder
unsigned padding5:12; // ***Placeholder
/*0034*/ float deltaZ; // Change in z
/*0038*/ float deltaY; // Change in y
/*0042*/ float y; // y coord (2nd loc value)
/*0046*/
};
ShortBuss
04-17-2013, 11:53 AM
2 of 2:
struct playerSpawnPosStruct
{
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/ unsigned pitch:12;
signed y:19; // y coord
unsigned padding03:01;
/*0008*/ signed z:19; // z coord
signed deltaX:13; // change in x
/*0012*/ signed deltaZ:13; // change in z
unsigned heading:12; // heading
unsigned padding01:07;
/*0016*/ signed deltaY:13; // change in y
signed x:19; // x coord
/*0020*/ signed animation:10; // velocity
signed deltaHeading:10; // change in heading
unsigned padding02:12;
/*0024*/
};
Don't forget to also put it, minus the first 4 bytes, into spawnstruct. Also need to modify the method fillSpawnStruct in spawnshell.cpp. Around line 711 remove this line:
spawn->posData[5] = netStream.readUInt32NC();
That gets it all working for the most part now. Just need to get the rest of the opcodes.
ShortBuss
04-17-2013, 01:00 PM
Well I got a lot of the opcodes but seems only fransick knows how to get several of these. Hopefully he's around to clear some of the remainders up. Outside of that here's a full patch, done off of SVN (785) that should get you working. Will get this into SVN in a few days, after we've had time to add more opcodes and confirm everything.
Index: conf/zoneopcodes.xml
================================================== =================
--- conf/zoneopcodes.xml (revision 784)
+++ conf/zoneopcodes.xml (working copy)
@@ -3,33 +3,33 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="48b7" name="OP_PlayerProfile" updated="03/13/13">
+ <opcode id="6b5b" name="OP_PlayerProfile" updated="04/17/13">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="9e82" name="OP_ZoneEntry" updated="03/13/13">
+ <opcode id="31d8" name="OP_ZoneEntry" updated="04/17/13">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="6665" name="OP_TimeOfDay" updated="03/13/13">
+ <opcode id="3377" name="OP_TimeOfDay" updated="04/17/13">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="23ef" name="OP_NewZone" updated="03/13/13">
+ <opcode id="0bf6" name="OP_NewZone" updated="04/17/13">
<comment>NewZoneCode</comment>
<payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5ab7" name="OP_SpawnDoor" updated="03/13/13">
+ <opcode id="375d" name="OP_SpawnDoor" updated="04/17/13">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="6410" name="OP_GroundSpawn" updated="03/13/13">
+ <opcode id="3a2b" name="OP_GroundSpawn" updated="04/17/13">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="2694" name="OP_SendZonePoints" updated="03/13/13">
+ <opcode id="41b8" name="OP_SendZonePoints" updated="04/17/13">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
@@ -41,40 +41,40 @@
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5906" name="OP_GuildMOTD" updated="03/13/13">
+ <opcode id="4e44" name="OP_GuildMOTD" updated="04/17/13">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="1ad3" name="OP_ClientUpdate" updated="03/13/13">
+ <opcode id="6962" name="OP_ClientUpdate" updated="04/17/13">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1df9" name="OP_NpcMoveUpdate" updated="03/13/13">
+ <opcode id="5a39" name="OP_NpcMoveUpdate" updated="04/17/13">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3c0e" name="OP_MobUpdate" updated="03/13/13">
+ <opcode id="6d4b" name="OP_MobUpdate" updated="04/17/13">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="17f1" name="OP_DeleteSpawn" updated="03/13/13">
+ <opcode id="0b78" name="OP_DeleteSpawn" updated="04/17/13">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="49e0" name="OP_RemoveSpawn" updated="03/13/13">
+ <opcode id="5279" name="OP_RemoveSpawn" updated="04/17/13">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="43a6" name="OP_Death" updated="03/13/13">
+ <opcode id="1aa0" name="OP_Death" updated="04/17/13">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="18ea" name="OP_WearChange" updated="03/13/13">
+ <opcode id="1ff6" name="OP_WearChange" updated="04/17/13">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3fe5" name="OP_SpawnAppearance" updated="03/13/13">
+ <opcode id="130f" name="OP_SpawnAppearance" updated="04/17/13">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -82,40 +82,40 @@
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
- <opcode id="462c" name="OP_HPUpdate" updated="03/13/13">
+ <opcode id="4c12" name="OP_HPUpdate" updated="04/17/13">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6719" name="OP_GuildMemberUpdate" updated="02/13/13">
+ <opcode id="665a" name="OP_GuildMemberUpdate" updated="04/17/13">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="00c6" name="OP_ClickObject" updated="03/13/13">
+ <opcode id="6cb6" name="OP_ClickObject" updated="04/17/13">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4965" name="OP_Action" updated="03/13/13">
+ <opcode id="7329" name="OP_Action" updated="04/17/13">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
- <opcode id="002e" name="OP_Action2" updated="03/13/13">
+ <opcode id="4725" name="OP_Action2" updated="04/17/13">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="476f" name="OP_Consider" updated="03/13/13">
+ <opcode id="3815" name="OP_Consider" updated="04/17/13">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="698f" name="OP_TargetMouse" updated="03/13/13">
+ <opcode id="3f43" name="OP_TargetMouse" updated="04/17/13">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
- <opcode id="362a" name="OP_SpawnRename" updated="03/13/13">
+ <opcode id="1063" name="OP_SpawnRename" updated="04/17/13">
<comment>Spawns getting renamed after initial NewSpawn</comment>
<payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
</opcode>
- <opcode id="739c" name="OP_Illusion" updated="03/13/13">
+ <opcode id="1182" name="OP_Illusion" updated="04/17/13">
<comment>Spawn being illusioned (changing forms)</comment>
<payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
</opcode>
@@ -123,7 +123,7 @@
<comment>Server putting players into shroud form</comment>
<payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
</opcode>
- <opcode id="6976" name="OP_ZoneChange" updated="03/13/13">
+ <opcode id="5538" name="OP_ZoneChange" updated="04/17/13">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -167,31 +167,31 @@
<comment>old BuffDropCode</comment>
<payload dir="both" typename="buffStruct" sizechecktype="match"/>
</opcode>
- <opcode id="46b9" name="OP_BuffFadeMsg" updated="03/13/13">
+ <opcode id="6226" name="OP_BuffFadeMsg" updated="04/17/13">
<comment>SpellFadeCode</comment>
<payload dir="both" typename="spellFadedStruct" sizechecktype="none"/>
</opcode>
- <opcode id="436d" name="OP_BeginCast" updated="03/13/13">
+ <opcode id="557a" name="OP_BeginCast" updated="04/17/13">
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="56ab" name="OP_CastSpell" updated="03/13/13">
+ <opcode id="3f6d" name="OP_CastSpell" updated="04/17/13">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="21d2" name="OP_SwapSpell" updated="03/13/13">
+ <opcode id="3217" name="OP_SwapSpell" updated="04/17/13">
<comment>TradeSpellBookSlotsCode</comment>
<payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4d4b" name="OP_MemorizeSpell" updated="03/13/13">
+ <opcode id="7bc9" name="OP_MemorizeSpell" updated="04/17/13">
<comment>MemSpellCode</comment>
<payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5168" name="OP_InspectAnswer" updated="03/13/13">
+ <opcode id="5569" name="OP_InspectAnswer" updated="04/17/13">
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4773" name="OP_Emote" updated="03/13/13">
+ <opcode id="0dc9" name="OP_Emote" updated="04/17/13">
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
@@ -317,7 +317,7 @@
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="48e4" name="OP_ManaUpdate" updated="03/13/13">
+ <opcode id="250e" name="OP_ManaUpdate" updated="04/17/13">
<comment>Mana Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
Index: src/spawnshell.cpp
================================================== =================
--- src/spawnshell.cpp (revision 784)
+++ src/spawnshell.cpp (working copy)
@@ -601,7 +601,7 @@
}
*/
- if(spawn->otherData & 4) // aura stuff
+ if(spawn->aura) // aura stuff
{
netStream.readText(); // skip 2 variable len strings
netStream.readText();
@@ -708,15 +708,14 @@
spawn->posData[2] = netStream.readUInt32NC();
spawn->posData[3] = netStream.readUInt32NC();
spawn->posData[4] = netStream.readUInt32NC();
- spawn->posData[5] = netStream.readUInt32NC();
- if(spawn->otherData & 16)
+ if(spawn->hasTitle)
{
name = netStream.readText();
strcpy(spawn->title, name.latin1());
}
- if(spawn->otherData & 32)
+ if(spawn->hasSuffix)
{
name = netStream.readText();
strcpy(spawn->suffix, name.latin1());
@@ -910,22 +909,20 @@
{
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
- /*0004*/ unsigned pitch:12; //
- signed deltaHeading:10;// change in heading
- unsigned padding05:10;
- /*0008*/ signed deltaZ:13; // change in z
- unsigned heading:12; // heading
- unsigned padding01:7;
- /*0012*/ signed z:19; // z coord
- unsigned padding02:13;
- /*0016*/ signed x:19; // x coord
+ /*0004*/ unsigned pitch:12;
+ signed y:19; // y coord
+ unsigned padding03:01;
+ /*0008*/ signed z:19; // z coord
signed deltaX:13; // change in x
- /*0020*/ signed y:19; // y coord
- signed animation:10; // velocity
- unsigned padding04:3;
- /*0024*/ signed deltaY:13; // change in y
- unsigned padding03:19; //Unknown
- /*0028*/
+ /*0012*/ signed deltaZ:13; // change in z
+ unsigned heading:12; // heading
+ unsigned padding01:07;
+ /*0016*/ signed deltaY:13; // change in y
+ signed x:19; // x coord
+ /*0020*/ signed animation:10; // velocity
+ signed deltaHeading:10; // change in heading
+ unsigned padding02:12;
+ /*0024*/
};
#pragma pack(0)
struct pos *p = (struct pos *)data;
Index: src/player.cpp
================================================== =================
--- src/player.cpp (revision 784)
+++ src/player.cpp (working copy)
@@ -853,20 +853,20 @@
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/ unsigned pitch:12; // pitch (up/down heading)
unsigned padding1:20; // ***Placeholder
- /*0010*/ float y; // y coord (2nd loc value)
- /*0014*/ unsigned heading:12; // Directional heading
- unsigned padding2:10; // ***Placeholder
+ /*0010*/ float deltaX; // Change in x
+ /*0014*/ signed animation:10; // velocity
+ unsigned padding2:12; // ***Placeholder
unsigned padding3:10; // ***Placeholder
- /*0018*/ float z; // z coord (3rd loc value)
- /*0022*/ signed animation:10; // velocity
- unsigned padding6:22; // **Placeholder
- /*0026*/ float deltaZ; // Change in z
- /*0030*/ float x; // x coord (1st loc value)
- /*0034*/ float deltaX; // Change in x
- /*0038*/ float deltaY; // Change in y
- /*0042*/ signed deltaHeading:10; // change in heading
+ /*0018*/ float x; // x coord (1st loc value)
+ /*0022*/ unsigned heading:12; // Directional heading
+ unsigned padding6:20; // **Placeholder
+ /*0026*/ float z; // z coord (3rd loc value)
+ /*0030*/ signed deltaHeading:10; // change in heading
unsigned padding4:10; // ***Placeholder
unsigned padding5:12; // ***Placeholder
+ /*0034*/ float deltaZ; // Change in z
+ /*0038*/ float deltaY; // Change in y
+ /*0042*/ float y; // y coord (2nd loc value)
/*0046*/
};
#pragma pack(0)
Index: src/spawn.cpp
================================================== =================
--- src/spawn.cpp (revision 784)
+++ src/spawn.cpp (working copy)
@@ -435,6 +435,9 @@
setTypeflag(s->bodytype);
setGM(s->gm);
+ setIsMount(calcIsMount(s->race, s->level));
+ setIsMercenary(s->isMercenary);
+ setIsAura(s->aura);
// If it is a corpse with Unknown (NPC) religion.
if ((s->NPC == SPAWN_PC_CORPSE) && (s->deity == DEITY_UNKNOWN))
@@ -979,6 +982,53 @@
d << m_lastName;
}
+bool Spawn::calcIsMount(uint32_t race, uint8_t level)
+{
+ bool isMountRace;
+ switch (race)
+ {
+ case 216: //Horse
+ case 348: //Drogmore
+ case 517: //Nightmare/Unicorn
+ case 518: //Horse
+ case 519: //Nightmare/Unicorn
+ case 594: //Worg
+ case 623: //Wrulon Mount
+ case 625: //Sokokar Mount
+ case 631: //Hydra Mount
+ case 652: //Cliknar Mount
+ case 654: //Spider Mount
+ case 655: //Bear Mount
+ case 656: //Rat Mount
+ case 657: //Sessiloid Mount
+ case 671: //Topiary Lion Mount
+ case 672: //Rot Dog Mount
+ case 673: //Goral Mount
+ case 674: //Selyran Mount
+ case 675: //Sclera Mount
+ case 676: //Braxy Mount
+ case 677: //Kangon Mount
+ case 679: //Wurm Mount
+ case 682: //Helicopter backpack
+ case 684: //Steam Escalator
+ case 709: //Skystrider
+ case 721: //Severed Hand
+ isMountRace = true;
+ break;
+ default:
+ isMountRace = false;
+ break;
+ }
+ if (level == 30 && isMountRace)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
//----------------------------------------------------------------------
// Door
Door::Door(const doorStruct* d)
Index: src/spawnmonitor.cpp
================================================== =================
--- src/spawnmonitor.cpp (revision 784)
+++ src/spawnmonitor.cpp (working copy)
@@ -229,7 +229,7 @@
void SpawnMonitor::checkSpawnPoint(const Spawn* spawn )
{
// ignore everything but mobs
- if ( ( spawn->NPC() != SPAWN_NPC ) || ( spawn->petOwnerID() != 0 ) || (spawn->level() == 30 && spawn->race() == 216) )
+ if ( ( spawn->NPC() != SPAWN_NPC ) || ( spawn->petOwnerID() != 0 ) || spawn->isMount() || spawn->isAura() || spawn->isMercenary() )
return;
QString key = SpawnPoint::key( *spawn );
Index: src/spawn.h
================================================== =================
--- src/spawn.h (revision 784)
+++ src/spawn.h (working copy)
@@ -284,6 +284,12 @@
{ return (raceTeam() == spawn->raceTeam()); }
bool isSameDeityTeam(const Spawn* spawn) const
{ return (deityTeam() == spawn->deityTeam()); }
+ bool isMount() const
+ { return m_isMount; }
+ bool isAura() const
+ { return m_isAura; }
+ bool isMercenary() const
+ { return m_isMercenary; }
// virtual set method overload
void setPos(int16_t x, int16_t Pos, int16_t z,
@@ -323,6 +329,9 @@
void setNPC(uint8_t NPC) { m_NPC = NPC; }
void setTypeflag(uint8_t typeflag) { m_typeflag = typeflag; }
void setGM(uint8_t gm) { m_gm = gm; }
+ void setIsMount(bool isMount) { m_isMount = isMount; }
+ void setIsMercenary(uint8_t isMercenary) {m_isMercenary = (isMercenary != 0); }
+ void setIsAura(unsigned aura) {m_isAura = (aura != 0); }
void setID(uint16_t id) { m_ID = id; }
void setLastName(const char * lastName)
{ m_lastName = QString::fromUtf8(lastName); }
@@ -334,6 +343,7 @@
protected:
void calcRaceTeam();
void calcDeityTeam();
+ bool calcIsMount(uint32_t, uint8_t);
// spawn specific data
QString m_lastName;
@@ -364,6 +374,9 @@
uint8_t m_typeflag;
uint8_t m_animation;
uint8_t m_gm;
+ bool m_isMount;
+ bool m_isMercenary;
+ bool m_isAura;
bool m_considered;
bool m_notUpdated;
};
Index: src/everquest.h
================================================== =================
--- src/everquest.h (revision 784)
+++ src/everquest.h (working copy)
@@ -1053,11 +1053,25 @@
unsigned targetcyclable:1;
unsigned padding1:2;
unsigned trader:1;
- unsigned buyer:1;
+ unsigned padding8:1;
};
int32_t miscData;
};
-/*0000*/ uint8_t otherData; // & 4 - has title, & 8 - has suffix, & 1 - it's a chest or untargetable
+/*0000*/ union
+ {
+ struct
+ {
+ unsigned buyer:1;
+ unsigned offline:1;
+ unsigned aura:1;
+ unsigned padding9:1;
+ unsigned hasTitle:1;
+ unsigned hasSuffix:1;
+ unsigned padding10:1;
+ unsigned padding11:1;
+ };
+ uint8_t otherData;
+ };
/*0000*/ uint32_t race;
/*0000*/ uint8_t charProperties;
/*0000*/ uint32_t bodytype;
@@ -1077,20 +1091,18 @@
struct
{
unsigned pitch:12;
- signed deltaHeading:10;// change in heading
- unsigned padding05:10;
+ signed y:19; // y coord
+ unsigned padding03:01;
+ signed z:19; // z coord
+ signed deltaX:13; // change in x
signed deltaZ:13; // change in z
unsigned heading:12; // heading
- unsigned padding01:7;
- signed z:19; // z coord
- unsigned padding02:13;
+ unsigned padding01:07;
+ signed deltaY:13; // change in y
signed x:19; // x coord
- signed deltaX:13; // change in x
- signed y:19; // y coord
signed animation:10; // velocity
- unsigned padding04:3;
- signed deltaY:13; // change in y
- unsigned padding03:19; //Unknown
+ signed deltaHeading:10; // change in heading
+ unsigned padding02:12;
};
int32_t posData[5];
};
@@ -2330,7 +2342,7 @@
/*
** Player Position Update
-** Length: 28 Octets
+** Length: 24 Octets
** OpCode: PlayerPosCode
*/
@@ -2339,21 +2351,19 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/ unsigned pitch:12;
- signed deltaHeading:10;// change in heading
- unsigned padding05:10;
-/*0008*/ signed deltaZ:13; // change in z
- unsigned heading:12; // heading
- unsigned padding01:7;
-/*0012*/ signed z:19; // z coord
- unsigned padding02:13;
-/*0016*/ signed x:19; // x coord
+ signed y:19; // y coord
+ unsigned padding03:01;
+/*0008*/ signed z:19; // z coord
signed deltaX:13; // change in x
-/*0020*/ signed y:19; // y coord
- signed animation:10; // velocity
- unsigned padding04:3;
-/*0024*/ signed deltaY:13; // change in y
- unsigned padding03:19; //Unknown
-/*0028*/
+/*0012*/ signed deltaZ:13; // change in z
+ unsigned heading:12; // heading
+ unsigned padding01:07;
+/*0016*/ signed deltaY:13; // change in y
+ signed x:19; // x coord
+/*0020*/ signed animation:10; // velocity
+ signed deltaHeading:10; // change in heading
+ unsigned padding02:12;
+/*0024*/
};
/*
@@ -2369,20 +2379,20 @@
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/ unsigned pitch:12; // pitch (up/down heading)
unsigned padding1:20; // ***Placeholder
-/*0010*/ float y; // y coord (2nd loc value)
-/*0014*/ unsigned heading:12; // Directional heading
- unsigned padding2:10; // ***Placeholder
+/*0010*/ float deltaX; // Change in x
+/*0014*/ signed animation:10; // velocity
+ unsigned padding2:12; // ***Placeholder
unsigned padding3:10; // ***Placeholder
-/*0018*/ float z; // z coord (3rd loc value)
-/*0022*/ signed animation:10; // velocity
- unsigned padding6:22; // **Placeholder
-/*0026*/ float deltaZ; // Change in z
-/*0030*/ float x; // x coord (1st loc value)
-/*0034*/ float deltaX; // Change in x
-/*0038*/ float deltaY; // Change in y
-/*0042*/ signed deltaHeading:10; // change in heading
- unsigned padding4:10; // ***Placeholder
+/*0018*/ float x; // x coord (1st loc value)
+/*0022*/ unsigned heading:12; // Directional heading
+ unsigned padding6:20; // **Placeholder
+/*0026*/ float z; // z coord (3rd loc value)
+/*0030*/ signed deltaHeading:10; // change in heading
+ unsigned padding4:10; // ***Placeholder
unsigned padding5:12; // ***Placeholder
+/*0034*/ float deltaZ; // Change in z
+/*0038*/ float deltaY; // Change in y
+/*0042*/ float y; // y coord (2nd loc value)
/*0046*/
};
fransick
04-17-2013, 02:54 PM
I'll be back this weekend and can fill in any blanks. Thanks ShortB for all you've done. I still struggle with the movement data so thrilled you have a handle on that. Much appreciated.
Spanners
04-18-2013, 02:33 AM
Thanks ShortBuss, that was me up and running within minutes of getting home, very much appreciated.
deletemenow69
04-18-2013, 10:22 AM
Thanks ShortBuss, that was me up and running within minutes of getting home, very much appreciated.
Yes,
thank you Shortbuss!
Razzy
04-18-2013, 10:26 AM
Thank you! You all rock.
fransick
04-19-2013, 07:56 PM
Below is an updated zoneopcodes.xml, Since Shortbuss already provided a patch, I thought it easiest to paste the whole file here until we can get SVN updated. Most of the important codes are updated. Still a few random ones I'll track down in the coming days. Enjoy.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE seqopcodes SYSTEM "seqopcodes.dtd">
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
<opcode id="6b5b" name="OP_PlayerProfile" updated="04/17/13">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="31d8" name="OP_ZoneEntry" updated="04/17/13">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="3377" name="OP_TimeOfDay" updated="04/17/13">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
<opcode id="0bf6" name="OP_NewZone" updated="04/17/13">
<comment>NewZoneCode</comment>
<payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
</opcode>
<opcode id="375d" name="OP_SpawnDoor" updated="04/17/13">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
<opcode id="3a2b" name="OP_GroundSpawn" updated="04/17/13">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="41b8" name="OP_SendZonePoints" updated="04/17/13">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
<opcode id="0eae" name="OP_AAExpUpdate" updated="02/13/13">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="7814" name="OP_ExpUpdate" updated="02/13/13">
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="4e44" name="OP_GuildMOTD" updated="04/17/13">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
<opcode id="6962" name="OP_ClientUpdate" updated="04/17/13">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
<opcode id="5a39" name="OP_NpcMoveUpdate" updated="04/17/13">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="6d4b" name="OP_MobUpdate" updated="04/17/13">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
<opcode id="0b78" name="OP_DeleteSpawn" updated="04/17/13">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
<opcode id="5279" name="OP_RemoveSpawn" updated="04/17/13">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
<opcode id="1aa0" name="OP_Death" updated="04/17/13">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
<opcode id="1ff6" name="OP_WearChange" updated="04/17/13">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="130f" name="OP_SpawnAppearance" updated="04/17/13">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
<opcode id="54fb" name="OP_Stamina" updated="02/13/13">
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
<opcode id="648b" name="OP_HPUpdate" updated="04/17/13">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="665a" name="OP_GuildMemberUpdate" updated="04/17/13">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
<opcode id="6cb6" name="OP_ClickObject" updated="04/17/13">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
<opcode id="7329" name="OP_Action" updated="04/17/13">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
<opcode id="4725" name="OP_Action2" updated="04/17/13">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
<opcode id="3815" name="OP_Consider" updated="04/17/13">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
<opcode id="3f43" name="OP_TargetMouse" updated="04/17/13">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
<opcode id="1063" name="OP_SpawnRename" updated="04/17/13">
<comment>Spawns getting renamed after initial NewSpawn</comment>
<payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
</opcode>
<opcode id="1182" name="OP_Illusion" updated="04/17/13">
<comment>Spawn being illusioned (changing forms)</comment>
<payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
</opcode>
<opcode id="1171" name="OP_Shroud" updated="04/17/13">
<comment>Server putting players into shroud form</comment>
<payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
</opcode>
<opcode id="5538" name="OP_ZoneChange" updated="04/17/13">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
<opcode id="1694" name="OP_GroupInvite" updated="04/17/13">
<payload dir="both" typename="groupInviteStruct" sizechecktype="none"/>
<comment>You invite someone while ungrouped or get invited by someone ungrouped </comment>
</opcode>
<opcode id="6232" name="OP_GroupInvite2" updated="04/17/13">
<payload dir="client" typename="groupInviteStruct" sizechecktype="none"/>
<comment>You're inviting someone and you are grouped or get invited by a group</comment>
</opcode>
<opcode id="6417" name="OP_GroupCancelInvite" updated="04/17/13">
<payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
<comment>Declining to join a group</comment>
</opcode>
<opcode id="31c8" name="OP_GroupFollow" updated="04/17/13">
<payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
<comment>You join a group or player joins group</comment>
</opcode>
<opcode id="4dbe" name="OP_GroupFollow2" updated="04/17/13">
<payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
<comment>Player joins your group</comment>
</opcode>
<opcode id="24b9" name="OP_GroupUpdate" updated="04/17/13">
<comment>Group updates</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="4e45" name="OP_GroupDisband" updated="04/17/13">
<comment>You disband from group</comment>
<payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
</opcode>
<opcode id="0f0b" name="OP_GroupDisband2" updated="04/17/13">
<comment>Other disbands from group</comment>
<payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
</opcode>
<opcode id="1cdb" name="OP_GroupLeader" updated="04/17/13">
<comment>Group leader change</comment>
<payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/>
</opcode>
<opcode id="08ed" name="OP_Buff" updated="12/12/12">
<comment>old BuffDropCode</comment>
<payload dir="both" typename="buffStruct" sizechecktype="match"/>
</opcode>
<opcode id="6226" name="OP_BuffFadeMsg" updated="04/17/13">
<comment>SpellFadeCode</comment>
<payload dir="both" typename="spellFadedStruct" sizechecktype="none"/>
</opcode>
<opcode id="557a" name="OP_BeginCast" updated="04/17/13">
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
<opcode id="3f6d" name="OP_CastSpell" updated="04/17/13">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
<opcode id="3217" name="OP_SwapSpell" updated="04/17/13">
<comment>TradeSpellBookSlotsCode</comment>
<payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
</opcode>
<opcode id="7bc9" name="OP_MemorizeSpell" updated="04/17/13">
<comment>MemSpellCode</comment>
<payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
</opcode>
<opcode id="5569" name="OP_InspectAnswer" updated="04/17/13">
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
<opcode id="6195" name="OP_Emote" updated="04/17/13">
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
<opcode id="0e29" name="OP_SimpleMessage" updated="04/17/13">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
<opcode id="52c0" name="OP_FormattedMessage" updated="04/17/13">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="0dc9" name="OP_CommonMessage" updated="04/17/13">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="7f21" name="OP_SpecialMesg" updated="04/17/13">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
<opcode id="4629" name="OP_RandomReq" updated="04/17/13">
<comment>RandomReqCode</comment>
<payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
</opcode>
<opcode id="4b1a" name="OP_RandomReply" updated="04/17/13">
<comment>RandomCode</comment>
<payload dir="server" typename="randomStruct" sizechecktype="match"/>
</opcode>
<opcode id="183d" name="OP_ConsentResponse" updated="12/12/12">
<comment>Server replying with consent information after /consent</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
<opcode id="344a" name="OP_DenyResponse" updated="12/12/12">
<comment>Server replying with deny information after /deny</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
<opcode id="2ed8" name="OP_ManaChange" updated="04/17/13">
<comment>Mana change. Bards send this up with no size. Casters receive this for mana updates.</comment>
<payload dir="server" typename="manaDecrementStruct" sizechecktype="match"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="3206" name="OP_BazaarSearch" updated="12/12/12">
<payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/>
<payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
<comment>Bazaar search tool - struct changed and separated query from response with RoF launch. Needs work </comment>
</opcode>
<opcode id="05e8" name="OP_MoneyOnCorpse" updated="04/17/13">
<comment>MoneyOnCorpseCode</comment>
<payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
</opcode>
<opcode id="4b94" name="OP_SkillUpdate" updated="04/17/13">
<comment>Skill up code</comment>
<payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
</opcode>
<opcode id="7ce0" name="OP_LevelUpdate" updated="12/12/12">
<comment>LevelUpUpdateCode - causing crashes as of 12/08/12 Investigating</comment>
<payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="ffff" name="OP_CorpseLocResponse" updated="12/12/12">
<comment>old CorpseLocCode:</comment>
<payload dir="server" typename="corpseLocStruct" sizechecktype="match"/>
</opcode>
<opcode id="68df" name="OP_Logout" updated="12/12/12">
<comment></comment>
<payload dir="server" typename="none" sizechecktype="match"/>
</opcode>
<opcode id="5baa" name="OP_DzSwitchInfo" updated="04/17/13">
<comment>Expedition compass etc</comment>
<payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
</opcode>
<opcode id="3861" name="OP_DzInfo" updated="12/12/12">
<comment>Expedition Information</comment>
<payload dir="server" typename="dzInfo" sizechecktype="match"/>
</opcode>
<!-- Not necessary for SEQ to run but here to name packets in logs. -->
<opcode id="1ada" name="OP_MovementHistory" updated="04/17/13">
<comment>Movement history for speed/movement hack detection</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="3798" name="OP_LeaderExpUpdate" updated="11/28/12">
<comment>Leadership AA Exp Update</comment>
<payload dir="server" typename="leadExpUpdateStruct" sizechecktype="match"/>
</opcode>
<opcode id="5c45" name="OP_Trader" updated="11/28/12">
<comment>PC's turning trader on and off</comment>
<payload dir="server" typename="bazaarTraderRequest" sizechecktype="match"/>
</opcode>
<opcode id="071e" name="OP_Consent" updated="11/28/12">
<comment>/consent someone</comment>
<payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
</opcode>
<opcode id="2860" name="OP_ConsentDeny" updated="11/28/12">
<comment>/deny someone</comment>
<payload dir="client" typename="consentRequestStruct" sizechecktype="none"/>
</opcode>
<opcode id="1d6d" name="OP_ItemPacket" updated="11/28/12">
<comment>ItemCode</comment>
<payload dir="server" typename="itemPacketStruct" sizechecktype="none"/>
</opcode>
<opcode id="361c" name="OP_ItemLinkResponse" updated="11/28/12">
<comment>ItemInfoCode</comment>
<payload dir="server" typename="itemInfoStruct" sizechecktype="none"/>
<payload dir="client" typename="itemInfoReqStruct" sizechecktype="none"/>
</opcode>
<opcode id="0518" name="OP_EnvDamage" updated="01/16/13">
<comment>Environmental Damage</comment>
<payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/>
</opcode>
<opcode id="402d" name="OP_SetRunMode" updated="11/28/12">
<comment>old cRunToggleCode</comment>
<payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/>
</opcode>
<opcode id="6878" name="OP_UIUpdate" updated="04/17/13">
<comment>Seems to be sent to handle a variety of UI updates - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2aca" name="OP_GroupMemberList" updated="01/16/13">
<comment>List of group members - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2bad" name="OP_GuildMemberList" updated="04/17/13">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="4c12" name="OP_ManaUpdate" updated="04/17/13">
<comment>Mana Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="250e" name="OP_EndUpdate" updated="04/17/13">
<comment>Endurance Update opcode - 10 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3929" name="OP_Marketplace" updated="11/28/12">
<comment>Marketplace data - Guessing variable length 11444 bytes as of 11/28/12</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2de6" name="OP_MarketplaceSelect" updated="11/28/12">
<comment>Sent when highlighting an item in Marketplace - 80 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4e34" name="OP_DzMembers" updated="11/28/12">
<comment>Expedition Members - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6562" name="OP_Campfire" updated="11/28/12">
<comment>Fellowship campfire information - 1076 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7802" name="OP_SelectCampfire" updated="01/16/13">
<comment>Fellowship campfire Choices - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="02d7" name="OP_Claims" updated="11/28/12">
<comment>Contents of claims window. /claim then refresh to capture packet - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2540" name="OP_VoiceChat" updated="04/17/13">
<comment>Voice chat server info - Variable length (Data sent when joining group,raid etc)</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1431" name="OP_PollQuestions" updated="04/17/13">
<comment>SOE in-game player poll questions - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3433" name="OP_PollResponses" updated="04/17/13">
<comment>Poll response choices - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7bfb" name="OP_ShroudProgression" updated="04/17/13">
<comment>Unlocked shrouds - 244 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="ba18" name="OP_ShroudTemplates" updated="10/23/12">
<comment>Shroud templates to choose from on shroud NPC - 18983 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6a48" name="OP_Fellowship" updated="04/17/13">
<comment>Fellowship information - 2564 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="31fc" name="OP_ExpandedGuildInfo" updated="04/17/13">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3653" name="OP_GuildBank" updated="04/17/13">
<comment>Guild bank contents - Guessing variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2db9" name="OP_OpenTradeskillContainer" updated="11/28/12">
<comment>Opens forge, kiln etc - 92 Bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="18c4" name="OP_TradeskillRecipes" updated="11/28/12">
<comment>Learned recipes - 84 Bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0397" name="OP_TradeSkillCombine" updated="11/28/12">
<comment>Tradeskill combine using new tradeskill window - 40 Bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="360d" name="OP_TradeSkillResult" updated="11/28/12">
<comment>Packets sent when tradeskill combine successful equals # of ingredients used in combine?- 12 Bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="0b69" name="OP_TradeSkillCombineOld" updated="11/28/12">
<comment>Tradeskill combine using old tradeskill window - 24 Bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="3deb" name="OP_ItemPlayerPacket" updated="04/17/13">
<comment>Inventory/bank items coming over during zone - Variable length</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="3c8f" name="OP_TaskDescription" updated="04/17/13">
<comment>Task descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6140" name="OP_TaskActivity" updated="04/17/13">
<comment>Task activity descriptions coming down for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7b7c" name="OP_CompletedTasks" updated="04/17/13">
<comment>Task history for task window - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="61ab" name="OP_CustomTitles" updated="04/17/13">
<comment>List of available titles - 1520 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3df3" name="OP_Animation" updated="11/28/12">
<comment>Combat animation, emote animations etc - 4 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2bdd" name="OP_WhoAllRequest" updated="11/28/12">
<comment>WhoAllReqCode - 156 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="51a4" name="OP_WhoAllResponse" updated="11/28/12">
<comment>WhoAllOutputCode - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3d3c" name="OP_InspectRequest" updated="11/28/12">
<comment>InspectRequestCode - 8 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="40ca" name="OP_GetGuildMOTD" updated="11/28/12">
<comment>Request guildMOTD - 648 Bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="38e9" name="OP_TradeRequest" updated="11/28/12">
<comment>You request trade session - 8 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0ccc" name="OP_TradeDeny" updated="11/28/12">
<comment>Target not ready to trade - 12 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1439" name="OP_TradeRequestAck" updated="11/28/12">
<comment>Trade request recipient is acknowledging they are able to trade - 8 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="66f3" name="OP_CancelTrade" updated="11/28/12">
<comment>Cancel a trade window - 8 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0dd6" name="OP_FinishTrade" updated="11/28/12">
<comment>Trade is over - 12 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="2320" name="OP_TradeCoins" updated="11/28/12">
<comment>You put coins put in a trade window - 20 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="428e" name="OP_TradeCoins2" updated="11/28/12">
<comment>Someone else puts coins put in your trade window - 12 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4cf9" name="OP_TradeAcceptClick" updated="11/28/12">
<comment>One side clicks Accept on the trade 8 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6f69" name="OP_ItemLinkClick" updated="11/28/12">
<comment>Click on itemlinks - 52 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6635" name="OP_LootRequest" updated="11/28/12">
<comment>LootCorpseCode - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0233" name="OP_LootItem" updated="11/28/12">
<comment>Loot item from corpse - 20 bytes</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="11bc" name="OP_EndLootRequest" updated="11/28/12">
<comment>DoneLootingCode - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3c94" name="OP_Track" updated="11/28/12">
<comment>Tracking data - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="5401" name="OP_AutoAttack" updated="11/28/12">
<comment>Attack on/off - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="3fad" name="OP_AutoAttack2" updated="11/28/12">
<comment>Attack on/off appears to be same as OP_AutoAttack - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7488" name="OP_ClickDoor" updated="11/28/12">
<comment>DoorOpenCode click request from client - 16 bytes</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="38ab" name="OP_MoveDoor" updated="11/28/12">
<comment>DoorClickCode response from server - 2 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="29fa" name="OP_MoveItem" updated="11/28/12">
<comment>Client moving an item from one slot to another - 28 bytes</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="5751" name="OP_Jump" updated="11/28/12">
<comment>JumpCode - 0 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="339c" name="OP_TGB" updated="11/28/12">
<comment>Client telling server to set targetgroupbuff - 4 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1d6a" name="OP_Lockouts" updated="11/28/12">
<comment>Client requesting lockouts - 0 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="4ee5" name="OP_RaidInvite" updated="11/28/12">
<comment>Client side raid invite requests 140 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="1419" name="OP_RaidJoin" updated="04/17/13">
<comment>Server side raid information - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="24c5" name="OP_Feedback" updated="07/18/12">
<comment>Client sending feedback to server - 1148 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="34f7" name="OP_GuildsList" updated="11/28/12">
<comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="284e" name="OP_LFGGetMatchesRequest" updated="11/28/12">
<comment>LFG/LFP client request - 16 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="11c8" name="OP_LFGGetMatchesResponse" updated="11/28/12">
<comment>LFG/LFP server response - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="0c2d" name="OP_MercenaryList" updated="04/17/13">
<comment>Listing of hired mercenaries - 648 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="48ae" name="OP_HouseAddress" updated="04/17/13">
<comment>House and guildhall address information - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="6419" name="OP_HouseContents" updated="04/17/13">
<comment>Server sending house information and contents - variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="54df" name="OP_FriendsList" updated="11/28/12">
<comment>Server sending friends list contents - variable length (Sent when choosing "Welcome" from EQ button)</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="5a4f" name="OP_FriendsOnline" updated="11/28/12">
<comment>Friends currently online - variable length (Sent when choosing "Welcome" form EQ button)</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="348e" name="OP_Rewards" updated="11/28/12">
<comment>Server sending pending rewards - variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="26e8" name="OP_FTPNags" updated="04/17/13">
<comment>Free to play nags and other data - 1852 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="743b" name="OP_Find" updated="04/17/13">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="10cb" name="OP_ConsiderCorpse" updated="11/28/12">
<comment>ConCorpseCode - 20 bytes</comment>
<payload dir="client" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="ffff" name="OP_TributeUpdate" updated="11/28/12">
<comment>Tribute and trophy skills - Variable length</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<!-- Below are used to help make sense of the logs when searching for opcodes
Using these marks unknown opcodes in logs for easier reading -->
<opcode id="52dc" name="OP_Unknown1" updated="04/17/13">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="230a" name="OP_Unknown2" updated="04/17/13">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="7012" name="OP_Unknown3" updated="04/17/13">
<comment>3 byte opcode that spam logs seemingly only when you have someone targeted. Marked here to make reading logs easier</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
<!-- Below are unverified -->
<opcode id="ffff" name="OP_RequestZoneChange" updated="10/20/07">
<comment>Send by server when a click causes zone. Also, origin</comment>
<payload dir="server" typename="requestZoneChangeStruct" sizechecktype="match"/>
</opcode>
<opcode id="ffff" name="OP_WelcomeScreenTitle" updated="05/16/11">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_VeteranRewards" update="04/18/11">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_SendAATable" updated="08/12/09">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_SendAAStats" updated="08/12/09">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_AckPacket" updated="03/14/07">
<comment>Appears to be generic ack at the presentation level</comment>
</opcode>
<opcode id="ffff" name="OP_Weather" updated="03/14/07">
<comment>old WeatherCode</comment>
</opcode>
<opcode id="ffff" name="OP_ReqNewZone" updated="03/14/07">
<comment>Client requesting NewZone_Struct</comment>
</opcode>
<opcode id="ffff" name="OP_ReqClientSpawn" updated="03/14/07">
<comment>Client requesting spawn data</comment>
</opcode>
<opcode id="ffff" name="OP_SendExpZonein" updated="03/14/07">
<comment>Both directions. Negotiating sending of exp info.</comment>
</opcode>
<opcode id="ffff" name="OP_AAAction" updated="03/14/07">
<comment>Used for changing percent, buying? and activating skills</comment>
</opcode>
<opcode id="ffff" name="OP_SetServerFilter" updated="03/14/07">
<comment>Client telling server /filter information</comment>
</opcode>
<opcode id="ffff" name="OP_ClientReady" updated="03/14/07">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_GuildTributeStatus" updated="03/14/07">
<comment>Guild tribute stats send on zone</comment>
</opcode>
<opcode id="ffff" name="OP_GuildTributeInfo" updated="06/13/06">
<comment>Guild tribute loadout, only if on</comment>
</opcode>
<opcode id="ffff" name="OP_RespawnWindow" updated="03/14/07">
<comment>Server telling client enough to populate the respawn window when you die</comment>
</opcode>
<opcode id="ffff" name="OP_InitialMobHealth" updated="06/27/12">
<comment>Initial health sent when a player clicks on the mob. Subsequent updated will be OP_MobHealth</comment>
</opcode>
<opcode id="ffff" name="OP_MobHealth" updated="03/14/07">
<comment>health sent when a player clicks on the mob</comment>
</opcode>
<opcode id="ffff" name="OP_DeltaCheck" updated="03/14/07">
<comment>Client sending server delta information.</comment>
</opcode>
<opcode id="ffff" name="OP_LoadSpellSet" updated="02/13/07">
<comment>/mem spellsetname</comment>
</opcode>
<opcode id="ffff" name="OP_Dye" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_Consume" updated="12/07/05">
<comment>Client force feeding food/drink</comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="ffff" name="OP_Begging" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_LFGCommand" updated="10/27/05">
<comment>old LFGReqCode</comment>
</opcode>
<opcode id="ffff" name="OP_Bug" updated="10/27/05">
<comment>/bug</comment>
</opcode>
<opcode id="ffff" name="OP_Save" updated="04/19/06">
<comment>Client asking server to save user state</comment>
</opcode>
<opcode id="ffff" name="OP_Camp" updated="02/13/07">
<comment>old cStartCampingCode</comment>
</opcode>
<opcode id="ffff" name="OP_ShopPlayerSell" updated="10/27/05">
<comment>old SellItemCode</comment>
</opcode>
<opcode id="ffff" name="OP_PetCommands" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_SaveOnZoneReq" updated="03/14/07">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_ShopEnd" updated="10/27/05">
<comment>old CloseVendorCode</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="ffff" name="OP_SenseTraps" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_SenseHeading" updated="10/27/05">
<comment>old cSenseHeadingCode</comment>
</opcode>
<opcode id="ffff" name="OP_LootComplete" updated="12/07/05">
<comment>old sDoneLootingCode</comment>
</opcode>
<opcode id="ffff" name="OP_Split" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_Surname" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_ShopRequest" updated="10/27/05">
<comment>old OpenVendorCode</comment>
<payload dir="both" typename="unknown" sizechecktype="none"/>
</opcode>
<opcode id="ffff" name="OP_FaceChange" updated="10/27/05">
<comment>/face</comment>
</opcode>
<opcode id="ffff" name="OP_Sneak" updated="06/29/05">
<comment>Clicked sneak</comment>
</opcode>
<opcode id="ffff" name="OP_Hide" updated="06/29/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_DisarmTraps" updated="05/11/05">
<comment>Clicked disarm traps</comment>
</opcode>
<opcode id="ffff" name="OP_Forage" updated="10/27/05">
<comment>old ForageCode</comment>
</opcode>
<opcode id="ffff" name="OP_BoardBoat" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_LeaveBoat" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_LFPGetMatchesRequest" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_GMKill" updated="10/27/05">
<comment>GM /kill - Insta kill mob/pc</comment>
</opcode>
<opcode id="ffff" name="OP_GuildPublicNote" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_YellForHelp" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_ShopPlayerBuy" updated="05/11/05">
<comment>old BuyItemCode</comment>
</opcode>
<opcode id="ffff" name="OP_LFPCommand" updated="10/27/05">
<comment>looking for players</comment>
</opcode>
<opcode id="ffff" name="OP_ConfirmDelete" updated="10/27/05">
<comment>Client sends this to server to confirm op_deletespawn</comment>
</opcode>
<opcode id="ffff" name="OP_Report" updated="06/29/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_TargetCommand" updated="02/13/07">
<comment>Target user</comment>
</opcode>
<opcode id="ffff" name="OP_LFPGetMatchesResponse" updated="02/13/07">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_FindPersonRequest" updated="02/13/07">
<comment>Control-F Find</comment>
</opcode>
<opcode id="ffff" name="OP_FindResponse" updated="02/13/07">
<comment>Response to control-F</comment>
</opcode>
<opcode id="ffff" name="OP_GMLastName" updated="10/27/05">
<comment>GM /lastname - Change user lastname</comment>
</opcode>
<opcode id="ffff" name="OP_Mend" updated="10/27/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_MendHPUpdate" updated="05/11/05">
<comment></comment>
</opcode>
<opcode id="ffff" name="OP_TributeInfo" updated="02/13/07">
<comment>Tribute information</comment>
</opcode>
<!-- OLD OPCODES. These haven't been mapped in a post 1/26/2005 world. If you
can find any of these in the current stream, please update them and let
us know!
<opcode id="1900" name="OP_ZoneSpawns" updated="05/29/08">
<comment>old ZoneSpawnsCode</comment>
<payload dir="server" typename="spawnStruct" sizechecktype="none"/>
</opcode>
<opcode id="0020" name="OP_GMServers" updated="05/26/04">
<comment>GM /servers - ?</comment>
</opcode>
<opcode id="790e" name="OP_GMKick" updated="01/26/05">
<comment>GM /kick - Boot player</comment>
</opcode>
<opcode id="0068" name="OP_Petition" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0074" name="OP_GMBecomeNPC" updated="05/26/04">
<comment>GM /becomenpc - Become an NPC</comment>
</opcode>
<opcode id="0076" name="OP_PetitionCheckout" updated="05/26/04">
<comment>Petition Checkout</comment>
</opcode>
<opcode id="007e" name="OP_PetitionCheckIn" updated="05/26/04">
<comment>Petition Checkin</comment>
</opcode>
<opcode id="688f" name="OP_PetitionResolve" updated="05/11/05">
<comment>Client Petition Resolve Request</comment>
</opcode>
<opcode id="0165" name="OP_DeletePetition" updated="01/26/05">
<comment>Player /deletepetition</comment>
</opcode>
<opcode id="0082" name="OP_PetitionQue" updated="05/26/04">
<comment>GM looking at petitions</comment>
</opcode>
<opcode id="0090" name="OP_PetitionUnCheckout" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0097" name="OP_GMSearchCorpse" updated="05/26/04">
<comment>GM /searchcorpse - Search all zones for named corpse</comment>
</opcode>
<opcode id="009a" name="OP_GuildPeace" updated="05/26/04">
<comment>/guildpeace</comment>
</opcode>
<opcode id="00a4" name="OP_GuildWar" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="00a7" name="OP_GuildLeader" updated="05/26/04">
<comment>/guildleader</comment>
</opcode>
<opcode id="00b6" name="OP_ApplyPoison" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="00da" name="OP_GMInquire" updated="05/26/04">
<comment>GM /inquire - Search soulmark data</comment>
</opcode>
<opcode id="00dc" name="OP_GMSoulmark" updated="05/26/04">
<comment>GM /praise /warn - Add soulmark comment to user file</comment>
</opcode>
<opcode id="00de" name="OP_GMHideMe" updated="05/26/04">
<comment>GM /hideme - Remove self from spawn lists and make invis</comment>
</opcode>
<opcode id="00ef" name="OP_SafePoint" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="010b" name="OP_GMGoto" updated="05/26/04">
<comment>GM /goto - Transport to another loc</comment>
</opcode>
<opcode id="012d" name="OP_BindWound" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0132" name="OP_GuildRemove" updated="05/26/04">
<comment>/guildremove</comment>
</opcode>
<opcode id="013b" name="OP_GMTraining" updated="05/26/04">
<comment>old OpenGMCode</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="013c" name="OP_GMEndTraining" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0152" name="OP_MoveCash" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0160" name="OP_Taunt" updated="05/26/04">
<comment>old ConsumeCode</comment>
</opcode>
<opcode id="016c" name="OP_Stun" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0175" name="OP_GMTrainSkill" updated="05/26/04">
<comment>old SkillTrainCode</comment>
</opcode>
<opcode id="0178" name="OP_GMEndTrainingResponse" updated="05/26/04">
<comment>old CloseGMCode</comment>
<payload dir="both" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="0183" name="OP_GMZoneRequest" updated="05/26/04">
<comment>/zone</comment>
</opcode>
<opcode id="018f" name="OP_BecomePK" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0197" name="OP_SetDataRate" updated="05/26/04">
<comment>Client sending datarate.txt value</comment>
</opcode>
<opcode id="0198" name="OP_GMDelCorpse" updated="05/26/04">
<comment>/delcorpse</comment>
</opcode>
<opcode id="0199" name="OP_Sacrifice" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01af" name="OP_GMApproval" updated="05/26/04">
<comment>GM /approval - Name approval duty?</comment>
</opcode>
<opcode id="01b2" name="OP_GMToggle" updated="05/26/04">
<comment>GM /toggle - Toggle ability to receive tells from other PC's</comment>
</opcode>
<opcode id="01bc" name="OP_MoneyUpdate" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ba" name="OP_ReqZoneObjects" updated="05/26/04">
<comment>Client requesting zone objects</comment>
</opcode>
<opcode id="01c4" name="OP_Translocate" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ea" name="OP_RespondAA" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ed" name="OP_IncreaseStats" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="01ef" name="OP_ViewPetition" updated="05/26/04">
<comment>Player /viewpetition</comment>
</opcode>
<opcode id="01ff" name="OP_ExpansionSetting" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0205" name="OP_GainMoney" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0225" name="OP_GMZoneRequest2" updated="05/26/04">
<comment>/zone 2</comment>
</opcode>
<opcode id="0245" name="?" implicitlen="6" updated="07/14/04">
<comment>Unknown, but has implicit length</comment>
</opcode>
<opcode id="0261" name="OP_CrashDump" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0263" name="OP_GuildDemote" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="0264" name="OP_ZoneUnavail" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="028b" name="OP_GMSummon" updated="05/26/04">
<comment>GM /summon - Summon PC to self</comment>
</opcode>
<opcode id="0296" name="OP_ItemTextFile" updated="05/26/04">
<comment>old BookTextCode</comment>
<payload dir="server" typename="bookTextStruct" sizechecktype="none"/>
</opcode>
<opcode id="029e" name="OP_OpenObject" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="028e" name="OP_GMEmoteZone" updated="05/26/04">
<comment>GM /emotezone - Send zonewide emote</comment>
</opcode>
<opcode id="0296" name="OP_ReadBook" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02b4" name="OP_SummonCorpse" updated="05/26/04">
<comment>/summoncorpse</comment>
</opcode>
<opcode id="02cc" name="OP_ShopItem" updated="05/26/04">
<comment>Merchant Item data</comment>
</opcode>
<opcode id="02d0" name="OP_AdventureRequest" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02d1" name="OP_AdventureMerchantResponse" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02d2" name="OP_AdventureMerchantPurchase" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02e2" name="OP_AdventurePointsUpdate" updated="05/26/04">
<comment></comment>
</opcode>
<opcode id="02ef" name="OP_Adventure" updated="05/26/04">
<comment>/adventure</comment>
</opcode>
<opcode id="1ee8" name="OP_CombatAbility" updated="02/15/05">
<comment></comment>
</opcode>
-->
</seqopcodes>
ShortBuss
04-19-2013, 10:01 PM
Nice work as always. Looks like some of my auto guessed ones were wrong. Will have to keep working on my log parser. I'll test these out over the next couple days then maybe get a check in done on monday.
Powered by vBulletin® Version 4.1.11 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.