From 052db46b6a93763b05c8d3e63d681cb18572a60b Mon Sep 17 00:00:00 2001 From: karashiiro <49822414+karashiiro@users.noreply.github.com> Date: Sat, 27 Jul 2019 01:19:59 -0700 Subject: [PATCH 01/10] added examinesearchinfo correctly this time --- src/common/Network/PacketDef/Ipcs.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 36d6c756..e1357471 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -81,6 +81,7 @@ namespace Sapphire::Network::Packets SocialList = 0x010D, // updated 5.0 + ExamineSearchInfo = 0x10F, // added 5.0 UpdateSearchInfo = 0x0110, // updated 5.0 InitSearchInfo = 0x0111, // updated 5.0 ExamineSearchComment = 0x0102, // updated 4.1 From 7089e0feee82205d6d4909e6a48a418a486ab0f3 Mon Sep 17 00:00:00 2001 From: karashiiro <49822414+karashiiro@users.noreply.github.com> Date: Sat, 27 Jul 2019 01:45:18 -0700 Subject: [PATCH 02/10] made boilerplate I'll put stuff in it tomorrow morning --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index a9ba2da9..5d1c9766 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -120,6 +120,10 @@ namespace Sapphire::Network::Packets::Server PlayerEntry entries[10]; }; + struct FFXIVIpcExamineSearchInfo : FFXIVIpcBasePacket< ExamineSearchInfo > + { + + }; struct FFXIVIpcSetSearchInfo : FFXIVIpcBasePacket< UpdateSearchInfo > { From dff68fba871b7d07ee7b59309d7c432d7a42ddbf Mon Sep 17 00:00:00 2001 From: karashiiro <49822414+karashiiro@users.noreply.github.com> Date: Sat, 27 Jul 2019 10:18:09 -0700 Subject: [PATCH 03/10] added gp and cp to playerstats GP `0x44` is a little weird in that it's set to 10000 as a non-gatherer. Trying it with both MIN and BTN does give the correct values in this address, though. --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 5d1c9766..62da674b 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -959,8 +959,8 @@ namespace Sapphire::Network::Packets::Server uint32_t hp; uint32_t mp; uint32_t tp; - uint32_t unknown; - uint32_t unknown_1; + uint32_t gp; // Set to 10000 as non-gatherer for some reason + uint32_t cp; uint32_t unknown_2; uint32_t tenacity; uint32_t attack; From 620849d9386609438d1d811b64fa5f2d4de0cb51 Mon Sep 17 00:00:00 2001 From: karashiiro <49822414+karashiiro@users.noreply.github.com> Date: Sat, 27 Jul 2019 10:47:10 -0700 Subject: [PATCH 04/10] starting examinesearchinfo I'm pretty sure a searchMessage can only be 120 chars max, but everything else here is saying 193. The longest FC name I've seen is only 18 characters long, so fcName may be 18 characters with 6 characters of padding? --- .../Network/PacketDef/Zone/ServerZoneDef.h | 90 ++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 62da674b..1c23edf1 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -122,7 +122,95 @@ namespace Sapphire::Network::Packets::Server struct FFXIVIpcExamineSearchInfo : FFXIVIpcBasePacket< ExamineSearchInfo > { - + uint32_t unknown; + uint16_t unknown1; + uint16_t unknown2; + char padding[16]; + uint32_t unknown3; + uint16_t unknown4; + uint16_t unknown5; + uint16_t unknown6; + uint8_t worldId; + char searchMessage[193]; + char fcName[24]; + uint8_t unknown7; + uint16_t padding1; + uint16_t gldId; // 1 + uint16_t gldLevel; + uint16_t pglId; // 2 + uint16_t pglLevel; + uint16_t mrdId; // 3 + uint16_t mrdLevel; + uint16_t lncId; // 4 + uint16_t lncLevel; + uint16_t arcId; // 5 + uint16_t arcLevel; + uint16_t cnjId; // 6 + uint16_t cnjLevel; + uint16_t thmId; // 7 + uint16_t thmLevel; + uint16_t crpId; // 8 + uint16_t crpLevel; + uint16_t bsmId; // 9 + uint16_t bsmLevel; + uint16_t armId; // 10 + uint16_t armLevel; + uint16_t gsmId; // 11 + uint16_t gsmLevel; + uint16_t ltwId; // 12 + uint16_t ltwLevel; + uint16_t wvrId; // 13 + uint16_t wvrLevel; + uint16_t alcId; // 14 + uint16_t alcLevel; + uint16_t culId; // 15 + uint16_t culLevel; + uint16_t minId; // 16 + uint16_t minLevel; + uint16_t btnId; // 17 + uint16_t btnLevel; + uint16_t fshId; // 18 + uint16_t fshLevel; + uint16_t culId; // 19 + uint16_t culLevel; + uint16_t mnkId; // 20 + uint16_t mnkLevel; + uint16_t warId; // 21 + uint16_t warLevel; + uint16_t drgId; // 22 + uint16_t drgLevel; + uint16_t brdId; // 23 + uint16_t brdLevel; + uint16_t pldId; // 24 + uint16_t pldLevel; + uint16_t blmId; // 25 + uint16_t blmLevel; + uint16_t acnId; // 26 + uint16_t acnLevel; + uint16_t schId; // 27 + uint16_t schLevel; + uint16_t smnId; // 28 + uint16_t smnLevel; + uint16_t rogId; // 29 + uint16_t rogLevel; + uint16_t ninId; // 30 + uint16_t ninLevel; + uint16_t mchId; // 31 + uint16_t mchLevel; + uint16_t drkId; // 32 + uint16_t drkLevel; + uint16_t astId; // 33 + uint16_t astLevel; + uint16_t samId; // 34 + uint16_t samLevel; + uint16_t rdmId; // 35 + uint16_t rdmLevel; + uint16_t bluId; // 36 + uint16_t bluLevel; + uint16_t gnbId; // 37 + uint16_t gnbLevel; + uint16_t dncId; // 38 + uint16_t dncLevel; }; struct FFXIVIpcSetSearchInfo : FFXIVIpcBasePacket< UpdateSearchInfo > From 7b83ce73801f287f84c34b889d36df2dd0189354 Mon Sep 17 00:00:00 2001 From: karashiiro <49822414+karashiiro@users.noreply.github.com> Date: Sat, 27 Jul 2019 10:59:44 -0700 Subject: [PATCH 05/10] collapsed classjobid and classjoblevel into array If you don't have them, the actual IDs are in the last commit --- .../Network/PacketDef/Zone/ServerZoneDef.h | 80 ++----------------- 1 file changed, 6 insertions(+), 74 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 1c23edf1..3a84aaa0 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -135,82 +135,14 @@ namespace Sapphire::Network::Packets::Server char fcName[24]; uint8_t unknown7; uint16_t padding1; + uint16_t classJobIdLevel[38 * 2]; // Pairs of classJobId, classJobLevel + /* + Like this: uint16_t gldId; // 1 uint16_t gldLevel; - uint16_t pglId; // 2 - uint16_t pglLevel; - uint16_t mrdId; // 3 - uint16_t mrdLevel; - uint16_t lncId; // 4 - uint16_t lncLevel; - uint16_t arcId; // 5 - uint16_t arcLevel; - uint16_t cnjId; // 6 - uint16_t cnjLevel; - uint16_t thmId; // 7 - uint16_t thmLevel; - uint16_t crpId; // 8 - uint16_t crpLevel; - uint16_t bsmId; // 9 - uint16_t bsmLevel; - uint16_t armId; // 10 - uint16_t armLevel; - uint16_t gsmId; // 11 - uint16_t gsmLevel; - uint16_t ltwId; // 12 - uint16_t ltwLevel; - uint16_t wvrId; // 13 - uint16_t wvrLevel; - uint16_t alcId; // 14 - uint16_t alcLevel; - uint16_t culId; // 15 - uint16_t culLevel; - uint16_t minId; // 16 - uint16_t minLevel; - uint16_t btnId; // 17 - uint16_t btnLevel; - uint16_t fshId; // 18 - uint16_t fshLevel; - uint16_t culId; // 19 - uint16_t culLevel; - uint16_t mnkId; // 20 - uint16_t mnkLevel; - uint16_t warId; // 21 - uint16_t warLevel; - uint16_t drgId; // 22 - uint16_t drgLevel; - uint16_t brdId; // 23 - uint16_t brdLevel; - uint16_t pldId; // 24 - uint16_t pldLevel; - uint16_t blmId; // 25 - uint16_t blmLevel; - uint16_t acnId; // 26 - uint16_t acnLevel; - uint16_t schId; // 27 - uint16_t schLevel; - uint16_t smnId; // 28 - uint16_t smnLevel; - uint16_t rogId; // 29 - uint16_t rogLevel; - uint16_t ninId; // 30 - uint16_t ninLevel; - uint16_t mchId; // 31 - uint16_t mchLevel; - uint16_t drkId; // 32 - uint16_t drkLevel; - uint16_t astId; // 33 - uint16_t astLevel; - uint16_t samId; // 34 - uint16_t samLevel; - uint16_t rdmId; // 35 - uint16_t rdmLevel; - uint16_t bluId; // 36 - uint16_t bluLevel; - uint16_t gnbId; // 37 - uint16_t gnbLevel; - uint16_t dncId; // 38 - uint16_t dncLevel; + uint16_t pglId; + etc... through DNC + */ }; struct FFXIVIpcSetSearchInfo : FFXIVIpcBasePacket< UpdateSearchInfo > From 7005639b1a31eedd3e34ac684968155f20e9205e Mon Sep 17 00:00:00 2001 From: karashiiro <49822414+karashiiro@users.noreply.github.com> Date: Sat, 27 Jul 2019 11:12:00 -0700 Subject: [PATCH 06/10] using proper constant Just set it to the preexisting constant. Is it supposed to be 28? There are 38 classes and jobs. --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 3a84aaa0..e5ccb5bb 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -135,13 +135,13 @@ namespace Sapphire::Network::Packets::Server char fcName[24]; uint8_t unknown7; uint16_t padding1; - uint16_t classJobIdLevel[38 * 2]; // Pairs of classJobId, classJobLevel + uint16_t classJobIdLevel[Common::CLASSJOB_SLOTS * 2]; // Pairs of classJobId, classJobLevel /* Like this: uint16_t gldId; // 1 uint16_t gldLevel; uint16_t pglId; - etc... through DNC + etc... through DNC (38) */ }; From d99d9aea30060fd9a6bf802ab47d8b6977c4b7a6 Mon Sep 17 00:00:00 2001 From: karashiiro <49822414+karashiiro@users.noreply.github.com> Date: Sat, 27 Jul 2019 12:10:18 -0700 Subject: [PATCH 07/10] typo --- src/common/Network/PacketDef/Ipcs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index e1357471..1dba302a 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -81,7 +81,7 @@ namespace Sapphire::Network::Packets SocialList = 0x010D, // updated 5.0 - ExamineSearchInfo = 0x10F, // added 5.0 + ExamineSearchInfo = 0x010F, // added 5.0 UpdateSearchInfo = 0x0110, // updated 5.0 InitSearchInfo = 0x0111, // updated 5.0 ExamineSearchComment = 0x0102, // updated 4.1 From 89c6a37f927560099df0947283561a80435378c9 Mon Sep 17 00:00:00 2001 From: karashiiro <49822414+karashiiro@users.noreply.github.com> Date: Sat, 27 Jul 2019 17:53:39 -0700 Subject: [PATCH 08/10] corrected --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index e5ccb5bb..94ed0616 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -135,7 +135,7 @@ namespace Sapphire::Network::Packets::Server char fcName[24]; uint8_t unknown7; uint16_t padding1; - uint16_t classJobIdLevel[Common::CLASSJOB_SLOTS * 2]; // Pairs of classJobId, classJobLevel + uint16_t classJobIdLevel[76]; // Pairs of classJobId, classJobLevel (38 * 2) /* Like this: uint16_t gldId; // 1 From 0a9f2d53853a9d26607a2307d27af05575b34823 Mon Sep 17 00:00:00 2001 From: karashiiro <49822414+karashiiro@users.noreply.github.com> Date: Sat, 27 Jul 2019 17:59:23 -0700 Subject: [PATCH 09/10] struct array and new constant --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 94ed0616..4fe3733d 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -135,14 +135,11 @@ namespace Sapphire::Network::Packets::Server char fcName[24]; uint8_t unknown7; uint16_t padding1; - uint16_t classJobIdLevel[76]; // Pairs of classJobId, classJobLevel (38 * 2) - /* - Like this: - uint16_t gldId; // 1 - uint16_t gldLevel; - uint16_t pglId; - etc... through DNC (38) - */ + struct ClassJobEntry + { + uint16_t id; + uint16_t level; + } levelEntries[Common::CLASSJOB_TOTAL]; }; struct FFXIVIpcSetSearchInfo : FFXIVIpcBasePacket< UpdateSearchInfo > From f494ca7e0516a7a7989887d46b56faee66d0292e Mon Sep 17 00:00:00 2001 From: karashiiro <49822414+karashiiro@users.noreply.github.com> Date: Sat, 27 Jul 2019 18:00:15 -0700 Subject: [PATCH 10/10] new const --- src/common/Common.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/common/Common.h b/src/common/Common.h index 96e41193..a41095ca 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -24,6 +24,7 @@ namespace Sapphire::Common const uint16_t MAX_PLAYER_LEVEL = 80; const uint8_t CURRENT_EXPANSION_ID = 3; + const uint8_t CLASSJOB_TOTAL = 38; const uint8_t CLASSJOB_SLOTS = 28; /*!