-
Автор темы
- #1
Пациент
sdk.h
в конце файла добавляем
settings.h
после
добавляем
settings.cpp
после
добавляем
client.cpp
в меню где нибудь добавляем
===
после
добавляем
Теперь заходим на любой сервер, включаем в меню Lag, выкручиваем полоску и наслаждаемся
Пожалуйста, авторизуйтесь для просмотра ссылки.
sdk.h
в конце файла добавляем
Код:
class INetChannel
{
public:
char pad_0000[20]; //0x0000
bool m_bProcessingMessages; //0x0014
bool m_bShouldDelete; //0x0015
char pad_0016[2]; //0x0016
int32_t m_nOutSequenceNr; //0x0018 last send outgoing sequence number
int32_t m_nInSequenceNr; //0x001C last received incoming sequnec number
int32_t m_nOutSequenceNrAck; //0x0020 last received acknowledge outgoing sequnce number
int32_t m_nOutReliableState; //0x0024 state of outgoing reliable data (0/1) flip flop used for loss detection
int32_t m_nInReliableState; //0x0028 state of incoming reliable data
int32_t m_nChokedPackets; //0x002C number of choked packets
char pad_0030[1044]; //0x0030
bool SendNetMsg(void* pSignonMsg, bool b1, bool b2)
{
return GetMethod<bool(__thiscall*)(INetChannel*, void*, bool, bool)>(this, 42)(this, pSignonMsg, b1, b2);
}
};
class CClientState
{
public:
void ForceFullUpdate()
{
}
char pad_0000[156]; //0x0000
INetChannel* m_NetChannel; //0x009C
uint32_t m_nChallengeNr; //0x00A0
char pad_00A4[100]; //0x00A4
uint32_t m_nSignonState; //0x0108
char pad_010C[8]; //0x010C
float m_flNextCmdTime; //0x0114
uint32_t m_nServerCount; //0x0118
uint32_t m_nCurrentSequence; //0x011C
char pad_0120[8]; //0x0120
uint32_t m_ClockDriftMgr; //0x0128
uint32_t m_nDeltaTick; //0x0178
bool m_bPaused; //0x017C
char pad_017D[3]; //0x017D
uint32_t m_nViewEntity; //0x0180
uint32_t m_nPlayerSlot; //0x0184
char m_szLevelName[260]; //0x0188
char m_szLevelNameShort[40]; //0x028C
char m_szGroupName[40]; //0x02B4
char pad_02DC[56]; //0x02DC
uint32_t m_nMaxClients; //0x0310
char pad_0314[18940]; //0x0314
};
после
Код:
extern float hitmarkerAlpha;
Код:
extern bool lag_enabled;
extern int lag_cycle_var;
после
Код:
float hitmarkerAlpha;
Код:
bool lag_enabled = false;
int lag_cycle_var = 0;
в меню где нибудь добавляем
Код:
ImGui::Checkbox("Lag", &Settings::Misc::lag_enabled);
ImGui::SameLine(SpaceLineOne);
ImGui::SliderInt("Lag Cycle Var", &Settings::Misc::lag_cycle_var, 0, 500);
ImGui::SameLine(SpaceLineOne);
после
Код:
if (IsLocalAlive()) { ... }
Код:
if (Settings::Misc::lag_enabled) {
static auto NewSignonMsg = reinterpret_cast<void(__thiscall*)(void*, int, int)>(CSX::Memory::FindSignature("engine.dll", "NewSignonMsg", "55 8B EC 56 57 8B F9 8D 4F 04 C7 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? C6 ?? ?? ?? C7"));
static auto ClearSignonMsg = reinterpret_cast<void(__thiscall*)(void*)>(CSX::Memory::FindSignature("engine.dll", "ClearSignonMsg", "53 56 57 8B F9 8D ?? 38 C7 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B"));
static auto g_pClientState = **(CClientState***)(CSX::Memory::FindSignature("engine.dll", "CClientState", "A1 ? ? ? ? 8B 80 ? ? ? ? C3") + 1);
static INetChannel *netchan = *reinterpret_cast< INetChannel** >(reinterpret_cast< std::uintptr_t >(g_pClientState) + 0x9C);
void* pSignonMsg = malloc(76);
NewSignonMsg(pSignonMsg, 6, g_pClientState->m_nServerCount);
for (int i = 0; i < Settings::Misc::lag_cycle_var; i++) {
netchan->SendNetMsg(pSignonMsg, false, false);
}
ClearSignonMsg(pSignonMsg);
}
Последнее редактирование: