Вопрос Как пофиксить дт в лв

Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
98
Реакции[?]
24
Поинты[?]
0
При отжатии дт тпает только через несколько секунд,как фиксить??
Знаю что дт можно перенести на форс речардж но не знаю как (((
 
Начинающий
Статус
Оффлайн
Регистрация
5 Сен 2022
Сообщения
7
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
7 Авг 2021
Сообщения
41
Реакции[?]
2
Поинты[?]
0
double_tap:
bool misc::double_tap(CUserCmd* m_pcmd)
{
    double_tap_enabled = true;

    static auto recharge_rapid_fire = false;
    static bool firing_dt = false;

    if (recharge_rapid_fire)
    {
        recharge_rapid_fire = false;
        recharging_double_tap = true;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    auto max_tickbase_shift = g_ctx.globals.weapon->get_max_tickbase_shift();

    if (recharging_double_tap)
    {
        if (can_shift_shot(max_tickbase_shift) && !aim::get().should_stop)
        {
            recharging_double_tap = false;
            double_tap_key = true;
            firing_dt = false;
        }
        else if (m_pcmd->m_buttons & IN_ATTACK)
            firing_dt = true;
    }

    if (!g_cfg.ragebot.enable)
    {
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    if (!g_cfg.ragebot.double_tap)
    {
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    static bool was_in_dt = false;

    if (g_cfg.ragebot.double_tap_key.key <= KEY_NONE || g_cfg.ragebot.double_tap_key.key >= KEY_MAX)
    {
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    if (double_tap_key && g_cfg.ragebot.double_tap_key.key != g_cfg.antiaim.hide_shots_key.key)
        hide_shots_key = false;

    if (!double_tap_key || g_ctx.local()->m_bGunGameImmunity() || g_ctx.local()->m_fFlags() & FL_FROZEN || g_ctx.globals.fakeducking)
    {
        double_tap_enabled = false;

        if (!firing_dt && was_in_dt)
        {
            g_ctx.globals.trigger_teleport = true;
            g_ctx.globals.teleport_amount = max_tickbase_shift;

            was_in_dt = false;
        }

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;

        return false;
    }

    if (m_gamerules()->m_bIsValveDS())
    {
        double_tap_enabled = false;
        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    if (antiaim::get().freeze_check)
        return true;

    was_in_dt = true;

    if (!g_ctx.globals.weapon->is_grenade() && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_TASER
        && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_REVOLVER
        && (m_pcmd->m_buttons & IN_ATTACK || m_pcmd->m_buttons & IN_ATTACK2 && g_ctx.globals.weapon->is_knife())) //-V648
    {
        auto next_command_number = m_pcmd->m_command_number + 1;
        auto user_cmd = m_input()->GetUserCmd(next_command_number);

        memcpy(user_cmd, m_pcmd, sizeof(CUserCmd));
        user_cmd->m_command_number = next_command_number;

        util::copy_command(user_cmd, max_tickbase_shift);

        if (g_ctx.globals.aimbot_working)
        {
            g_ctx.globals.double_tap_aim = true;
            g_ctx.globals.double_tap_aim_check = true;
        }

        recharge_rapid_fire = true;
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.send_packet = true;
        firing_dt = true;
    }
    else if (!g_ctx.globals.weapon->is_grenade() && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_TASER && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_REVOLVER)
        g_ctx.globals.tickbase_shift = max_tickbase_shift;

    return true;
}
в hooked_runcommand.cpp:
using CLMove_t = void(__vectorcall*)(float, bool);
void __vectorcall hooks::hooked_clmove(float accumulated_extra_samples, bool bFinalTick)
{
    if (g_ctx.globals.should_recharge)
    {
        g_ctx.get_command()->m_tickcount = INT_MAX;

        if (++g_ctx.globals.ticks_allowed >= 14)
        {
            g_ctx.globals.should_recharge = false;
            g_ctx.send_packet = true;
        }
        else
            g_ctx.send_packet = false;

        return;
    }

    ((CLMove_t)original_clmove)(accumulated_extra_samples, bFinalTick);
    if (g_ctx.available() && g_ctx.local()->is_alive())
    {
        if (g_ctx.globals.trigger_teleport)
        {
            for (int i = 0; i < g_ctx.globals.teleport_amount; i++)
                ((CLMove_t)original_clmove)(accumulated_extra_samples, bFinalTick);

            g_ctx.globals.teleport_amount = 0;
            g_ctx.globals.trigger_teleport = false;
        }
    }
}

using WriteUsercmdDeltaToBuffer_t = bool(__thiscall*)(void*, int, void*, int, int, bool);
void WriteUserÑmd(void* buf, CUserCmd* incmd, CUserCmd* outcmd);

bool __fastcall hooks::hooked_writeusercmddeltatobuffer(void* ecx, void* edx, int slot, bf_write* buf, int from, int to, bool is_new_command)
{
    static auto original_fn = client_hook->get_func_address <WriteUsercmdDeltaToBuffer_t>(24);

    if (!g_ctx.globals.tickbase_shift)
        return original_fn(ecx, slot, buf, from, to, is_new_command);

    if (from != -1)
        return true;

    auto final_from = -1;

    uintptr_t frame_ptr;
    __asm mov frame_ptr, ebp;

    auto backup_commands = reinterpret_cast <int*> (frame_ptr + 0xFD8);
    auto new_commands = reinterpret_cast <int*> (frame_ptr + 0xFDC);

    auto newcmds = *new_commands;
    auto shift = g_ctx.globals.tickbase_shift;

    g_ctx.globals.tickbase_shift = 0;
    *backup_commands = 0;

    auto choked_modifier = newcmds + shift;

    if (choked_modifier > 62)
        choked_modifier = 62;

    *new_commands = choked_modifier;

    auto next_cmdnr = m_clientstate()->iChokedCommands + m_clientstate()->nLastOutgoingCommand + 1;
    auto final_to = next_cmdnr - newcmds + 1;

    if (final_to <= next_cmdnr)
    {
        while (original_fn(ecx, slot, buf, final_from, final_to, true))
        {
            final_from = final_to++;

            if (final_to > next_cmdnr)
                goto next_cmd;
        }

        return false;
    }
next_cmd:

    auto user_cmd = m_input()->GetUserCmd(final_from);

    if (!user_cmd)
        return true;

    CUserCmd to_cmd;
    CUserCmd from_cmd;

    from_cmd = *user_cmd;
    to_cmd = from_cmd;

    to_cmd.m_command_number++;
    to_cmd.m_tickcount += 200;

    if (newcmds > choked_modifier)
        return true;

    for (auto i = choked_modifier - newcmds + 1; i > 0; --i)
    {
        WriteUserÑmd(buf, &to_cmd, &from_cmd);

        from_cmd = to_cmd;
        to_cmd.m_command_number++;
        to_cmd.m_tickcount++;
    }

    return true;
}

void WriteUserÑmd(void* buf, CUserCmd* incmd, CUserCmd* outcmd)
{
    using WriteUserCmd_t = void(__fastcall*)(void*, CUserCmd*, CUserCmd*);
    static auto Fn = (WriteUserCmd_t)util::FindSignature(crypt_str("client.dll"), crypt_str("55 8B EC 83 E4 F8 51 53 56 8B D9"));

    __asm
    {
        mov     ecx, buf
        mov     edx, incmd
        push    outcmd
        call    Fn
        add     esp, 4
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
5 Сен 2022
Сообщения
7
Реакции[?]
0
Поинты[?]
0
double_tap:
bool misc::double_tap(CUserCmd* m_pcmd)
{
    double_tap_enabled = true;

    static auto recharge_rapid_fire = false;
    static bool firing_dt = false;

    if (recharge_rapid_fire)
    {
        recharge_rapid_fire = false;
        recharging_double_tap = true;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    auto max_tickbase_shift = g_ctx.globals.weapon->get_max_tickbase_shift();

    if (recharging_double_tap)
    {
        if (can_shift_shot(max_tickbase_shift) && !aim::get().should_stop)
        {
            recharging_double_tap = false;
            double_tap_key = true;
            firing_dt = false;
        }
        else if (m_pcmd->m_buttons & IN_ATTACK)
            firing_dt = true;
    }

    if (!g_cfg.ragebot.enable)
    {
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    if (!g_cfg.ragebot.double_tap)
    {
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    static bool was_in_dt = false;

    if (g_cfg.ragebot.double_tap_key.key <= KEY_NONE || g_cfg.ragebot.double_tap_key.key >= KEY_MAX)
    {
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    if (double_tap_key && g_cfg.ragebot.double_tap_key.key != g_cfg.antiaim.hide_shots_key.key)
        hide_shots_key = false;

    if (!double_tap_key || g_ctx.local()->m_bGunGameImmunity() || g_ctx.local()->m_fFlags() & FL_FROZEN || g_ctx.globals.fakeducking)
    {
        double_tap_enabled = false;

        if (!firing_dt && was_in_dt)
        {
            g_ctx.globals.trigger_teleport = true;
            g_ctx.globals.teleport_amount = max_tickbase_shift;

            was_in_dt = false;
        }

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;

        return false;
    }

    if (m_gamerules()->m_bIsValveDS())
    {
        double_tap_enabled = false;
        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    if (antiaim::get().freeze_check)
        return true;

    was_in_dt = true;

    if (!g_ctx.globals.weapon->is_grenade() && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_TASER
        && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_REVOLVER
        && (m_pcmd->m_buttons & IN_ATTACK || m_pcmd->m_buttons & IN_ATTACK2 && g_ctx.globals.weapon->is_knife())) //-V648
    {
        auto next_command_number = m_pcmd->m_command_number + 1;
        auto user_cmd = m_input()->GetUserCmd(next_command_number);

        memcpy(user_cmd, m_pcmd, sizeof(CUserCmd));
        user_cmd->m_command_number = next_command_number;

        util::copy_command(user_cmd, max_tickbase_shift);

        if (g_ctx.globals.aimbot_working)
        {
            g_ctx.globals.double_tap_aim = true;
            g_ctx.globals.double_tap_aim_check = true;
        }

        recharge_rapid_fire = true;
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.send_packet = true;
        firing_dt = true;
    }
    else if (!g_ctx.globals.weapon->is_grenade() && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_TASER && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_REVOLVER)
        g_ctx.globals.tickbase_shift = max_tickbase_shift;

    return true;
}
в hooked_runcommand.cpp:
using CLMove_t = void(__vectorcall*)(float, bool);
void __vectorcall hooks::hooked_clmove(float accumulated_extra_samples, bool bFinalTick)
{
    if (g_ctx.globals.should_recharge)
    {
        g_ctx.get_command()->m_tickcount = INT_MAX;

        if (++g_ctx.globals.ticks_allowed >= 14)
        {
            g_ctx.globals.should_recharge = false;
            g_ctx.send_packet = true;
        }
        else
            g_ctx.send_packet = false;

        return;
    }

    ((CLMove_t)original_clmove)(accumulated_extra_samples, bFinalTick);
    if (g_ctx.available() && g_ctx.local()->is_alive())
    {
        if (g_ctx.globals.trigger_teleport)
        {
            for (int i = 0; i < g_ctx.globals.teleport_amount; i++)
                ((CLMove_t)original_clmove)(accumulated_extra_samples, bFinalTick);

            g_ctx.globals.teleport_amount = 0;
            g_ctx.globals.trigger_teleport = false;
        }
    }
}

using WriteUsercmdDeltaToBuffer_t = bool(__thiscall*)(void*, int, void*, int, int, bool);
void WriteUserÑmd(void* buf, CUserCmd* incmd, CUserCmd* outcmd);

bool __fastcall hooks::hooked_writeusercmddeltatobuffer(void* ecx, void* edx, int slot, bf_write* buf, int from, int to, bool is_new_command)
{
    static auto original_fn = client_hook->get_func_address <WriteUsercmdDeltaToBuffer_t>(24);

    if (!g_ctx.globals.tickbase_shift)
        return original_fn(ecx, slot, buf, from, to, is_new_command);

    if (from != -1)
        return true;

    auto final_from = -1;

    uintptr_t frame_ptr;
    __asm mov frame_ptr, ebp;

    auto backup_commands = reinterpret_cast <int*> (frame_ptr + 0xFD8);
    auto new_commands = reinterpret_cast <int*> (frame_ptr + 0xFDC);

    auto newcmds = *new_commands;
    auto shift = g_ctx.globals.tickbase_shift;

    g_ctx.globals.tickbase_shift = 0;
    *backup_commands = 0;

    auto choked_modifier = newcmds + shift;

    if (choked_modifier > 62)
        choked_modifier = 62;

    *new_commands = choked_modifier;

    auto next_cmdnr = m_clientstate()->iChokedCommands + m_clientstate()->nLastOutgoingCommand + 1;
    auto final_to = next_cmdnr - newcmds + 1;

    if (final_to <= next_cmdnr)
    {
        while (original_fn(ecx, slot, buf, final_from, final_to, true))
        {
            final_from = final_to++;

            if (final_to > next_cmdnr)
                goto next_cmd;
        }

        return false;
    }
next_cmd:

    auto user_cmd = m_input()->GetUserCmd(final_from);

    if (!user_cmd)
        return true;

    CUserCmd to_cmd;
    CUserCmd from_cmd;

    from_cmd = *user_cmd;
    to_cmd = from_cmd;

    to_cmd.m_command_number++;
    to_cmd.m_tickcount += 200;

    if (newcmds > choked_modifier)
        return true;

    for (auto i = choked_modifier - newcmds + 1; i > 0; --i)
    {
        WriteUserÑmd(buf, &to_cmd, &from_cmd);

        from_cmd = to_cmd;
        to_cmd.m_command_number++;
        to_cmd.m_tickcount++;
    }

    return true;
}

void WriteUserÑmd(void* buf, CUserCmd* incmd, CUserCmd* outcmd)
{
    using WriteUserCmd_t = void(__fastcall*)(void*, CUserCmd*, CUserCmd*);
    static auto Fn = (WriteUserCmd_t)util::FindSignature(crypt_str("client.dll"), crypt_str("55 8B EC 83 E4 F8 51 53 56 8B D9"));

    __asm
    {
        mov     ecx, buf
        mov     edx, incmd
        push    outcmd
        call    Fn
        add     esp, 4
    }
}
удачи фиксить то что тебя назад при пике будет тепать
 
Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
98
Реакции[?]
24
Поинты[?]
0
Для просмотра содержимого вам необходимо авторизоваться.
double_tap:
bool misc::double_tap(CUserCmd* m_pcmd)
{
    double_tap_enabled = true;

    static auto recharge_rapid_fire = false;
    static bool firing_dt = false;

    if (recharge_rapid_fire)
    {
        recharge_rapid_fire = false;
        recharging_double_tap = true;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    auto max_tickbase_shift = g_ctx.globals.weapon->get_max_tickbase_shift();

    if (recharging_double_tap)
    {
        if (can_shift_shot(max_tickbase_shift) && !aim::get().should_stop)
        {
            recharging_double_tap = false;
            double_tap_key = true;
            firing_dt = false;
        }
        else if (m_pcmd->m_buttons & IN_ATTACK)
            firing_dt = true;
    }

    if (!g_cfg.ragebot.enable)
    {
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    if (!g_cfg.ragebot.double_tap)
    {
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    static bool was_in_dt = false;

    if (g_cfg.ragebot.double_tap_key.key <= KEY_NONE || g_cfg.ragebot.double_tap_key.key >= KEY_MAX)
    {
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    if (double_tap_key && g_cfg.ragebot.double_tap_key.key != g_cfg.antiaim.hide_shots_key.key)
        hide_shots_key = false;

    if (!double_tap_key || g_ctx.local()->m_bGunGameImmunity() || g_ctx.local()->m_fFlags() & FL_FROZEN || g_ctx.globals.fakeducking)
    {
        double_tap_enabled = false;

        if (!firing_dt && was_in_dt)
        {
            g_ctx.globals.trigger_teleport = true;
            g_ctx.globals.teleport_amount = max_tickbase_shift;

            was_in_dt = false;
        }

        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;

        return false;
    }

    if (m_gamerules()->m_bIsValveDS())
    {
        double_tap_enabled = false;
        g_ctx.globals.ticks_allowed = 0;
        g_ctx.globals.tickbase_shift = 0;
        return false;
    }

    if (antiaim::get().freeze_check)
        return true;

    was_in_dt = true;

    if (!g_ctx.globals.weapon->is_grenade() && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_TASER
        && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_REVOLVER
        && (m_pcmd->m_buttons & IN_ATTACK || m_pcmd->m_buttons & IN_ATTACK2 && g_ctx.globals.weapon->is_knife())) //-V648
    {
        auto next_command_number = m_pcmd->m_command_number + 1;
        auto user_cmd = m_input()->GetUserCmd(next_command_number);

        memcpy(user_cmd, m_pcmd, sizeof(CUserCmd));
        user_cmd->m_command_number = next_command_number;

        util::copy_command(user_cmd, max_tickbase_shift);

        if (g_ctx.globals.aimbot_working)
        {
            g_ctx.globals.double_tap_aim = true;
            g_ctx.globals.double_tap_aim_check = true;
        }

        recharge_rapid_fire = true;
        double_tap_enabled = false;
        double_tap_key = false;

        g_ctx.send_packet = true;
        firing_dt = true;
    }
    else if (!g_ctx.globals.weapon->is_grenade() && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_TASER && g_ctx.globals.weapon->m_iItemDefinitionIndex() != WEAPON_REVOLVER)
        g_ctx.globals.tickbase_shift = max_tickbase_shift;

    return true;
}
в hooked_runcommand.cpp:
using CLMove_t = void(__vectorcall*)(float, bool);
void __vectorcall hooks::hooked_clmove(float accumulated_extra_samples, bool bFinalTick)
{
    if (g_ctx.globals.should_recharge)
    {
        g_ctx.get_command()->m_tickcount = INT_MAX;

        if (++g_ctx.globals.ticks_allowed >= 14)
        {
            g_ctx.globals.should_recharge = false;
            g_ctx.send_packet = true;
        }
        else
            g_ctx.send_packet = false;

        return;
    }

    ((CLMove_t)original_clmove)(accumulated_extra_samples, bFinalTick);
    if (g_ctx.available() && g_ctx.local()->is_alive())
    {
        if (g_ctx.globals.trigger_teleport)
        {
            for (int i = 0; i < g_ctx.globals.teleport_amount; i++)
                ((CLMove_t)original_clmove)(accumulated_extra_samples, bFinalTick);

            g_ctx.globals.teleport_amount = 0;
            g_ctx.globals.trigger_teleport = false;
        }
    }
}

using WriteUsercmdDeltaToBuffer_t = bool(__thiscall*)(void*, int, void*, int, int, bool);
void WriteUserÑmd(void* buf, CUserCmd* incmd, CUserCmd* outcmd);

bool __fastcall hooks::hooked_writeusercmddeltatobuffer(void* ecx, void* edx, int slot, bf_write* buf, int from, int to, bool is_new_command)
{
    static auto original_fn = client_hook->get_func_address <WriteUsercmdDeltaToBuffer_t>(24);

    if (!g_ctx.globals.tickbase_shift)
        return original_fn(ecx, slot, buf, from, to, is_new_command);

    if (from != -1)
        return true;

    auto final_from = -1;

    uintptr_t frame_ptr;
    __asm mov frame_ptr, ebp;

    auto backup_commands = reinterpret_cast <int*> (frame_ptr + 0xFD8);
    auto new_commands = reinterpret_cast <int*> (frame_ptr + 0xFDC);

    auto newcmds = *new_commands;
    auto shift = g_ctx.globals.tickbase_shift;

    g_ctx.globals.tickbase_shift = 0;
    *backup_commands = 0;

    auto choked_modifier = newcmds + shift;

    if (choked_modifier > 62)
        choked_modifier = 62;

    *new_commands = choked_modifier;

    auto next_cmdnr = m_clientstate()->iChokedCommands + m_clientstate()->nLastOutgoingCommand + 1;
    auto final_to = next_cmdnr - newcmds + 1;

    if (final_to <= next_cmdnr)
    {
        while (original_fn(ecx, slot, buf, final_from, final_to, true))
        {
            final_from = final_to++;

            if (final_to > next_cmdnr)
                goto next_cmd;
        }

        return false;
    }
next_cmd:

    auto user_cmd = m_input()->GetUserCmd(final_from);

    if (!user_cmd)
        return true;

    CUserCmd to_cmd;
    CUserCmd from_cmd;

    from_cmd = *user_cmd;
    to_cmd = from_cmd;

    to_cmd.m_command_number++;
    to_cmd.m_tickcount += 200;

    if (newcmds > choked_modifier)
        return true;

    for (auto i = choked_modifier - newcmds + 1; i > 0; --i)
    {
        WriteUserÑmd(buf, &to_cmd, &from_cmd);

        from_cmd = to_cmd;
        to_cmd.m_command_number++;
        to_cmd.m_tickcount++;
    }

    return true;
}

void WriteUserÑmd(void* buf, CUserCmd* incmd, CUserCmd* outcmd)
{
    using WriteUserCmd_t = void(__fastcall*)(void*, CUserCmd*, CUserCmd*);
    static auto Fn = (WriteUserCmd_t)util::FindSignature(crypt_str("client.dll"), crypt_str("55 8B EC 83 E4 F8 51 53 56 8B D9"));

    __asm
    {
        mov     ecx, buf
        mov     edx, incmd
        push    outcmd
        call    Fn
        add     esp, 4
    }
}
 
Сверху Снизу