m_pInput = *(CInput**)(PatternScan("client.dll", "B9 ?? ?? ?? ?? FF 75 08 E8 ?? ?? ?? ?? 8B 06") + 1);
if (!m_pInput)
{
std::cout << "Trying method 2" << std::endl;
uintptr_t* pVmt = *(uintptr_t**)Engine::Interface::m_pClient;
m_pInput = *(CInput**)(pVmt[21] + 0x5F);
}
if (!m_pInput)
std::cout << "Didn't get m_pInput!" << std::endl;
CUserCmd* cmdlist = *(CUserCmd**)((DWORD)m_pInput + 0xEC); CUserCmd* pCmd = &cmdlist[sequence_number % 150]; CVerifiedUserCmd* verifiedlist = *(CVerifiedUserCmd**)((DWORD)m_pInput + 0xF0); CVerifiedUserCmd* verified = &verifiedlist[sequence_number % 150];
CUserCmd* pCmd = m_pInput->GetUserCmd(sequence_number)
class CInput
{
public:
CUserCmd* GetUserCmd(int sequence_number) //This
{
return &m_pCommands[sequence_number % 150];
}
CVerifiedUserCmd* GetVerifiedUserCmd(int sequence_number) //and this
{
return &m_pVerifiedCommands[sequence_number % 150];
}
unsigned char __pad0[0xEC]; // and this
CUserCmd* m_pCommands; //this too..
CVerifiedUserCmd* m_pVerifiedCommands; //and THIS surprisingly :P
};
class CUserCmd
{
public:
virtual ~CUserCmd() {}; //Destructor 0
CUserCmd()
{
Reset();
}
void Reset()
{
command_number = 0;
tick_count = 0;
viewangles.Init();
forwardmove = 0.0f;
sidemove = 0.0f;
upmove = 0.0f;
buttons = 0;
impulse = 0;
weaponselect = 0;
weaponsubtype = 0;
random_seed = 0;
mousedx = 0;
mousedy = 0;
headangles.Init();
headoffset.Init();
hasbeenpredicted = false;
}
CUserCmd& operator =(const CUserCmd& src)
{
if (this == &src)
return *this;
command_number = src.command_number;
tick_count = src.tick_count;
viewangles = src.viewangles;
forwardmove = src.forwardmove;
sidemove = src.sidemove;
upmove = src.upmove;
buttons = src.buttons;
impulse = src.impulse;
weaponselect = src.weaponselect;
weaponsubtype = src.weaponsubtype;
random_seed = src.random_seed;
mousedx = src.mousedx;
mousedy = src.mousedy;
hasbeenpredicted = src.hasbeenpredicted;
headangles = src.headangles;
headoffset = src.headoffset;
return *this;
}
CUserCmd(const CUserCmd& src)
{
*this = src;
}
int command_number;
int tick_count;
Vector viewangles;
Vector aimdirection;
float forwardmove;
float sidemove;
float upmove;
int buttons;
BYTE impulse;
int weaponselect;
int weaponsubtype;
int random_seed;
short mousedx;
short mousedy;
bool hasbeenpredicted;
Vector headangles;
Vector headoffset;
};
/* grab clientmode */ void ** g_pBaseClient = *(void***)g_pClient; g_pClientMode = *(IClientModeShared***)((DWORD)g_pBaseClient[10] + 5);