From 0d00d28a13ce74b8565f0aac58a6d04c516adee5 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 f7e44bc31ab35b72e02556ca2588820d66845e0c 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 35e351666e266d3dc08f96d3c73c4f1c222e711a 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 b0eba69733425103e0d2fb4719a00c013686a0d0 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 fbf82c937e991659d56782a8491a913c68249d80 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 d76d2380958ef48eabc4530dbbef18a9dd721029 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 963694bd084096e109c8dee8ae64597f0c3da160 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 135c6c7e5d2946356a2961bd50b6dfd40bf5d9b8 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 afd60c3ca666b2aeaf60c3817508462988ab4782 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 6c972cb0aa65f773a0f83533127b7c5bf5d48398 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; /*!