|
From: <cn...@us...> - 2022-04-26 00:01:48
|
Revision: 1258
http://sourceforge.net/p/seq/svn/1258
Author: cn187
Date: 2022-04-26 00:01:45 +0000 (Tue, 26 Apr 2022)
Log Message:
-----------
Update for 4/20 patch
Modified Paths:
--------------
showeq/branches/cn187_devel/ChangeLog
showeq/branches/cn187_devel/conf/zoneopcodes.xml
showeq/branches/cn187_devel/configure.in
showeq/branches/cn187_devel/src/everquest.h
showeq/branches/cn187_devel/src/interface.cpp
showeq/branches/cn187_devel/src/messageshell.cpp
showeq/branches/cn187_devel/src/spawnshell.cpp
showeq/branches/cn187_devel/src/zonemgr.cpp
Modified: showeq/branches/cn187_devel/ChangeLog
===================================================================
--- showeq/branches/cn187_devel/ChangeLog 2022-04-25 23:59:40 UTC (rev 1257)
+++ showeq/branches/cn187_devel/ChangeLog 2022-04-26 00:01:45 UTC (rev 1258)
@@ -1,3 +1,9 @@
+fransick (04/20/22)
+----------------
+- Update to version 6.2.4
+- Support for EQ patch 04/20/22
+- Opcode and struct changes (Newby, fransick)
+
cn187 (03/11/22)
----------------
- Update to version 6.2.3
Modified: showeq/branches/cn187_devel/conf/zoneopcodes.xml
===================================================================
--- showeq/branches/cn187_devel/conf/zoneopcodes.xml 2022-04-25 23:59:40 UTC (rev 1257)
+++ showeq/branches/cn187_devel/conf/zoneopcodes.xml 2022-04-26 00:01:45 UTC (rev 1258)
@@ -3,127 +3,127 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="248b" name="OP_PlayerProfile" updated="03/09/22">
+ <opcode id="6e1f" name="OP_PlayerProfile" updated="04/20/22">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="6f1a" name="OP_ZoneEntry" updated="03/09/22">
+ <opcode id="0a17" name="OP_ZoneEntry" updated="04/20/22">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4879" name="OP_TimeOfDay" updated="03/09/22">
+ <opcode id="0097" name="OP_TimeOfDay" updated="04/20/22">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1679" name="OP_NewZone" updated="03/09/22">
+ <opcode id="02c5" name="OP_NewZone" updated="04/20/22">
<comment>NewZoneCode</comment>
- <payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
+ <payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7def" name="OP_SpawnDoor" updated="03/09/22">
+ <opcode id="3e0a" name="OP_SpawnDoor" updated="04/20/22">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="7e3b" name="OP_GroundSpawn" updated="03/09/22">
+ <opcode id="5860" name="OP_GroundSpawn" updated="04/20/22">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="2d01" name="OP_SendZonePoints" updated="03/09/22">
+ <opcode id="36fc" name="OP_SendZonePoints" updated="04/20/22">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="48c4" name="OP_AAExpUpdate" updated="03/09/22">
+ <opcode id="9168" name="OP_AAExpUpdate" updated="04/20/22">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0991" name="OP_ExpUpdate" updated="03/09/22">
+ <opcode id="5a6a" name="OP_ExpUpdate" updated="04/20/22">
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6ef8" name="OP_GuildMOTD" updated="03/09/22">
+ <opcode id="14b6" name="OP_GuildMOTD" updated="04/20/22">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6719" name="OP_ClientUpdate" updated="03/09/22">
+ <opcode id="112e" name="OP_ClientUpdate" updated="04/20/22">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2f61" name="OP_NpcMoveUpdate" updated="03/09/22">
+ <opcode id="7b61" name="OP_NpcMoveUpdate" updated="04/20/22">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4d15" name="OP_MobUpdate" updated="03/09/22">
+ <opcode id="1693" name="OP_MobUpdate" updated="04/20/22">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="77ea" name="OP_DeleteSpawn" updated="03/09/22">
+ <opcode id="6b11" name="OP_DeleteSpawn" updated="04/20/22">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0c61" name="OP_RemoveSpawn" updated="03/09/22">
+ <opcode id="7121" name="OP_RemoveSpawn" updated="04/20/22">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="4b01" name="OP_Death" updated="03/09/22">
+ <opcode id="40db" name="OP_Death" updated="04/20/22">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2559" name="OP_WearChange" updated="03/09/22">
+ <opcode id="3a3c" name="OP_WearChange" updated="04/20/22">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2a2a" name="OP_SpawnAppearance" updated="03/09/22">
+ <opcode id="5f5f" name="OP_SpawnAppearance" updated="04/20/22">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
- <opcode id="54bb" name="OP_Stamina" updated="03/09/22">
+ <opcode id="2a80" name="OP_Stamina" updated="04/20/22">
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2c81" name="OP_HPUpdate" updated="03/09/22">
+ <opcode id="600e" name="OP_HPUpdate" updated="04/20/22">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4e34" name="OP_GuildMemberUpdate" updated="03/09/22">
+ <opcode id="52f1" name="OP_GuildMemberUpdate" updated="04/20/22">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="7edf" name="OP_ClickObject" updated="03/09/22">
+ <opcode id="1581" name="OP_ClickObject" updated="04/20/22">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7bcd" name="OP_Action" updated="03/09/22">
+ <opcode id="2e2f" name="OP_Action" updated="04/20/22">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5c2d" name="OP_Action2" updated="03/09/22">
+ <opcode id="1cc5" name="OP_Action2" updated="04/20/22">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="528d" name="OP_Consider" updated="03/09/22">
+ <opcode id="7936" name="OP_Consider" updated="04/20/22">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="568b" name="OP_TargetMouse" updated="03/09/22">
+ <opcode id="7aae" name="OP_TargetMouse" updated="04/20/22">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6a1e" name="OP_SpawnRename" updated="03/09/22">
+ <opcode id="28ed" name="OP_SpawnRename" updated="04/20/22">
<comment>Spawns getting renamed after initial NewSpawn</comment>
<payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2a93" name="OP_Illusion" updated="03/09/22">
+ <opcode id="0da2" name="OP_Illusion" updated="04/20/22">
<comment>Spawn being illusioned (changing forms)</comment>
<payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5606" name="OP_Shroud" updated="03/09/22">
+ <opcode id="6904" name="OP_Shroud" updated="04/20/22">
<comment>Server putting players into shroud form</comment>
<payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
</opcode>
- <opcode id="728a" name="OP_ZoneChange" updated="03/09/22">
+ <opcode id="7084" name="OP_ZoneChange" updated="04/20/22">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -163,55 +163,55 @@
<comment>Group leader change</comment>
<payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2222" name="OP_Buff" updated="03/09/22">
+ <opcode id="4ff0" name="OP_Buff" updated="04/20/22">
<comment>old BuffDropCode</comment>
<payload dir="both" typename="buffStruct" sizechecktype="match"/>
</opcode>
- <opcode id="59c8" name="OP_BeginCast" updated="03/09/22">
+ <opcode id="2b64" name="OP_BeginCast" updated="04/20/22">
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="643f" name="OP_CastSpell" updated="03/09/22">
+ <opcode id="4296" name="OP_CastSpell" updated="04/20/22">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6481" name="OP_SwapSpell" updated="03/09/22">
+ <opcode id="2654" name="OP_SwapSpell" updated="04/20/22">
<comment>TradeSpellBookSlotsCode</comment>
<payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0ed9" name="OP_MemorizeSpell" updated="03/09/22">
+ <opcode id="6041" name="OP_MemorizeSpell" updated="04/20/22">
<comment>MemSpellCode</comment>
<payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
</opcode>
- <opcode id="64de" name="OP_InspectAnswer" updated="03/09/22">
+ <opcode id="1d5f" name="OP_InspectAnswer" updated="04/20/22">
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
- <opcode id="106d" name="OP_Emote" updated="03/09/22">
+ <opcode id="3ed9" name="OP_Emote" updated="04/20/22">
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0418" name="OP_SimpleMessage" updated="03/09/22">
+ <opcode id="9d7a" name="OP_SimpleMessage" updated="04/20/22">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="735a" name="OP_FormattedMessage" updated="03/09/22">
+ <opcode id="6736" name="OP_FormattedMessage" updated="04/20/22">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="7a33" name="OP_CommonMessage" updated="03/09/22">
+ <opcode id="408a" name="OP_CommonMessage" updated="04/20/22">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="7970" name="OP_SpecialMesg" updated="03/09/22">
+ <opcode id="7356" name="OP_SpecialMesg" updated="04/20/22">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="67c4" name="OP_RandomReq" updated="03/09/22">
+ <opcode id="2970" name="OP_RandomReq" updated="04/20/22">
<comment>RandomReqCode</comment>
<payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6a8b" name="OP_RandomReply" updated="03/09/22">
+ <opcode id="54f4" name="OP_RandomReply" updated="04/20/22">
<comment>RandomCode</comment>
<payload dir="server" typename="randomStruct" sizechecktype="match"/>
</opcode>
@@ -223,36 +223,36 @@
<comment>Server replying with deny information after /deny</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1248" name="OP_ManaChange" updated="03/09/22">
+ <opcode id="6ebb" name="OP_ManaChange" updated="04/20/22">
<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="7329" name="OP_BazaarSearchRequest" updated="03/09/22">
+ <opcode id="7707" name="OP_BazaarSearchRequest" updated="04/20/22">
<comment>Bazaar search request </comment>
<payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/>
</opcode>
- <opcode id="71c7" name="OP_BazaarSearchResponse" updated="03/09/22">
+ <opcode id="4b3e" name="OP_BazaarSearchResponse" updated="04/20/22">
<comment>Bazaar search Response - Struct incorrect </comment>
<payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="11ef" name="OP_MoneyOnCorpse" updated="03/09/22">
+ <opcode id="5458" name="OP_MoneyOnCorpse" updated="04/20/22">
<comment>MoneyOnCorpseCode</comment>
<payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="31f0" name="OP_SkillUpdate" updated="03/09/22">
+ <opcode id="528d" name="OP_SkillUpdate" updated="04/20/22">
<comment>Skill up code</comment>
<payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
</opcode>
- <opcode id="546b" name="OP_LevelUpdate" updated="03/09/22">
+ <opcode id="3edb" name="OP_LevelUpdate" updated="04/20/22">
<comment>LevelUpUpdateCode</comment>
<payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1415" name="OP_DzSwitchInfo" updated="03/09/22">
+ <opcode id="08eb" name="OP_DzSwitchInfo" updated="04/20/22">
<comment>Expedition compass etc</comment>
<payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
</opcode>
- <opcode id="5b33" name="OP_DzInfo" updated="03/09/22">
+ <opcode id="9040" name="OP_DzInfo" updated="04/20/22">
<comment>Expedition Information</comment>
<payload dir="server" typename="dzInfo" sizechecktype="match"/>
</opcode>
@@ -260,11 +260,11 @@
<comment>Environmental Damage</comment>
<payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="50f7" name="OP_SetRunMode" updated="03/09/22">
+ <opcode id="5b1f" name="OP_SetRunMode" updated="04/20/22">
<comment>old cRunToggleCode</comment>
<payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/>
</opcode>
- <opcode id="196f" name="OP_Trader" updated="03/09/22">
+ <opcode id="2c87" name="OP_Trader" updated="04/20/22">
<comment>PC's turning trader on and off</comment>
<payload dir="server" typename="bazaarTraderRequest" sizechecktype="match"/>
</opcode>
@@ -307,15 +307,15 @@
<comment>List of group members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="60db" name="OP_GuildMemberList" updated="03/09/22">
+ <opcode id="2f79" name="OP_GuildMemberList" updated="04/20/22">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="76c9" name="OP_ManaUpdate" updated="03/09/22">
+ <opcode id="7102" name="OP_ManaUpdate" updated="04/20/22">
<comment>Mana Update opcode - 10 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3749" name="OP_EndUpdate" updated="03/09/22">
+ <opcode id="1cf4" name="OP_EndUpdate" updated="04/20/22">
<comment>Endurance Update opcode - 10 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -367,7 +367,7 @@
<comment>Fellowship information - 2576 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="5498" name="OP_ExpandedGuildInfo" updated="03/09/22">
+ <opcode id="63f9" name="OP_ExpandedGuildInfo" updated="04/20/22">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -535,11 +535,11 @@
<comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1229" name="OP_GuildsInZoneList" updated="03/09/22">
+ <opcode id="012e" name="OP_GuildsInZoneList" updated="04/20/22">
<comment>Listing of guild names present in the current zone. Generally seen on zoning</comment>
<payload dir="server" typename="guildsInZoneListStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0e48" name="OP_NewGuildInZone" updated="03/09/22">
+ <opcode id="46eb" name="OP_NewGuildInZone" updated="04/20/22">
<comment>An additional guild name has appeared in the current zone. Seen when a guilded player enters the current zone</comment>
<payload dir="server" typename="newGuildInZoneStruct" sizechecktype="none"/>
</opcode>
@@ -595,7 +595,7 @@
<comment>Free to play nags and other data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="37c2" name="OP_Find" updated="03/09/22">
+ <opcode id="65ba" name="OP_Find" updated="04/20/22">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
Modified: showeq/branches/cn187_devel/configure.in
===================================================================
--- showeq/branches/cn187_devel/configure.in 2022-04-25 23:59:40 UTC (rev 1257)
+++ showeq/branches/cn187_devel/configure.in 2022-04-26 00:01:45 UTC (rev 1258)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.2.3)
+AC_INIT(showeq, 6.2.4)
AC_CONFIG_SRCDIR(src/main.cpp)
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_SYSTEM
Modified: showeq/branches/cn187_devel/src/everquest.h
===================================================================
--- showeq/branches/cn187_devel/src/everquest.h 2022-04-25 23:59:40 UTC (rev 1257)
+++ showeq/branches/cn187_devel/src/everquest.h 2022-04-26 00:01:45 UTC (rev 1258)
@@ -1115,26 +1115,29 @@
struct
{
- signed deltaX:13; // change in x
- signed deltaHeading:10; // change in heading
- unsigned padding00:9;
+ signed deltaZ:13; // change in z
+ signed x:19; // x coord (1st loc value)
- signed animation:10; // current animation
unsigned pitch:12; // pitch (up/down heading)
- unsigned padding01:10;
+ signed deltaY:13; // change in y
+ unsigned padding01:7;
- unsigned heading:12; // heading
- signed x:19; // x coord (1st loc value)
- unsigned padding02:1;
+ signed deltaX:13; // change in x
+ signed animation:10; // current animation
+ unsigned padding02:9;
signed z:19; // z coord (3rd loc value)
- signed deltaZ:13; // change in z
+ unsigned padding03:13;
- signed deltaY:13; // change in y
signed y:19; // y coord (2nd loc value)
+ unsigned heading:12; // heading
+ unsigned padding04:1;
+ signed deltaHeading:10; // change in heading
+ unsigned padding05:22;
+
};
- int32_t posData[5];
+ int32_t posData[6];
};
/*0000*/ union
@@ -2033,12 +2036,13 @@
{
/*0000*/ uint16_t target; // Target ID
/*0002*/ uint16_t source; // Source ID
-/*0004*/ uint8_t type; // Bash, kick, cast, etc.
-/*0005*/ int16_t spell; // SpellID
-/*0007*/ int32_t damage;
-/*0011*/ uint8_t unknown0011[17]; // ***Placeholder
-/*0028*/ uint8_t unknown0028[6]; // ***Placeholder (11/24/07)
-/*0034*/
+/*0004*/ uint8_t unknown0004[16];
+/*0020*/ int16_t spell; // SpellID
+/*0022*/ int32_t damage;
+/*0026*/ uint8_t uknown0026[10];
+/*0036*/ uint8_t type; // Bash, kick, cast, etc.
+/*0037*/ uint8_t unknown0011[3];
+/*0040*/
};
// This can be used to gather info on spells cast on us
@@ -2046,15 +2050,13 @@
{
/*0000*/ uint16_t target; // Target ID
/*0002*/ uint16_t source; // SourceID
-/*0004*/ uint8_t level; // Caster level
-/*0005*/ uint8_t unknown0005[27]; // ***Placeholder
-/*0032*/ uint8_t type; // Casts, Falls, Bashes, etc...
-/*0033*/ uint8_t unknown0033[16];
-/*0049*/ int16_t spell; // SpellID
-/*0051*/ uint8_t unknown0051[2]; // ***Placeholder
-/*0053*/ uint8_t unknown0053[2]; // ***Placeholder
-/*0055*/ uint8_t unknown0055[3]; // ***Placeholder
-/*0058*/
+/*0004*/ int16_t spell; // SpellID
+/*0006*/ uint8_t unknown0006[6];
+/*0012*/ uint8_t level; // Caster level
+/*0013*/ uint8_t unknown0013[43]; // ***Placeholder
+/*0056*/ uint8_t type; // Casts, Falls, Bashes, etc...
+/*0057*/ uint8_t unknown0057[7];
+/*0064*/
};
// Starting with 2/21/2006, OP_Actions seem to come in pairs, duplicating
@@ -2064,16 +2066,13 @@
{
/*0000*/ uint16_t target; // Target ID
/*0002*/ uint16_t source; // SourceID
-/*0004*/ uint8_t level; // Caster level
-/*0005*/ uint8_t unknown0005[27]; // ***Placeholder
-/*0032*/ uint8_t type; // Casts, Falls, Bashes, etc...
-/*0033*/ uint8_t unknown0033[16];
-/*0049*/ int16_t spell; // SpellID
-/*0051*/ uint8_t unknown0051[2]; // ***Placeholder
-/*0053*/ uint32_t unknown0053;
-/*0057*/ uint32_t unknown0057;
-/*0061*/ uint8_t unknown0061[15];
-/*0076*/
+/*0004*/ int16_t spell; // SpellID
+/*0006*/ uint8_t unknown0006[6];
+/*0012*/ uint8_t level; // Caster level
+/*0013*/ uint8_t unknown0013[43]; // ***Placeholder
+/*0056*/ uint8_t type; // Casts, Falls, Bashes, etc...
+/*0057*/ uint8_t unknown0057[31];
+/*0088*/
};
/*
@@ -2387,7 +2386,7 @@
/*
** Player Position Update
-** Length: 24 Octets
+** Length: 28 Octets
** OpCode: PlayerPosCode
*/
struct playerSpawnPosStruct
@@ -2395,29 +2394,32 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
- signed deltaX:13; // change in x
- signed deltaHeading:10; // change in heading
- unsigned padding00:9;
+ signed deltaZ:13; // change in z
+ signed x:19; // x coord (1st loc value)
/*0008*/
- signed animation:10; // current animation
unsigned pitch:12; // pitch (up/down heading)
- unsigned padding01:10;
+ signed deltaY:13; // change in y
+ unsigned padding01:7;
/*0012*/
- unsigned heading:12; // heading
- signed x:19; // x coord (1st loc value)
- unsigned padding02:1;
+ signed deltaX:13; // change in x
+ signed animation:10; // current animation
+ unsigned padding02:9;
/*0016*/
signed z:19; // z coord (3rd loc value)
- signed deltaZ:13; // change in z
+ unsigned padding03:13;
/*0020*/
- signed deltaY:13; // change in y
signed y:19; // y coord (2nd loc value)
+ unsigned heading:12; // heading
+ unsigned padding04:1;
/*0024*/
+ signed deltaHeading:10; // change in heading
+ unsigned padding05:22;
+/*0028*/
};
/*
** Self Position Update
-** Length: 38 Octets
+** Length: 42 Octets
** OpCode: PlayerPosCode
*/
struct playerSelfPosStruct
@@ -2426,25 +2428,28 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- float x; // x coord (1st loc value)
+ unsigned heading:12; // heading
+ unsigned padding00:20;
/*0010*/
- float deltaY; // change in y
+ float deltaZ; // change in z
/*0014*/
- float y; // y coord (2nd loc value)
+ unsigned pitch:12; // pitch (up/down heading)
+ signed deltaHeading:10; // change in heading
+ unsigned padding02:10;
/*0018*/
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding03:20;
+ float x; // x coord (1st loc value)
/*0022*/
- float z; // z coord (3rd loc value)
+ float y; // y coord (2nd loc value)
/*0026*/
- float deltaZ; // change in z
+ signed animation:10; // current animation
+ unsigned padding05:22;
/*0030*/
- signed animation:10; // current animation
- unsigned heading:12; // heading
- signed deltaHeading:10; // change in heading
+ float deltaX; // change in x
/*0034*/
- float deltaX; // change in x
+ float z; // z coord (3rd loc value)
/*0038*/
+ float deltaY; // change in y
+/*0042*/
};
/*
@@ -2621,7 +2626,7 @@
/*
** buffStruct
-** Length: 120 Octets
+** Length: 168 Octets
**
*/
@@ -2628,16 +2633,16 @@
struct buffStruct
{
/*0000*/ uint32_t spawnid; //spawn id
-/*0004*/ uint8_t unknown0004[64];
-/*0068*/ uint32_t spellid; // spellid
-/*0072*/ uint32_t duration; // Time remaining in ticks
-/*0076*/ int32_t unknown0024; // Buff length in ticks
-/*0080*/ uint8_t unknown0080[25];
-/*0105*/ int8_t level; // Level of person who cast buff
-/*0106*/ uint8_t unknown0106[6];
-/*0112*/ uint32_t spellslot; // buff slot in buff window
-/*0116*/ uint32_t changetype; // 1=buff fading,2=buff duration
-/*0120*/
+/*0004*/ uint8_t unknown0004[112];
+/*0116*/ uint32_t spellid; // spellid
+/*0120*/ uint32_t duration; // Time remaining in ticks
+/*0124*/ int32_t unknown0024; // Buff length in ticks
+/*0128*/ uint8_t unknown0080[25];
+/*0153*/ int8_t level; // Level of person who cast buff
+/*0154*/ uint8_t unknown0106[6];
+/*0160*/ uint32_t spellslot; // buff slot in buff window
+/*0164*/ uint32_t changetype; // 1=buff fading,2=buff duration
+/*0168*/
};
/*
Modified: showeq/branches/cn187_devel/src/interface.cpp
===================================================================
--- showeq/branches/cn187_devel/src/interface.cpp 2022-04-25 23:59:40 UTC (rev 1257)
+++ showeq/branches/cn187_devel/src/interface.cpp 2022-04-26 00:01:45 UTC (rev 1258)
@@ -1954,7 +1954,7 @@
"zoneChangeStruct", SZC_Match,
m_zoneMgr, SLOT(zoneChange(const uint8_t*, size_t, uint8_t)));
m_packet->connect2("OP_NewZone", SP_Zone, DIR_Server,
- "newZoneStruct", SZC_Match,
+ "uint8_t", SZC_None,
m_zoneMgr, SLOT(zoneNew(const uint8_t*, size_t, uint8_t)));
m_packet->connect2("OP_SendZonePoints", SP_Zone, DIR_Server,
"zonePointsStruct", SZC_None,
@@ -2100,7 +2100,7 @@
"none", SZC_Match,
m_messageShell, SLOT(logOut(const uint8_t*, size_t, uint8_t)));
m_packet->connect2("OP_NewZone", SP_Zone, DIR_Server,
- "newZoneStruct", SZC_Match,
+ "uint8_t", SZC_None,
m_messageShell, SLOT(zoneNew(const uint8_t*, size_t, uint8_t)));
connect(m_zoneMgr, SIGNAL(zoneBegin(const ClientZoneEntryStruct*, size_t, uint8_t)),
m_messageShell, SLOT(zoneEntryClient(const ClientZoneEntryStruct*)));
Modified: showeq/branches/cn187_devel/src/messageshell.cpp
===================================================================
--- showeq/branches/cn187_devel/src/messageshell.cpp 2022-04-25 23:59:40 UTC (rev 1257)
+++ showeq/branches/cn187_devel/src/messageshell.cpp 2022-04-26 00:01:45 UTC (rev 1258)
@@ -430,13 +430,14 @@
m_messages->addMessage(MT_Zone, tempStr);
}
-void MessageShell::zoneNew(const uint8_t* data, size_t, uint8_t dir)
+void MessageShell::zoneNew(const uint8_t* data, size_t len, uint8_t dir)
{
- const newZoneStruct* zoneNew = (const newZoneStruct*)data;
+ NetStream netStream(data, len);
+ QString newZoneShortName = netStream.readText ();
+ QString newZoneLongName = netStream.readText ();
QString tempStr;
tempStr = "NewCode: Zone: ";
- tempStr += QString(zoneNew->shortName) + " ("
- + zoneNew->longName + ")";
+ tempStr += newZoneShortName + " (" + newZoneLongName + ")";
m_messages->addMessage(MT_Zone, tempStr);
}
Modified: showeq/branches/cn187_devel/src/spawnshell.cpp
===================================================================
--- showeq/branches/cn187_devel/src/spawnshell.cpp 2022-04-25 23:59:40 UTC (rev 1257)
+++ showeq/branches/cn187_devel/src/spawnshell.cpp 2022-04-26 00:01:45 UTC (rev 1258)
@@ -689,7 +689,7 @@
netStream.readText(); // skip 3 variable len strings
netStream.readText();
netStream.readText();
- netStream.skipBytes(53); // and 53 static bytes
+ netStream.skipBytes(58); // and 58 static bytes
}
spawn->charProperties = netStream.readUInt8();
Modified: showeq/branches/cn187_devel/src/zonemgr.cpp
===================================================================
--- showeq/branches/cn187_devel/src/zonemgr.cpp 2022-04-25 23:59:40 UTC (rev 1257)
+++ showeq/branches/cn187_devel/src/zonemgr.cpp 2022-04-26 00:01:45 UTC (rev 1258)
@@ -621,7 +621,39 @@
void ZoneMgr::zoneNew(const uint8_t* data, size_t len, uint8_t dir)
{
- const newZoneStruct* zoneNew = (const newZoneStruct*)data;
+ newZoneStruct *zoneNew = new newZoneStruct;
+ memset (zoneNew, 0, sizeof (newZoneStruct));
+ NetStream netStream (data, len);
+
+ QString shortName = netStream.readText ();
+ if (shortName.length ())
+ strcpy (zoneNew->shortName, shortName.toLatin1().data());
+
+ QString longName = netStream.readText ();
+ if (longName.length ())
+ strcpy (zoneNew->longName, longName.toLatin1().data());
+
+ netStream.skipBytes (2);
+
+ QString zonefile = netStream.readText ();
+ if (zonefile.length ())
+ strcpy (zoneNew->zonefile, zonefile.toLatin1().data());
+
+ netStream.skipBytes (90);
+
+ union { uint32_t n; float f; } x;
+ x.n = netStream.readUInt32NC();
+ zoneNew->zone_exp_multiplier = x.f;
+
+ netStream.skipBytes (28);
+
+ x.n = netStream.readUInt32NC();
+ zoneNew->safe_y = x.f;
+ x.n = netStream.readUInt32NC();
+ zoneNew->safe_x = x.f;
+ x.n = netStream.readUInt32NC();
+ zoneNew->safe_z = x.f;
+
m_safePoint.setPoint(lrintf(zoneNew->safe_x), lrintf(zoneNew->safe_y),
lrintf(zoneNew->safe_z));
m_zone_exp_multiplier = zoneNew->zone_exp_multiplier;
@@ -670,6 +702,8 @@
if (showeq_params->saveZoneState)
saveZoneState();
+
+ delete zoneNew;
}
void ZoneMgr::zonePoints(const uint8_t* data, size_t len, uint8_t)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|