Cmd -> buttons нужна хелпа еб

Забаненный
Статус
Оффлайн
Регистрация
8 Ноя 2019
Сообщения
176
Реакции[?]
63
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
__declspec(naked) void __fastcall hkCreateMove_Proxy(void* _this, int, int sequence_number, float input_sample_frametime, bool active)
    {
 
        __asm
        {
            push ebp
            mov  ebp, esp
            push ebx
            lea  ecx, [esp]
            push ecx
            push dword ptr[active]
            push dword ptr[input_sample_frametime]
            push dword ptr[sequence_number]
            call Hooks::CreateMoveHook
            pop  ebx
            pop  ebp
            retn 0Ch
        }
    }
C++:
void __stdcall  Hooks::CreateMoveHook(int sequence_number, float input_sample_frametime, bool active, bool& bSendPacket)
{
 
    static auto oCreateMove = enghook.get_original<decltype(&Hooks::hkCreateMove_Proxy)>(index::CreateMove);
 
    oCreateMove(g_CHLClient, 0, sequence_number, input_sample_frametime, active);
 
    auto cmd = g_Input->GetUserCmd(sequence_number);
    auto verified = g_Input->GetVerifiedCmd(sequence_number);
 
    if (!cmd || !g_engine->IsInGame() || !g_engine->IsConnected() || !cmd->tick_count)
        return ;
 
    for (auto hk : c_lua::get()->hooks->getHooks("on_create_move"))
        hk.func(cmd, &G::SendPacket);   
    
    if (c_config::get()->b["misc_autojump"])
        misc::Bhop(cmd);
    if (c_config::get()->b["misc_autostrafe"])
        misc::AutoStrafe(cmd);
    uintptr_t* frame_ptr;
    __asm mov frame_ptr, ebp;
    *(bool*)(*frame_ptr - 0x1C) = G::SendPacket;
 
    verified->m_cmd = *cmd;
    verified->m_crc = cmd->GetChecksum();
}

C++:
#pragma once
 
#include "../classes/c_usercmd.hpp"
#include "../math/vector3d.hpp"
 
#define MULTIPLAYER_BACKUP 150
 
class bf_write;
class bf_read;
 
class CInput
{
public:
    char                pad_0x00[0x0C]; 
    bool                m_trackir_available; 
    bool                m_mouse_initiated; 
    bool                m_mouse_active; 
    bool                m_fJoystickAdvancedInit;       
    char                pad_0x08[0x2C];               
    void*               m_pKeys;                       
    char                pad_0x38[0x6C];               
    bool                m_fCameraInterceptingMouse;   
    bool                m_fCameraInThirdPerson;       
    bool                m_fCameraMovingWithMouse;     
    vec3_t            m_vecCameraOffset;             
    bool                m_fCameraDistanceMove;         
    int                 m_nCameraOldX;                 
    int                 m_nCameraOldY;                 
    int                 m_nCameraX;                   
    int                 m_nCameraY;                   
    bool                m_CameraIsOrthographic;       
    vec3_t              m_angPreviousViewAngles;
    vec3_t              m_angPreviousViewAnglesTilt;
    float               m_flLastForwardMove;           
    int                 m_nClearInputState;           
    char                pad_0xE4[0x8];                 
    c_usercmd*           m_pCommands;
    CVerifiedUserCmd*   m_pVerifiedCommands;           
 
    inline c_usercmd* GetUserCmd(int sequence_number);
    inline c_usercmd* GetUserCmd(int nSlot, int sequence_number);
    inline CVerifiedUserCmd* GetVerifiedCmd(int sequence_number);
};
 
c_usercmd* CInput::GetUserCmd(int sequence_number)
{
    using OriginalFn = c_usercmd * (__thiscall *)(void *, int, int);
    return vfunc<OriginalFn>(this, 8)(this, 0, sequence_number);
}
 
c_usercmd*CInput::GetUserCmd(int nSlot, int sequence_number)
{
    typedef c_usercmd*(__thiscall *GetUserCmd_t)(void*, int, int);
    return vfunc<GetUserCmd_t>(this, 8)(this, nSlot, sequence_number);
}
 
CVerifiedUserCmd* CInput::GetVerifiedCmd(int sequence_number)
{
    auto verifiedCommands = *(CVerifiedUserCmd **)(reinterpret_cast<uint32_t>(this) + 0xF8);
    return &verifiedCommands[sequence_number % MULTIPLAYER_BACKUP];
}
в общем проблема в том что когда использую к примеру
cmd->buttons &= ~IN_JUMP;
не могу использовать прыжок и так со всеми.​
 
bruh
Участник
Статус
Оффлайн
Регистрация
15 Апр 2017
Сообщения
1,299
Реакции[?]
365
Поинты[?]
0
логично что ты не можешь его использовать, ты же 'его убираешь'
 
bruh
Участник
Статус
Оффлайн
Регистрация
15 Апр 2017
Сообщения
1,299
Реакции[?]
365
Поинты[?]
0
Забаненный
Статус
Оффлайн
Регистрация
8 Ноя 2019
Сообщения
176
Реакции[?]
63
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
8 Ноя 2019
Сообщения
176
Реакции[?]
63
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу