Ok, it seems I was still using a modified 5.13.10.2 source, and was functional, until this latest patch. I've run through it 3 times now, using the official 5.13.10.3 tarball as a starting point. Not having much luck. Can anyone see what I am missing. I wasn't clear on playerSpawnStruct change, as there doesn't seem to be that struct. I applied it to playerSpawnPosStruct.
Thanks in advance!
Here are the diff's of the 3 files, starting from the original.
everquest.h.diff:
Code:
*** showeq-5.13.10.3-orig/src/everquest.h 2011-01-01 17:08:56.000000000 -0
500
--- showeq-5.13.10.3/src/everquest.h 2011-04-16 21:57:55.000000000 -0400
***************
*** 563,569 ****
/*0000*/ uint32_t unknown0000; // ***Placeholder
/*0004*/ char name[32]; // Player firstname
/*0036*/ uint8_t unknown0036[28]; // ***Placeholder
! /*0064*/ uint32_t unknown0064; // unknown
};
--- 563,569 ----
/*0000*/ uint32_t unknown0000; // ***Placeholder
/*0004*/ char name[32]; // Player firstname
/*0036*/ uint8_t unknown0036[28]; // ***Placeholder
! /*0064*/ uint32_t unknown0064[3]; // unknown
};
***************
*** 714,720 ****
/*07872*/ uint8_t unknown07872[20];
/*07892*/ spellBuff buffs[MAX_BUFFS]; // Buffs currently on the player
/*10172*/ uint32_t disciplines[MAX_DISCIPLINES]; // Known disciplines
! /*10572*/ uint8_t unknown10572[560];
/*11132*/ uint32_t recastTimers[MAX_RECAST_TYPES]; // Timers (GMT of last use)
/*11212*/ uint32_t endurance; // Current endurance
/*11216*/ uint32_t aa_spent; // Number of spent AA points (includin
g glyphs)
--- 714,720 ----
/*07872*/ uint8_t unknown07872[20];
/*07892*/ spellBuff buffs[MAX_BUFFS]; // Buffs currently on the player
/*10172*/ uint32_t disciplines[MAX_DISCIPLINES]; // Known disciplines
! /*10572*/ uint8_t unknown10572[1280];
/*11132*/ uint32_t recastTimers[MAX_RECAST_TYPES]; // Timers (GMT of last use)
/*11212*/ uint32_t endurance; // Current endurance
/*11216*/ uint32_t aa_spent; // Number of spent AA points (includin
g glyphs)
***************
*** 1416,1421 ****
--- 1416,1422 ----
struct spawnPositionUpdate
{
/*0000*/ int16_t spawnId;
+ uint8_t unk1[2];
/*0002*/ int64_t y:19, z:19, x:19, u3:7;
unsigned heading:12;
signed unused2:4;
***************
*** 2187,2192 ****
--- 2188,2194 ----
struct SpawnUpdateStruct
{
/*0000*/ uint16_t spawnId; // Id of spawn to update
+ uint8_t unk1[2];
/*0002*/ uint16_t subcommand; // some sort of subcommand type
/*0004*/ int16_t arg1; // first option
/*0006*/ int16_t arg2; // second option
***************
*** 2284,2289 ****
--- 2286,2292 ----
struct playerSpawnPosStruct
{
/*0000*/ uint16_t spawnId;
+ uint8_t unk[2];
/*0002*/ signed padding0000:12; // ***Placeholder
signed deltaX:13; // change in x
signed padding0005:7; // ***Placeholder
***************
*** 2311,2317 ****
{
/*0000*/ uint16_t spawnId; // Player's spawn id
/*0002*/ uint8_t unknown0002[2]; // ***Placeholder (update time counter?)
! /*0004*/ uint8_t unknown0004[4]; // ***Placeholder
/*0008*/ float x; // x coord (2nd loc value)
/*0012*/ float y; // y coord (1st loc value)
/*0016*/ signed deltaHeading:10; // change in heading
--- 2314,2320 ----
{
/*0000*/ uint16_t spawnId; // Player's spawn id
/*0002*/ uint8_t unknown0002[2]; // ***Placeholder (update time counter?)
! /*0004*/ uint8_t unknown0004[6]; // ***Placeholder
/*0008*/ float x; // x coord (2nd loc value)
/*0012*/ float y; // y coord (1st loc value)
/*0016*/ signed deltaHeading:10; // change in heading
zoneopcodes.xml.diff
Code:
*** showeq-5.13.10.3-orig/conf/zoneopcodes.xml 2011-01-01 13:30:45.000000000 -0500
--- showeq-5.13.10.3/conf/zoneopcodes.xml 2011-04-16 21:44:02.000000000 -0400
***************
*** 5,11 ****
<!--
Critical opcodes used directly by ShowEQ
-->
! <opcode id="5BAD" name="OP_NpcMoveUpdate" updated="12/08/10">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
--- 5,11 ----
<!--
Critical opcodes used directly by ShowEQ
-->
! <opcode id="3278" name="OP_NpcMoveUpdate" updated="12/08/10">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
***************
*** 13,32 ****
<comment></comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
! <opcode id="220C" name="OP_DeleteSpawn" updated="12/08/10">
<comment>old DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
! <opcode id="002B" name="OP_ZoneEntry" updated="10/15/10">
<comment>old ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
! <opcode id="5F85" name="OP_GuildMOTD" updated="10/15/10">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
! <opcode id="2370" name="OP_InspectAnswer" updated="10/15/10">
<comment>old InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
--- 13,32 ----
<comment></comment>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
! <opcode id="0BD0" name="OP_DeleteSpawn" updated="12/08/10">
<comment>old DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
! <opcode id="02D6" name="OP_ZoneEntry" updated="10/15/10">
<comment>old ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
! <opcode id="71D1" name="OP_GuildMOTD" updated="10/15/10">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
! <opcode id="3365" name="OP_InspectAnswer" updated="10/15/10">
<comment>old InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
***************
*** 34,40 ****
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
! <opcode id="2257" name="OP_TargetMouse" updated="10/15/10">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
--- 34,40 ----
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
! <opcode id="5F5E" name="OP_TargetMouse" updated="10/15/10">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
***************
*** 74,84 ****
<comment></comment>
<payload dir="server" typename="dzInfo" sizechecktype="match"/>
</opcode>
! <opcode id="3B52" name="OP_FormattedMessage" updated="10/21/09">
<comment>old FormattedMessageCode</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
! <opcode id="6CFE" name="OP_SpawnDoor" updated="12/08/10">
<comment>old DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
--- 74,85 ----
<comment></comment>
<payload dir="server" typename="dzInfo" sizechecktype="match"/>
</opcode>
! /* <opcode id="3B52" name="OP_FormattedMessage" updated="10/21/09">
<comment>old FormattedMessageCode</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
! */
! <opcode id="6CFE" name="OP_SpawnDoor" updated="12/08/10">
<comment>old DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
***************
*** 102,108 ****
<payload dir="server" typename="groupInviteStruct" sizechecktype="match"/>
<comment>You got invited to a group</comment>
</opcode>-->
! <opcode id="5251" name="OP_GroupInvite" updated="10/21/09">
<payload dir="both" typename="groupInviteStruct" sizechecktype="none"/>
<comment>You invite or get invited</comment>
</opcode>
--- 103,109 ----
<payload dir="server" typename="groupInviteStruct" sizechecktype="match"/>
<comment>You got invited to a group</comment>
</opcode>-->
! <opcode id="03CC" name="OP_GroupInvite" updated="10/21/09">
<payload dir="both" typename="groupInviteStruct" sizechecktype="none"/>
<comment>You invite or get invited</comment>
</opcode>
***************
*** 148,154 ****
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
! <opcode id="3E50" name="OP_Consider" updated="10/21/09">
<comment>old ConsiderCode</comment>
</opcode>
***************
*** 148,154 ****
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
! <opcode id="3E50" name="OP_Consider" updated="10/21/09">
<comment>old ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
--- 149,155 ----
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
! <opcode id="3C2D" name="OP_Consider" updated="10/21/09">
<comment>old ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
***************
*** 186,196 ****
<comment>old ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
! <opcode id="7434" name="OP_RemoveSpawn" updated="06/12/09">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
! <opcode id="3237" name="OP_Death" updated="09/07/10">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
--- 187,197 ----
<comment>old ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
! <opcode id="725A" name="OP_RemoveSpawn" updated="06/12/09">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
! <opcode id="49B6" name="OP_Death" updated="09/07/10">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
spawnshell.cpp.diff
Code:
*** showeq-5.13.10.3-orig/src/spawnshell.cpp 2011-01-01 17:10:22.000000000 -0500
--- showeq-5.13.10.3/src/spawnshell.cpp 2011-04-16 21:45:13.000000000 -0400
***************
*** 947,952 ****
--- 947,955 ----
// spawnId.
uint16_t spawnId = stream.readUInt(16);
+ // 13 Apr 2011 -- 2 bytes of null data added into packet.
+ uint16_t unk1 = stream.readUInt(16);
+
// 6 bit field specifier.
uint8_t fieldSpecifier = stream.readUInt(6);
***************
*** 1357,1362 ****
--- 1360,1369 ----
if(len==sizeof(removeSpawnStruct))
{
+ // Hack to fix corpse clean-up change
+ deleteItem(tSpawn, rmSpawn->spawnId);
+ // End Hack
+
if(!rmSpawn->removeSpawn)
{
// Remove a spawn from outside the update radius