fix: fix network classes (#7)

This commit is contained in:
Mr-X-GTA
2025-10-27 15:29:35 +01:00
committed by GitHub
parent 8084649b34
commit b91f9b79eb
6 changed files with 73 additions and 35 deletions
+3 -2
View File
@@ -17,9 +17,10 @@ public:
std::uint32_t m_dlc_hash;
std::uint32_t m_timeout_time;
std::uint32_t dword10C;
bool m_no_handle;
bool m_has_gamer_handle;
rage::rlGamerHandle m_gamer_handle;
CNetGamePlayerDataMsg m_player_data_msg;
uint64_t m_gamer_handle_hash;
};
static_assert(sizeof(CMsgJoinRequest) == 0x190);
static_assert(sizeof(CMsgJoinRequest) == 0x230);
#pragma pack(pop)
+15 -11
View File
@@ -2,6 +2,8 @@
#include <cstdint>
#include "PlatformAccountId.hpp"
class datBitBuffer;
#pragma pack(push, 8)
@@ -25,15 +27,17 @@ class CNetGamePlayerDataMsg : public rage::playerDataMsg
{
public:
int32_t m_account_id; //0x0010
uint32_t m_player_type; //0x0014
uint32_t m_matchmaking_group; //0x0018
uint32_t m_flags; //0x001C
int32_t m_team; //0x0020
int64_t m_crew_id; //0x0028
int32_t m_aim_preference; //0x0030
uint16_t m_rank; //0x0034
uint16_t m_rating; //0x0036
uint32_t m_region; //0x0038
}; //Size: 0x0040
static_assert(sizeof(CNetGamePlayerDataMsg) == 0x40);
int64_t m_rockstar_id; //0x0018
PlatformAccountId m_platform_account_id; //0x0020
uint32_t m_player_type; //0x00B0
uint32_t m_matchmaking_group; //0x00B4
uint32_t m_flags; //0x00B8
int32_t m_team; //0x00BC
int64_t m_crew_id; //0x00C0
int32_t m_aim_preference; //0x00C8
uint16_t m_rank; //0x00CC
uint16_t m_rating; //0x00CE
uint32_t m_region; //0x00D0
}; //Size: 0x00D8
static_assert(sizeof(CNetGamePlayerDataMsg) == 0xD8);
#pragma pack(pop)
+8 -8
View File
@@ -152,10 +152,10 @@ class RemotePlayerData
{
public:
class rage::netGamePlayerData m_data[32]; //0x0000
uint32_t m_count; //0x0600
char pad_0604[4]; //0x0604
}; //Size: 0x0608
static_assert(sizeof(RemotePlayerData) == 0x608);
uint32_t m_count; //0x1C00
char pad_0604[4]; //0x1C04
}; //Size: 0x1C08
static_assert(sizeof(RemotePlayerData) == 0x1C08);
class InvitedGamer
{
@@ -210,7 +210,7 @@ public:
class rage::rlSessionInfo m_unk_session_info; //0xB408
char pad_B4D8[643]; //0xB4D8
bool m_need_host_change; //0xB753
char pad_B754[76644]; //0xB754
char pad_B754[76652]; //0xB754
class rage::rlSessionDetail m_joining_session_detail; //0x1D9A0
class SessionInfoBackup m_last_joined_session; //0x1DE18
char pad_1DEF4[40]; //0x1DEF4
@@ -245,7 +245,7 @@ public:
char pad_309E0[28];
uint32_t unk_309FC;
uint32_t unk_30A00; // added b3407
char pad_30A04[10468];
char pad_30A04[10484];
class CNetBlacklist m_blacklist; //0x31050
char pad_32E90[648]; //0x31308
class InvitedGamers m_game_invited_gamers; //0x31310
@@ -288,7 +288,7 @@ public:
uint32_t m_follower_count; //0x49EE0
char pad_49EE4[632]; //0x49EE4
char pad[2492];
char pad[3252];
}; //Size: 0x38650
static_assert(sizeof(Network) == 0x4C628);
static_assert(sizeof(Network) == 0x4DFE8);
#pragma pack(pop)
+25
View File
@@ -0,0 +1,25 @@
#pragma once
#include <cstdint>
struct PlatformAccountId
{
enum Platform : uint8_t
{
PLATFORM_INVALID = 0,
PLATFORM_XBOX = 1,
PLATFORM_STEAM = 10,
PLATFORM_EPIC = 15
};
union
{
uint64_t m_xbox_user_id; //0x0000
uint64_t m_steam_id;
char m_epic_account_id[128 + 1];
char m_pad[136];
};
Platform m_platform; //0x0088
};
static_assert(sizeof(PlatformAccountId) == 0x90);
+2 -1
View File
@@ -2,6 +2,7 @@
#include "../rage/rlGamerInfo.hpp"
#include "../player/CNonPhysicalPlayerData.hpp"
#include "PlatformAccountId.hpp"
namespace rage
{
@@ -27,7 +28,7 @@ namespace rage
int m_account_id; //0x0008 -- added b3504
int64_t m_rockstar_id; //0x0010 -- added b3504
char new_0018[0x90]; //0x0018 -- added b3504
PlatformAccountId m_platform_account_id; //0x0018 -- added b3504
uint32_t m_player_type; //0x00A8
CNonPhysicalPlayerData* m_non_physical_player; //0x00B0
uint32_t m_msg_id; //0x00B8
+20 -13
View File
@@ -99,24 +99,31 @@ namespace rage
char pad_37C8[168]; //0x37C8
}; //Size: 0x3870
static_assert(sizeof(rage::rlMatchmakingFindResult) == 0x43B0);
#pragma pack(pop)
#pragma pack(push, 8)
class netGamePlayerData
{
public:
class rlGamerHandle m_handle;
bool m_is_activity_spectator; //0x0010
char pad_0011[7]; //0x0011
uint64_t m_crew_id; //0x0018
uint16_t m_rank; //0x0020
uint16_t m_debug_unk; //0x0022
char pad_0024[4]; //0x0024
uint32_t m_nat_type; //0x0028
bool m_is_rockstar_dev; //0x002C
char pad_002D[3]; //0x002D
}; //Size: 0x0030
static_assert(sizeof(rage::netGamePlayerData) == 0x30);
class rlGamerHandle m_handle; //0x0000
char m_name[17]; //0x0010
bool m_is_activity_spectator; //0x0021
uint64_t m_crew_id; //0x0028
uint16_t m_rank; //0x0030
uint16_t m_rating; //0x0032
bool unk_0034; //0x0034
uint32_t m_nat_type; //0x0038
bool m_is_rockstar_dev; //0x003C
bool unk_003D; //0x003D
bool m_is_boss; //0x003E
int m_account_id; //0x0040
int64_t m_rockstar_id; //0x0048
PlatformAccountId m_platform_account_id; //0x0050
}; //Size: 0x00E0
static_assert(sizeof(rage::netGamePlayerData) == 0xE0);
#pragma pack(pop)
#pragma pack(push, 1)
class snSession
{
public: