You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(18) |
Oct
(11) |
Nov
(9) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
(6) |
Mar
|
Apr
(10) |
May
(38) |
Jun
(15) |
Jul
(32) |
Aug
|
Sep
(17) |
Oct
(11) |
Nov
|
Dec
(14) |
2006 |
Jan
(2) |
Feb
(5) |
Mar
(3) |
Apr
(2) |
May
(3) |
Jun
(7) |
Jul
|
Aug
|
Sep
(3) |
Oct
(2) |
Nov
(6) |
Dec
(3) |
2007 |
Jan
|
Feb
(17) |
Mar
(5) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
(11) |
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
(6) |
Jul
|
Aug
|
Sep
(6) |
Oct
(4) |
Nov
(1) |
Dec
|
2009 |
Jan
(3) |
Feb
(2) |
Mar
(4) |
Apr
|
May
(4) |
Jun
(3) |
Jul
|
Aug
(5) |
Sep
(3) |
Oct
(2) |
Nov
|
Dec
(6) |
2010 |
Jan
|
Feb
(6) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(8) |
Aug
|
Sep
(2) |
Oct
(2) |
Nov
(4) |
Dec
(5) |
2013 |
Jan
(2) |
Feb
|
Mar
(2) |
Apr
(2) |
May
(1) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
|
Oct
(2) |
Nov
(2) |
Dec
(2) |
2014 |
Jan
(3) |
Feb
(2) |
Mar
(3) |
Apr
(4) |
May
(4) |
Jun
(3) |
Jul
(4) |
Aug
(5) |
Sep
|
Oct
(2) |
Nov
(5) |
Dec
(2) |
2015 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
(10) |
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(4) |
Aug
(2) |
Sep
(2) |
Oct
(3) |
Nov
(4) |
Dec
(2) |
2017 |
Jan
(2) |
Feb
|
Mar
(2) |
Apr
(4) |
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
2018 |
Jan
(4) |
Feb
(2) |
Mar
(2) |
Apr
(2) |
May
(2) |
Jun
(2) |
Jul
(8) |
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
(4) |
Dec
(6) |
2019 |
Jan
(2) |
Feb
(2) |
Mar
(2) |
Apr
(4) |
May
(2) |
Jun
(3) |
Jul
(3) |
Aug
(2) |
Sep
(2) |
Oct
(13) |
Nov
(6) |
Dec
(4) |
2020 |
Jan
(7) |
Feb
(7) |
Mar
(7) |
Apr
(8) |
May
(5) |
Jun
(3) |
Jul
(10) |
Aug
(4) |
Sep
|
Oct
(37) |
Nov
(30) |
Dec
(8) |
2021 |
Jan
(14) |
Feb
(9) |
Mar
(7) |
Apr
(17) |
May
(3) |
Jun
(10) |
Jul
(7) |
Aug
(3) |
Sep
(3) |
Oct
(4) |
Nov
(15) |
Dec
(22) |
2022 |
Jan
(3) |
Feb
(3) |
Mar
(3) |
Apr
(3) |
May
(3) |
Jun
(3) |
Jul
(3) |
Aug
(5) |
Sep
(6) |
Oct
(4) |
Nov
(34) |
Dec
(17) |
2023 |
Jan
(3) |
Feb
(3) |
Mar
(29) |
Apr
(2) |
May
(18) |
Jun
(12) |
Jul
(12) |
Aug
(2) |
Sep
(7) |
Oct
(2) |
Nov
(2) |
Dec
(2) |
2024 |
Jan
(2) |
Feb
(10) |
Mar
(17) |
Apr
(6) |
May
(3) |
Jun
(9) |
Jul
(22) |
Aug
(48) |
Sep
(3) |
Oct
(2) |
Nov
(2) |
Dec
(8) |
2025 |
Jan
(3) |
Feb
(2) |
Mar
(9) |
Apr
(7) |
May
(3) |
Jun
(3) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <cn...@us...> - 2021-04-22 14:42:25
|
Revision: 1160 http://sourceforge.net/p/seq/svn/1160 Author: cn187 Date: 2021-04-22 14:42:23 +0000 (Thu, 22 Apr 2021) Log Message: ----------- Release 6.1.1 - Updated version to 6.1.1 - Support for EQ Patch 04/21/21 - Struct and opcode updates (Newby, cn187) Modified Paths: -------------- showeq/trunk/ChangeLog showeq/trunk/conf/zoneopcodes.xml showeq/trunk/configure.in showeq/trunk/src/everquest.h Modified: showeq/trunk/ChangeLog =================================================================== --- showeq/trunk/ChangeLog 2021-03-13 01:10:42 UTC (rev 1159) +++ showeq/trunk/ChangeLog 2021-04-22 14:42:23 UTC (rev 1160) @@ -1,3 +1,9 @@ +cn187 (04/22/21) +---------------- +- Updated version to 6.1.1 +- Support for EQ patch 04/21/21 +- Opcode and struct updates (Newby, cn187) + cn187 (03/10/21) ---------------- - Updated version to 6.1.0.0 Modified: showeq/trunk/conf/zoneopcodes.xml =================================================================== --- showeq/trunk/conf/zoneopcodes.xml 2021-03-13 01:10:42 UTC (rev 1159) +++ showeq/trunk/conf/zoneopcodes.xml 2021-04-22 14:42:23 UTC (rev 1160) @@ -3,127 +3,127 @@ <seqopcodes> <!-- Critical opcodes used directly by ShowEQ --> - <opcode id="5983" name="OP_PlayerProfile" updated="03/10/21"> + <opcode id="73c6" name="OP_PlayerProfile" updated="04/21/21"> <comment>CharProfileCode</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="0ed0" name="OP_ZoneEntry" updated="03/10/21"> + <opcode id="5982" name="OP_ZoneEntry" updated="04/21/21"> <comment>ZoneEntryCode</comment> <payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="23bd" name="OP_TimeOfDay" updated="03/10/21"> + <opcode id="5962" name="OP_TimeOfDay" updated="04/21/21"> <comment>TimeOfDayCode</comment> <payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/> </opcode> - <opcode id="2d9e" name="OP_NewZone" updated="03/10/21"> + <opcode id="476e" name="OP_NewZone" updated="04/21/21"> <comment>NewZoneCode</comment> <payload dir="server" typename="newZoneStruct" sizechecktype="match"/> </opcode> - <opcode id="7e49" name="OP_SpawnDoor" updated="03/10/21"> + <opcode id="348a" name="OP_SpawnDoor" updated="04/21/21"> <comment>DoorSpawnsCode</comment> <payload dir="server" typename="doorStruct" sizechecktype="modulus"/> </opcode> - <opcode id="4351" name="OP_GroundSpawn" updated="03/10/21"> + <opcode id="6479" name="OP_GroundSpawn" updated="04/21/21"> <comment>MakeDropCode</comment> <payload dir="server" typename="makeDropStruct" sizechecktype="none"/> <payload dir="client" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="1857" name="OP_SendZonePoints" updated="03/10/21"> + <opcode id="600d" name="OP_SendZonePoints" updated="04/21/21"> <comment>Coords in a zone that will port you to another zone</comment> <payload dir="server" typename="zonePointsStruct" sizechecktype="none"/> </opcode> - <opcode id="01cf" name="OP_AAExpUpdate" updated="03/10/21"> + <opcode id="38f8" name="OP_AAExpUpdate" updated="04/21/21"> <comment>Receiving AA experience. Also when percent to AA changes.</comment> <payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="6f2b" name="OP_ExpUpdate" updated="03/10/21"> + <opcode id="44af" name="OP_ExpUpdate" updated="04/21/21"> <comment>ExpUpdateCode</comment> <payload dir="server" typename="expUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="6f37" name="OP_GuildMOTD" updated="03/10/21"> + <opcode id="72c8" name="OP_GuildMOTD" updated="04/21/21"> <comment>GuildMOTD</comment> <payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/> </opcode> - <opcode id="2c42" name="OP_ClientUpdate" updated="03/10/21"> + <opcode id="3f4f" name="OP_ClientUpdate" updated="04/21/21"> <comment>Position updates</comment> <payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/> <payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/> </opcode> - <opcode id="3b1b" name="OP_NpcMoveUpdate" updated="03/10/21"> + <opcode id="19ad" name="OP_NpcMoveUpdate" updated="04/21/21"> <comment>Position updates</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="47e4" name="OP_MobUpdate" updated="03/10/21"> + <opcode id="6284" name="OP_MobUpdate" updated="04/21/21"> <comment>MobUpdateCode</comment> <payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/> </opcode> - <opcode id="3180" name="OP_DeleteSpawn" updated="03/10/21"> + <opcode id="6241" name="OP_DeleteSpawn" updated="04/21/21"> <comment>DeleteSpawnCode</comment> <payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/> </opcode> - <opcode id="4513" name="OP_RemoveSpawn" updated="03/10/21"> + <opcode id="4732" name="OP_RemoveSpawn" updated="04/21/21"> <comment>Remove spawn from zone</comment> <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/> </opcode> - <opcode id="66d5" name="OP_Death" updated="03/10/21"> + <opcode id="19a8" name="OP_Death" updated="04/21/21"> <comment>old NewCorpseCode</comment> <payload dir="server" typename="newCorpseStruct" sizechecktype="match"/> </opcode> - <opcode id="01dd" name="OP_WearChange" updated="03/10/21"> + <opcode id="7d1b" name="OP_WearChange" updated="04/21/21"> <comment>SpawnUpdateCode</comment> <payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="1360" name="OP_SpawnAppearance" updated="03/10/21"> + <opcode id="26cb" name="OP_SpawnAppearance" updated="04/21/21"> <comment>SpawnAppearanceCode</comment> <payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/> </opcode> - <opcode id="2ceb" name="OP_Stamina" updated="03/10/21"> + <opcode id="1e83" name="OP_Stamina" updated="04/21/21"> <comment>Server updating on hunger/thirst</comment> <payload dir="server" typename="staminaStruct" sizechecktype="match"/> </opcode> - <opcode id="0221" name="OP_HPUpdate" updated="03/10/21"> + <opcode id="5a2a" name="OP_HPUpdate" updated="04/21/21"> <comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment> <payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="0a4a" name="OP_GuildMemberUpdate" updated="03/10/21"> + <opcode id="6427" name="OP_GuildMemberUpdate" updated="04/21/21"> <comment>Info regarding guild members</comment> <payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/> </opcode> - <opcode id="3645" name="OP_ClickObject" updated="03/10/21"> + <opcode id="51f2" name="OP_ClickObject" updated="04/21/21"> <comment>Items dropped on the ground</comment> <payload dir="both" typename="remDropStruct" sizechecktype="match"/> </opcode> - <opcode id="269c" name="OP_Action" updated="03/10/21"> + <opcode id="2c05" name="OP_Action" updated="04/21/21"> <comment>Spells cast etc</comment> <payload dir="both" typename="actionStruct" sizechecktype="match"/> <payload dir="both" typename="actionAltStruct" sizechecktype="match"/> </opcode> - <opcode id="7880" name="OP_Action2" updated="03/10/21"> + <opcode id="217b" name="OP_Action2" updated="04/21/21"> <comment>Combat actions i.e. bash, kick etc</comment> <payload dir="both" typename="action2Struct" sizechecktype="match"/> </opcode> - <opcode id="35f7" name="OP_Consider" updated="03/10/21"> + <opcode id="29ca" name="OP_Consider" updated="04/21/21"> <comment>ConsiderCode</comment> <payload dir="both" typename="considerStruct" sizechecktype="match"/> </opcode> - <opcode id="77ea" name="OP_TargetMouse" updated="03/10/21"> + <opcode id="0621" name="OP_TargetMouse" updated="04/21/21"> <comment>Targeting a person - old ClientTargetCode</comment> <payload dir="both" typename="clientTargetStruct" sizechecktype="match"/> </opcode> - <opcode id="360a" name="OP_SpawnRename" updated="03/10/21"> + <opcode id="6223" name="OP_SpawnRename" updated="04/21/21"> <comment>Spawns getting renamed after initial NewSpawn</comment> <payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/> </opcode> - <opcode id="3a49" name="OP_Illusion" updated="03/10/21"> + <opcode id="50d9" name="OP_Illusion" updated="04/21/21"> <comment>Spawn being illusioned (changing forms)</comment> <payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/> </opcode> - <opcode id="1886" name="OP_Shroud" updated="03/10/21"> + <opcode id="4119" name="OP_Shroud" updated="04/21/21"> <comment>Server putting players into shroud form</comment> <payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/> </opcode> - <opcode id="21c7" name="OP_ZoneChange" updated="03/10/21"> + <opcode id="35da" name="OP_ZoneChange" updated="04/21/21"> <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="3e30" name="OP_Buff" updated="03/10/21"> + <opcode id="22bc" name="OP_Buff" updated="04/21/21"> <comment>old BuffDropCode</comment> <payload dir="both" typename="buffStruct" sizechecktype="match"/> </opcode> - <opcode id="52ee" name="OP_BeginCast" updated="03/10/21"> + <opcode id="3dbe" name="OP_BeginCast" updated="04/21/21"> <comment>BeginCastCode</comment> <payload dir="both" typename="beginCastStruct" sizechecktype="match"/> </opcode> - <opcode id="4bb2" name="OP_CastSpell" updated="03/10/21"> + <opcode id="5a44" name="OP_CastSpell" updated="04/21/21"> <comment>StartCastCode</comment> <payload dir="both" typename="startCastStruct" sizechecktype="match"/> </opcode> - <opcode id="2e32" name="OP_SwapSpell" updated="03/10/21"> + <opcode id="32ee" name="OP_SwapSpell" updated="04/21/21"> <comment>TradeSpellBookSlotsCode</comment> <payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/> </opcode> - <opcode id="5336" name="OP_MemorizeSpell" updated="03/10/21"> + <opcode id="5c57" name="OP_MemorizeSpell" updated="04/21/21"> <comment>MemSpellCode</comment> <payload dir="both" typename="memSpellStruct" sizechecktype="match"/> </opcode> - <opcode id="19be" name="OP_InspectAnswer" updated="03/10/21"> + <opcode id="6db3" name="OP_InspectAnswer" updated="04/21/21"> <comment>InspectDataCode</comment> <payload dir="both" typename="inspectDataStruct" sizechecktype="match"/> </opcode> - <opcode id="01dc" name="OP_Emote" updated="03/10/21"> + <opcode id="6265" name="OP_Emote" updated="04/21/21"> <comment>EmoteTextCode</comment> <payload dir="both" typename="emoteTextStruct" sizechecktype="none"/> </opcode> - <opcode id="56ec" name="OP_SimpleMessage" updated="03/10/21"> + <opcode id="11e0" name="OP_SimpleMessage" updated="04/21/21"> <comment>SimpleMessageCode</comment> <payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/> </opcode> - <opcode id="5881" name="OP_FormattedMessage" updated="03/10/21"> + <opcode id="4e52" name="OP_FormattedMessage" updated="04/21/21"> <comment>FormattedMessageCode i.e. pet dismissed etc</comment> <payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="4e14" name="OP_CommonMessage" updated="03/10/21"> + <opcode id="6f00" name="OP_CommonMessage" updated="04/21/21"> <comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment> <payload dir="both" typename="channelMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="7a84" name="OP_SpecialMesg" updated="03/10/21"> + <opcode id="165c" name="OP_SpecialMesg" updated="04/21/21"> <comment>Communicate textual info to client including hail responses etc</comment> <payload dir="server" typename="specialMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="5054" name="OP_RandomReq" updated="03/10/21"> + <opcode id="260d" name="OP_RandomReq" updated="04/21/21"> <comment>RandomReqCode</comment> <payload dir="client" typename="randomReqStruct" sizechecktype="match"/> </opcode> - <opcode id="686a" name="OP_RandomReply" updated="03/10/21"> + <opcode id="5b74" name="OP_RandomReply" updated="04/21/21"> <comment>RandomCode</comment> <payload dir="server" typename="randomStruct" sizechecktype="match"/> </opcode> @@ -223,16 +223,16 @@ <comment>Server replying with deny information after /deny</comment> <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/> </opcode> - <opcode id="5f03" name="OP_ManaChange" updated="03/10/21"> + <opcode id="7d0f" name="OP_ManaChange" updated="04/21/21"> <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="0a42" name="OP_BazaarSearchRequest" updated="03/10/21"> + <opcode id="03d6" name="OP_BazaarSearchRequest" updated="04/21/21"> <comment>Bazaar search request </comment> <payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/> </opcode> - <opcode id="521b" name="OP_BazaarSearchResponse" updated="03/10/21"> + <opcode id="32e1" name="OP_BazaarSearchResponse" updated="04/21/21"> <comment>Bazaar search Response - Struct incorrect </comment> <payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/> </opcode> @@ -240,19 +240,19 @@ <comment>MoneyOnCorpseCode</comment> <payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/> </opcode> - <opcode id="1d16" name="OP_SkillUpdate" updated="03/10/21"> + <opcode id="0eaa" name="OP_SkillUpdate" updated="04/21/21"> <comment>Skill up code</comment> <payload dir="server" typename="skillIncStruct" sizechecktype="match"/> </opcode> - <opcode id="118a" name="OP_LevelUpdate" updated="03/10/21"> + <opcode id="494d" name="OP_LevelUpdate" updated="04/21/21"> <comment>LevelUpUpdateCode</comment> <payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="6632" name="OP_DzSwitchInfo" updated="03/10/21"> + <opcode id="3382" name="OP_DzSwitchInfo" updated="04/21/21"> <comment>Expedition compass etc</comment> <payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/> </opcode> - <opcode id="3b9e" name="OP_DzInfo" updated="03/10/21"> + <opcode id="784b" name="OP_DzInfo" updated="04/21/21"> <comment>Expedition Information</comment> <payload dir="server" typename="dzInfo" sizechecktype="match"/> </opcode> @@ -260,7 +260,7 @@ <comment>Environmental Damage</comment> <payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/> </opcode> - <opcode id="5d70" name="OP_SetRunMode" updated="03/10/21"> + <opcode id="358d" name="OP_SetRunMode" updated="04/21/21"> <comment>old cRunToggleCode</comment> <payload dir="client" typename="cRunToggleStruct" 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="3df2" name="OP_GuildMemberList" updated="03/10/21"> + <opcode id="562f" name="OP_GuildMemberList" updated="04/21/21"> <comment>List of guild members - Variable length</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="4f72" name="OP_ManaUpdate" updated="03/10/21"> + <opcode id="3a2e" name="OP_ManaUpdate" updated="04/21/21"> <comment>Mana Update opcode - 10 bytes</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="1137" name="OP_EndUpdate" updated="03/10/21"> + <opcode id="3d4c" name="OP_EndUpdate" updated="04/21/21"> <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="4f4b" name="OP_ExpandedGuildInfo" updated="03/10/21"> + <opcode id="5bbe" name="OP_ExpandedGuildInfo" updated="04/21/21"> <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="616e" name="OP_GuildsInZoneList" updated="03/10/21"> + <opcode id="4697" name="OP_GuildsInZoneList" updated="04/21/21"> <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="5b4e" name="OP_NewGuildInZone" updated="03/10/21"> + <opcode id="2a7c" name="OP_NewGuildInZone" updated="04/21/21"> <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="10c6" name="OP_Find" updated="03/10/21"> + <opcode id="6765" name="OP_Find" updated="04/21/21"> <comment>Find window data - 112 bytes</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> Modified: showeq/trunk/configure.in =================================================================== --- showeq/trunk/configure.in 2021-03-13 01:10:42 UTC (rev 1159) +++ showeq/trunk/configure.in 2021-04-22 14:42:23 UTC (rev 1160) @@ -2,7 +2,7 @@ dnl $Id$ $Name$ AC_PREREQ(2.59) -AC_INIT(showeq, 6.1.0.0) +AC_INIT(showeq, 6.1.1) AC_CONFIG_SRCDIR(src/main.cpp) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_SYSTEM Modified: showeq/trunk/src/everquest.h =================================================================== --- showeq/trunk/src/everquest.h 2021-03-13 01:10:42 UTC (rev 1159) +++ showeq/trunk/src/everquest.h 2021-04-22 14:42:23 UTC (rev 1160) @@ -1112,24 +1112,25 @@ { struct { + signed z:19; // z coord (3rd loc value) + signed animation:10; // current animation + unsigned padding00:3; - unsigned heading:12; // heading - signed deltaX:13; // change in x - unsigned padding00:7; + signed deltaZ:13; // change in z + signed deltaHeading:10; // change in heading + unsigned padding01:9; signed deltaY:13; // change in y signed y:19; // y coord (2nd loc value) unsigned pitch:12; // pitch (up/down heading) - signed animation:10; // current animation - signed deltaHeading:10; // change in heading + signed x:19; // x coord (1st loc value) + unsigned padding03:1; - signed z:19; // z coord (3rd loc value) - unsigned padding03:13; + signed deltaX:13; // change in x + unsigned heading:12; // heading + unsigned padding04:7; - signed x:19; // x coord (1st loc value) - signed deltaZ:13; // change in z - }; int32_t posData[5]; }; @@ -2391,28 +2392,30 @@ /*0000*/ uint16_t spawnId; /*0002*/ uint16_t spawnId2; /*0004*/ - unsigned heading:12; // heading - signed deltaX:13; // change in x - unsigned padding00:7; + signed z:19; // z coord (3rd loc value) + signed animation:10; // current animation + unsigned padding00:3; /*0008*/ + signed deltaZ:13; // change in z + signed deltaHeading:10; // change in heading + unsigned padding01:9; +/*0012*/ signed deltaY:13; // change in y signed y:19; // y coord (2nd loc value) -/*0012*/ +/*0016*/ unsigned pitch:12; // pitch (up/down heading) - signed animation:10; // current animation - signed deltaHeading:10; // change in heading -/*0016*/ - signed z:19; // z coord (3rd loc value) - unsigned padding03:13; + signed x:19; // x coord (1st loc value) + unsigned padding03:1; /*0020*/ - signed x:19; // x coord (1st loc value) - signed deltaZ:13; // change in z + signed deltaX:13; // change in x + unsigned heading:12; // heading + unsigned padding04:7; /*0024*/ }; /* ** Self Position Update -** Length: 46 Octets +** Length: 42 Octets ** OpCode: PlayerPosCode */ struct playerSelfPosStruct @@ -2421,30 +2424,28 @@ /*0002*/ uint16_t spawnId; // Player's spawn id /*0004*/ uint16_t unknown0004; // ***Placeholder /*0006*/ - float z; // z coord (3rd loc value) + signed animation:10; // current animation + unsigned heading:12; // heading + unsigned padding00:10; /*0010*/ - float x; // x coord (1st loc value) + float y; // y coord (2nd loc value) /*0014*/ + float deltaY; // change in y +/*0018*/ signed deltaHeading:10; // change in heading - unsigned padding02:22; -/*0018*/ + unsigned padding03:22; +/*0022*/ float deltaX; // change in x -/*0022*/ +/*0026*/ unsigned pitch:12; // pitch (up/down heading) - unsigned padding04:20; -/*0026*/ - float y; // y coord (2nd loc value) + unsigned padding05:20; /*0030*/ - float deltaY; // change in y + float deltaZ; // change in z /*0034*/ - signed animation:10; // current animation - unsigned padding07:22; + float x; // x coord (1st loc value) /*0038*/ - float deltaZ; // change in z + float z; // z coord (3rd loc value) /*0042*/ - unsigned heading:12; // heading - unsigned padding09:20; -/*0046*/ }; /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-03-13 01:10:50
|
Revision: 1159 http://sourceforge.net/p/seq/svn/1159 Author: cn187 Date: 2021-03-13 01:10:42 +0000 (Sat, 13 Mar 2021) Log Message: ----------- Add missed changelog entries Modified Paths: -------------- showeq/trunk/ChangeLog Modified: showeq/trunk/ChangeLog =================================================================== --- showeq/trunk/ChangeLog 2021-03-13 01:02:54 UTC (rev 1158) +++ showeq/trunk/ChangeLog 2021-03-13 01:10:42 UTC (rev 1159) @@ -6,6 +6,8 @@ - Message formatting fixes - Struct and opcode fixes for spell list functionality (fransick) - Opcode and struct updates (fransick) +- Fix guild tag display +- Fix display of held/worn equipment cn187 (02/17/21) ---------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-03-13 01:03:02
|
Revision: 1158 http://sourceforge.net/p/seq/svn/1158 Author: cn187 Date: 2021-03-13 01:02:54 +0000 (Sat, 13 Mar 2021) Log Message: ----------- Update changelog with missed items Modified Paths: -------------- showeq/branches/cn187_devel/ChangeLog Modified: showeq/branches/cn187_devel/ChangeLog =================================================================== --- showeq/branches/cn187_devel/ChangeLog 2021-03-10 22:28:48 UTC (rev 1157) +++ showeq/branches/cn187_devel/ChangeLog 2021-03-13 01:02:54 UTC (rev 1158) @@ -6,6 +6,8 @@ - Message formatting fixes - Struct and opcode fixes for spell list functionality (fransick) - Opcode and struct updates (fransick) +- Fix guild tag display +- Fix display of held/worn equipment cn187 (02/17/21) ---------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-03-10 22:28:51
|
Revision: 1157 http://sourceforge.net/p/seq/svn/1157 Author: cn187 Date: 2021-03-10 22:28:48 +0000 (Wed, 10 Mar 2021) Log Message: ----------- Release 6.1.0.0 - Updated version to 6.1.0.0 - Support for EQ patch 03/10/21 - Enumerate net devices and prompt for selection if needed - Message formatting fixes - Struct and opcode fixes for spell list functionality (fransick) - Opcode and struct updates (fransick) 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 Modified: showeq/branches/cn187_devel/ChangeLog =================================================================== --- showeq/branches/cn187_devel/ChangeLog 2021-03-10 22:28:43 UTC (rev 1156) +++ showeq/branches/cn187_devel/ChangeLog 2021-03-10 22:28:48 UTC (rev 1157) @@ -1,3 +1,12 @@ +cn187 (03/10/21) +---------------- +- Updated version to 6.1.0.0 +- Support for EQ patch 03/10/21 +- Enumerate net devices and prompt for selection if needed +- Message formatting fixes +- Struct and opcode fixes for spell list functionality (fransick) +- Opcode and struct updates (fransick) + cn187 (02/17/21) ---------------- - Updated version to 6.0.0.2 Modified: showeq/branches/cn187_devel/conf/zoneopcodes.xml =================================================================== --- showeq/branches/cn187_devel/conf/zoneopcodes.xml 2021-03-10 22:28:43 UTC (rev 1156) +++ showeq/branches/cn187_devel/conf/zoneopcodes.xml 2021-03-10 22:28:48 UTC (rev 1157) @@ -3,147 +3,147 @@ <seqopcodes> <!-- Critical opcodes used directly by ShowEQ --> - <opcode id="6167" name="OP_PlayerProfile" updated="02/17/21"> + <opcode id="5983" name="OP_PlayerProfile" updated="03/10/21"> <comment>CharProfileCode</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="2150" name="OP_ZoneEntry" updated="02/17/21"> + <opcode id="0ed0" name="OP_ZoneEntry" updated="03/10/21"> <comment>ZoneEntryCode</comment> <payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="4b1b" name="OP_TimeOfDay" updated="02/17/21"> + <opcode id="23bd" name="OP_TimeOfDay" updated="03/10/21"> <comment>TimeOfDayCode</comment> <payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/> </opcode> - <opcode id="26f2" name="OP_NewZone" updated="02/17/21"> + <opcode id="2d9e" name="OP_NewZone" updated="03/10/21"> <comment>NewZoneCode</comment> <payload dir="server" typename="newZoneStruct" sizechecktype="match"/> </opcode> - <opcode id="5355" name="OP_SpawnDoor" updated="02/17/21"> + <opcode id="7e49" name="OP_SpawnDoor" updated="03/10/21"> <comment>DoorSpawnsCode</comment> <payload dir="server" typename="doorStruct" sizechecktype="modulus"/> </opcode> - <opcode id="7b4d" name="OP_GroundSpawn" updated="02/17/21"> + <opcode id="4351" name="OP_GroundSpawn" updated="03/10/21"> <comment>MakeDropCode</comment> <payload dir="server" typename="makeDropStruct" sizechecktype="none"/> <payload dir="client" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="5dcd" name="OP_SendZonePoints" updated="02/17/21"> + <opcode id="1857" name="OP_SendZonePoints" updated="03/10/21"> <comment>Coords in a zone that will port you to another zone</comment> <payload dir="server" typename="zonePointsStruct" sizechecktype="none"/> </opcode> - <opcode id="04c4" name="OP_AAExpUpdate" updated="02/17/21"> + <opcode id="01cf" name="OP_AAExpUpdate" updated="03/10/21"> <comment>Receiving AA experience. Also when percent to AA changes.</comment> <payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="00e5" name="OP_ExpUpdate" updated="02/17/21"> + <opcode id="6f2b" name="OP_ExpUpdate" updated="03/10/21"> <comment>ExpUpdateCode</comment> <payload dir="server" typename="expUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="7e16" name="OP_GuildMOTD" updated="02/17/21"> + <opcode id="6f37" name="OP_GuildMOTD" updated="03/10/21"> <comment>GuildMOTD</comment> <payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/> </opcode> - <opcode id="3838" name="OP_ClientUpdate" updated="02/17/21"> + <opcode id="2c42" name="OP_ClientUpdate" updated="03/10/21"> <comment>Position updates</comment> <payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/> <payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/> </opcode> - <opcode id="4aad" name="OP_NpcMoveUpdate" updated="02/17/21"> + <opcode id="3b1b" name="OP_NpcMoveUpdate" updated="03/10/21"> <comment>Position updates</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="1aa9" name="OP_MobUpdate" updated="02/17/21"> + <opcode id="47e4" name="OP_MobUpdate" updated="03/10/21"> <comment>MobUpdateCode</comment> <payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/> </opcode> - <opcode id="5ebd" name="OP_DeleteSpawn" updated="02/17/21"> + <opcode id="3180" name="OP_DeleteSpawn" updated="03/10/21"> <comment>DeleteSpawnCode</comment> <payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/> </opcode> - <opcode id="1d9b" name="OP_RemoveSpawn" updated="02/17/21"> + <opcode id="4513" name="OP_RemoveSpawn" updated="03/10/21"> <comment>Remove spawn from zone</comment> <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/> </opcode> - <opcode id="0be8" name="OP_Death" updated="02/17/21"> + <opcode id="66d5" name="OP_Death" updated="03/10/21"> <comment>old NewCorpseCode</comment> <payload dir="server" typename="newCorpseStruct" sizechecktype="match"/> </opcode> - <opcode id="523a" name="OP_WearChange" updated="02/17/21"> + <opcode id="01dd" name="OP_WearChange" updated="03/10/21"> <comment>SpawnUpdateCode</comment> <payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="25a3" name="OP_SpawnAppearance" updated="02/17/21"> + <opcode id="1360" name="OP_SpawnAppearance" updated="03/10/21"> <comment>SpawnAppearanceCode</comment> <payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/> </opcode> - <opcode id="5a12" name="OP_Stamina" updated="02/17/21"> + <opcode id="2ceb" name="OP_Stamina" updated="03/10/21"> <comment>Server updating on hunger/thirst</comment> <payload dir="server" typename="staminaStruct" sizechecktype="match"/> </opcode> - <opcode id="07f7" name="OP_HPUpdate" updated="02/17/21"> + <opcode id="0221" name="OP_HPUpdate" updated="03/10/21"> <comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment> <payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="7317" name="OP_GuildMemberUpdate" updated="02/17/21"> + <opcode id="0a4a" name="OP_GuildMemberUpdate" updated="03/10/21"> <comment>Info regarding guild members</comment> <payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/> </opcode> - <opcode id="5ae0" name="OP_ClickObject" updated="02/17/21"> + <opcode id="3645" name="OP_ClickObject" updated="03/10/21"> <comment>Items dropped on the ground</comment> <payload dir="both" typename="remDropStruct" sizechecktype="match"/> </opcode> - <opcode id="71e8" name="OP_Action" updated="02/17/21"> + <opcode id="269c" name="OP_Action" updated="03/10/21"> <comment>Spells cast etc</comment> <payload dir="both" typename="actionStruct" sizechecktype="match"/> <payload dir="both" typename="actionAltStruct" sizechecktype="match"/> </opcode> - <opcode id="694f" name="OP_Action2" updated="02/17/21"> + <opcode id="7880" name="OP_Action2" updated="03/10/21"> <comment>Combat actions i.e. bash, kick etc</comment> <payload dir="both" typename="action2Struct" sizechecktype="match"/> </opcode> - <opcode id="3fec" name="OP_Consider" updated="02/17/21"> + <opcode id="35f7" name="OP_Consider" updated="03/10/21"> <comment>ConsiderCode</comment> <payload dir="both" typename="considerStruct" sizechecktype="match"/> </opcode> - <opcode id="4c33" name="OP_TargetMouse" updated="02/17/21"> + <opcode id="77ea" name="OP_TargetMouse" updated="03/10/21"> <comment>Targeting a person - old ClientTargetCode</comment> <payload dir="both" typename="clientTargetStruct" sizechecktype="match"/> </opcode> - <opcode id="1fbe" name="OP_SpawnRename" updated="02/17/21"> + <opcode id="360a" name="OP_SpawnRename" updated="03/10/21"> <comment>Spawns getting renamed after initial NewSpawn</comment> <payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/> </opcode> - <opcode id="1bb2" name="OP_Illusion" updated="02/17/21"> + <opcode id="3a49" name="OP_Illusion" updated="03/10/21"> <comment>Spawn being illusioned (changing forms)</comment> <payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/> </opcode> - <opcode id="2d7f" name="OP_Shroud" updated="02/17/21"> + <opcode id="1886" name="OP_Shroud" updated="03/10/21"> <comment>Server putting players into shroud form</comment> <payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/> </opcode> - <opcode id="5242" name="OP_ZoneChange" updated="02/17/21"> + <opcode id="21c7" name="OP_ZoneChange" updated="03/10/21"> <comment>old ZoneChangeCode</comment> <payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/> </opcode> - <opcode id="60e6" name="OP_GroupInvite" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupInvite" updated="02/17/21"> <payload dir="both" typename="groupInviteStruct" sizechecktype="none"/> <comment>You invite someone while ungrouped or get invited by someone ungrouped </comment> </opcode> - <opcode id="291c" name="OP_GroupInvite2" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupInvite2" updated="02/17/21"> <payload dir="both" typename="groupInviteStruct" sizechecktype="none"/> <comment>You're inviting someone and you are grouped or get invited by a group</comment> </opcode> - <opcode id="64c1" name="OP_GroupCancelInvite" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupCancelInvite" updated="02/17/21"> <payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/> <comment>Declining to join a group</comment> </opcode> - <opcode id="2040" name="OP_GroupFollow" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupFollow" updated="02/17/21"> <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/> <comment>You join a group or player joins group</comment> </opcode> - <opcode id="a699" name="OP_GroupFollow2" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupFollow2" updated="02/17/21"> <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/> <comment>Player joins your group</comment> </opcode> @@ -151,120 +151,120 @@ <comment>Group updates</comment> <payload dir="both" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="7ee5" name="OP_GroupDisband" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupDisband" updated="02/17/21"> <comment>You disband from group</comment> <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/> </opcode> - <opcode id="64eb" name="OP_GroupDisband2" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupDisband2" updated="02/17/21"> <comment>Other disbands from group</comment> <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/> </opcode> - <opcode id="7f60" name="OP_GroupLeader" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupLeader" updated="02/17/21"> <comment>Group leader change</comment> <payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/> </opcode> - <opcode id="11f1" name="OP_Buff" updated="02/17/21"> + <opcode id="3e30" name="OP_Buff" updated="03/10/21"> <comment>old BuffDropCode</comment> <payload dir="both" typename="buffStruct" sizechecktype="match"/> </opcode> - <opcode id="49de" name="OP_BeginCast" updated="02/17/21"> + <opcode id="52ee" name="OP_BeginCast" updated="03/10/21"> <comment>BeginCastCode</comment> <payload dir="both" typename="beginCastStruct" sizechecktype="match"/> </opcode> - <opcode id="56a9" name="OP_CastSpell" updated="02/17/21"> + <opcode id="4bb2" name="OP_CastSpell" updated="03/10/21"> <comment>StartCastCode</comment> <payload dir="both" typename="startCastStruct" sizechecktype="match"/> </opcode> - <opcode id="4058" name="OP_SwapSpell" updated="02/17/21"> + <opcode id="2e32" name="OP_SwapSpell" updated="03/10/21"> <comment>TradeSpellBookSlotsCode</comment> <payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/> </opcode> - <opcode id="292b" name="OP_MemorizeSpell" updated="02/17/21"> + <opcode id="5336" name="OP_MemorizeSpell" updated="03/10/21"> <comment>MemSpellCode</comment> <payload dir="both" typename="memSpellStruct" sizechecktype="match"/> </opcode> - <opcode id="133b" name="OP_InspectAnswer" updated="02/17/21"> + <opcode id="19be" name="OP_InspectAnswer" updated="03/10/21"> <comment>InspectDataCode</comment> <payload dir="both" typename="inspectDataStruct" sizechecktype="match"/> </opcode> - <opcode id="63e0" name="OP_Emote" updated="02/17/21"> + <opcode id="01dc" name="OP_Emote" updated="03/10/21"> <comment>EmoteTextCode</comment> <payload dir="both" typename="emoteTextStruct" sizechecktype="none"/> </opcode> - <opcode id="678f" name="OP_SimpleMessage" updated="02/17/21"> + <opcode id="56ec" name="OP_SimpleMessage" updated="03/10/21"> <comment>SimpleMessageCode</comment> <payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/> </opcode> - <opcode id="6586" name="OP_FormattedMessage" updated="02/17/21"> + <opcode id="5881" name="OP_FormattedMessage" updated="03/10/21"> <comment>FormattedMessageCode i.e. pet dismissed etc</comment> <payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="1c31" name="OP_CommonMessage" updated="02/17/21"> + <opcode id="4e14" name="OP_CommonMessage" updated="03/10/21"> <comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment> <payload dir="both" typename="channelMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="77b5" name="OP_SpecialMesg" updated="02/17/21"> + <opcode id="7a84" name="OP_SpecialMesg" updated="03/10/21"> <comment>Communicate textual info to client including hail responses etc</comment> <payload dir="server" typename="specialMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="6732" name="OP_RandomReq" updated="02/17/21"> + <opcode id="5054" name="OP_RandomReq" updated="03/10/21"> <comment>RandomReqCode</comment> <payload dir="client" typename="randomReqStruct" sizechecktype="match"/> </opcode> - <opcode id="4609" name="OP_RandomReply" updated="02/17/21"> + <opcode id="686a" name="OP_RandomReply" updated="03/10/21"> <comment>RandomCode</comment> <payload dir="server" typename="randomStruct" sizechecktype="match"/> </opcode> - <opcode id="31a0" name="OP_ConsentResponse" updated="02/17/21"> + <opcode id="ffff" name="OP_ConsentResponse" updated="02/17/21"> <comment>Server replying with consent information after /consent</comment> <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/> </opcode> - <opcode id="4330" name="OP_DenyResponse" updated="02/17/21"> + <opcode id="ffff" name="OP_DenyResponse" updated="02/17/21"> <comment>Server replying with deny information after /deny</comment> <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/> </opcode> - <opcode id="6679" name="OP_ManaChange" updated="02/17/21"> + <opcode id="5f03" name="OP_ManaChange" updated="03/10/21"> <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="1e02" name="OP_BazaarSearchRequest" updated="02/17/21"> + <opcode id="0a42" name="OP_BazaarSearchRequest" updated="03/10/21"> <comment>Bazaar search request </comment> <payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/> </opcode> - <opcode id="2a82" name="OP_BazaarSearchResponse" updated="02/17/21"> + <opcode id="521b" name="OP_BazaarSearchResponse" updated="03/10/21"> <comment>Bazaar search Response - Struct incorrect </comment> <payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/> </opcode> - <opcode id="4c14" name="OP_MoneyOnCorpse" updated="02/17/21"> + <opcode id="ffff" name="OP_MoneyOnCorpse" updated="02/17/21"> <comment>MoneyOnCorpseCode</comment> <payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/> </opcode> - <opcode id="012b" name="OP_SkillUpdate" updated="02/17/21"> + <opcode id="1d16" name="OP_SkillUpdate" updated="03/10/21"> <comment>Skill up code</comment> <payload dir="server" typename="skillIncStruct" sizechecktype="match"/> </opcode> - <opcode id="2dad" name="OP_LevelUpdate" updated="02/17/21"> + <opcode id="118a" name="OP_LevelUpdate" updated="03/10/21"> <comment>LevelUpUpdateCode</comment> <payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="2c1a" name="OP_DzSwitchInfo" updated="02/17/21"> + <opcode id="6632" name="OP_DzSwitchInfo" updated="03/10/21"> <comment>Expedition compass etc</comment> <payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/> </opcode> - <opcode id="550c" name="OP_DzInfo" updated="02/17/21"> + <opcode id="3b9e" name="OP_DzInfo" updated="03/10/21"> <comment>Expedition Information</comment> <payload dir="server" typename="dzInfo" sizechecktype="match"/> </opcode> - <opcode id="3164" name="OP_EnvDamage" updated="02/17/21"> + <opcode id="ffff" name="OP_EnvDamage" updated="02/17/21"> <comment>Environmental Damage</comment> <payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/> </opcode> - <opcode id="014c" name="OP_SetRunMode" updated="02/17/21"> + <opcode id="5d70" name="OP_SetRunMode" updated="03/10/21"> <comment>old cRunToggleCode</comment> <payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/> </opcode> - <opcode id="6e84" name="OP_Trader" updated="02/17/21"> + <opcode id="ffff" name="OP_Trader" updated="02/17/21"> <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="35b8" name="OP_GuildMemberList" updated="02/17/21"> + <opcode id="3df2" name="OP_GuildMemberList" updated="03/10/21"> <comment>List of guild members - Variable length</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="70f7" name="OP_ManaUpdate" updated="02/17/21"> + <opcode id="4f72" name="OP_ManaUpdate" updated="03/10/21"> <comment>Mana Update opcode - 10 bytes</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="000e" name="OP_EndUpdate" updated="02/17/21"> + <opcode id="1137" name="OP_EndUpdate" updated="03/10/21"> <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="6995" name="OP_ExpandedGuildInfo" updated="02/17/21"> + <opcode id="4f4b" name="OP_ExpandedGuildInfo" updated="03/10/21"> <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="6ec0" name="OP_GuildsInZoneList" updated="02/17/21"> + <opcode id="616e" name="OP_GuildsInZoneList" updated="03/10/21"> <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="33ba" name="OP_NewGuildInZone" updated="02/17/21"> + <opcode id="5b4e" name="OP_NewGuildInZone" updated="03/10/21"> <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="5414" name="OP_Find" updated="02/17/21"> + <opcode id="10c6" name="OP_Find" updated="03/10/21"> <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 2021-03-10 22:28:43 UTC (rev 1156) +++ showeq/branches/cn187_devel/configure.in 2021-03-10 22:28:48 UTC (rev 1157) @@ -2,7 +2,7 @@ dnl $Id$ $Name$ AC_PREREQ(2.59) -AC_INIT(showeq, 6.0.0.2) +AC_INIT(showeq, 6.1.0.0) 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 2021-03-10 22:28:43 UTC (rev 1156) +++ showeq/branches/cn187_devel/src/everquest.h 2021-03-10 22:28:48 UTC (rev 1157) @@ -1113,25 +1113,23 @@ struct { - signed deltaHeading:10; // change in heading - unsigned pitch:12; // pitch (up/down heading) - unsigned padding00:10; + unsigned heading:12; // heading + signed deltaX:13; // change in x + unsigned padding00:7; - signed deltaZ:13; // change in z signed deltaY:13; // change in y - unsigned padding01:6; + signed y:19; // y coord (2nd loc value) + unsigned pitch:12; // pitch (up/down heading) + signed animation:10; // current animation + signed deltaHeading:10; // change in heading + signed z:19; // z coord (3rd loc value) - signed deltaX:13; // change in x + unsigned padding03:13; signed x:19; // x coord (1st loc value) - unsigned heading:12; // heading - unsigned padding03:1; + signed deltaZ:13; // change in z - signed animation:10; // current animation - signed y:19; // y coord (2nd loc value) - unsigned padding04:3; - }; int32_t posData[5]; }; @@ -2393,30 +2391,28 @@ /*0000*/ uint16_t spawnId; /*0002*/ uint16_t spawnId2; /*0004*/ - signed deltaHeading:10; // change in heading - unsigned pitch:12; // pitch (up/down heading) - unsigned padding00:10; + unsigned heading:12; // heading + signed deltaX:13; // change in x + unsigned padding00:7; /*0008*/ - signed deltaZ:13; // change in z signed deltaY:13; // change in y - unsigned padding01:6; + signed y:19; // y coord (2nd loc value) /*0012*/ + unsigned pitch:12; // pitch (up/down heading) + signed animation:10; // current animation + signed deltaHeading:10; // change in heading +/*0016*/ signed z:19; // z coord (3rd loc value) - signed deltaX:13; // change in x -/*0016*/ + unsigned padding03:13; +/*0020*/ signed x:19; // x coord (1st loc value) - unsigned heading:12; // heading - unsigned padding03:1; -/*0020*/ - signed animation:10; // current animation - signed y:19; // y coord (2nd loc value) - unsigned padding04:3; + signed deltaZ:13; // change in z /*0024*/ }; /* ** Self Position Update -** Length: 38 Octets +** Length: 46 Octets ** OpCode: PlayerPosCode */ struct playerSelfPosStruct @@ -2425,26 +2421,30 @@ /*0002*/ uint16_t spawnId; // Player's spawn id /*0004*/ uint16_t unknown0004; // ***Placeholder /*0006*/ - float deltaY; // change in y + float z; // z coord (3rd loc value) /*0010*/ - unsigned pitch:12; // pitch (up/down heading) - unsigned heading:12; // heading - unsigned padding01:8; + float x; // x coord (1st loc value) /*0014*/ signed deltaHeading:10; // change in heading - signed animation:10; // current animation - unsigned padding02:12; + unsigned padding02:22; /*0018*/ - float x; // x coord (1st loc value) + float deltaX; // change in x /*0022*/ - float deltaZ; // change in z + unsigned pitch:12; // pitch (up/down heading) + unsigned padding04:20; /*0026*/ - float z; // z coord (3rd loc value) + float y; // y coord (2nd loc value) /*0030*/ - float y; // y coord (2nd loc value) + float deltaY; // change in y /*0034*/ - float deltaX; // change in x + signed animation:10; // current animation + unsigned padding07:22; /*0038*/ + float deltaZ; // change in z +/*0042*/ + unsigned heading:12; // heading + unsigned padding09:20; +/*0046*/ }; /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-03-10 22:28:44
|
Revision: 1156 http://sourceforge.net/p/seq/svn/1156 Author: cn187 Date: 2021-03-10 22:28:43 +0000 (Wed, 10 Mar 2021) Log Message: ----------- Add FAQ entry for MIT-SHM issues Modified Paths: -------------- showeq/branches/cn187_devel/FAQ Modified: showeq/branches/cn187_devel/FAQ =================================================================== --- showeq/branches/cn187_devel/FAQ 2021-03-10 21:25:00 UTC (rev 1155) +++ showeq/branches/cn187_devel/FAQ 2021-03-10 22:28:43 UTC (rev 1156) @@ -8,6 +8,8 @@ 5) Seq keeps crashing with "!!!! EQPacketFragmentSequence::addFragment(): buffer overflow adding in new fragment". Why won't you fix this? 6) Why do I get extreme lag/slowness when using X11 forwarding? +7) The Seq screen is blank and I'm seeing X errors reporting BadAccess, + BadShmSeg and BadDrawable. What do I do? 1) Hit points always say 65536, 0, 100, etc, what is wrong @@ -143,3 +145,18 @@ QT_GRAPHICSSUBSYSTEM=native showeq + +7) The Seq screen is blank and I'm seeing X errors reporting BadAccess, + BadShmSeg and BadDrawable. What do I do? + +This can be worked around by setting the QT_X11_NO_MITSHM environment variable. + +You can either export the variable prior to running ShowEQ: + + export QT_X11_NO_MITSHM=1 + showeq + +or prepend it to the showeq command: + + QT_X11_MIT_NO_MITSHM=1 showeq + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-03-10 21:25:01
|
Revision: 1155 http://sourceforge.net/p/seq/svn/1155 Author: cn187 Date: 2021-03-10 21:25:00 +0000 (Wed, 10 Mar 2021) Log Message: ----------- Tag for release 6.1.0.0 Added Paths: ----------- showeq/tags/v6_1_0_0/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-03-10 21:19:33
|
Revision: 1154 http://sourceforge.net/p/seq/svn/1154 Author: cn187 Date: 2021-03-10 21:19:29 +0000 (Wed, 10 Mar 2021) Log Message: ----------- Release 6.1.0.0 - Updated version to 6.1.0.0 - Support for EQ patch 03/10/21 - Enumerate net devices and prompt for selection if needed - Message formatting fixes - Struct and opcode fixes for spell list functionality (fransick) - Opcode and struct updates (fransick) Modified Paths: -------------- showeq/trunk/ChangeLog showeq/trunk/conf/zoneopcodes.xml showeq/trunk/configure.in showeq/trunk/src/everquest.h Modified: showeq/trunk/ChangeLog =================================================================== --- showeq/trunk/ChangeLog 2021-03-10 21:19:21 UTC (rev 1153) +++ showeq/trunk/ChangeLog 2021-03-10 21:19:29 UTC (rev 1154) @@ -1,3 +1,12 @@ +cn187 (03/10/21) +---------------- +- Updated version to 6.1.0.0 +- Support for EQ patch 03/10/21 +- Enumerate net devices and prompt for selection if needed +- Message formatting fixes +- Struct and opcode fixes for spell list functionality (fransick) +- Opcode and struct updates (fransick) + cn187 (02/17/21) ---------------- - Updated version to 6.0.0.2 Modified: showeq/trunk/conf/zoneopcodes.xml =================================================================== --- showeq/trunk/conf/zoneopcodes.xml 2021-03-10 21:19:21 UTC (rev 1153) +++ showeq/trunk/conf/zoneopcodes.xml 2021-03-10 21:19:29 UTC (rev 1154) @@ -3,147 +3,147 @@ <seqopcodes> <!-- Critical opcodes used directly by ShowEQ --> - <opcode id="6167" name="OP_PlayerProfile" updated="02/17/21"> + <opcode id="5983" name="OP_PlayerProfile" updated="03/10/21"> <comment>CharProfileCode</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="2150" name="OP_ZoneEntry" updated="02/17/21"> + <opcode id="0ed0" name="OP_ZoneEntry" updated="03/10/21"> <comment>ZoneEntryCode</comment> <payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="4b1b" name="OP_TimeOfDay" updated="02/17/21"> + <opcode id="23bd" name="OP_TimeOfDay" updated="03/10/21"> <comment>TimeOfDayCode</comment> <payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/> </opcode> - <opcode id="26f2" name="OP_NewZone" updated="02/17/21"> + <opcode id="2d9e" name="OP_NewZone" updated="03/10/21"> <comment>NewZoneCode</comment> <payload dir="server" typename="newZoneStruct" sizechecktype="match"/> </opcode> - <opcode id="5355" name="OP_SpawnDoor" updated="02/17/21"> + <opcode id="7e49" name="OP_SpawnDoor" updated="03/10/21"> <comment>DoorSpawnsCode</comment> <payload dir="server" typename="doorStruct" sizechecktype="modulus"/> </opcode> - <opcode id="7b4d" name="OP_GroundSpawn" updated="02/17/21"> + <opcode id="4351" name="OP_GroundSpawn" updated="03/10/21"> <comment>MakeDropCode</comment> <payload dir="server" typename="makeDropStruct" sizechecktype="none"/> <payload dir="client" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="5dcd" name="OP_SendZonePoints" updated="02/17/21"> + <opcode id="1857" name="OP_SendZonePoints" updated="03/10/21"> <comment>Coords in a zone that will port you to another zone</comment> <payload dir="server" typename="zonePointsStruct" sizechecktype="none"/> </opcode> - <opcode id="04c4" name="OP_AAExpUpdate" updated="02/17/21"> + <opcode id="01cf" name="OP_AAExpUpdate" updated="03/10/21"> <comment>Receiving AA experience. Also when percent to AA changes.</comment> <payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="00e5" name="OP_ExpUpdate" updated="02/17/21"> + <opcode id="6f2b" name="OP_ExpUpdate" updated="03/10/21"> <comment>ExpUpdateCode</comment> <payload dir="server" typename="expUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="7e16" name="OP_GuildMOTD" updated="02/17/21"> + <opcode id="6f37" name="OP_GuildMOTD" updated="03/10/21"> <comment>GuildMOTD</comment> <payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/> </opcode> - <opcode id="3838" name="OP_ClientUpdate" updated="02/17/21"> + <opcode id="2c42" name="OP_ClientUpdate" updated="03/10/21"> <comment>Position updates</comment> <payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/> <payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/> </opcode> - <opcode id="4aad" name="OP_NpcMoveUpdate" updated="02/17/21"> + <opcode id="3b1b" name="OP_NpcMoveUpdate" updated="03/10/21"> <comment>Position updates</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="1aa9" name="OP_MobUpdate" updated="02/17/21"> + <opcode id="47e4" name="OP_MobUpdate" updated="03/10/21"> <comment>MobUpdateCode</comment> <payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/> </opcode> - <opcode id="5ebd" name="OP_DeleteSpawn" updated="02/17/21"> + <opcode id="3180" name="OP_DeleteSpawn" updated="03/10/21"> <comment>DeleteSpawnCode</comment> <payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/> </opcode> - <opcode id="1d9b" name="OP_RemoveSpawn" updated="02/17/21"> + <opcode id="4513" name="OP_RemoveSpawn" updated="03/10/21"> <comment>Remove spawn from zone</comment> <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/> </opcode> - <opcode id="0be8" name="OP_Death" updated="02/17/21"> + <opcode id="66d5" name="OP_Death" updated="03/10/21"> <comment>old NewCorpseCode</comment> <payload dir="server" typename="newCorpseStruct" sizechecktype="match"/> </opcode> - <opcode id="523a" name="OP_WearChange" updated="02/17/21"> + <opcode id="01dd" name="OP_WearChange" updated="03/10/21"> <comment>SpawnUpdateCode</comment> <payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="25a3" name="OP_SpawnAppearance" updated="02/17/21"> + <opcode id="1360" name="OP_SpawnAppearance" updated="03/10/21"> <comment>SpawnAppearanceCode</comment> <payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/> </opcode> - <opcode id="5a12" name="OP_Stamina" updated="02/17/21"> + <opcode id="2ceb" name="OP_Stamina" updated="03/10/21"> <comment>Server updating on hunger/thirst</comment> <payload dir="server" typename="staminaStruct" sizechecktype="match"/> </opcode> - <opcode id="07f7" name="OP_HPUpdate" updated="02/17/21"> + <opcode id="0221" name="OP_HPUpdate" updated="03/10/21"> <comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment> <payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="7317" name="OP_GuildMemberUpdate" updated="02/17/21"> + <opcode id="0a4a" name="OP_GuildMemberUpdate" updated="03/10/21"> <comment>Info regarding guild members</comment> <payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/> </opcode> - <opcode id="5ae0" name="OP_ClickObject" updated="02/17/21"> + <opcode id="3645" name="OP_ClickObject" updated="03/10/21"> <comment>Items dropped on the ground</comment> <payload dir="both" typename="remDropStruct" sizechecktype="match"/> </opcode> - <opcode id="71e8" name="OP_Action" updated="02/17/21"> + <opcode id="269c" name="OP_Action" updated="03/10/21"> <comment>Spells cast etc</comment> <payload dir="both" typename="actionStruct" sizechecktype="match"/> <payload dir="both" typename="actionAltStruct" sizechecktype="match"/> </opcode> - <opcode id="694f" name="OP_Action2" updated="02/17/21"> + <opcode id="7880" name="OP_Action2" updated="03/10/21"> <comment>Combat actions i.e. bash, kick etc</comment> <payload dir="both" typename="action2Struct" sizechecktype="match"/> </opcode> - <opcode id="3fec" name="OP_Consider" updated="02/17/21"> + <opcode id="35f7" name="OP_Consider" updated="03/10/21"> <comment>ConsiderCode</comment> <payload dir="both" typename="considerStruct" sizechecktype="match"/> </opcode> - <opcode id="4c33" name="OP_TargetMouse" updated="02/17/21"> + <opcode id="77ea" name="OP_TargetMouse" updated="03/10/21"> <comment>Targeting a person - old ClientTargetCode</comment> <payload dir="both" typename="clientTargetStruct" sizechecktype="match"/> </opcode> - <opcode id="1fbe" name="OP_SpawnRename" updated="02/17/21"> + <opcode id="360a" name="OP_SpawnRename" updated="03/10/21"> <comment>Spawns getting renamed after initial NewSpawn</comment> <payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/> </opcode> - <opcode id="1bb2" name="OP_Illusion" updated="02/17/21"> + <opcode id="3a49" name="OP_Illusion" updated="03/10/21"> <comment>Spawn being illusioned (changing forms)</comment> <payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/> </opcode> - <opcode id="2d7f" name="OP_Shroud" updated="02/17/21"> + <opcode id="1886" name="OP_Shroud" updated="03/10/21"> <comment>Server putting players into shroud form</comment> <payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/> </opcode> - <opcode id="5242" name="OP_ZoneChange" updated="02/17/21"> + <opcode id="21c7" name="OP_ZoneChange" updated="03/10/21"> <comment>old ZoneChangeCode</comment> <payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/> </opcode> - <opcode id="60e6" name="OP_GroupInvite" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupInvite" updated="02/17/21"> <payload dir="both" typename="groupInviteStruct" sizechecktype="none"/> <comment>You invite someone while ungrouped or get invited by someone ungrouped </comment> </opcode> - <opcode id="291c" name="OP_GroupInvite2" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupInvite2" updated="02/17/21"> <payload dir="both" typename="groupInviteStruct" sizechecktype="none"/> <comment>You're inviting someone and you are grouped or get invited by a group</comment> </opcode> - <opcode id="64c1" name="OP_GroupCancelInvite" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupCancelInvite" updated="02/17/21"> <payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/> <comment>Declining to join a group</comment> </opcode> - <opcode id="2040" name="OP_GroupFollow" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupFollow" updated="02/17/21"> <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/> <comment>You join a group or player joins group</comment> </opcode> - <opcode id="a699" name="OP_GroupFollow2" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupFollow2" updated="02/17/21"> <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/> <comment>Player joins your group</comment> </opcode> @@ -151,120 +151,120 @@ <comment>Group updates</comment> <payload dir="both" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="7ee5" name="OP_GroupDisband" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupDisband" updated="02/17/21"> <comment>You disband from group</comment> <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/> </opcode> - <opcode id="64eb" name="OP_GroupDisband2" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupDisband2" updated="02/17/21"> <comment>Other disbands from group</comment> <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/> </opcode> - <opcode id="7f60" name="OP_GroupLeader" updated="02/17/21"> + <opcode id="ffff" name="OP_GroupLeader" updated="02/17/21"> <comment>Group leader change</comment> <payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/> </opcode> - <opcode id="11f1" name="OP_Buff" updated="02/17/21"> + <opcode id="3e30" name="OP_Buff" updated="03/10/21"> <comment>old BuffDropCode</comment> <payload dir="both" typename="buffStruct" sizechecktype="match"/> </opcode> - <opcode id="49de" name="OP_BeginCast" updated="02/17/21"> + <opcode id="52ee" name="OP_BeginCast" updated="03/10/21"> <comment>BeginCastCode</comment> <payload dir="both" typename="beginCastStruct" sizechecktype="match"/> </opcode> - <opcode id="56a9" name="OP_CastSpell" updated="02/17/21"> + <opcode id="4bb2" name="OP_CastSpell" updated="03/10/21"> <comment>StartCastCode</comment> <payload dir="both" typename="startCastStruct" sizechecktype="match"/> </opcode> - <opcode id="4058" name="OP_SwapSpell" updated="02/17/21"> + <opcode id="2e32" name="OP_SwapSpell" updated="03/10/21"> <comment>TradeSpellBookSlotsCode</comment> <payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/> </opcode> - <opcode id="292b" name="OP_MemorizeSpell" updated="02/17/21"> + <opcode id="5336" name="OP_MemorizeSpell" updated="03/10/21"> <comment>MemSpellCode</comment> <payload dir="both" typename="memSpellStruct" sizechecktype="match"/> </opcode> - <opcode id="133b" name="OP_InspectAnswer" updated="02/17/21"> + <opcode id="19be" name="OP_InspectAnswer" updated="03/10/21"> <comment>InspectDataCode</comment> <payload dir="both" typename="inspectDataStruct" sizechecktype="match"/> </opcode> - <opcode id="63e0" name="OP_Emote" updated="02/17/21"> + <opcode id="01dc" name="OP_Emote" updated="03/10/21"> <comment>EmoteTextCode</comment> <payload dir="both" typename="emoteTextStruct" sizechecktype="none"/> </opcode> - <opcode id="678f" name="OP_SimpleMessage" updated="02/17/21"> + <opcode id="56ec" name="OP_SimpleMessage" updated="03/10/21"> <comment>SimpleMessageCode</comment> <payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/> </opcode> - <opcode id="6586" name="OP_FormattedMessage" updated="02/17/21"> + <opcode id="5881" name="OP_FormattedMessage" updated="03/10/21"> <comment>FormattedMessageCode i.e. pet dismissed etc</comment> <payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="1c31" name="OP_CommonMessage" updated="02/17/21"> + <opcode id="4e14" name="OP_CommonMessage" updated="03/10/21"> <comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment> <payload dir="both" typename="channelMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="77b5" name="OP_SpecialMesg" updated="02/17/21"> + <opcode id="7a84" name="OP_SpecialMesg" updated="03/10/21"> <comment>Communicate textual info to client including hail responses etc</comment> <payload dir="server" typename="specialMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="6732" name="OP_RandomReq" updated="02/17/21"> + <opcode id="5054" name="OP_RandomReq" updated="03/10/21"> <comment>RandomReqCode</comment> <payload dir="client" typename="randomReqStruct" sizechecktype="match"/> </opcode> - <opcode id="4609" name="OP_RandomReply" updated="02/17/21"> + <opcode id="686a" name="OP_RandomReply" updated="03/10/21"> <comment>RandomCode</comment> <payload dir="server" typename="randomStruct" sizechecktype="match"/> </opcode> - <opcode id="31a0" name="OP_ConsentResponse" updated="02/17/21"> + <opcode id="ffff" name="OP_ConsentResponse" updated="02/17/21"> <comment>Server replying with consent information after /consent</comment> <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/> </opcode> - <opcode id="4330" name="OP_DenyResponse" updated="02/17/21"> + <opcode id="ffff" name="OP_DenyResponse" updated="02/17/21"> <comment>Server replying with deny information after /deny</comment> <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/> </opcode> - <opcode id="6679" name="OP_ManaChange" updated="02/17/21"> + <opcode id="5f03" name="OP_ManaChange" updated="03/10/21"> <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="1e02" name="OP_BazaarSearchRequest" updated="02/17/21"> + <opcode id="0a42" name="OP_BazaarSearchRequest" updated="03/10/21"> <comment>Bazaar search request </comment> <payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/> </opcode> - <opcode id="2a82" name="OP_BazaarSearchResponse" updated="02/17/21"> + <opcode id="521b" name="OP_BazaarSearchResponse" updated="03/10/21"> <comment>Bazaar search Response - Struct incorrect </comment> <payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/> </opcode> - <opcode id="4c14" name="OP_MoneyOnCorpse" updated="02/17/21"> + <opcode id="ffff" name="OP_MoneyOnCorpse" updated="02/17/21"> <comment>MoneyOnCorpseCode</comment> <payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/> </opcode> - <opcode id="012b" name="OP_SkillUpdate" updated="02/17/21"> + <opcode id="1d16" name="OP_SkillUpdate" updated="03/10/21"> <comment>Skill up code</comment> <payload dir="server" typename="skillIncStruct" sizechecktype="match"/> </opcode> - <opcode id="2dad" name="OP_LevelUpdate" updated="02/17/21"> + <opcode id="118a" name="OP_LevelUpdate" updated="03/10/21"> <comment>LevelUpUpdateCode</comment> <payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="2c1a" name="OP_DzSwitchInfo" updated="02/17/21"> + <opcode id="6632" name="OP_DzSwitchInfo" updated="03/10/21"> <comment>Expedition compass etc</comment> <payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/> </opcode> - <opcode id="550c" name="OP_DzInfo" updated="02/17/21"> + <opcode id="3b9e" name="OP_DzInfo" updated="03/10/21"> <comment>Expedition Information</comment> <payload dir="server" typename="dzInfo" sizechecktype="match"/> </opcode> - <opcode id="3164" name="OP_EnvDamage" updated="02/17/21"> + <opcode id="ffff" name="OP_EnvDamage" updated="02/17/21"> <comment>Environmental Damage</comment> <payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/> </opcode> - <opcode id="014c" name="OP_SetRunMode" updated="02/17/21"> + <opcode id="5d70" name="OP_SetRunMode" updated="03/10/21"> <comment>old cRunToggleCode</comment> <payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/> </opcode> - <opcode id="6e84" name="OP_Trader" updated="02/17/21"> + <opcode id="ffff" name="OP_Trader" updated="02/17/21"> <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="35b8" name="OP_GuildMemberList" updated="02/17/21"> + <opcode id="3df2" name="OP_GuildMemberList" updated="03/10/21"> <comment>List of guild members - Variable length</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="70f7" name="OP_ManaUpdate" updated="02/17/21"> + <opcode id="4f72" name="OP_ManaUpdate" updated="03/10/21"> <comment>Mana Update opcode - 10 bytes</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="000e" name="OP_EndUpdate" updated="02/17/21"> + <opcode id="1137" name="OP_EndUpdate" updated="03/10/21"> <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="6995" name="OP_ExpandedGuildInfo" updated="02/17/21"> + <opcode id="4f4b" name="OP_ExpandedGuildInfo" updated="03/10/21"> <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="6ec0" name="OP_GuildsInZoneList" updated="02/17/21"> + <opcode id="616e" name="OP_GuildsInZoneList" updated="03/10/21"> <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="33ba" name="OP_NewGuildInZone" updated="02/17/21"> + <opcode id="5b4e" name="OP_NewGuildInZone" updated="03/10/21"> <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="5414" name="OP_Find" updated="02/17/21"> + <opcode id="10c6" name="OP_Find" updated="03/10/21"> <comment>Find window data - 112 bytes</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> Modified: showeq/trunk/configure.in =================================================================== --- showeq/trunk/configure.in 2021-03-10 21:19:21 UTC (rev 1153) +++ showeq/trunk/configure.in 2021-03-10 21:19:29 UTC (rev 1154) @@ -2,7 +2,7 @@ dnl $Id$ $Name$ AC_PREREQ(2.59) -AC_INIT(showeq, 6.0.0.2) +AC_INIT(showeq, 6.1.0.0) AC_CONFIG_SRCDIR(src/main.cpp) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_SYSTEM Modified: showeq/trunk/src/everquest.h =================================================================== --- showeq/trunk/src/everquest.h 2021-03-10 21:19:21 UTC (rev 1153) +++ showeq/trunk/src/everquest.h 2021-03-10 21:19:29 UTC (rev 1154) @@ -1113,25 +1113,23 @@ struct { - signed deltaHeading:10; // change in heading - unsigned pitch:12; // pitch (up/down heading) - unsigned padding00:10; + unsigned heading:12; // heading + signed deltaX:13; // change in x + unsigned padding00:7; - signed deltaZ:13; // change in z signed deltaY:13; // change in y - unsigned padding01:6; + signed y:19; // y coord (2nd loc value) + unsigned pitch:12; // pitch (up/down heading) + signed animation:10; // current animation + signed deltaHeading:10; // change in heading + signed z:19; // z coord (3rd loc value) - signed deltaX:13; // change in x + unsigned padding03:13; signed x:19; // x coord (1st loc value) - unsigned heading:12; // heading - unsigned padding03:1; + signed deltaZ:13; // change in z - signed animation:10; // current animation - signed y:19; // y coord (2nd loc value) - unsigned padding04:3; - }; int32_t posData[5]; }; @@ -2393,30 +2391,28 @@ /*0000*/ uint16_t spawnId; /*0002*/ uint16_t spawnId2; /*0004*/ - signed deltaHeading:10; // change in heading - unsigned pitch:12; // pitch (up/down heading) - unsigned padding00:10; + unsigned heading:12; // heading + signed deltaX:13; // change in x + unsigned padding00:7; /*0008*/ - signed deltaZ:13; // change in z signed deltaY:13; // change in y - unsigned padding01:6; + signed y:19; // y coord (2nd loc value) /*0012*/ + unsigned pitch:12; // pitch (up/down heading) + signed animation:10; // current animation + signed deltaHeading:10; // change in heading +/*0016*/ signed z:19; // z coord (3rd loc value) - signed deltaX:13; // change in x -/*0016*/ + unsigned padding03:13; +/*0020*/ signed x:19; // x coord (1st loc value) - unsigned heading:12; // heading - unsigned padding03:1; -/*0020*/ - signed animation:10; // current animation - signed y:19; // y coord (2nd loc value) - unsigned padding04:3; + signed deltaZ:13; // change in z /*0024*/ }; /* ** Self Position Update -** Length: 38 Octets +** Length: 46 Octets ** OpCode: PlayerPosCode */ struct playerSelfPosStruct @@ -2425,26 +2421,30 @@ /*0002*/ uint16_t spawnId; // Player's spawn id /*0004*/ uint16_t unknown0004; // ***Placeholder /*0006*/ - float deltaY; // change in y + float z; // z coord (3rd loc value) /*0010*/ - unsigned pitch:12; // pitch (up/down heading) - unsigned heading:12; // heading - unsigned padding01:8; + float x; // x coord (1st loc value) /*0014*/ signed deltaHeading:10; // change in heading - signed animation:10; // current animation - unsigned padding02:12; + unsigned padding02:22; /*0018*/ - float x; // x coord (1st loc value) + float deltaX; // change in x /*0022*/ - float deltaZ; // change in z + unsigned pitch:12; // pitch (up/down heading) + unsigned padding04:20; /*0026*/ - float z; // z coord (3rd loc value) + float y; // y coord (2nd loc value) /*0030*/ - float y; // y coord (2nd loc value) + float deltaY; // change in y /*0034*/ - float deltaX; // change in x + signed animation:10; // current animation + unsigned padding07:22; /*0038*/ + float deltaZ; // change in z +/*0042*/ + unsigned heading:12; // heading + unsigned padding09:20; +/*0046*/ }; /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-03-10 21:19:24
|
Revision: 1153 http://sourceforge.net/p/seq/svn/1153 Author: cn187 Date: 2021-03-10 21:19:21 +0000 (Wed, 10 Mar 2021) Log Message: ----------- Merge branch 'cn187_devel' Modified Paths: -------------- showeq/trunk/conf/seqdef.xml showeq/trunk/conf/zoneopcodes.xml showeq/trunk/src/eqstr.cpp showeq/trunk/src/everquest.h showeq/trunk/src/guild.cpp showeq/trunk/src/guild.h showeq/trunk/src/interface.cpp showeq/trunk/src/interface.h showeq/trunk/src/map.cpp showeq/trunk/src/messageshell.cpp showeq/trunk/src/player.cpp showeq/trunk/src/s_everquest.h showeq/trunk/src/spawn.cpp showeq/trunk/src/spawn.h showeq/trunk/src/spawnlistcommon.cpp showeq/trunk/src/spawnshell.cpp showeq/trunk/src/spawnshell.h showeq/trunk/src/zonemgr.cpp Modified: showeq/trunk/conf/seqdef.xml =================================================================== --- showeq/trunk/conf/seqdef.xml 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/conf/seqdef.xml 2021-03-10 21:19:21 UTC (rev 1153) @@ -2500,7 +2500,7 @@ " /> </property> <property name="GuildsFile" > - <string value="guilds2.dat" /> + <string value="guilds3.dat" /> <comment>Location of file containing guild strings</comment> </property> <property name="GuildsDumpFile" > Modified: showeq/trunk/conf/zoneopcodes.xml =================================================================== --- showeq/trunk/conf/zoneopcodes.xml 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/conf/zoneopcodes.xml 2021-03-10 21:19:21 UTC (rev 1153) @@ -78,7 +78,7 @@ <comment>SpawnAppearanceCode</comment> <payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_Stamina" updated="06/19/19"> + <opcode id="5a12" name="OP_Stamina" updated="02/17/21"> <comment>Server updating on hunger/thirst</comment> <payload dir="server" typename="staminaStruct" sizechecktype="match"/> </opcode> @@ -115,11 +115,11 @@ <comment>Spawns getting renamed after initial NewSpawn</comment> <payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_Illusion" updated="06/19/19"> + <opcode id="1bb2" name="OP_Illusion" updated="02/17/21"> <comment>Spawn being illusioned (changing forms)</comment> <payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_Shroud" updated="06/19/19"> + <opcode id="2d7f" name="OP_Shroud" updated="02/17/21"> <comment>Server putting players into shroud form</comment> <payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/> </opcode> @@ -127,23 +127,23 @@ <comment>old ZoneChangeCode</comment> <payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_GroupInvite" updated="06/19/19"> + <opcode id="60e6" name="OP_GroupInvite" updated="02/17/21"> <payload dir="both" typename="groupInviteStruct" sizechecktype="none"/> <comment>You invite someone while ungrouped or get invited by someone ungrouped </comment> </opcode> - <opcode id="ffff" name="OP_GroupInvite2" updated="06/19/19"> + <opcode id="291c" name="OP_GroupInvite2" updated="02/17/21"> <payload dir="both" typename="groupInviteStruct" sizechecktype="none"/> <comment>You're inviting someone and you are grouped or get invited by a group</comment> </opcode> - <opcode id="ffff" name="OP_GroupCancelInvite" updated="06/19/19"> + <opcode id="64c1" name="OP_GroupCancelInvite" updated="02/17/21"> <payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/> <comment>Declining to join a group</comment> </opcode> - <opcode id="ffff" name="OP_GroupFollow" updated="06/19/19"> + <opcode id="2040" name="OP_GroupFollow" updated="02/17/21"> <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/> <comment>You join a group or player joins group</comment> </opcode> - <opcode id="ffff" name="OP_GroupFollow2" updated="06/19/19"> + <opcode id="a699" name="OP_GroupFollow2" updated="02/17/21"> <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/> <comment>Player joins your group</comment> </opcode> @@ -151,19 +151,19 @@ <comment>Group updates</comment> <payload dir="both" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="ffff" name="OP_GroupDisband" updated="06/19/19"> + <opcode id="7ee5" name="OP_GroupDisband" updated="02/17/21"> <comment>You disband from group</comment> <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_GroupDisband2" updated="06/19/19"> + <opcode id="64eb" name="OP_GroupDisband2" updated="02/17/21"> <comment>Other disbands from group</comment> <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_GroupLeader" updated="06/19/19"> + <opcode id="7f60" name="OP_GroupLeader" updated="02/17/21"> <comment>Group leader change</comment> <payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_Buff" updated="06/19/19"> + <opcode id="11f1" name="OP_Buff" updated="02/17/21"> <comment>old BuffDropCode</comment> <payload dir="both" typename="buffStruct" sizechecktype="match"/> </opcode> @@ -183,11 +183,11 @@ <comment>MemSpellCode</comment> <payload dir="both" typename="memSpellStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_InspectAnswer" updated="06/19/19"> + <opcode id="133b" name="OP_InspectAnswer" updated="02/17/21"> <comment>InspectDataCode</comment> <payload dir="both" typename="inspectDataStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_Emote" updated="06/19/19"> + <opcode id="63e0" name="OP_Emote" updated="02/17/21"> <comment>EmoteTextCode</comment> <payload dir="both" typename="emoteTextStruct" sizechecktype="none"/> </opcode> @@ -207,19 +207,19 @@ <comment>Communicate textual info to client including hail responses etc</comment> <payload dir="server" typename="specialMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="ffff" name="OP_RandomReq" updated="06/19/19"> + <opcode id="6732" name="OP_RandomReq" updated="02/17/21"> <comment>RandomReqCode</comment> <payload dir="client" typename="randomReqStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_RandomReply" updated="06/19/19"> + <opcode id="4609" name="OP_RandomReply" updated="02/17/21"> <comment>RandomCode</comment> <payload dir="server" typename="randomStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_ConsentResponse" updated="06/19/19"> + <opcode id="31a0" name="OP_ConsentResponse" updated="02/17/21"> <comment>Server replying with consent information after /consent</comment> <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_DenyResponse" updated="06/19/19"> + <opcode id="4330" name="OP_DenyResponse" updated="02/17/21"> <comment>Server replying with deny information after /deny</comment> <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/> </opcode> @@ -228,15 +228,15 @@ <payload dir="server" typename="manaDecrementStruct" sizechecktype="match"/> <payload dir="client" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="ffff" name="OP_BazaarSearchRequest" updated="06/19/19"> + <opcode id="1e02" name="OP_BazaarSearchRequest" updated="02/17/21"> <comment>Bazaar search request </comment> <payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/> </opcode> - <opcode id="ffff" name="OP_BazaarSearchResponse" updated="06/19/19"> + <opcode id="2a82" name="OP_BazaarSearchResponse" updated="02/17/21"> <comment>Bazaar search Response - Struct incorrect </comment> <payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/> </opcode> - <opcode id="ffff" name="OP_MoneyOnCorpse" updated="06/19/19"> + <opcode id="4c14" name="OP_MoneyOnCorpse" updated="02/17/21"> <comment>MoneyOnCorpseCode</comment> <payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/> </opcode> @@ -248,23 +248,23 @@ <comment>LevelUpUpdateCode</comment> <payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_DzSwitchInfo" updated="06/19/19"> + <opcode id="2c1a" name="OP_DzSwitchInfo" updated="02/17/21"> <comment>Expedition compass etc</comment> <payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/> </opcode> - <opcode id="ffff" name="OP_DzInfo" updated="06/19/19"> + <opcode id="550c" name="OP_DzInfo" updated="02/17/21"> <comment>Expedition Information</comment> <payload dir="server" typename="dzInfo" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_EnvDamage" updated="06/19/19"> + <opcode id="3164" name="OP_EnvDamage" updated="02/17/21"> <comment>Environmental Damage</comment> <payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_SetRunMode" updated="06/19/19"> + <opcode id="014c" name="OP_SetRunMode" updated="02/17/21"> <comment>old cRunToggleCode</comment> <payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_Trader" updated="06/19/19"> + <opcode id="6e84" name="OP_Trader" updated="02/17/21"> <comment>PC's turning trader on and off</comment> <payload dir="server" typename="bazaarTraderRequest" sizechecktype="match"/> </opcode> @@ -535,6 +535,14 @@ <comment>Listing of all guilds. Can be triggered by /lfg search?</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> + <opcode id="6ec0" name="OP_GuildsInZoneList" updated="02/17/21"> + <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="33ba" name="OP_NewGuildInZone" updated="02/17/21"> + <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> <opcode id="ffff" name="OP_LFGGetMatchesRequest" updated="11/28/12"> <comment>LFG/LFP client request - 16 bytes</comment> <payload dir="client" typename="uint8_t" sizechecktype="none"/> Modified: showeq/trunk/src/eqstr.cpp =================================================================== --- showeq/trunk/src/eqstr.cpp 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/eqstr.cpp 2021-03-10 21:19:21 UTC (rev 1153) @@ -207,7 +207,7 @@ } // replace template argument with subst string - if (substFormatStringRes.isEmpty()) + if (!substFormatStringRes.isEmpty()) formatString.replace(curPos, rxt.matchedLength(), substFormatStringRes); else curPos += rxt.matchedLength(); // if no replacement string, skip over Modified: showeq/trunk/src/everquest.h =================================================================== --- showeq/trunk/src/everquest.h 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/everquest.h 2021-03-10 21:19:21 UTC (rev 1153) @@ -122,7 +122,7 @@ #define MAX_SPELLBOOK_SLOTS 800 #define MAX_GROUP_MEMBERS 6 #define MAX_BUFFS 42 -#define MAX_GUILDS 8192 +#define MAX_GUILDS 32768 #define MAX_AA 300 #define MAX_BANDOLIERS 20 #define MAX_POTIONS_IN_BELT 5 @@ -797,6 +797,7 @@ /*20210*/ uint8_t gm; // 0=no, 1=yes (guessing!) /*20211*/ int8_t guildstatus; // 0=member, 1=officer, 2=guildleader /*20212*/ uint8_t unknown20212[16]; // *** Placeholder +/*20224*/ uint32_t guildServerID; /*20228*/ uint32_t exp; // Current Experience /*20232*/ uint8_t unknown20232[12]; // *** Placeholder /*20244*/ uint8_t languages[MAX_KNOWN_LANGS]; // List of languages @@ -1100,6 +1101,7 @@ /*0000*/ uint8_t holding; /*0000*/ uint32_t deity; /*0000*/ uint32_t guildID; +/*0000*/ uint32_t guildServerID; /*0000*/ uint32_t guildstatus; // 0=member, 1=officer, 2=leader, -1=not guilded /*0000*/ uint8_t class_; /*0000*/ uint8_t state; // stand state @@ -1991,18 +1993,18 @@ /* ** Money Loot -** Length: 20 Octets +** Length: 24 Octets ** OpCode: MoneyOnCorpseCode */ struct moneyOnCorpseStruct { -/*0000*/ uint8_t unknown0000[4]; // ***Placeholder -/*0004*/ uint32_t platinum; // Platinum Pieces -/*0008*/ uint32_t gold; // Gold Pieces -/*0012*/ uint32_t silver; // Silver Pieces -/*0016*/ uint32_t copper; // Copper Pieces -/*0020*/ +/*0000*/ uint8_t unknown0000[8]; // ***Placeholder +/*0008*/ uint32_t platinum; // Platinum Pieces +/*0012*/ uint32_t gold; // Gold Pieces +/*0016*/ uint32_t silver; // Silver Pieces +/*0020*/ uint32_t copper; // Copper Pieces +/*0024*/ }; /* @@ -2506,11 +2508,22 @@ struct newGuildInZoneStruct { -/*0000*/ uint8_t unknown0000[8]; // ***Placeholder -/*0008*/ char guildname[56]; // Guildname -/*0064*/ +/*0000*/ uint32_t guildId; // Guild ID +/*0004*/ uint32_t serverID; // ***Placeholder +/*0008*/ char guildname[0]; // Guild name, null terminated +/*xxxx*/ }; +struct guildsInZoneListStruct +{ +/*0000*/ uint32_t name_len; // length of player name +/*0004*/ char name[16]; // player name of length name_len, + // no null terminator, max 16 +/*xxxx*/ uint32_t num_guilds; // number of guild names in this struct +/*xxxx*/ newGuildInZoneStruct guilds[0]; +/*xxxx*/ +}; + struct moneyUpdateStruct { /*0000*/ uint32_t spawnid; // ***Placeholder @@ -2615,14 +2628,14 @@ struct buffStruct { /*0000*/ uint32_t spawnid; //spawn id -/*0004*/ uint8_t unknown0004[5]; -/*0009*/ int8_t level; // Level of person who cast buff -/*0010*/ uint8_t unknown010[6]; -/*0016*/ uint32_t spellid; // spellid -/*0020*/ uint32_t duration; // Time remaining in ticks -/*0024*/ int32_t unknown0024; // Buff length in ticks -/*0028*/ uint8_t unknown028[84]; -/*0112*/ uint32_t spellslot; // spellslot +/*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*/ }; Modified: showeq/trunk/src/guild.cpp =================================================================== --- showeq/trunk/src/guild.cpp 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/guild.cpp 2021-03-10 21:19:21 UTC (rev 1153) @@ -47,21 +47,102 @@ { } -QString GuildMgr::guildIdToName(uint16_t guildID) +QString GuildMgr::guildIdToName(uint16_t guildID, uint16_t guildServerID) { - if (guildID >= m_guildMap.size()) - return ""; - return m_guildMap[guildID]; + uint32_t key = guildServerID << 16 | guildID; + //unguilded PCs have a guild ID of 0 + if (!guildID || !guildServerID | !m_guildList.count(key)) + return ""; + return m_guildList[key]; } -void GuildMgr::worldGuildList(const uint8_t* data, size_t len) + +void GuildMgr::newGuildInZone(const uint8_t* data, size_t len) { - writeGuildList(data, len); - readGuildList(); + NetStream netStream(data, len); + QString guildName; + uint32_t size = 0; // to keep track of how much we're reading from the packet + uint32_t guildId = 0; + uint32_t guildServerId = 0; + + guildId = netStream.readUInt32NC(); + size += 4; + + guildServerId = netStream.readUInt32NC(); + size += 4; + + uint32_t key = guildServerId << 16 | guildId; + + guildName = netStream.readText(); + if (guildName.length() && !m_guildList.count(key)) + { + m_guildList[key] = guildName; + writeGuildList(); + emit guildTagUpdated(guildId); + } + size += guildName.length() + 1; // include null in count + + if (size != len) + seqWarn("newGuildInZone packet is not the expected length: %u != %u", size, len); } -void GuildMgr::writeGuildList(const uint8_t* data, size_t len) +void GuildMgr::guildsInZoneList(const uint8_t* data, size_t len) { + NetStream netStream(data, len); + QString guildName; + QString emptyName = ""; + uint32_t size = 0; // to keep track of how much we're reading from the packet + uint32_t guildId = 0; + uint32_t guildServerId = 0; + uint32_t numGuilds = 0; + + uint32_t nameLen = netStream.readUInt32NC(); + size += 4; + + // skip the player name to get to the guilds + netStream.skipBytes(nameLen); + size += nameLen; + + numGuilds = netStream.readUInt32NC(); + size += 4; + + bool need_save = false; + + while(!netStream.end()) + { + guildId = netStream.readUInt32NC(); + size += 4; + + guildServerId = netStream.readUInt32NC(); + size += 4; + + uint32_t key = guildServerId << 16 | guildId; + + guildName = netStream.readText(); + if (guildName.length() && !m_guildList.count(key)) + { + m_guildList[key] = guildName; + need_save = true; + emit guildTagUpdated(guildId); + } + + size += guildName.length() + 1; // include null in count + + if (size >= len) + break; + } + + if (size != len) + seqWarn("guildsInZoneList packet is not the expected length: %u != %u", size, len); + + if (need_save) + writeGuildList(); + +} + + +void GuildMgr::writeGuildList() +{ QFile guildsfile(guildsFileName); if (guildsfile.exists()) { @@ -76,58 +157,16 @@ seqWarn("GuildMgr: Could not open %s for writing, unable to replace with server data!", guildsFileName.toLatin1().data()); - QDataStream guildDataStream(&guildsfile); + QTextStream guildDataStream(&guildsfile); - NetStream netStream(data,len); - QString guildName; - QString emptyName = ""; - uint32_t size = 0; // to keep track of how much we're reading from the packet - uint32_t guildId = 0; - - for (guildId = 0; guildId < 20000; guildId++) - m_guildList[guildId] = emptyName; - guildId = 0; - - /* - 0x48 in the packet starts the serialized list. See guildListStruct - and worldGuildListStruct in everquest.h - */ - - // skip to the first guild in the list - netStream.skipBytes(0x44); - size += 0x44; - - while(!netStream.end()) + for (auto itr = m_guildList.begin(); itr != m_guildList.end(); ++itr) { - guildId = netStream.readUInt32NC(); - size += 4; // four bytes for the guild ID - netStream.skipBytes(4); - size += 4; // four bytes added 11/16/2016 - guildName = netStream.readText(); - - if(guildName.length()) - { - m_guildList[guildId] = guildName; - - // add guild name length, plus one for the null character - size += guildName.length() + 1; - } - - if(size + 1 == len) - break; // the end + if (itr->first == 0) + continue; + QString line = QString::number(itr->first) + "|" + itr->second.toLatin1(); + guildDataStream << line.trimmed() << "\n"; } - std::map<uint32_t, QString>::iterator it; - - for(it = m_guildList.begin(); it != m_guildList.end(); it++) - { - char szGuildName[64] = {0}; - - strcpy(szGuildName, it->second.toLatin1().data()); - //seqDebug("GuildMgr::writeGuildList - add guild '%s' (%d)", szGuildName, it->first); - guildDataStream.writeRawData(szGuildName, sizeof(szGuildName)); - } - guildsfile.close(); seqInfo("GuildMgr: New guildsfile written"); } @@ -135,17 +174,23 @@ void GuildMgr::readGuildList() { QFile guildsfile(guildsFileName); + m_guildList.clear(); - m_guildMap.clear(); if (guildsfile.open(QIODevice::ReadOnly)) { while (!guildsfile.atEnd()) { - char szGuildName[64] = {0}; - - guildsfile.read(szGuildName, sizeof(szGuildName)); - //seqDebug("GuildMgr::readGuildList - read guild '%s'", szGuildName); - m_guildMap.push_back(QString::fromUtf8(szGuildName)); + QByteArray line = guildsfile.readLine(); + QList<QByteArray> line_parts = line.split('|'); + if (line_parts.size() != 2) + { + seqWarn("GuildMgr::readGuildList - skipping malformed line"); + continue; + } + uint32_t key = line_parts.at(0).toULong(); + QString guildName = line_parts.at(1).trimmed(); + m_guildList[key] = guildName; + emit guildTagUpdated(key & 0x0000ffff); } guildsfile.close(); @@ -174,10 +219,11 @@ return; } - for (unsigned int i =0 ; i < m_guildMap.size(); i++) + for (auto itr = m_guildList.begin(); itr != m_guildList.end(); ++itr) { - if (!m_guildMap[i].isNull()) - guildtext << i << "\t" << m_guildMap[i] << endl; + if (itr->first == 0) + continue; + guildtext << itr->first << "\t" << itr->second << endl; } guildsfile.close(); @@ -188,10 +234,10 @@ void GuildMgr::listGuildInfo() { - for (unsigned int i = 0; i < m_guildMap.size(); i++) + for (auto itr = m_guildList.begin(); itr != m_guildList.end(); ++itr) { - if (!m_guildMap[i].isNull()) - seqInfo("%d\t%s", i, m_guildMap[i].toAscii().data()); + if (!itr->second.isNull()) + seqInfo("%d\t%s", itr->first, itr->second.toAscii().data()); } } Modified: showeq/trunk/src/guild.h =================================================================== --- showeq/trunk/src/guild.h 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/guild.h 2021-03-10 21:19:21 UTC (rev 1153) @@ -47,19 +47,21 @@ ~GuildMgr(); - QString guildIdToName(uint16_t); + QString guildIdToName(uint16_t, uint16_t); public slots: - void worldGuildList(const uint8_t*, size_t); + void newGuildInZone(const uint8_t* data, size_t len); + void guildsInZoneList(const uint8_t * data, size_t len); void readGuildList(); void guildList2text(QString); void listGuildInfo(); + void writeGuildList(); + signals: + void guildTagUpdated(uint32_t); + private: - std::vector<QString> m_guildMap; std::map<uint32_t, QString> m_guildList; - - void writeGuildList(const uint8_t*, size_t); QString guildsFileName; Modified: showeq/trunk/src/interface.cpp =================================================================== --- showeq/trunk/src/interface.cpp 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/interface.cpp 2021-03-10 21:19:21 UTC (rev 1153) @@ -71,6 +71,7 @@ #include <unistd.h> #include <cstdlib> #include <cstdio> +#include <ifaddrs.h> #include <QFont> #include <QApplication> @@ -145,7 +146,8 @@ m_combatWindow(0), m_netDiag(0), m_messageFilterDialog(0), - m_guildListWindow(0) + m_guildListWindow(0), + m_deviceList(enumerateDevices()) { setObjectName(name); setWindowFlags(Qt::Window); @@ -221,10 +223,23 @@ fileInfo2 = m_dataLocationMgr->findExistingFile(".", fileName2); + QString net_device = pSEQPrefs->getPrefString("Device", section, "eth0"); + if (!m_deviceList.contains(net_device)) + { + QString selected = promptForNetDevice(); + + if (!selected.isEmpty()) + { + // set it as the device to monitor next session + pSEQPrefs->setPrefString("Device", "Network", selected); + net_device = selected; + } + } + m_packet = new EQPacket(fileInfo.absoluteFilePath(), fileInfo2.absoluteFilePath(), pSEQPrefs->getPrefInt("ArqSeqGiveUp", section, 512), - pSEQPrefs->getPrefString("Device", section, "eth0"), + net_device, pSEQPrefs->getPrefString("IP", section, AUTOMATIC_CLIENT_IP), pSEQPrefs->getPrefString("MAC", section, "0"), @@ -525,6 +540,7 @@ pFileMenu->addAction("Sa&ve Map", m_mapMgr, SLOT(saveMap()), Qt::Key_F2); pFileMenu->addAction("Save SOE Map", m_mapMgr, SLOT(saveSOEMap())); pFileMenu->addAction("Reload Guilds File", m_guildmgr, SLOT(readGuildList())); + pFileMenu->addAction("Save Guilds File", m_guildmgr, SLOT(writeGuildList())); pFileMenu->addAction("Add Spawn Category", this, SLOT(addCategory()), Qt::ALT+Qt::Key_C); pFileMenu->addAction("Rebuild SpawnList", this, SLOT(rebuildSpawnList()), @@ -2010,13 +2026,24 @@ if (m_guildmgr) { + /* m_packet->connect2("OP_GuildList", SP_World, DIR_Server, "worldGuildListStruct", SZC_None, m_guildmgr, SLOT(worldGuildList(const uint8_t*, size_t))); + */ + m_packet->connect2("OP_GuildsInZoneList", SP_Zone, DIR_Server, + "guildsInZoneListStruct", SZC_None, m_guildmgr, + SLOT(guildsInZoneList(const uint8_t*, size_t))); + + m_packet->connect2("OP_NewGuildInZone", SP_Zone, DIR_Server, + "newGuildInZoneStruct", SZC_None, m_guildmgr, + SLOT(newGuildInZone(const uint8_t*, size_t))); + connect(this, SIGNAL(guildList2text(QString)), m_guildmgr, SLOT(guildList2text(QString))); + } if (m_guildShell) @@ -2579,6 +2606,9 @@ if (m_guildShell != 0) delete m_guildShell; + if (m_guildmgr != 0) + delete m_guildmgr; + if (m_zoneMgr != 0) delete m_zoneMgr; @@ -5134,23 +5164,68 @@ } } -void EQInterface::set_net_device() +QStringList EQInterface::enumerateDevices() { - bool ok = false; - QString dev = - QInputDialog::getText(this, "ShowEQ - Device", + struct ifaddrs *ifaddr, *ifa; + int n; + QStringList devices; + + if (getifaddrs(&ifaddr) == -1) + { + seqWarn("Could not enumerate network devices"); + return QStringList(); + } + + for (ifa = ifaddr, n = 0; ifa != NULL; ifa = ifa->ifa_next, n++) + { + if (ifa->ifa_addr == NULL) + continue; + + if (ifa->ifa_addr->sa_family == AF_INET) + devices.append(ifa->ifa_name); + } + + freeifaddrs(ifaddr); + + return devices; +} + +QString EQInterface::promptForNetDevice() +{ + m_deviceList = enumerateDevices(); + + int current = 0; + if (m_packet) + current = m_deviceList.indexOf(m_packet->device()); + + bool ok = false; + QString selected = QInputDialog::getItem(this, "ShowEQ - Device", "Enter the device to sniff for EQ Packets:", - QLineEdit::Normal, m_packet->device(), - &ok); + m_deviceList, current, true, &ok); - if (ok) - { - // start monitoring the device - m_packet->monitorDevice(dev); + if (ok) + return selected; + else + return QString(); +} - // set it as the device to monitor next session - pSEQPrefs->setPrefString("Device", "Network", m_packet->device()); - } + +void EQInterface::set_net_device() +{ + + QString selected = promptForNetDevice(); + + if (!selected.isEmpty()) + { + if (m_packet) + { + // start monitoring the device + m_packet->monitorDevice(selected); + } + + // set it as the device to monitor next session + pSEQPrefs->setPrefString("Device", "Network", selected); + } } void EQInterface::set_net_arq_giveup(int giveup) Modified: showeq/trunk/src/interface.h =================================================================== --- showeq/trunk/src/interface.h 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/interface.h 2021-03-10 21:19:21 UTC (rev 1153) @@ -341,6 +341,8 @@ void insertWindowMenu(SEQWindow* window); void removeWindowMenu(SEQWindow* window); void setDockEnabled(QDockWidget* dw, bool enable); + QStringList enumerateDevices(); + QString promptForNetDevice(); public: Player* m_player; @@ -415,6 +417,9 @@ MessageFilterDialog* m_messageFilterDialog; GuildListWindow* m_guildListWindow; + QStringList m_deviceList; + + QLabel* m_stsbarSpawns; QLabel* m_stsbarStatus; QLabel* m_stsbarZone; Modified: showeq/trunk/src/map.cpp =================================================================== --- showeq/trunk/src/map.cpp 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/map.cpp 2021-03-10 21:19:21 UTC (rev 1153) @@ -4258,18 +4258,15 @@ if (spawn) { QString guild; - if (spawn->guildID() < MAX_GUILDS) - { - if (!spawn->guildTag().isEmpty()) + if (!spawn->guildTag().isEmpty()) guild.sprintf("<%s>", spawn->guildTag().toAscii().data()); - else + else if (spawn->guildID()) guild = QString::number(spawn->guildID()); - } else guild = " "; QString hp; - + if (spawn->HP() <= 0) hp = "<= 0"; else Modified: showeq/trunk/src/messageshell.cpp =================================================================== --- showeq/trunk/src/messageshell.cpp 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/messageshell.cpp 2021-03-10 21:19:21 UTC (rev 1153) @@ -253,20 +253,21 @@ target = m_spawnShell->findID(tSpawn, smsg->target); // calculate the message position - const char* message = smsg->source + strlen(smsg->source) + 1 - + sizeof(smsg->unknown0xxx); - - if (target) - m_messages->addMessage(chatColor2MessageType(smsg->messageColor), - QString("Special: '%1' -> '%2' - %3") - .arg(smsg->source) - .arg(target->name()) - .arg(message)); - else - m_messages->addMessage(chatColor2MessageType(smsg->messageColor), - QString("Special: '%1' - %2") - .arg(smsg->source) - .arg(message)); + // const char* message = smsg->source + strlen(smsg->source) + 1 + // + sizeof(smsg->unknown0xxx); + // NOTE: gcc 8 (and maybe others) over-optimizes the above strlen call on the + // variable-sized source array (possibly because it isn't the last member + // of the struct), and as a result, strlen always returns 0 unless compiler + // optimizations are disabled. So we work around this by creating a QString + // and using its size + const char* message = smsg->source + QString(smsg->source).length() + 1 + + sizeof(smsg->unknown0xxx); + + if (target) m_messages->addMessage(chatColor2MessageType(smsg->messageColor), + QString("Special: '%1' -> '%2' - %3") .arg(smsg->source) + .arg(target->name()) .arg(message)); else + m_messages->addMessage(chatColor2MessageType(smsg->messageColor), + QString("Special: '%1' - %2") .arg(smsg->source) .arg(message)); } void MessageShell::guildMOTD(const uint8_t* data, size_t, uint8_t dir) Modified: showeq/trunk/src/player.cpp =================================================================== --- showeq/trunk/src/player.cpp 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/player.cpp 2021-03-10 21:19:21 UTC (rev 1153) @@ -375,7 +375,8 @@ // Guild setGuildID(player->guildID); - setGuildTag(m_guildMgr->guildIdToName(guildID())); + setGuildServerID(player->guildServerID); + setGuildTag(m_guildMgr->guildIdToName(guildID(), guildServerID())); emit guildChanged(); // Position Modified: showeq/trunk/src/s_everquest.h =================================================================== --- showeq/trunk/src/s_everquest.h 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/s_everquest.h 2021-03-10 21:19:21 UTC (rev 1153) @@ -110,6 +110,7 @@ AddStruct(attack1Struct); AddStruct(attack2Struct); AddStruct(newGuildInZoneStruct); +AddStruct(guildsInZoneListStruct); AddStruct(moneyUpdateStruct); AddStruct(memorizeSlotStruct); AddStruct(cRunToggleStruct); Modified: showeq/trunk/src/spawn.cpp =================================================================== --- showeq/trunk/src/spawn.cpp 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/spawn.cpp 2021-03-10 21:19:21 UTC (rev 1153) @@ -399,6 +399,7 @@ setHP(s->HP()); setMaxHP(s->maxHP()); setGuildID(s->guildID()); + setGuildServerID(s->guildServerID()); setLevel(s->level()); for (int i = 0; i <= tLastCoreWearSlot; i++) setEquipment(i, s->equipment(i)); @@ -433,6 +434,7 @@ setHP(s->curHp); setMaxHP(100); //the client sets this to 100 setGuildID(s->guildID); + setGuildServerID(s->guildServerID); setLevel(s->level); for (int i = 0; i <= tLastCoreWearSlot; i++) setEquipment(i, s->equipment[i]); @@ -541,8 +543,11 @@ // set guildID if (s->NPC == SPAWN_PLAYER || s->NPC == SPAWN_SELF) + { setGuildID(s->guildID); - else + setGuildServerID(s->guildServerID); + } + else setGuildID(0xffff); } Modified: showeq/trunk/src/spawn.h =================================================================== --- showeq/trunk/src/spawn.h 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/spawn.h 2021-03-10 21:19:21 UTC (rev 1153) @@ -239,6 +239,7 @@ int32_t HP() const { return m_curHP; } int32_t maxHP() const { return m_maxHP; } uint16_t guildID() const { return m_guildID; } + uint16_t guildServerID() const { return m_guildServerID; } QString guildTag() const { return m_guildTag; } uint16_t petOwnerID() const { return m_petOwnerID; } uint8_t light() const { return m_light; } @@ -338,6 +339,7 @@ void setHP(int32_t HP) { m_curHP = HP; } void setMaxHP(int32_t maxHP) { m_maxHP = maxHP; } void setGuildID(uint16_t GuildID) { m_guildID = GuildID; } + void setGuildServerID(uint16_t GuildServerID) { m_guildServerID = GuildServerID; } void setGuildTag(QString GuildTag) { m_guildTag = GuildTag; } void setLevel(int level) { m_level = level; } void setEquipment(uint8_t wearSlot, EquipStruct item) @@ -378,6 +380,7 @@ int32_t m_curHP; int32_t m_maxHP; uint16_t m_guildID; + uint16_t m_guildServerID; uint16_t m_deity; int16_t m_deityTeam; EquipStruct m_equipment[tNumWearSlots]; Modified: showeq/trunk/src/spawnlistcommon.cpp =================================================================== --- showeq/trunk/src/spawnlistcommon.cpp 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/spawnlistcommon.cpp 2021-03-10 21:19:21 UTC (rev 1153) @@ -209,13 +209,12 @@ { setText(tSpawnColDeity, spawn->deityName()); setText(tSpawnColBodyType, spawn->typeString()); - if (spawn->guildID() < MAX_GUILDS) - { - if(!spawn->guildTag().isEmpty()) + if (!spawn->guildTag().isEmpty()) setText(tSpawnColGuildID, spawn->guildTag()); - else + else if (spawn->guildID()) setText(tSpawnColGuildID, QString::number(spawn->guildID())); - } + else + setText(tSpawnColGuildID, " "); } } else if (changeType == tSpawnChangedALL) Modified: showeq/trunk/src/spawnshell.cpp =================================================================== --- showeq/trunk/src/spawnshell.cpp 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/spawnshell.cpp 2021-03-10 21:19:21 UTC (rev 1153) @@ -142,6 +142,10 @@ connect(m_player, SIGNAL(changedID(uint16_t)), this, SLOT(playerChangedID(uint16_t))); + // connect to guildmgr to receive notifications of guild tag updates + connect(m_guildMgr, SIGNAL(guildTagUpdated(uint32_t)), + this, SLOT(updateGuildTag(uint32_t))); + // restore the spawn list if necessary if (showeq_params->restoreSpawns) restoreSpawns(); @@ -248,6 +252,47 @@ return closest; } +void SpawnShell::updateGuildTag(uint32_t guildId) +{ + ItemIterator it(m_spawns); + Spawn* spawn; + + while (it.hasNext()) + { + it.next(); + + spawn = (Spawn*)it.value(); + if (!spawn) + break; + + if (guildId == spawn->guildID()) + { + spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID(), spawn->guildServerID())); + spawn->updateLastChanged(); + emit changeItem(spawn, tSpawnChangedALL); + } + } + + ItemIterator pl(m_players); + + while (pl.hasNext()) + { + pl.next(); + + spawn = (Spawn*)pl.value(); + if (!spawn) + break; + + if (guildId == spawn->guildID()) + { + spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID(), spawn->guildServerID())); + spawn->updateLastChanged(); + emit changeItem(spawn, tSpawnChangedALL); + } + } +} + + Spawn* SpawnShell::findSpawnByName(const QString& name) { ItemIterator it(m_spawns); @@ -686,7 +731,7 @@ spawn->holding = netStream.readUInt8(); spawn->deity = netStream.readUInt32NC(); spawn->guildID = netStream.readUInt32NC(); - netStream.skipBytes(4); /* new data in 11/16/2016 patch */ + spawn->guildServerID = netStream.readUInt32NC(); /* spawn->guildstatus = netStream.readUInt32NC(); disappeared 11/14/2018 */ spawn->guildstatus = 0; spawn->class_ = netStream.readUInt32NC(); @@ -732,20 +777,22 @@ netStream.skipBytes(36); for(i = 0; i < 9; i++) { + spawn->equipment[i].itemId = netStream.readUInt32NC(); spawn->equipment[i].equip3 = netStream.readUInt32NC(); - spawn->equipment[i].itemId = netStream.readUInt32NC(); spawn->equipment[i].equip2 = netStream.readUInt32NC(); spawn->equipment[i].equip1 = netStream.readUInt32NC(); spawn->equipment[i].equip0 = netStream.readUInt32NC(); } } else { - netStream.skipBytes(28); + netStream.skipBytes(20); spawn->equipment[7].itemId = netStream.readUInt32NC(); + spawn->equipment[7].equip3 = netStream.readUInt32NC(); spawn->equipment[7].equip2 = netStream.readUInt32NC(); spawn->equipment[7].equip1 = netStream.readUInt32NC(); spawn->equipment[7].equip0 = netStream.readUInt32NC(); // secondary spawn->equipment[8].itemId = netStream.readUInt32NC(); + spawn->equipment[8].equip3 = netStream.readUInt32NC(); spawn->equipment[8].equip2 = netStream.readUInt32NC(); spawn->equipment[8].equip1 = netStream.readUInt32NC(); spawn->equipment[8].equip0 = netStream.readUInt32NC(); @@ -879,10 +926,8 @@ updateRuntimeFilterFlags(spawn); item->updateLastChanged(); - if (spawn->guildID() < MAX_GUILDS) - spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID())); - else - spawn->setGuildTag(""); + spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID(), spawn->guildServerID())); + if (!showeq_params->fast_machine) item->setDistanceToPlayer(m_player->calcDist2DInt(*item)); else @@ -898,10 +943,8 @@ updateRuntimeFilterFlags(spawn); m_spawns.insert(s.spawnId, item); - if (spawn->guildID() < MAX_GUILDS) - spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID())); - else - spawn->setGuildTag(""); + spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID(), spawn->guildServerID())); + if (!showeq_params->fast_machine) item->setDistanceToPlayer(m_player->calcDist2DInt(*item)); else @@ -1577,14 +1620,7 @@ updateRuntimeFilterFlags(corpse); m_spawns.insert(corpse->id(), corpse); - if (corpse->guildID() < MAX_GUILDS) - { - corpse->setGuildTag(m_guildMgr->guildIdToName(corpse->guildID())); - } - else - { - corpse->setGuildTag(""); - } + corpse->setGuildTag(m_guildMgr->guildIdToName(corpse->guildID(), corpse->guildServerID())); emit addItem(corpse); Modified: showeq/trunk/src/spawnshell.h =================================================================== --- showeq/trunk/src/spawnshell.h 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/spawnshell.h 2021-03-10 21:19:21 UTC (rev 1153) @@ -150,6 +150,8 @@ void saveSpawns(void); void restoreSpawns(void); + void updateGuildTag(uint32_t guildId); + protected: void refilterSpawns(spawnItemType type); void refilterSpawnsRuntime(spawnItemType type); Modified: showeq/trunk/src/zonemgr.cpp =================================================================== --- showeq/trunk/src/zonemgr.cpp 2021-02-21 23:07:03 UTC (rev 1152) +++ showeq/trunk/src/zonemgr.cpp 2021-03-10 21:19:21 UTC (rev 1153) @@ -475,9 +475,10 @@ player->standState = netStream.readUInt16(); player->anon = netStream.readUInt16(); player->guildID = netStream.readUInt32NC(); + player->guildServerID = netStream.readUInt32NC(); // Unknown - netStream.skipBytes(14); + netStream.skipBytes(10); player->platinum_bank = netStream.readUInt32NC(); player->gold_bank = netStream.readUInt32NC(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-02-21 23:07:05
|
Revision: 1152 http://sourceforge.net/p/seq/svn/1152 Author: cn187 Date: 2021-02-21 23:07:03 +0000 (Sun, 21 Feb 2021) Log Message: ----------- Add FAQ entry for MIT-SHM issues Modified Paths: -------------- showeq/trunk/FAQ Modified: showeq/trunk/FAQ =================================================================== --- showeq/trunk/FAQ 2021-02-21 04:14:29 UTC (rev 1151) +++ showeq/trunk/FAQ 2021-02-21 23:07:03 UTC (rev 1152) @@ -8,6 +8,8 @@ 5) Seq keeps crashing with "!!!! EQPacketFragmentSequence::addFragment(): buffer overflow adding in new fragment". Why won't you fix this? 6) Why do I get extreme lag/slowness when using X11 forwarding? +7) The Seq screen is blank and I'm seeing X errors reporting BadAccess, + BadShmSeg and BadDrawable. What do I do? 1) Hit points always say 65536, 0, 100, etc, what is wrong @@ -143,3 +145,18 @@ QT_GRAPHICSSUBSYSTEM=native showeq + +7) The Seq screen is blank and I'm seeing X errors reporting BadAccess, + BadShmSeg and BadDrawable. What do I do? + +This can be worked around by setting the QT_X11_NO_MITSHM environment variable. + +You can either export the variable prior to running ShowEQ: + + export QT_X11_NO_MITSHM=1 + showeq + +or prepend it to the showeq command: + + QT_X11_MIT_NO_MITSHM=1 showeq + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-02-18 22:46:19
|
Revision: 1149 http://sourceforge.net/p/seq/svn/1149 Author: cn187 Date: 2021-02-18 22:46:17 +0000 (Thu, 18 Feb 2021) Log Message: ----------- Message formatting fixes - Fix special messages not showing up correctly - Fix typo introduced in Qt4 port that caused formatted messages not to show correctly (oops). Modified Paths: -------------- showeq/branches/cn187_devel/src/eqstr.cpp showeq/branches/cn187_devel/src/messageshell.cpp Modified: showeq/branches/cn187_devel/src/eqstr.cpp =================================================================== --- showeq/branches/cn187_devel/src/eqstr.cpp 2021-02-18 17:46:04 UTC (rev 1148) +++ showeq/branches/cn187_devel/src/eqstr.cpp 2021-02-18 22:46:17 UTC (rev 1149) @@ -207,7 +207,7 @@ } // replace template argument with subst string - if (substFormatStringRes.isEmpty()) + if (!substFormatStringRes.isEmpty()) formatString.replace(curPos, rxt.matchedLength(), substFormatStringRes); else curPos += rxt.matchedLength(); // if no replacement string, skip over Modified: showeq/branches/cn187_devel/src/messageshell.cpp =================================================================== --- showeq/branches/cn187_devel/src/messageshell.cpp 2021-02-18 17:46:04 UTC (rev 1148) +++ showeq/branches/cn187_devel/src/messageshell.cpp 2021-02-18 22:46:17 UTC (rev 1149) @@ -253,20 +253,21 @@ target = m_spawnShell->findID(tSpawn, smsg->target); // calculate the message position - const char* message = smsg->source + strlen(smsg->source) + 1 - + sizeof(smsg->unknown0xxx); - - if (target) - m_messages->addMessage(chatColor2MessageType(smsg->messageColor), - QString("Special: '%1' -> '%2' - %3") - .arg(smsg->source) - .arg(target->name()) - .arg(message)); - else - m_messages->addMessage(chatColor2MessageType(smsg->messageColor), - QString("Special: '%1' - %2") - .arg(smsg->source) - .arg(message)); + // const char* message = smsg->source + strlen(smsg->source) + 1 + // + sizeof(smsg->unknown0xxx); + // NOTE: gcc 8 (and maybe others) over-optimizes the above strlen call on the + // variable-sized source array (possibly because it isn't the last member + // of the struct), and as a result, strlen always returns 0 unless compiler + // optimizations are disabled. So we work around this by creating a QString + // and using its size + const char* message = smsg->source + QString(smsg->source).length() + 1 + + sizeof(smsg->unknown0xxx); + + if (target) m_messages->addMessage(chatColor2MessageType(smsg->messageColor), + QString("Special: '%1' -> '%2' - %3") .arg(smsg->source) + .arg(target->name()) .arg(message)); else + m_messages->addMessage(chatColor2MessageType(smsg->messageColor), + QString("Special: '%1' - %2") .arg(smsg->source) .arg(message)); } void MessageShell::guildMOTD(const uint8_t* data, size_t, uint8_t dir) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-02-18 17:46:07
|
Revision: 1148 http://sourceforge.net/p/seq/svn/1148 Author: cn187 Date: 2021-02-18 17:46:04 +0000 (Thu, 18 Feb 2021) Log Message: ----------- Enumerate net devices and prompt for selection if needed Instead of failing to start if the default/saved net device isn't valid, enumerate the available devices and present the user with a list of devices to choose from. Also update the Network->Select Device menu item to use the new enumerated list/selector. Modified Paths: -------------- showeq/branches/cn187_devel/src/interface.cpp showeq/branches/cn187_devel/src/interface.h Modified: showeq/branches/cn187_devel/src/interface.cpp =================================================================== --- showeq/branches/cn187_devel/src/interface.cpp 2021-02-18 17:45:52 UTC (rev 1147) +++ showeq/branches/cn187_devel/src/interface.cpp 2021-02-18 17:46:04 UTC (rev 1148) @@ -71,6 +71,7 @@ #include <unistd.h> #include <cstdlib> #include <cstdio> +#include <ifaddrs.h> #include <QFont> #include <QApplication> @@ -145,7 +146,8 @@ m_combatWindow(0), m_netDiag(0), m_messageFilterDialog(0), - m_guildListWindow(0) + m_guildListWindow(0), + m_deviceList(enumerateDevices()) { setObjectName(name); setWindowFlags(Qt::Window); @@ -221,10 +223,23 @@ fileInfo2 = m_dataLocationMgr->findExistingFile(".", fileName2); + QString net_device = pSEQPrefs->getPrefString("Device", section, "eth0"); + if (!m_deviceList.contains(net_device)) + { + QString selected = promptForNetDevice(); + + if (!selected.isEmpty()) + { + // set it as the device to monitor next session + pSEQPrefs->setPrefString("Device", "Network", selected); + net_device = selected; + } + } + m_packet = new EQPacket(fileInfo.absoluteFilePath(), fileInfo2.absoluteFilePath(), pSEQPrefs->getPrefInt("ArqSeqGiveUp", section, 512), - pSEQPrefs->getPrefString("Device", section, "eth0"), + net_device, pSEQPrefs->getPrefString("IP", section, AUTOMATIC_CLIENT_IP), pSEQPrefs->getPrefString("MAC", section, "0"), @@ -5149,23 +5164,68 @@ } } -void EQInterface::set_net_device() +QStringList EQInterface::enumerateDevices() { - bool ok = false; - QString dev = - QInputDialog::getText(this, "ShowEQ - Device", + struct ifaddrs *ifaddr, *ifa; + int n; + QStringList devices; + + if (getifaddrs(&ifaddr) == -1) + { + seqWarn("Could not enumerate network devices"); + return QStringList(); + } + + for (ifa = ifaddr, n = 0; ifa != NULL; ifa = ifa->ifa_next, n++) + { + if (ifa->ifa_addr == NULL) + continue; + + if (ifa->ifa_addr->sa_family == AF_INET) + devices.append(ifa->ifa_name); + } + + freeifaddrs(ifaddr); + + return devices; +} + +QString EQInterface::promptForNetDevice() +{ + m_deviceList = enumerateDevices(); + + int current = 0; + if (m_packet) + current = m_deviceList.indexOf(m_packet->device()); + + bool ok = false; + QString selected = QInputDialog::getItem(this, "ShowEQ - Device", "Enter the device to sniff for EQ Packets:", - QLineEdit::Normal, m_packet->device(), - &ok); + m_deviceList, current, true, &ok); - if (ok) - { - // start monitoring the device - m_packet->monitorDevice(dev); + if (ok) + return selected; + else + return QString(); +} - // set it as the device to monitor next session - pSEQPrefs->setPrefString("Device", "Network", m_packet->device()); - } + +void EQInterface::set_net_device() +{ + + QString selected = promptForNetDevice(); + + if (!selected.isEmpty()) + { + if (m_packet) + { + // start monitoring the device + m_packet->monitorDevice(selected); + } + + // set it as the device to monitor next session + pSEQPrefs->setPrefString("Device", "Network", selected); + } } void EQInterface::set_net_arq_giveup(int giveup) Modified: showeq/branches/cn187_devel/src/interface.h =================================================================== --- showeq/branches/cn187_devel/src/interface.h 2021-02-18 17:45:52 UTC (rev 1147) +++ showeq/branches/cn187_devel/src/interface.h 2021-02-18 17:46:04 UTC (rev 1148) @@ -341,6 +341,8 @@ void insertWindowMenu(SEQWindow* window); void removeWindowMenu(SEQWindow* window); void setDockEnabled(QDockWidget* dw, bool enable); + QStringList enumerateDevices(); + QString promptForNetDevice(); public: Player* m_player; @@ -415,6 +417,9 @@ MessageFilterDialog* m_messageFilterDialog; GuildListWindow* m_guildListWindow; + QStringList m_deviceList; + + QLabel* m_stsbarSpawns; QLabel* m_stsbarStatus; QLabel* m_stsbarZone; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-02-18 17:46:02
|
Revision: 1147 http://sourceforge.net/p/seq/svn/1147 Author: cn187 Date: 2021-02-18 17:45:52 +0000 (Thu, 18 Feb 2021) Log Message: ----------- Show held/worn equipment Fix the stream parsing to correctly align the ItemIDs so that the held/worn equipment shows up in the Info field. Note: the rest of the equipment field ordering may or may not be correct as a whole, but that can be addressed in the future if needed. Modified Paths: -------------- showeq/branches/cn187_devel/src/spawnshell.cpp Modified: showeq/branches/cn187_devel/src/spawnshell.cpp =================================================================== --- showeq/branches/cn187_devel/src/spawnshell.cpp 2021-02-18 17:45:45 UTC (rev 1146) +++ showeq/branches/cn187_devel/src/spawnshell.cpp 2021-02-18 17:45:52 UTC (rev 1147) @@ -777,20 +777,22 @@ netStream.skipBytes(36); for(i = 0; i < 9; i++) { + spawn->equipment[i].itemId = netStream.readUInt32NC(); spawn->equipment[i].equip3 = netStream.readUInt32NC(); - spawn->equipment[i].itemId = netStream.readUInt32NC(); spawn->equipment[i].equip2 = netStream.readUInt32NC(); spawn->equipment[i].equip1 = netStream.readUInt32NC(); spawn->equipment[i].equip0 = netStream.readUInt32NC(); } } else { - netStream.skipBytes(28); + netStream.skipBytes(20); spawn->equipment[7].itemId = netStream.readUInt32NC(); + spawn->equipment[7].equip3 = netStream.readUInt32NC(); spawn->equipment[7].equip2 = netStream.readUInt32NC(); spawn->equipment[7].equip1 = netStream.readUInt32NC(); spawn->equipment[7].equip0 = netStream.readUInt32NC(); // secondary spawn->equipment[8].itemId = netStream.readUInt32NC(); + spawn->equipment[8].equip3 = netStream.readUInt32NC(); spawn->equipment[8].equip2 = netStream.readUInt32NC(); spawn->equipment[8].equip1 = netStream.readUInt32NC(); spawn->equipment[8].equip0 = netStream.readUInt32NC(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-02-18 17:45:48
|
Revision: 1146 http://sourceforge.net/p/seq/svn/1146 Author: cn187 Date: 2021-02-18 17:45:45 +0000 (Thu, 18 Feb 2021) Log Message: ----------- Update guild tag opcodes for 02/17/21 Modified Paths: -------------- showeq/branches/cn187_devel/conf/zoneopcodes.xml Modified: showeq/branches/cn187_devel/conf/zoneopcodes.xml =================================================================== --- showeq/branches/cn187_devel/conf/zoneopcodes.xml 2021-02-18 17:45:35 UTC (rev 1145) +++ showeq/branches/cn187_devel/conf/zoneopcodes.xml 2021-02-18 17:45:45 UTC (rev 1146) @@ -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="248a" name="OP_GuildsInZoneList" updated="01/20/21"> + <opcode id="6ec0" name="OP_GuildsInZoneList" updated="02/17/21"> <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="14a2" name="OP_NewGuildInZone" updated="01/20/21"> + <opcode id="33ba" name="OP_NewGuildInZone" updated="02/17/21"> <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> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-02-18 17:45:40
|
Revision: 1145 http://sourceforge.net/p/seq/svn/1145 Author: cn187 Date: 2021-02-18 17:45:35 +0000 (Thu, 18 Feb 2021) Log Message: ----------- Fix guild tag display * Adds OP_NewGuildInZone and OP_GuildsInZoneList opcodes. * Persist guild tag info between sessions via guilds3.dat file * Use previously-unknown guildServerID field in spawn and profile structs to differentiate between the same guildID used on different servers. Modified Paths: -------------- showeq/branches/cn187_devel/conf/seqdef.xml showeq/branches/cn187_devel/conf/zoneopcodes.xml showeq/branches/cn187_devel/src/everquest.h showeq/branches/cn187_devel/src/guild.cpp showeq/branches/cn187_devel/src/guild.h showeq/branches/cn187_devel/src/interface.cpp showeq/branches/cn187_devel/src/map.cpp showeq/branches/cn187_devel/src/player.cpp showeq/branches/cn187_devel/src/s_everquest.h showeq/branches/cn187_devel/src/spawn.cpp showeq/branches/cn187_devel/src/spawn.h showeq/branches/cn187_devel/src/spawnlistcommon.cpp showeq/branches/cn187_devel/src/spawnshell.cpp showeq/branches/cn187_devel/src/spawnshell.h showeq/branches/cn187_devel/src/zonemgr.cpp Modified: showeq/branches/cn187_devel/conf/seqdef.xml =================================================================== --- showeq/branches/cn187_devel/conf/seqdef.xml 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/conf/seqdef.xml 2021-02-18 17:45:35 UTC (rev 1145) @@ -2500,7 +2500,7 @@ " /> </property> <property name="GuildsFile" > - <string value="guilds2.dat" /> + <string value="guilds3.dat" /> <comment>Location of file containing guild strings</comment> </property> <property name="GuildsDumpFile" > Modified: showeq/branches/cn187_devel/conf/zoneopcodes.xml =================================================================== --- showeq/branches/cn187_devel/conf/zoneopcodes.xml 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/conf/zoneopcodes.xml 2021-02-18 17:45:35 UTC (rev 1145) @@ -535,6 +535,14 @@ <comment>Listing of all guilds. Can be triggered by /lfg search?</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> + <opcode id="248a" name="OP_GuildsInZoneList" updated="01/20/21"> + <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="14a2" name="OP_NewGuildInZone" updated="01/20/21"> + <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> <opcode id="ffff" name="OP_LFGGetMatchesRequest" updated="11/28/12"> <comment>LFG/LFP client request - 16 bytes</comment> <payload dir="client" typename="uint8_t" sizechecktype="none"/> Modified: showeq/branches/cn187_devel/src/everquest.h =================================================================== --- showeq/branches/cn187_devel/src/everquest.h 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/everquest.h 2021-02-18 17:45:35 UTC (rev 1145) @@ -122,7 +122,7 @@ #define MAX_SPELLBOOK_SLOTS 800 #define MAX_GROUP_MEMBERS 6 #define MAX_BUFFS 42 -#define MAX_GUILDS 8192 +#define MAX_GUILDS 32768 #define MAX_AA 300 #define MAX_BANDOLIERS 20 #define MAX_POTIONS_IN_BELT 5 @@ -797,6 +797,7 @@ /*20210*/ uint8_t gm; // 0=no, 1=yes (guessing!) /*20211*/ int8_t guildstatus; // 0=member, 1=officer, 2=guildleader /*20212*/ uint8_t unknown20212[16]; // *** Placeholder +/*20224*/ uint32_t guildServerID; /*20228*/ uint32_t exp; // Current Experience /*20232*/ uint8_t unknown20232[12]; // *** Placeholder /*20244*/ uint8_t languages[MAX_KNOWN_LANGS]; // List of languages @@ -1100,6 +1101,7 @@ /*0000*/ uint8_t holding; /*0000*/ uint32_t deity; /*0000*/ uint32_t guildID; +/*0000*/ uint32_t guildServerID; /*0000*/ uint32_t guildstatus; // 0=member, 1=officer, 2=leader, -1=not guilded /*0000*/ uint8_t class_; /*0000*/ uint8_t state; // stand state @@ -2506,11 +2508,22 @@ struct newGuildInZoneStruct { -/*0000*/ uint8_t unknown0000[8]; // ***Placeholder -/*0008*/ char guildname[56]; // Guildname -/*0064*/ +/*0000*/ uint32_t guildId; // Guild ID +/*0004*/ uint32_t serverID; // ***Placeholder +/*0008*/ char guildname[0]; // Guild name, null terminated +/*xxxx*/ }; +struct guildsInZoneListStruct +{ +/*0000*/ uint32_t name_len; // length of player name +/*0004*/ char name[16]; // player name of length name_len, + // no null terminator, max 16 +/*xxxx*/ uint32_t num_guilds; // number of guild names in this struct +/*xxxx*/ newGuildInZoneStruct guilds[0]; +/*xxxx*/ +}; + struct moneyUpdateStruct { /*0000*/ uint32_t spawnid; // ***Placeholder Modified: showeq/branches/cn187_devel/src/guild.cpp =================================================================== --- showeq/branches/cn187_devel/src/guild.cpp 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/guild.cpp 2021-02-18 17:45:35 UTC (rev 1145) @@ -47,21 +47,102 @@ { } -QString GuildMgr::guildIdToName(uint16_t guildID) +QString GuildMgr::guildIdToName(uint16_t guildID, uint16_t guildServerID) { - if (guildID >= m_guildMap.size()) - return ""; - return m_guildMap[guildID]; + uint32_t key = guildServerID << 16 | guildID; + //unguilded PCs have a guild ID of 0 + if (!guildID || !guildServerID | !m_guildList.count(key)) + return ""; + return m_guildList[key]; } -void GuildMgr::worldGuildList(const uint8_t* data, size_t len) + +void GuildMgr::newGuildInZone(const uint8_t* data, size_t len) { - writeGuildList(data, len); - readGuildList(); + NetStream netStream(data, len); + QString guildName; + uint32_t size = 0; // to keep track of how much we're reading from the packet + uint32_t guildId = 0; + uint32_t guildServerId = 0; + + guildId = netStream.readUInt32NC(); + size += 4; + + guildServerId = netStream.readUInt32NC(); + size += 4; + + uint32_t key = guildServerId << 16 | guildId; + + guildName = netStream.readText(); + if (guildName.length() && !m_guildList.count(key)) + { + m_guildList[key] = guildName; + writeGuildList(); + emit guildTagUpdated(guildId); + } + size += guildName.length() + 1; // include null in count + + if (size != len) + seqWarn("newGuildInZone packet is not the expected length: %u != %u", size, len); } -void GuildMgr::writeGuildList(const uint8_t* data, size_t len) +void GuildMgr::guildsInZoneList(const uint8_t* data, size_t len) { + NetStream netStream(data, len); + QString guildName; + QString emptyName = ""; + uint32_t size = 0; // to keep track of how much we're reading from the packet + uint32_t guildId = 0; + uint32_t guildServerId = 0; + uint32_t numGuilds = 0; + + uint32_t nameLen = netStream.readUInt32NC(); + size += 4; + + // skip the player name to get to the guilds + netStream.skipBytes(nameLen); + size += nameLen; + + numGuilds = netStream.readUInt32NC(); + size += 4; + + bool need_save = false; + + while(!netStream.end()) + { + guildId = netStream.readUInt32NC(); + size += 4; + + guildServerId = netStream.readUInt32NC(); + size += 4; + + uint32_t key = guildServerId << 16 | guildId; + + guildName = netStream.readText(); + if (guildName.length() && !m_guildList.count(key)) + { + m_guildList[key] = guildName; + need_save = true; + emit guildTagUpdated(guildId); + } + + size += guildName.length() + 1; // include null in count + + if (size >= len) + break; + } + + if (size != len) + seqWarn("guildsInZoneList packet is not the expected length: %u != %u", size, len); + + if (need_save) + writeGuildList(); + +} + + +void GuildMgr::writeGuildList() +{ QFile guildsfile(guildsFileName); if (guildsfile.exists()) { @@ -76,58 +157,16 @@ seqWarn("GuildMgr: Could not open %s for writing, unable to replace with server data!", guildsFileName.toLatin1().data()); - QDataStream guildDataStream(&guildsfile); + QTextStream guildDataStream(&guildsfile); - NetStream netStream(data,len); - QString guildName; - QString emptyName = ""; - uint32_t size = 0; // to keep track of how much we're reading from the packet - uint32_t guildId = 0; - - for (guildId = 0; guildId < 20000; guildId++) - m_guildList[guildId] = emptyName; - guildId = 0; - - /* - 0x48 in the packet starts the serialized list. See guildListStruct - and worldGuildListStruct in everquest.h - */ - - // skip to the first guild in the list - netStream.skipBytes(0x44); - size += 0x44; - - while(!netStream.end()) + for (auto itr = m_guildList.begin(); itr != m_guildList.end(); ++itr) { - guildId = netStream.readUInt32NC(); - size += 4; // four bytes for the guild ID - netStream.skipBytes(4); - size += 4; // four bytes added 11/16/2016 - guildName = netStream.readText(); - - if(guildName.length()) - { - m_guildList[guildId] = guildName; - - // add guild name length, plus one for the null character - size += guildName.length() + 1; - } - - if(size + 1 == len) - break; // the end + if (itr->first == 0) + continue; + QString line = QString::number(itr->first) + "|" + itr->second.toLatin1(); + guildDataStream << line.trimmed() << "\n"; } - std::map<uint32_t, QString>::iterator it; - - for(it = m_guildList.begin(); it != m_guildList.end(); it++) - { - char szGuildName[64] = {0}; - - strcpy(szGuildName, it->second.toLatin1().data()); - //seqDebug("GuildMgr::writeGuildList - add guild '%s' (%d)", szGuildName, it->first); - guildDataStream.writeRawData(szGuildName, sizeof(szGuildName)); - } - guildsfile.close(); seqInfo("GuildMgr: New guildsfile written"); } @@ -135,17 +174,23 @@ void GuildMgr::readGuildList() { QFile guildsfile(guildsFileName); + m_guildList.clear(); - m_guildMap.clear(); if (guildsfile.open(QIODevice::ReadOnly)) { while (!guildsfile.atEnd()) { - char szGuildName[64] = {0}; - - guildsfile.read(szGuildName, sizeof(szGuildName)); - //seqDebug("GuildMgr::readGuildList - read guild '%s'", szGuildName); - m_guildMap.push_back(QString::fromUtf8(szGuildName)); + QByteArray line = guildsfile.readLine(); + QList<QByteArray> line_parts = line.split('|'); + if (line_parts.size() != 2) + { + seqWarn("GuildMgr::readGuildList - skipping malformed line"); + continue; + } + uint32_t key = line_parts.at(0).toULong(); + QString guildName = line_parts.at(1).trimmed(); + m_guildList[key] = guildName; + emit guildTagUpdated(key & 0x0000ffff); } guildsfile.close(); @@ -174,10 +219,11 @@ return; } - for (unsigned int i =0 ; i < m_guildMap.size(); i++) + for (auto itr = m_guildList.begin(); itr != m_guildList.end(); ++itr) { - if (!m_guildMap[i].isNull()) - guildtext << i << "\t" << m_guildMap[i] << endl; + if (itr->first == 0) + continue; + guildtext << itr->first << "\t" << itr->second << endl; } guildsfile.close(); @@ -188,10 +234,10 @@ void GuildMgr::listGuildInfo() { - for (unsigned int i = 0; i < m_guildMap.size(); i++) + for (auto itr = m_guildList.begin(); itr != m_guildList.end(); ++itr) { - if (!m_guildMap[i].isNull()) - seqInfo("%d\t%s", i, m_guildMap[i].toAscii().data()); + if (!itr->second.isNull()) + seqInfo("%d\t%s", itr->first, itr->second.toAscii().data()); } } Modified: showeq/branches/cn187_devel/src/guild.h =================================================================== --- showeq/branches/cn187_devel/src/guild.h 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/guild.h 2021-02-18 17:45:35 UTC (rev 1145) @@ -47,19 +47,21 @@ ~GuildMgr(); - QString guildIdToName(uint16_t); + QString guildIdToName(uint16_t, uint16_t); public slots: - void worldGuildList(const uint8_t*, size_t); + void newGuildInZone(const uint8_t* data, size_t len); + void guildsInZoneList(const uint8_t * data, size_t len); void readGuildList(); void guildList2text(QString); void listGuildInfo(); + void writeGuildList(); + signals: + void guildTagUpdated(uint32_t); + private: - std::vector<QString> m_guildMap; std::map<uint32_t, QString> m_guildList; - - void writeGuildList(const uint8_t*, size_t); QString guildsFileName; Modified: showeq/branches/cn187_devel/src/interface.cpp =================================================================== --- showeq/branches/cn187_devel/src/interface.cpp 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/interface.cpp 2021-02-18 17:45:35 UTC (rev 1145) @@ -525,6 +525,7 @@ pFileMenu->addAction("Sa&ve Map", m_mapMgr, SLOT(saveMap()), Qt::Key_F2); pFileMenu->addAction("Save SOE Map", m_mapMgr, SLOT(saveSOEMap())); pFileMenu->addAction("Reload Guilds File", m_guildmgr, SLOT(readGuildList())); + pFileMenu->addAction("Save Guilds File", m_guildmgr, SLOT(writeGuildList())); pFileMenu->addAction("Add Spawn Category", this, SLOT(addCategory()), Qt::ALT+Qt::Key_C); pFileMenu->addAction("Rebuild SpawnList", this, SLOT(rebuildSpawnList()), @@ -2010,13 +2011,24 @@ if (m_guildmgr) { + /* m_packet->connect2("OP_GuildList", SP_World, DIR_Server, "worldGuildListStruct", SZC_None, m_guildmgr, SLOT(worldGuildList(const uint8_t*, size_t))); + */ + m_packet->connect2("OP_GuildsInZoneList", SP_Zone, DIR_Server, + "guildsInZoneListStruct", SZC_None, m_guildmgr, + SLOT(guildsInZoneList(const uint8_t*, size_t))); + + m_packet->connect2("OP_NewGuildInZone", SP_Zone, DIR_Server, + "newGuildInZoneStruct", SZC_None, m_guildmgr, + SLOT(newGuildInZone(const uint8_t*, size_t))); + connect(this, SIGNAL(guildList2text(QString)), m_guildmgr, SLOT(guildList2text(QString))); + } if (m_guildShell) @@ -2579,6 +2591,9 @@ if (m_guildShell != 0) delete m_guildShell; + if (m_guildmgr != 0) + delete m_guildmgr; + if (m_zoneMgr != 0) delete m_zoneMgr; Modified: showeq/branches/cn187_devel/src/map.cpp =================================================================== --- showeq/branches/cn187_devel/src/map.cpp 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/map.cpp 2021-02-18 17:45:35 UTC (rev 1145) @@ -4258,18 +4258,15 @@ if (spawn) { QString guild; - if (spawn->guildID() < MAX_GUILDS) - { - if (!spawn->guildTag().isEmpty()) + if (!spawn->guildTag().isEmpty()) guild.sprintf("<%s>", spawn->guildTag().toAscii().data()); - else + else if (spawn->guildID()) guild = QString::number(spawn->guildID()); - } else guild = " "; QString hp; - + if (spawn->HP() <= 0) hp = "<= 0"; else Modified: showeq/branches/cn187_devel/src/player.cpp =================================================================== --- showeq/branches/cn187_devel/src/player.cpp 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/player.cpp 2021-02-18 17:45:35 UTC (rev 1145) @@ -375,7 +375,8 @@ // Guild setGuildID(player->guildID); - setGuildTag(m_guildMgr->guildIdToName(guildID())); + setGuildServerID(player->guildServerID); + setGuildTag(m_guildMgr->guildIdToName(guildID(), guildServerID())); emit guildChanged(); // Position Modified: showeq/branches/cn187_devel/src/s_everquest.h =================================================================== --- showeq/branches/cn187_devel/src/s_everquest.h 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/s_everquest.h 2021-02-18 17:45:35 UTC (rev 1145) @@ -110,6 +110,7 @@ AddStruct(attack1Struct); AddStruct(attack2Struct); AddStruct(newGuildInZoneStruct); +AddStruct(guildsInZoneListStruct); AddStruct(moneyUpdateStruct); AddStruct(memorizeSlotStruct); AddStruct(cRunToggleStruct); Modified: showeq/branches/cn187_devel/src/spawn.cpp =================================================================== --- showeq/branches/cn187_devel/src/spawn.cpp 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/spawn.cpp 2021-02-18 17:45:35 UTC (rev 1145) @@ -399,6 +399,7 @@ setHP(s->HP()); setMaxHP(s->maxHP()); setGuildID(s->guildID()); + setGuildServerID(s->guildServerID()); setLevel(s->level()); for (int i = 0; i <= tLastCoreWearSlot; i++) setEquipment(i, s->equipment(i)); @@ -433,6 +434,7 @@ setHP(s->curHp); setMaxHP(100); //the client sets this to 100 setGuildID(s->guildID); + setGuildServerID(s->guildServerID); setLevel(s->level); for (int i = 0; i <= tLastCoreWearSlot; i++) setEquipment(i, s->equipment[i]); @@ -541,8 +543,11 @@ // set guildID if (s->NPC == SPAWN_PLAYER || s->NPC == SPAWN_SELF) + { setGuildID(s->guildID); - else + setGuildServerID(s->guildServerID); + } + else setGuildID(0xffff); } Modified: showeq/branches/cn187_devel/src/spawn.h =================================================================== --- showeq/branches/cn187_devel/src/spawn.h 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/spawn.h 2021-02-18 17:45:35 UTC (rev 1145) @@ -239,6 +239,7 @@ int32_t HP() const { return m_curHP; } int32_t maxHP() const { return m_maxHP; } uint16_t guildID() const { return m_guildID; } + uint16_t guildServerID() const { return m_guildServerID; } QString guildTag() const { return m_guildTag; } uint16_t petOwnerID() const { return m_petOwnerID; } uint8_t light() const { return m_light; } @@ -338,6 +339,7 @@ void setHP(int32_t HP) { m_curHP = HP; } void setMaxHP(int32_t maxHP) { m_maxHP = maxHP; } void setGuildID(uint16_t GuildID) { m_guildID = GuildID; } + void setGuildServerID(uint16_t GuildServerID) { m_guildServerID = GuildServerID; } void setGuildTag(QString GuildTag) { m_guildTag = GuildTag; } void setLevel(int level) { m_level = level; } void setEquipment(uint8_t wearSlot, EquipStruct item) @@ -378,6 +380,7 @@ int32_t m_curHP; int32_t m_maxHP; uint16_t m_guildID; + uint16_t m_guildServerID; uint16_t m_deity; int16_t m_deityTeam; EquipStruct m_equipment[tNumWearSlots]; Modified: showeq/branches/cn187_devel/src/spawnlistcommon.cpp =================================================================== --- showeq/branches/cn187_devel/src/spawnlistcommon.cpp 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/spawnlistcommon.cpp 2021-02-18 17:45:35 UTC (rev 1145) @@ -209,13 +209,12 @@ { setText(tSpawnColDeity, spawn->deityName()); setText(tSpawnColBodyType, spawn->typeString()); - if (spawn->guildID() < MAX_GUILDS) - { - if(!spawn->guildTag().isEmpty()) + if (!spawn->guildTag().isEmpty()) setText(tSpawnColGuildID, spawn->guildTag()); - else + else if (spawn->guildID()) setText(tSpawnColGuildID, QString::number(spawn->guildID())); - } + else + setText(tSpawnColGuildID, " "); } } else if (changeType == tSpawnChangedALL) Modified: showeq/branches/cn187_devel/src/spawnshell.cpp =================================================================== --- showeq/branches/cn187_devel/src/spawnshell.cpp 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/spawnshell.cpp 2021-02-18 17:45:35 UTC (rev 1145) @@ -142,6 +142,10 @@ connect(m_player, SIGNAL(changedID(uint16_t)), this, SLOT(playerChangedID(uint16_t))); + // connect to guildmgr to receive notifications of guild tag updates + connect(m_guildMgr, SIGNAL(guildTagUpdated(uint32_t)), + this, SLOT(updateGuildTag(uint32_t))); + // restore the spawn list if necessary if (showeq_params->restoreSpawns) restoreSpawns(); @@ -248,6 +252,47 @@ return closest; } +void SpawnShell::updateGuildTag(uint32_t guildId) +{ + ItemIterator it(m_spawns); + Spawn* spawn; + + while (it.hasNext()) + { + it.next(); + + spawn = (Spawn*)it.value(); + if (!spawn) + break; + + if (guildId == spawn->guildID()) + { + spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID(), spawn->guildServerID())); + spawn->updateLastChanged(); + emit changeItem(spawn, tSpawnChangedALL); + } + } + + ItemIterator pl(m_players); + + while (pl.hasNext()) + { + pl.next(); + + spawn = (Spawn*)pl.value(); + if (!spawn) + break; + + if (guildId == spawn->guildID()) + { + spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID(), spawn->guildServerID())); + spawn->updateLastChanged(); + emit changeItem(spawn, tSpawnChangedALL); + } + } +} + + Spawn* SpawnShell::findSpawnByName(const QString& name) { ItemIterator it(m_spawns); @@ -686,7 +731,7 @@ spawn->holding = netStream.readUInt8(); spawn->deity = netStream.readUInt32NC(); spawn->guildID = netStream.readUInt32NC(); - netStream.skipBytes(4); /* new data in 11/16/2016 patch */ + spawn->guildServerID = netStream.readUInt32NC(); /* spawn->guildstatus = netStream.readUInt32NC(); disappeared 11/14/2018 */ spawn->guildstatus = 0; spawn->class_ = netStream.readUInt32NC(); @@ -879,10 +924,8 @@ updateRuntimeFilterFlags(spawn); item->updateLastChanged(); - if (spawn->guildID() < MAX_GUILDS) - spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID())); - else - spawn->setGuildTag(""); + spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID(), spawn->guildServerID())); + if (!showeq_params->fast_machine) item->setDistanceToPlayer(m_player->calcDist2DInt(*item)); else @@ -898,10 +941,8 @@ updateRuntimeFilterFlags(spawn); m_spawns.insert(s.spawnId, item); - if (spawn->guildID() < MAX_GUILDS) - spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID())); - else - spawn->setGuildTag(""); + spawn->setGuildTag(m_guildMgr->guildIdToName(spawn->guildID(), spawn->guildServerID())); + if (!showeq_params->fast_machine) item->setDistanceToPlayer(m_player->calcDist2DInt(*item)); else @@ -1577,14 +1618,7 @@ updateRuntimeFilterFlags(corpse); m_spawns.insert(corpse->id(), corpse); - if (corpse->guildID() < MAX_GUILDS) - { - corpse->setGuildTag(m_guildMgr->guildIdToName(corpse->guildID())); - } - else - { - corpse->setGuildTag(""); - } + corpse->setGuildTag(m_guildMgr->guildIdToName(corpse->guildID(), corpse->guildServerID())); emit addItem(corpse); Modified: showeq/branches/cn187_devel/src/spawnshell.h =================================================================== --- showeq/branches/cn187_devel/src/spawnshell.h 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/spawnshell.h 2021-02-18 17:45:35 UTC (rev 1145) @@ -150,6 +150,8 @@ void saveSpawns(void); void restoreSpawns(void); + void updateGuildTag(uint32_t guildId); + protected: void refilterSpawns(spawnItemType type); void refilterSpawnsRuntime(spawnItemType type); Modified: showeq/branches/cn187_devel/src/zonemgr.cpp =================================================================== --- showeq/branches/cn187_devel/src/zonemgr.cpp 2021-02-18 17:28:56 UTC (rev 1144) +++ showeq/branches/cn187_devel/src/zonemgr.cpp 2021-02-18 17:45:35 UTC (rev 1145) @@ -475,9 +475,10 @@ player->standState = netStream.readUInt16(); player->anon = netStream.readUInt16(); player->guildID = netStream.readUInt32NC(); + player->guildServerID = netStream.readUInt32NC(); // Unknown - netStream.skipBytes(14); + netStream.skipBytes(10); player->platinum_bank = netStream.readUInt32NC(); player->gold_bank = netStream.readUInt32NC(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-02-18 17:28:58
|
Revision: 1144 http://sourceforge.net/p/seq/svn/1144 Author: cn187 Date: 2021-02-18 17:28:56 +0000 (Thu, 18 Feb 2021) Log Message: ----------- Create branch cn187_devel Added Paths: ----------- showeq/branches/cn187_devel/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-02-18 01:48:22
|
Revision: 1143 http://sourceforge.net/p/seq/svn/1143 Author: cn187 Date: 2021-02-18 01:48:16 +0000 (Thu, 18 Feb 2021) Log Message: ----------- Tag for release 6.0.0.2 Added Paths: ----------- showeq/tags/v6_0_0_2/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-02-18 01:38:14
|
Revision: 1142 http://sourceforge.net/p/seq/svn/1142 Author: cn187 Date: 2021-02-18 01:38:08 +0000 (Thu, 18 Feb 2021) Log Message: ----------- Release 6.0.0.2 - Update ClientZoneEntryStruct to eliminate warning (fransick) - Update opcodes/structs for 2021-02-17 patch - Version to 6.0.0.2 Modified Paths: -------------- showeq/trunk/ChangeLog showeq/trunk/conf/zoneopcodes.xml showeq/trunk/configure.in showeq/trunk/src/everquest.h Modified: showeq/trunk/ChangeLog =================================================================== --- showeq/trunk/ChangeLog 2021-01-31 19:18:37 UTC (rev 1141) +++ showeq/trunk/ChangeLog 2021-02-18 01:38:08 UTC (rev 1142) @@ -1,3 +1,9 @@ +cn187 (02/17/21) +---------------- +- Updated version to 6.0.0.2 +- Support for EQ patch 02/17/21 +- Updated ClientZoneEntryStruct to eliminate warning (fransick) + cn187 (01/20/21) ---------------- - Updated version to 6.0.0.1 Modified: showeq/trunk/conf/zoneopcodes.xml =================================================================== --- showeq/trunk/conf/zoneopcodes.xml 2021-01-31 19:18:37 UTC (rev 1141) +++ showeq/trunk/conf/zoneopcodes.xml 2021-02-18 01:38:08 UTC (rev 1142) @@ -3,78 +3,78 @@ <seqopcodes> <!-- Critical opcodes used directly by ShowEQ --> - <opcode id="1dda" name="OP_PlayerProfile" updated="01/20/21"> + <opcode id="6167" name="OP_PlayerProfile" updated="02/17/21"> <comment>CharProfileCode</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="68f8" name="OP_ZoneEntry" updated="01/20/21"> + <opcode id="2150" name="OP_ZoneEntry" updated="02/17/21"> <comment>ZoneEntryCode</comment> <payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="0559" name="OP_TimeOfDay" updated="01/20/21"> + <opcode id="4b1b" name="OP_TimeOfDay" updated="02/17/21"> <comment>TimeOfDayCode</comment> <payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/> </opcode> - <opcode id="745c" name="OP_NewZone" updated="01/20/21"> + <opcode id="26f2" name="OP_NewZone" updated="02/17/21"> <comment>NewZoneCode</comment> <payload dir="server" typename="newZoneStruct" sizechecktype="match"/> </opcode> - <opcode id="0779" name="OP_SpawnDoor" updated="01/20/21"> + <opcode id="5355" name="OP_SpawnDoor" updated="02/17/21"> <comment>DoorSpawnsCode</comment> <payload dir="server" typename="doorStruct" sizechecktype="modulus"/> </opcode> - <opcode id="42fe" name="OP_GroundSpawn" updated="01/20/21"> + <opcode id="7b4d" name="OP_GroundSpawn" updated="02/17/21"> <comment>MakeDropCode</comment> <payload dir="server" typename="makeDropStruct" sizechecktype="none"/> <payload dir="client" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="1ec0" name="OP_SendZonePoints" updated="01/20/21"> + <opcode id="5dcd" name="OP_SendZonePoints" updated="02/17/21"> <comment>Coords in a zone that will port you to another zone</comment> <payload dir="server" typename="zonePointsStruct" sizechecktype="none"/> </opcode> - <opcode id="0007" name="OP_AAExpUpdate" updated="01/20/21"> + <opcode id="04c4" name="OP_AAExpUpdate" updated="02/17/21"> <comment>Receiving AA experience. Also when percent to AA changes.</comment> <payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="34c3" name="OP_ExpUpdate" updated="01/20/21"> + <opcode id="00e5" name="OP_ExpUpdate" updated="02/17/21"> <comment>ExpUpdateCode</comment> <payload dir="server" typename="expUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="1c17" name="OP_GuildMOTD" updated="01/20/21"> + <opcode id="7e16" name="OP_GuildMOTD" updated="02/17/21"> <comment>GuildMOTD</comment> <payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/> </opcode> - <opcode id="00f5" name="OP_ClientUpdate" updated="01/20/21"> + <opcode id="3838" name="OP_ClientUpdate" updated="02/17/21"> <comment>Position updates</comment> <payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/> <payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/> </opcode> - <opcode id="6aa6" name="OP_NpcMoveUpdate" updated="01/20/21"> + <opcode id="4aad" name="OP_NpcMoveUpdate" updated="02/17/21"> <comment>Position updates</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="695d" name="OP_MobUpdate" updated="01/20/21"> + <opcode id="1aa9" name="OP_MobUpdate" updated="02/17/21"> <comment>MobUpdateCode</comment> <payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/> </opcode> - <opcode id="1e4e" name="OP_DeleteSpawn" updated="01/20/21"> + <opcode id="5ebd" name="OP_DeleteSpawn" updated="02/17/21"> <comment>DeleteSpawnCode</comment> <payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/> </opcode> - <opcode id="3671" name="OP_RemoveSpawn" updated="01/20/21"> + <opcode id="1d9b" name="OP_RemoveSpawn" updated="02/17/21"> <comment>Remove spawn from zone</comment> <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/> </opcode> - <opcode id="7209" name="OP_Death" updated="01/20/21"> + <opcode id="0be8" name="OP_Death" updated="02/17/21"> <comment>old NewCorpseCode</comment> <payload dir="server" typename="newCorpseStruct" sizechecktype="match"/> </opcode> - <opcode id="14f8" name="OP_WearChange" updated="01/20/21"> + <opcode id="523a" name="OP_WearChange" updated="02/17/21"> <comment>SpawnUpdateCode</comment> <payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="13dc" name="OP_SpawnAppearance" updated="01/20/21"> + <opcode id="25a3" name="OP_SpawnAppearance" updated="02/17/21"> <comment>SpawnAppearanceCode</comment> <payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/> </opcode> @@ -82,36 +82,36 @@ <comment>Server updating on hunger/thirst</comment> <payload dir="server" typename="staminaStruct" sizechecktype="match"/> </opcode> - <opcode id="233f" name="OP_HPUpdate" updated="01/20/21"> + <opcode id="07f7" name="OP_HPUpdate" updated="02/17/21"> <comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment> <payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="369e" name="OP_GuildMemberUpdate" updated="01/20/21"> + <opcode id="7317" name="OP_GuildMemberUpdate" updated="02/17/21"> <comment>Info regarding guild members</comment> <payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/> </opcode> - <opcode id="783f" name="OP_ClickObject" updated="01/20/21"> + <opcode id="5ae0" name="OP_ClickObject" updated="02/17/21"> <comment>Items dropped on the ground</comment> <payload dir="both" typename="remDropStruct" sizechecktype="match"/> </opcode> - <opcode id="3414" name="OP_Action" updated="01/20/21"> + <opcode id="71e8" name="OP_Action" updated="02/17/21"> <comment>Spells cast etc</comment> <payload dir="both" typename="actionStruct" sizechecktype="match"/> <payload dir="both" typename="actionAltStruct" sizechecktype="match"/> </opcode> - <opcode id="109e" name="OP_Action2" updated="01/20/21"> + <opcode id="694f" name="OP_Action2" updated="02/17/21"> <comment>Combat actions i.e. bash, kick etc</comment> <payload dir="both" typename="action2Struct" sizechecktype="match"/> </opcode> - <opcode id="22c5" name="OP_Consider" updated="01/20/21"> + <opcode id="3fec" name="OP_Consider" updated="02/17/21"> <comment>ConsiderCode</comment> <payload dir="both" typename="considerStruct" sizechecktype="match"/> </opcode> - <opcode id="1eaf" name="OP_TargetMouse" updated="01/20/21"> + <opcode id="4c33" name="OP_TargetMouse" updated="02/17/21"> <comment>Targeting a person - old ClientTargetCode</comment> <payload dir="both" typename="clientTargetStruct" sizechecktype="match"/> </opcode> - <opcode id="2d2f" name="OP_SpawnRename" updated="01/20/21"> + <opcode id="1fbe" name="OP_SpawnRename" updated="02/17/21"> <comment>Spawns getting renamed after initial NewSpawn</comment> <payload dir="server" typename="spawnRenameStruct" 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="68d7" name="OP_ZoneChange" updated="01/20/21"> + <opcode id="5242" name="OP_ZoneChange" updated="02/17/21"> <comment>old ZoneChangeCode</comment> <payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/> </opcode> @@ -167,19 +167,19 @@ <comment>old BuffDropCode</comment> <payload dir="both" typename="buffStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_BeginCast" updated="06/19/19"> + <opcode id="49de" name="OP_BeginCast" updated="02/17/21"> <comment>BeginCastCode</comment> <payload dir="both" typename="beginCastStruct" sizechecktype="match"/> </opcode> - <opcode id="ffff" name="OP_CastSpell" updated="06/19/19"> + <opcode id="56a9" name="OP_CastSpell" updated="02/17/21"> <comment>StartCastCode</comment> <payload dir="both" typename="startCastStruct" sizechecktype="match"/> </opcode> - <opcode id="0d8c" name="OP_SwapSpell" updated="01/20/21"> + <opcode id="4058" name="OP_SwapSpell" updated="02/17/21"> <comment>TradeSpellBookSlotsCode</comment> <payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/> </opcode> - <opcode id="102c" name="OP_MemorizeSpell" updated="01/20/21"> + <opcode id="292b" name="OP_MemorizeSpell" updated="02/17/21"> <comment>MemSpellCode</comment> <payload dir="both" typename="memSpellStruct" sizechecktype="match"/> </opcode> @@ -191,19 +191,19 @@ <comment>EmoteTextCode</comment> <payload dir="both" typename="emoteTextStruct" sizechecktype="none"/> </opcode> - <opcode id="0606" name="OP_SimpleMessage" updated="01/20/21"> + <opcode id="678f" name="OP_SimpleMessage" updated="02/17/21"> <comment>SimpleMessageCode</comment> <payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/> </opcode> - <opcode id="2427" name="OP_FormattedMessage" updated="01/20/21"> + <opcode id="6586" name="OP_FormattedMessage" updated="02/17/21"> <comment>FormattedMessageCode i.e. pet dismissed etc</comment> <payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="68ea" name="OP_CommonMessage" updated="01/20/21"> + <opcode id="1c31" name="OP_CommonMessage" updated="02/17/21"> <comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment> <payload dir="both" typename="channelMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="47fd" name="OP_SpecialMesg" updated="01/20/21"> + <opcode id="77b5" name="OP_SpecialMesg" updated="02/17/21"> <comment>Communicate textual info to client including hail responses etc</comment> <payload dir="server" typename="specialMessageStruct" sizechecktype="none"/> </opcode> @@ -223,7 +223,7 @@ <comment>Server replying with deny information after /deny</comment> <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/> </opcode> - <opcode id="419d" name="OP_ManaChange" updated="01/20/21"> + <opcode id="6679" name="OP_ManaChange" updated="02/17/21"> <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"/> @@ -240,11 +240,11 @@ <comment>MoneyOnCorpseCode</comment> <payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/> </opcode> - <opcode id="4d81" name="OP_SkillUpdate" updated="01/20/21"> + <opcode id="012b" name="OP_SkillUpdate" updated="02/17/21"> <comment>Skill up code</comment> <payload dir="server" typename="skillIncStruct" sizechecktype="match"/> </opcode> - <opcode id="1995" name="OP_LevelUpdate" updated="01/20/21"> + <opcode id="2dad" name="OP_LevelUpdate" updated="02/17/21"> <comment>LevelUpUpdateCode</comment> <payload dir="server" typename="levelUpUpdateStruct" 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="5d7d" name="OP_GuildMemberList" updated="01/20/21"> + <opcode id="35b8" name="OP_GuildMemberList" updated="02/17/21"> <comment>List of guild members - Variable length</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="6f8a" name="OP_ManaUpdate" updated="01/20/21"> + <opcode id="70f7" name="OP_ManaUpdate" updated="02/17/21"> <comment>Mana Update opcode - 10 bytes</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="03cb" name="OP_EndUpdate" updated="01/20/21"> + <opcode id="000e" name="OP_EndUpdate" updated="02/17/21"> <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="327f" name="OP_ExpandedGuildInfo" updated="01/20/21"> + <opcode id="6995" name="OP_ExpandedGuildInfo" updated="02/17/21"> <comment>Guild ranks and other misc guild data - Variable length</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> @@ -587,7 +587,7 @@ <comment>Free to play nags and other data - Variable length</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="6dd9" name="OP_Find" updated="01/20/21"> + <opcode id="5414" name="OP_Find" updated="02/17/21"> <comment>Find window data - 112 bytes</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> Modified: showeq/trunk/configure.in =================================================================== --- showeq/trunk/configure.in 2021-01-31 19:18:37 UTC (rev 1141) +++ showeq/trunk/configure.in 2021-02-18 01:38:08 UTC (rev 1142) @@ -2,7 +2,7 @@ dnl $Id$ $Name$ AC_PREREQ(2.59) -AC_INIT(showeq, 6.0.0.1) +AC_INIT(showeq, 6.0.0.2) AC_CONFIG_SRCDIR(src/main.cpp) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_SYSTEM Modified: showeq/trunk/src/everquest.h =================================================================== --- showeq/trunk/src/everquest.h 2021-01-31 19:18:37 UTC (rev 1141) +++ showeq/trunk/src/everquest.h 2021-02-18 01:38:08 UTC (rev 1142) @@ -1111,26 +1111,29 @@ struct { - signed y:19; // y coord (2nd loc value) + signed deltaHeading:10; // change in heading + unsigned pitch:12; // pitch (up/down heading) + unsigned padding00:10; + signed deltaZ:13; // change in z + signed deltaY:13; // change in y + unsigned padding01:6; - signed x:19; // x coord (1st loc value) + signed z:19; // z coord (3rd loc value) signed deltaX:13; // change in x + signed x:19; // x coord (1st loc value) unsigned heading:12; // heading - signed deltaHeading:10; // change in heading - signed animation:10; // current animation - - unsigned pitch:12; // pitch (up/down heading) - signed z:19; // z coord (3rd loc value) unsigned padding03:1; - signed deltaY:13; // change in y - unsigned padding04:19; + signed animation:10; // current animation + signed y:19; // y coord (2nd loc value) + unsigned padding04:3; }; int32_t posData[5]; }; + /*0000*/ union { struct @@ -2388,22 +2391,24 @@ /*0000*/ uint16_t spawnId; /*0002*/ uint16_t spawnId2; /*0004*/ - signed y:19; // y coord (2nd loc value) + signed deltaHeading:10; // change in heading + unsigned pitch:12; // pitch (up/down heading) + unsigned padding00:10; +/*0008*/ signed deltaZ:13; // change in z -/*0008*/ + signed deltaY:13; // change in y + unsigned padding01:6; +/*0012*/ + signed z:19; // z coord (3rd loc value) + signed deltaX:13; // change in x +/*0016*/ signed x:19; // x coord (1st loc value) - signed deltaX:13; // change in x -/*0012*/ unsigned heading:12; // heading - signed deltaHeading:10; // change in heading - signed animation:10; // current animation -/*0016*/ - unsigned pitch:12; // pitch (up/down heading) - signed z:19; // z coord (3rd loc value) unsigned padding03:1; /*0020*/ - signed deltaY:13; // change in y - unsigned padding04:19; + signed animation:10; // current animation + signed y:19; // y coord (2nd loc value) + unsigned padding04:3; /*0024*/ }; @@ -2418,24 +2423,25 @@ /*0002*/ uint16_t spawnId; // Player's spawn id /*0004*/ uint16_t unknown0004; // ***Placeholder /*0006*/ - float deltaX; // change in x + float deltaY; // change in y /*0010*/ + unsigned pitch:12; // pitch (up/down heading) unsigned heading:12; // heading - unsigned padding01:20; + unsigned padding01:8; /*0014*/ - float deltaZ; // change in z + signed deltaHeading:10; // change in heading + signed animation:10; // current animation + unsigned padding02:12; /*0018*/ float x; // x coord (1st loc value) /*0022*/ + float deltaZ; // change in z +/*0026*/ float z; // z coord (3rd loc value) -/*0026*/ - float deltaY; // change in y /*0030*/ float y; // y coord (2nd loc value) /*0034*/ - unsigned pitch:12; // pitch (up/down heading) - signed animation:10; // current animation - signed deltaHeading:10; // change in heading + float deltaX; // change in x /*0038*/ }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-01-21 05:05:12
|
Revision: 1140 http://sourceforge.net/p/seq/svn/1140 Author: cn187 Date: 2021-01-21 05:05:11 +0000 (Thu, 21 Jan 2021) Log Message: ----------- Tag release 6.0.0.1 Added Paths: ----------- showeq/tags/v6_0_0_1/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-01-21 04:59:30
|
Revision: 1139 http://sourceforge.net/p/seq/svn/1139 Author: cn187 Date: 2021-01-21 04:59:21 +0000 (Thu, 21 Jan 2021) Log Message: ----------- Release 6.0.0.1 patch bugfix Modified Paths: -------------- showeq/trunk/ChangeLog showeq/trunk/configure.in Modified: showeq/trunk/ChangeLog =================================================================== --- showeq/trunk/ChangeLog 2021-01-21 04:46:42 UTC (rev 1138) +++ showeq/trunk/ChangeLog 2021-01-21 04:59:21 UTC (rev 1139) @@ -1,5 +1,12 @@ cn187 (01/20/21) ---------------- +- Updated version to 6.0.0.1 +- Additional fixes for EQ patch 01/20/21 + - Fix struct alignment issue causing crashes and invalid spawn data + - Fix map loading issue in some zones + +cn187 (01/20/21) +---------------- - Updated version to 6.0.0.0 - Updated to QT4 - Various bug fixes Modified: showeq/trunk/configure.in =================================================================== --- showeq/trunk/configure.in 2021-01-21 04:46:42 UTC (rev 1138) +++ showeq/trunk/configure.in 2021-01-21 04:59:21 UTC (rev 1139) @@ -2,7 +2,7 @@ dnl $Id$ $Name$ AC_PREREQ(2.59) -AC_INIT(showeq, 6.0.0.0) +AC_INIT(showeq, 6.0.0.1) AC_CONFIG_SRCDIR(src/main.cpp) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_SYSTEM This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-01-21 04:46:47
|
Revision: 1138 http://sourceforge.net/p/seq/svn/1138 Author: cn187 Date: 2021-01-21 04:46:42 +0000 (Thu, 21 Jan 2021) Log Message: ----------- Fix typo in previous commit Modified Paths: -------------- showeq/trunk/src/zonemgr.cpp Modified: showeq/trunk/src/zonemgr.cpp =================================================================== --- showeq/trunk/src/zonemgr.cpp 2021-01-21 04:45:13 UTC (rev 1137) +++ showeq/trunk/src/zonemgr.cpp 2021-01-21 04:46:42 UTC (rev 1138) @@ -642,7 +642,7 @@ // 2020-01-20 patch seems to have added _progress suffix to certain // zone names, presumably for the progression servers. This happens in // ToV DZs for sure, but there may be others. - QRexExp rz("_progress$"); + QRegExp rz("_progress$"); m_shortZoneName.replace(rz, ""); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-01-21 04:45:21
|
Revision: 1137 http://sourceforge.net/p/seq/svn/1137 Author: cn187 Date: 2021-01-21 04:45:13 +0000 (Thu, 21 Jan 2021) Log Message: ----------- Ignore _progress suffix on zone shortnames Modified Paths: -------------- showeq/trunk/src/zonemgr.cpp Modified: showeq/trunk/src/zonemgr.cpp =================================================================== --- showeq/trunk/src/zonemgr.cpp 2021-01-21 04:32:15 UTC (rev 1136) +++ showeq/trunk/src/zonemgr.cpp 2021-01-21 04:45:13 UTC (rev 1137) @@ -638,6 +638,12 @@ // LDoN likes to append a _262 to the zonename. Get rid of it. QRegExp rx("_\\d+$"); m_shortZoneName.replace( rx, ""); + + // 2020-01-20 patch seems to have added _progress suffix to certain + // zone names, presumably for the progression servers. This happens in + // ToV DZs for sure, but there may be others. + QRexExp rz("_progress$"); + m_shortZoneName.replace(rz, ""); } m_longZoneName = zoneNew->longName; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-01-21 04:32:23
|
Revision: 1136 http://sourceforge.net/p/seq/svn/1136 Author: cn187 Date: 2021-01-21 04:32:15 +0000 (Thu, 21 Jan 2021) Log Message: ----------- Fix for struct alignment change in fillProfileStruct Modified Paths: -------------- showeq/trunk/src/zonemgr.cpp Modified: showeq/trunk/src/zonemgr.cpp =================================================================== --- showeq/trunk/src/zonemgr.cpp 2021-01-21 00:45:51 UTC (rev 1135) +++ showeq/trunk/src/zonemgr.cpp 2021-01-21 04:32:15 UTC (rev 1136) @@ -263,7 +263,7 @@ } // Looks like face, haircolor, beardcolor, eyes, etc. Skipping over it. - netStream.skipBytes(52); + netStream.skipBytes(51); player->profile.points = netStream.readUInt32NC(); player->profile.MANA = netStream.readUInt32NC(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-01-21 00:45:52
|
Revision: 1135 http://sourceforge.net/p/seq/svn/1135 Author: cn187 Date: 2021-01-21 00:45:51 +0000 (Thu, 21 Jan 2021) Log Message: ----------- Tag 6.0.0.0 release Added Paths: ----------- showeq/tags/v6_0_0_0/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-01-21 00:44:40
|
Revision: 1134 http://sourceforge.net/p/seq/svn/1134 Author: cn187 Date: 2021-01-21 00:44:38 +0000 (Thu, 21 Jan 2021) Log Message: ----------- Releae 6.0.0.0 - Update opcodes/structs for 2021-01-20 patch - Version to 6.0.0.0 Modified Paths: -------------- showeq/trunk/ChangeLog showeq/trunk/conf/zoneopcodes.xml showeq/trunk/src/everquest.h Modified: showeq/trunk/ChangeLog =================================================================== --- showeq/trunk/ChangeLog 2021-01-20 16:24:40 UTC (rev 1133) +++ showeq/trunk/ChangeLog 2021-01-21 00:44:38 UTC (rev 1134) @@ -1,8 +1,9 @@ -cn187 (01/xx/21) +cn187 (01/20/21) ---------------- - Updated version to 6.0.0.0 - Updated to QT4 - Various bug fixes +- Support EQ patch 01/20/21 cn187 (12/08/20) - Updated version to 5.13.10.105 Modified: showeq/trunk/conf/zoneopcodes.xml =================================================================== --- showeq/trunk/conf/zoneopcodes.xml 2021-01-20 16:24:40 UTC (rev 1133) +++ showeq/trunk/conf/zoneopcodes.xml 2021-01-21 00:44:38 UTC (rev 1134) @@ -3,78 +3,78 @@ <seqopcodes> <!-- Critical opcodes used directly by ShowEQ --> - <opcode id="1cfe" name="OP_PlayerProfile" updated="12/08/20"> + <opcode id="1dda" name="OP_PlayerProfile" updated="01/20/21"> <comment>CharProfileCode</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="559a" name="OP_ZoneEntry" updated="12/08/20"> + <opcode id="68f8" name="OP_ZoneEntry" updated="01/20/21"> <comment>ZoneEntryCode</comment> <payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="56b9" name="OP_TimeOfDay" updated="12/08/20"> + <opcode id="0559" name="OP_TimeOfDay" updated="01/20/21"> <comment>TimeOfDayCode</comment> <payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/> </opcode> - <opcode id="6b22" name="OP_NewZone" updated="12/08/20"> + <opcode id="745c" name="OP_NewZone" updated="01/20/21"> <comment>NewZoneCode</comment> <payload dir="server" typename="newZoneStruct" sizechecktype="match"/> </opcode> - <opcode id="3f0e" name="OP_SpawnDoor" updated="12/08/20"> + <opcode id="0779" name="OP_SpawnDoor" updated="01/20/21"> <comment>DoorSpawnsCode</comment> <payload dir="server" typename="doorStruct" sizechecktype="modulus"/> </opcode> - <opcode id="2191" name="OP_GroundSpawn" updated="12/08/20"> + <opcode id="42fe" name="OP_GroundSpawn" updated="01/20/21"> <comment>MakeDropCode</comment> <payload dir="server" typename="makeDropStruct" sizechecktype="none"/> <payload dir="client" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="29bf" name="OP_SendZonePoints" updated="12/08/20"> + <opcode id="1ec0" name="OP_SendZonePoints" updated="01/20/21"> <comment>Coords in a zone that will port you to another zone</comment> <payload dir="server" typename="zonePointsStruct" sizechecktype="none"/> </opcode> - <opcode id="0c2e" name="OP_AAExpUpdate" updated="12/08/20"> + <opcode id="0007" name="OP_AAExpUpdate" updated="01/20/21"> <comment>Receiving AA experience. Also when percent to AA changes.</comment> <payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="5df3" name="OP_ExpUpdate" updated="12/08/20"> + <opcode id="34c3" name="OP_ExpUpdate" updated="01/20/21"> <comment>ExpUpdateCode</comment> <payload dir="server" typename="expUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="08d5" name="OP_GuildMOTD" updated="12/08/20"> + <opcode id="1c17" name="OP_GuildMOTD" updated="01/20/21"> <comment>GuildMOTD</comment> <payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/> </opcode> - <opcode id="33fe" name="OP_ClientUpdate" updated="12/08/20"> + <opcode id="00f5" name="OP_ClientUpdate" updated="01/20/21"> <comment>Position updates</comment> <payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/> <payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/> </opcode> - <opcode id="42ba" name="OP_NpcMoveUpdate" updated="12/08/20"> + <opcode id="6aa6" name="OP_NpcMoveUpdate" updated="01/20/21"> <comment>Position updates</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="2c6a" name="OP_MobUpdate" updated="12/08/20"> + <opcode id="695d" name="OP_MobUpdate" updated="01/20/21"> <comment>MobUpdateCode</comment> <payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/> </opcode> - <opcode id="6740" name="OP_DeleteSpawn" updated="12/08/20"> + <opcode id="1e4e" name="OP_DeleteSpawn" updated="01/20/21"> <comment>DeleteSpawnCode</comment> <payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/> </opcode> - <opcode id="1813" name="OP_RemoveSpawn" updated="12/08/20"> + <opcode id="3671" name="OP_RemoveSpawn" updated="01/20/21"> <comment>Remove spawn from zone</comment> <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/> </opcode> - <opcode id="0d74" name="OP_Death" updated="12/08/20"> + <opcode id="7209" name="OP_Death" updated="01/20/21"> <comment>old NewCorpseCode</comment> <payload dir="server" typename="newCorpseStruct" sizechecktype="match"/> </opcode> - <opcode id="7676" name="OP_WearChange" updated="12/08/20"> + <opcode id="14f8" name="OP_WearChange" updated="01/20/21"> <comment>SpawnUpdateCode</comment> <payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="03ae" name="OP_SpawnAppearance" updated="12/08/20"> + <opcode id="13dc" name="OP_SpawnAppearance" updated="01/20/21"> <comment>SpawnAppearanceCode</comment> <payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/> </opcode> @@ -82,36 +82,36 @@ <comment>Server updating on hunger/thirst</comment> <payload dir="server" typename="staminaStruct" sizechecktype="match"/> </opcode> - <opcode id="70d3" name="OP_HPUpdate" updated="12/08/20"> + <opcode id="233f" name="OP_HPUpdate" updated="01/20/21"> <comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment> <payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/> </opcode> - <opcode id="0ac7" name="OP_GuildMemberUpdate" updated="12/08/20"> + <opcode id="369e" name="OP_GuildMemberUpdate" updated="01/20/21"> <comment>Info regarding guild members</comment> <payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/> </opcode> - <opcode id="0ce9" name="OP_ClickObject" updated="12/08/20"> + <opcode id="783f" name="OP_ClickObject" updated="01/20/21"> <comment>Items dropped on the ground</comment> <payload dir="both" typename="remDropStruct" sizechecktype="match"/> </opcode> - <opcode id="7eb3" name="OP_Action" updated="12/08/20"> + <opcode id="3414" name="OP_Action" updated="01/20/21"> <comment>Spells cast etc</comment> <payload dir="both" typename="actionStruct" sizechecktype="match"/> <payload dir="both" typename="actionAltStruct" sizechecktype="match"/> </opcode> - <opcode id="11cc" name="OP_Action2" updated="12/08/20"> + <opcode id="109e" name="OP_Action2" updated="01/20/21"> <comment>Combat actions i.e. bash, kick etc</comment> <payload dir="both" typename="action2Struct" sizechecktype="match"/> </opcode> - <opcode id="6385" name="OP_Consider" updated="12/08/20"> + <opcode id="22c5" name="OP_Consider" updated="01/20/21"> <comment>ConsiderCode</comment> <payload dir="both" typename="considerStruct" sizechecktype="match"/> </opcode> - <opcode id="0366" name="OP_TargetMouse" updated="12/08/20"> + <opcode id="1eaf" name="OP_TargetMouse" updated="01/20/21"> <comment>Targeting a person - old ClientTargetCode</comment> <payload dir="both" typename="clientTargetStruct" sizechecktype="match"/> </opcode> - <opcode id="5a4b" name="OP_SpawnRename" updated="12/08/20"> + <opcode id="2d2f" name="OP_SpawnRename" updated="01/20/21"> <comment>Spawns getting renamed after initial NewSpawn</comment> <payload dir="server" typename="spawnRenameStruct" 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="18ac" name="OP_ZoneChange" updated="12/08/20"> + <opcode id="68d7" name="OP_ZoneChange" updated="01/20/21"> <comment>old ZoneChangeCode</comment> <payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/> </opcode> @@ -175,11 +175,11 @@ <comment>StartCastCode</comment> <payload dir="both" typename="startCastStruct" sizechecktype="match"/> </opcode> - <opcode id="715f" name="OP_SwapSpell" updated="12/08/20"> + <opcode id="0d8c" name="OP_SwapSpell" updated="01/20/21"> <comment>TradeSpellBookSlotsCode</comment> <payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/> </opcode> - <opcode id="4158" name="OP_MemorizeSpell" updated="12/08/20"> + <opcode id="102c" name="OP_MemorizeSpell" updated="01/20/21"> <comment>MemSpellCode</comment> <payload dir="both" typename="memSpellStruct" sizechecktype="match"/> </opcode> @@ -191,19 +191,19 @@ <comment>EmoteTextCode</comment> <payload dir="both" typename="emoteTextStruct" sizechecktype="none"/> </opcode> - <opcode id="0859" name="OP_SimpleMessage" updated="12/08/20"> + <opcode id="0606" name="OP_SimpleMessage" updated="01/20/21"> <comment>SimpleMessageCode</comment> <payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/> </opcode> - <opcode id="7293" name="OP_FormattedMessage" updated="12/08/20"> + <opcode id="2427" name="OP_FormattedMessage" updated="01/20/21"> <comment>FormattedMessageCode i.e. pet dismissed etc</comment> <payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="11b9" name="OP_CommonMessage" updated="12/08/20"> + <opcode id="68ea" name="OP_CommonMessage" updated="01/20/21"> <comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment> <payload dir="both" typename="channelMessageStruct" sizechecktype="none"/> </opcode> - <opcode id="1fa7" name="OP_SpecialMesg" updated="12/08/20"> + <opcode id="47fd" name="OP_SpecialMesg" updated="01/20/21"> <comment>Communicate textual info to client including hail responses etc</comment> <payload dir="server" typename="specialMessageStruct" sizechecktype="none"/> </opcode> @@ -223,7 +223,7 @@ <comment>Server replying with deny information after /deny</comment> <payload dir="server" typename="consentResponseStruct" sizechecktype="match"/> </opcode> - <opcode id="7130" name="OP_ManaChange" updated="12/08/20"> + <opcode id="419d" name="OP_ManaChange" updated="01/20/21"> <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"/> @@ -240,11 +240,11 @@ <comment>MoneyOnCorpseCode</comment> <payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/> </opcode> - <opcode id="4cdb" name="OP_SkillUpdate" updated="12/08/20"> + <opcode id="4d81" name="OP_SkillUpdate" updated="01/20/21"> <comment>Skill up code</comment> <payload dir="server" typename="skillIncStruct" sizechecktype="match"/> </opcode> - <opcode id="28c3" name="OP_LevelUpdate" updated="12/08/20"> + <opcode id="1995" name="OP_LevelUpdate" updated="01/20/21"> <comment>LevelUpUpdateCode</comment> <payload dir="server" typename="levelUpUpdateStruct" 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="5183" name="OP_GuildMemberList" updated="12/08/20"> + <opcode id="5d7d" name="OP_GuildMemberList" updated="01/20/21"> <comment>List of guild members - Variable length</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="6f85" name="OP_ManaUpdate" updated="12/08/20"> + <opcode id="6f8a" name="OP_ManaUpdate" updated="01/20/21"> <comment>Mana Update opcode - 10 bytes</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="3089" name="OP_EndUpdate" updated="12/08/20"> + <opcode id="03cb" name="OP_EndUpdate" updated="01/20/21"> <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="4c99" name="OP_ExpandedGuildInfo" updated="12/08/20"> + <opcode id="327f" name="OP_ExpandedGuildInfo" updated="01/20/21"> <comment>Guild ranks and other misc guild data - Variable length</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> @@ -587,7 +587,7 @@ <comment>Free to play nags and other data - Variable length</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> - <opcode id="5997" name="OP_Find" updated="12/08/20"> + <opcode id="6dd9" name="OP_Find" updated="01/20/21"> <comment>Find window data - 112 bytes</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> Modified: showeq/trunk/src/everquest.h =================================================================== --- showeq/trunk/src/everquest.h 2021-01-20 16:24:40 UTC (rev 1133) +++ showeq/trunk/src/everquest.h 2021-01-21 00:44:38 UTC (rev 1134) @@ -1111,24 +1111,23 @@ struct { - signed deltaHeading:10; // change in heading signed y:19; // y coord (2nd loc value) - unsigned padding00:3; + signed deltaZ:13; // change in z - signed deltaZ:13; // change in z signed x:19; // x coord (1st loc value) - - signed z:19; // z coord (3rd loc value) signed deltaX:13; // change in x + unsigned heading:12; // heading + signed deltaHeading:10; // change in heading signed animation:10; // current animation - signed deltaY:13; // change in y - unsigned padding03:9; unsigned pitch:12; // pitch (up/down heading) - unsigned heading:12; // heading - unsigned padding04:8; + signed z:19; // z coord (3rd loc value) + unsigned padding03:1; + signed deltaY:13; // change in y + unsigned padding04:19; + }; int32_t posData[5]; }; @@ -2389,29 +2388,28 @@ /*0000*/ uint16_t spawnId; /*0002*/ uint16_t spawnId2; /*0004*/ - signed deltaHeading:10; // change in heading signed y:19; // y coord (2nd loc value) - unsigned padding00:3; + signed deltaZ:13; // change in z /*0008*/ - signed deltaZ:13; // change in z signed x:19; // x coord (1st loc value) + signed deltaX:13; // change in x /*0012*/ + unsigned heading:12; // heading + signed deltaHeading:10; // change in heading + signed animation:10; // current animation +/*0016*/ + unsigned pitch:12; // pitch (up/down heading) signed z:19; // z coord (3rd loc value) - signed deltaX:13; // change in x -/*0016*/ - signed animation:10; // current animation + unsigned padding03:1; +/*0020*/ signed deltaY:13; // change in y - unsigned padding03:9; -/*0020*/ - unsigned pitch:12; // pitch (up/down heading) - unsigned heading:12; // heading - unsigned padding04:8; + unsigned padding04:19; /*0024*/ }; /* ** Self Position Update -** Length: 42 Octets +** Length: 38 Octets ** OpCode: PlayerPosCode */ struct playerSelfPosStruct @@ -2420,28 +2418,25 @@ /*0002*/ uint16_t spawnId; // Player's spawn id /*0004*/ uint16_t unknown0004; // ***Placeholder /*0006*/ - float deltaY; // change in y + float deltaX; // change in x /*0010*/ - float deltaX; // change in x + unsigned heading:12; // heading + unsigned padding01:20; /*0014*/ - unsigned heading:12; // heading - unsigned padding02:20; + float deltaZ; // change in z /*0018*/ - float deltaZ; // change in z + float x; // x coord (1st loc value) /*0022*/ - signed animation:10; // current animation - unsigned padding04:22; + float z; // z coord (3rd loc value) /*0026*/ - float x; // x coord (1st loc value) + float deltaY; // change in y /*0030*/ float y; // y coord (2nd loc value) /*0034*/ + unsigned pitch:12; // pitch (up/down heading) + signed animation:10; // current animation signed deltaHeading:10; // change in heading - unsigned pitch:12; // pitch (up/down heading) - unsigned padding07:10; /*0038*/ - float z; // z coord (3rd loc value) -/*0042*/ }; /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cn...@us...> - 2021-01-20 16:24:42
|
Revision: 1133 http://sourceforge.net/p/seq/svn/1133 Author: cn187 Date: 2021-01-20 16:24:40 +0000 (Wed, 20 Jan 2021) Log Message: ----------- Update INSTALL.newbies with additional info about Debian and CentOS Modified Paths: -------------- showeq/trunk/INSTALL.newbies Modified: showeq/trunk/INSTALL.newbies =================================================================== --- showeq/trunk/INSTALL.newbies 2021-01-20 16:06:12 UTC (rev 1132) +++ showeq/trunk/INSTALL.newbies 2021-01-20 16:24:40 UTC (rev 1133) @@ -33,9 +33,26 @@ libpcap0.8-dev zlib1g-dev libqt4-dev +autoconf +automake +libtool ------------------ +CentOS +------------------ + +If you wish to build and install on a CentOS-based system, you will need to +install the following packages in addition to your chosen Desktop Environment: + +group "Development Tools" +qt-devel +libpcap-devel + + + + +------------------ Fedora Core 2 install ------------------ @@ -253,6 +270,7 @@ Version 6.0.0.0 - added section about Debian and derivatives +- added section about CentOS Need to update Fedora info. Version 5.0.0.15 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |