kitty.
ты гений или да? до этого и класс не был обновлен, чекни свой m_verified_cmds в дебаггереДо этого было все ок,а сейчас нет? - ну голову-то включи.
ты гений или да? до этого и класс не был обновлен, чекни свой m_verified_cmds в дебаггереДо этого было все ок,а сейчас нет? - ну голову-то включи.
Обновлял. В любом случае сейчас все заработало и нет желания возвращать все обратно , чтобы доказать твою неправотуты гений или да? до этого и класс не был обновлен, чекни свой m_verified_cmds в дебаггере
bool __stdcall is_connected::hooked()
{
//static void* force_inventory_open = utils::pattern_scan(("client.dll"), "75 04 B0 01 5F") - 2;
//update 11.12
static void* force_inventory_open = utils::pattern_scan(("client.dll"), "84 C0 75 05 B0 01 5F");
return original(g::engine_client);
}
#pragma once
#include "../Misc/CUserCmd.hpp"
#define MULTIPLAYER_BACKUP 150
class bf_write;
class bf_read;
class CInput
{
public:
char pad_0000[12]; //0x0000
bool m_fTrackIRAvailable; //0x000C
bool m_fMouseInitialized; //0x000D
bool m_fMouseActive; //0x000E
bool m_fJoystickAdvancedInit; //0x000F
char pad_0010[44]; //0x0010
char* m_pKeys; //0x003C
char pad_0040[48]; //0x0040
int32_t m_nCamCommand; //0x0070
char pad_0074[76]; //0x0074
bool m_fCameraInterceptingMouse; //0x00C0
bool m_fCameraInThirdPerson; //0x00C1
bool m_fCameraMovingWithMouse; //0x00C2
char pad_00C3[1]; //0x00C3
Vector m_vecCameraOffset; //0x00C4
bool m_fCameraDistanceMove; //0x00D0
char pad_00D1[19]; //0x00D1
bool m_CameraIsOrthographic; //0x00E4
bool m_CameraIsThirdPersonOverview; //0x00E5
char pad_00E6[2]; //0x00E6
QAngle* m_angPreviousViewAngles; //0x00E8
QAngle* m_angPreviousViewAnglesTilt; //0x00EC
char pad_00F0[16]; //0x00F0
float m_flLastForwardMove; //0x0100
int32_t m_nClearInputState; //0x0104
CUserCmd* m_pCommands; //0x0108
CVerifiedUserCmd* m_pVerifiedCommands; //0x010C
public:
inline CUserCmd* GetUserCmd(int sequence_number) ;
inline CVerifiedUserCmd* GetVerifiedCmd(int sequence_number) ;
};
CUserCmd* CInput::GetUserCmd(int sequence_number)
{
return &m_pCommands[sequence_number % MULTIPLAYER_BACKUP];
}
CVerifiedUserCmd* CInput::GetVerifiedCmd(int sequence_number)
{
return &m_pVerifiedCommands[sequence_number % MULTIPLAYER_BACKUP];
}
#pragma once
#include "../Misc/CUserCmd.hpp"
#define MULTIPLAYER_BACKUP 150
class bf_write;
class bf_read;
class CInput
{
public:
inline CUserCmd* GetUserCmd(int sequence_number);
inline CVerifiedUserCmd* GetVerifiedCmd(int sequence_number);
};
CUserCmd* CInput::GetUserCmd(int sequence_number)
{
return &(*(CUserCmd**)((DWORD)this + 0x0108))[sequence_number % MULTIPLAYER_BACKUP];
}
CVerifiedUserCmd* CInput::GetVerifiedCmd(int sequence_number)
{
return &(*(CVerifiedUserCmd**)((DWORD)this + 0x010C))[sequence_number % MULTIPLAYER_BACKUP];
}
class i_input {
public:
char pad0[12];
bool m_track_ir_available;
bool m_mouse_initialized;
bool m_mouse_active;
char pad1[178];
bool m_camera_in_third_person;
char pad2[2];
vec3_t m_camera_offset;
char pad3[56];
c_user_cmd* m_commands;
c_verified_user_cmd* m_verified_commands;
c_user_cmd* get_user_cmd(int sequence_number) { return &m_commands[sequence_number % MULTIPLAYER_BACKUP]; }
c_verified_user_cmd* get_verified_user_cmd(int sequence_number) { return &m_verified_commands[sequence_number % MULTIPLAYER_BACKUP]; }
};
у тебя есть CInput.cpp? кинь пожалуйстаЕсли у тебя в классе есть виртуальные функции, то 4 байта начальные отойдут под них, и компилятор сместит твою структуру на +4, если же виртуалок нет, как у francyz то и смещения от компилятора не будет. Поэтому если класс с виртуалками, то
char pad_0000[12 - 4];
если без, то
char pad_0000[12];
Мой класс полностью, если нужен -
C++:class CInput { public: CInput(void); ~CInput(void); void InitMouse(void); virtual void Init_All(void); virtual void Shutdown_All(void); virtual int GetButtonBits(bool bResetState); virtual void CreateMove(int sequence_number, float input_sample_frametime, bool active); virtual void ExtraMouseSample(float frametime, bool active); virtual bool WriteUsercmdDeltaToBuffer(int nSlot, bf_write* buf, int from, int to, bool isnewcommand); virtual void EncodeUserCmdToBuffer(int nSlot, bf_write& buf, int slot); virtual void DecodeUserCmdFromBuffer(int nSlot, bf_read& buf, int slot); virtual CUserCmd* GetUserCmd(int nSlot, int sequence_number); virtual void MakeWeaponSelection(CBaseCombatWeapon* weapon); virtual float KeyState(kbutton_t* key); virtual int KeyEvent(int down, ButtonCode_t keynum, const char* pszCurrentBinding); virtual kbutton_t* FindKey(const char* name); virtual void ControllerCommands(void); virtual void Joystick_Advanced(bool bSilent); virtual void Joystick_SetSampleTime(float frametime); virtual float Joystick_GetPitch(void); virtual float Joystick_GetYaw(void); virtual void Joystick_Querry(float& forward, float& side, float& pitch, float& yaw); virtual void Joystick_ForceRecentering(int nStick, bool bSet = true); virtual void IN_SetSampleTime(float frametime); virtual void AccumulateMouse(int nSlot); virtual void ActivateMouse(void); virtual void DeactivateMouse(void); virtual void ClearStates(void); virtual float GetLookSpring(void); virtual void GetFullscreenMousePos(int* mx, int* my, int* unclampedx = NULL, int* unclampedy = NULL); virtual void SetFullscreenMousePos(int mx, int my); virtual void ResetMouse(void); virtual float GetLastForwardMove(void); virtual void ClearInputButton(int bits); virtual void CAM_Think(void); virtual int CAM_IsThirdPerson(int nSlot = -1); virtual bool CAM_IsThirdPersonOverview(int nSlot = -1); virtual void CAM_GetCameraOffset(Vector& ofs); virtual void CAM_ToThirdPerson(void); virtual void CAM_ToFirstPerson(void); virtual void CAM_ToThirdPersonShoulder(void); virtual void CAM_ToThirdPersonOverview(void); virtual void CAM_StartMouseMove(void); virtual void CAM_EndMouseMove(void); virtual void CAM_StartDistance(void); virtual void CAM_EndDistance(void); virtual int CAM_InterceptingMouse(void); virtual void CAM_Command(int command); virtual void CAM_ToOrthographic(); virtual bool CAM_IsOrthographic() const; virtual void CAM_OrthographicSize(float& w, float& h) const; virtual void LevelInit(void); virtual void CAM_SetCameraThirdData(CameraThirdData_t* pCameraData, const QAngle& vecCameraOffset); virtual void CAM_CameraThirdThink(void); virtual void CheckPaused(CUserCmd* cmd); virtual void CheckSplitScreenMimic(int nSlot, CUserCmd* cmd, CUserCmd* pPlayer0Command); CVerifiedUserCmd* GetVerifiedCmd(int sequence_number) { return &m_pVerifiedCommands[sequence_number % MULTIPLAYER_BACKUP]; } public: char pad_0000[12 - 4]; //0x0000 bool m_fTrackIRAvailable; //0x000C bool m_fMouseInitialized; //0x000D bool m_fMouseActive; //0x000E bool m_fJoystickAdvancedInit; //0x000F char pad_0010[44]; //0x0010 char* m_pKeys; //0x003C char pad_0040[48]; //0x0040 int32_t m_nCamCommand; //0x0070 char pad_0074[76]; //0x0074 bool m_fCameraInterceptingMouse; //0x00C0 bool m_fCameraInThirdPerson; //0x00C1 bool m_fCameraMovingWithMouse; //0x00C2 char pad_00C3[1]; //0x00C3 Vector m_vecCameraOffset; //0x00C4 bool m_fCameraDistanceMove; //0x00D0 char pad_00D1[19]; //0x00D1 bool m_CameraIsOrthographic; //0x00E4 bool m_CameraIsThirdPersonOverview; //0x00E5 char pad_00E6[2]; //0x00E6 QAngle* m_angPreviousViewAngles; //0x00E8 QAngle* m_angPreviousViewAnglesTilt; //0x00EC char pad_00F0[16]; //0x00F0 float m_flLastForwardMove; //0x0100 int32_t m_nClearInputState; //0x0104 CUserCmd* m_pCommands; //0x0108 CVerifiedUserCmd* m_pVerifiedCommands; //0x010C };
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz