I have a start, but I won't be able to finish this today. Seems some utilities company really likes cutting my cable line so no internet for me for a few days. Here is what I have so far:
Opcodes:
<opcode id="1434" name="OP_PlayerProfile" updated="06/19/13">
<opcode id="64d6" name="OP_ZoneEntry" updated="06/19/13">
<opcode id="039e" name="OP_TimeOfDay" updated="06/19/13">
<opcode id="08f5" name="OP_NewZone" updated="06/19/13">
<opcode id="12d8" name="OP_SpawnDoor" updated="06/19/13">
<opcode id="0a1a" name="OP_GroundSpawn" updated="06/19/13">
<opcode id="1cb1" name="OP_SendZonePoints" updated="06/19/13">
<opcode id="3a96" name="OP_GuildMOTD" updated="06/19/13">
<opcode id="06c2" name="OP_ClientUpdate" updated="06/19/13">
<opcode id="38f4" name="OP_NpcMoveUpdate" updated="06/19/13">
<opcode id="2239" name="OP_MobUpdate" updated="06/19/13">
<opcode id="4cb5" name="OP_DeleteSpawn" updated="06/19/13">
<opcode id="05ed" name="OP_RemoveSpawn" updated="06/19/13">
<opcode id="6438" name="OP_Death" updated="06/19/13">
<opcode id="6f8c" name="OP_WearChange" updated="06/19/13">
<opcode id="3943" name="OP_SpawnAppearance" updated="06/19/13">
playerSelfPosStruct in Everquest.h. This should be correct except for pitch. Pitch seems to be gone, I can't find it anywhere.
Code:
/*
** Self Position Update
** Length: 42 Octets
** OpCode: PlayerPosCode
*/
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)
signed animation:10; // velocity
unsigned padding5:10;
/*0010*/ float deltaX; // Change in x
/*0014*/ float y; // y coord (2nd loc value)
/*0018*/ float deltaZ; // Change in z
/*0022*/ signed deltaHeading:10; // change in heading
unsigned padding4:12; // ***Placeholder
unsigned padding1:10; // ***Placeholder
/*0026*/ float deltaY; // Change in y
/*0030*/ unsigned heading:12; // Directional heading
unsigned padding2:10; // ***Placeholder
unsigned padding3:10; // ***Placeholder
/*0034*/ float z; // z coord (3rd loc value)
/*0038*/ float x; // x coord (1st loc value)
/*0042*/
};
SpawnStruct is changed. There's 12 bytes added in the packet I looked out. I found and fixed that, but I think there are more changes also as I'm still getting some bad sizes back on it.
In spawnshell.cpp in fillsSpawnStruct. Changing a skip from 25 to 37. Here's the area around it with change:
Code:
netStream.skipBytes(6);
spawn->petOwnerId = netStream.readUInt32NC();
// 12 bytes added 06/19/2013 patch in the middel. Changed 25 to 37.
netStream.skipBytes(37);
race = spawn->race;
Started working on the 24 byte position data but having trouble with it. I think it's due to spawnstruct still having some changes I haven't figured out yet.