[Structs] Complete client_t
This commit is contained in:
parent
28b089f070
commit
6276ef2e24
@ -294,7 +294,8 @@ namespace Components
|
|||||||
|
|
||||||
Bots::Bots()
|
Bots::Bots()
|
||||||
{
|
{
|
||||||
AssertOffset(Game::client_s, bIsTestClient, 0x41AF0);
|
AssertOffset(Game::client_t, bIsTestClient, 0x41AF0);
|
||||||
|
AssertOffset(Game::client_t, ping, 0x212C8);
|
||||||
|
|
||||||
// Replace connect string
|
// Replace connect string
|
||||||
Utils::Hook::Set<const char*>(0x48ADA6, "connect bot%d \"\\cg_predictItems\\1\\cl_anonymous\\0\\color\\4\\head\\default\\model\\multi\\snaps\\20\\rate\\5000\\name\\%s\\protocol\\%d\\checksum\\%d\\statver\\%d %u\\qport\\%d\"");
|
Utils::Hook::Set<const char*>(0x48ADA6, "connect bot%d \"\\cg_predictItems\\1\\cl_anonymous\\0\\color\\4\\head\\default\\model\\multi\\snaps\\20\\rate\\5000\\name\\%s\\protocol\\%d\\checksum\\%d\\statver\\%d %u\\qport\\%d\"");
|
||||||
|
@ -410,6 +410,8 @@ namespace Components
|
|||||||
|
|
||||||
Chat::Chat()
|
Chat::Chat()
|
||||||
{
|
{
|
||||||
|
AssertOffset(Game::client_t, steamID, 0x43F00);
|
||||||
|
|
||||||
cg_chatWidth = Dvar::Register<int>("cg_chatWidth", 52, 1, std::numeric_limits<int>::max(), Game::DVAR_ARCHIVE, "The normalized maximum width of a chat message");
|
cg_chatWidth = Dvar::Register<int>("cg_chatWidth", 52, 1, std::numeric_limits<int>::max(), Game::DVAR_ARCHIVE, "The normalized maximum width of a chat message");
|
||||||
sv_disableChat = Dvar::Register<bool>("sv_disableChat", false, Game::DVAR_NONE, "Disable chat messages from clients");
|
sv_disableChat = Dvar::Register<bool>("sv_disableChat", false, Game::DVAR_NONE, "Disable chat messages from clients");
|
||||||
Events::OnSVInit(AddChatCommands);
|
Events::OnSVInit(AddChatCommands);
|
||||||
|
@ -761,13 +761,13 @@ namespace Components
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Score and ping are irrelevant
|
// Score and ping are irrelevant
|
||||||
const char* namePtr = Game::PartyHost_GetMemberName(reinterpret_cast<Game::PartyData*>(0x1081C00), i);
|
const char* namePtr = Game::PartyHost_GetMemberName(Game::g_lobbyData, i);
|
||||||
if (!namePtr || !namePtr[0]) continue;
|
if (!namePtr || !namePtr[0]) continue;
|
||||||
|
|
||||||
playerInfo["name"] = namePtr;
|
playerInfo["name"] = namePtr;
|
||||||
}
|
}
|
||||||
|
|
||||||
players.push_back(playerInfo);
|
players.emplace_back(playerInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
info["players"] = players;
|
info["players"] = players;
|
||||||
|
@ -276,7 +276,7 @@ namespace Components
|
|||||||
const auto* ent = Game::GetPlayerEntity(entref);
|
const auto* ent = Game::GetPlayerEntity(entref);
|
||||||
auto* client = Script::GetClient(ent);
|
auto* client = Script::GetClient(ent);
|
||||||
|
|
||||||
client->ping = static_cast<int16_t>(ping);
|
client->ping = ping;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ namespace Components
|
|||||||
// set snapshot num to 1 behind (T6 does this, why shouldn't we?)
|
// set snapshot num to 1 behind (T6 does this, why shouldn't we?)
|
||||||
for (int i = 0; i < *Game::svs_clientCount; ++i)
|
for (int i = 0; i < *Game::svs_clientCount; ++i)
|
||||||
{
|
{
|
||||||
Game::svs_clients[i].snapNum = *Game::svs_time - 1;
|
Game::svs_clients[i].nextSnapshotTime = *Game::svs_time - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -954,7 +954,7 @@ namespace Game
|
|||||||
typedef bool(__cdecl * SV_Loaded_t)();
|
typedef bool(__cdecl * SV_Loaded_t)();
|
||||||
extern SV_Loaded_t SV_Loaded;
|
extern SV_Loaded_t SV_Loaded;
|
||||||
|
|
||||||
typedef void(__cdecl * SV_ClientThink_t)(client_s*, usercmd_s*);
|
typedef void(__cdecl * SV_ClientThink_t)(client_t* cl, usercmd_s* cmd);
|
||||||
extern SV_ClientThink_t SV_ClientThink;
|
extern SV_ClientThink_t SV_ClientThink;
|
||||||
|
|
||||||
typedef void(__cdecl * SV_DropClient_t)(client_t* drop, const char* reason, bool tellThem);
|
typedef void(__cdecl * SV_DropClient_t)(client_t* drop, const char* reason, bool tellThem);
|
||||||
|
@ -6317,14 +6317,34 @@ namespace Game
|
|||||||
|
|
||||||
static_assert(sizeof(clientHeader_t) == 1624);
|
static_assert(sizeof(clientHeader_t) == 1624);
|
||||||
|
|
||||||
#pragma pack(push, 1)
|
struct svscmd_info_t
|
||||||
|
{
|
||||||
|
char cmd[1024];
|
||||||
|
int time;
|
||||||
|
int type;
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct client_s
|
struct clientSnapshot_t
|
||||||
|
{
|
||||||
|
playerState_s ps;
|
||||||
|
int num_entities;
|
||||||
|
int num_clients;
|
||||||
|
int first_entity;
|
||||||
|
int first_client;
|
||||||
|
int messageSent;
|
||||||
|
int messageAcked;
|
||||||
|
int messageSize;
|
||||||
|
int serverTime;
|
||||||
|
int timeDelta;
|
||||||
|
int baselineSnap;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct client_t
|
||||||
{
|
{
|
||||||
clientHeader_t header;
|
clientHeader_t header;
|
||||||
const char* dropReason; // 1624
|
const char* dropReason; // 1624
|
||||||
char userinfo[1024]; // 1628
|
char userinfo[1024]; // 1628
|
||||||
char __pad3[132096]; // 2652
|
svscmd_info_t reliableCommandInfo[128]; // 2652
|
||||||
int reliableSequence; // 134748
|
int reliableSequence; // 134748
|
||||||
int reliableAcknowledge; // 134752
|
int reliableAcknowledge; // 134752
|
||||||
int reliableSent; // 134756
|
int reliableSent; // 134756
|
||||||
@ -6339,21 +6359,31 @@ namespace Game
|
|||||||
int nextReliableTime; // 135860
|
int nextReliableTime; // 135860
|
||||||
int lastPacketTime; // 135864
|
int lastPacketTime; // 135864
|
||||||
int lastConnectTime; // 135868
|
int lastConnectTime; // 135868
|
||||||
int snapNum; // 135872
|
int nextSnapshotTime; // 135872
|
||||||
int __pad5; // 135876
|
int timeoutCount; // 135876
|
||||||
short ping; // 135880
|
int ping; // 135880
|
||||||
char __pad6[14]; // 135882
|
int rate;
|
||||||
|
int snapshotMsec;
|
||||||
|
int snapshotBackoffCount;
|
||||||
int pureAuthentic; // 135896
|
int pureAuthentic; // 135896
|
||||||
char __pad7[133138]; // 135900
|
char netchanOutgoingBuffer[131072];
|
||||||
short scriptID; // 269038
|
char netchanIncomingBuffer[2048];
|
||||||
|
char playerGuid[17];
|
||||||
|
unsigned short scriptId; // 269038
|
||||||
int bIsTestClient; // 269040
|
int bIsTestClient; // 269040
|
||||||
int serverID; // 269044
|
int serverID; // 269044
|
||||||
char __pad8[9224]; // 269048
|
bool usingOnlineStatsOffline;
|
||||||
|
char stats[8192];
|
||||||
|
char statsModifiedFlags[1024];
|
||||||
|
bool statsModified;
|
||||||
|
char statPacketsReceived;
|
||||||
|
bool steamAuthorized;
|
||||||
|
char steamAuthFailCount;
|
||||||
unsigned __int64 steamID; // 278272
|
unsigned __int64 steamID; // 278272
|
||||||
char __pad9[403592]; // 278280
|
bool sendMatchData;
|
||||||
} client_t;
|
int matchDataSendTime;
|
||||||
|
clientSnapshot_t frames[32];
|
||||||
#pragma pack(pop)
|
};
|
||||||
|
|
||||||
static_assert(sizeof(client_t) == 0xA6790);
|
static_assert(sizeof(client_t) == 0xA6790);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user