Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

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

  • Автор темы Автор темы IPV4
  • Дата начала Дата начала
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
8 Ноя 2019
Сообщения
176
Реакции
63
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
__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++:
Expand Collapse Copy
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++:
Expand Collapse Copy
#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;
не могу использовать прыжок и так со всеми.​
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу