• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Вопрос Помогите с бхопом пожалуйста

я заметел, если присидать прямо перед приземлением, бхопит лучше, с чем это можнт быть связано?
это из-за задержки std::this_thread::sleep_for(std::chrono::milliseconds(10)); если её убрать то бхоп был бы идеальным, но в кс2 он так не будет работать из-за субтика как я думаю. если в кс го написать бхоп без задержки то все окей будет. и еще если без задержки делать то память много кушать будет
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
бхоп? пф изи
 
я заметел, если присидать прямо перед приземлением, бхопит лучше, с чем это можнт быть связано?
Это манипуляция, называеться джампбагуляция, при помощи этот манипуляции можно подпрыгивать выше не изменяя velocity, и уводя ее реально значение в -
 
Это манипуляция, называеться джампбагуляция, при помощи этот манипуляции можно подпрыгивать выше не изменяя velocity, и уводя ее реально значение в -
джампбаг, эджбаг, лонгджамп, миниджамп.
но он про тайминг бхопа сказал
 
это из-за задержки std::this_thread::sleep_for(std::chrono::milliseconds(10)); если её убрать то бхоп был бы идеальным, но в кс2 он так не будет работать из-за субтика как я думаю. если в кс го написать бхоп без задержки то все окей будет. и еще если без задержки делать то память много кушать будет
а возможно както сделать идеальный бхоп с сабтиками или это не реально?
 
а возможно както сделать идеальный бхоп с сабтиками или это не реально?
не знаю, посмотри как в интернале делают бхоп и там уже надо подумать.
Пожалуйста, авторизуйтесь для просмотра ссылки.
можешь попробовать так сделать, но надо прыжок забиндить на колесико
 
не знаю, посмотри как в интернале делают бхоп и там уже надо подумать.
Пожалуйста, авторизуйтесь для просмотра ссылки.
можешь попробовать так сделать, но надо прыжок забиндить на колесико
нашел в исходнике какогото чита, там где норм работает бхоп код:


C++:
Expand Collapse Copy
void F::MISC::MOVEMENT::BunnyHop(CUserCmd* pCmd, CBaseUserCmdPB* pUserCmd, C_CSPlayerPawn* pLocalPawn)
{
    if (!C_GET(bool, Vars.bAutoBHop) || CONVAR::sv_autobunnyhopping->value.i1)
        return;

    update random seed
    MATH::fnRandomSeed(pUserCmd->nRandomSeed);

    // bypass of possible SMAC/VAC server anticheat detection
    if (static bool bShouldFakeJump = false; bShouldFakeJump)
    {
        pCmd->nButtons.nValue |= IN_JUMP;
        bShouldFakeJump = false;
    }
    // check is player want to jump
    else if (pCmd->nButtons.nValue & IN_JUMP)
    {
        // check is player on the ground
        if (pLocalPawn->GetFlags() & FL_ONGROUND)
            // note to fake jump at the next tick
            bShouldFakeJump = true;
        // check did random jump chance passed
        else if (MATH::fnRandomInt(0, 100) <= C_GET(int, Vars.nAutoBHopChance))
            pCmd->nButtons.nValue &= ~IN_JUMP;
    }

    // im lazy so yea :D
    if (pLocalPawn->GetFlags() & FL_ONGROUND)
    {
        pUserCmd->pInButtonState->SetBits(EButtonStatePBBits::BUTTON_STATE_PB_BITS_BUTTONSTATE1);
        pUserCmd->pInButtonState->nValue &= ~IN_JUMP;
    }
}

не особо понимаю что тут вообще происходит, но как я понял, тут сделали какието фейк прыжки по тикам, немогу понять зачем.
это может както помочь мне сделать идельный бхоп, или уже фикшено?
 
Я написал простой интернальный бхоп, но он прыгает вообще не в тайминги, как это исправить? Заранее спасибо

C++:
Expand Collapse Copy
#include <Windows.h>
#include <cstdint>
#include <thread>
#include <chrono>
#include <iostream>

namespace Offsets
{
    constexpr std::ptrdiff_t jump = 0x1884C40;
}

void BunnyHop(HMODULE instance) {
    uintptr_t client = reinterpret_cast<uintptr_t>(GetModuleHandleA("client.dll"));

    if (!client) {
        std::cout << "Ошибка: клиентский модуль не найден." << std::endl;
        return;
    }

    while (true) {
        std::this_thread::sleep_for(std::chrono::milliseconds(1));

        if (GetAsyncKeyState(VK_SPACE) & 0x8000) {
            *reinterpret_cast<uintptr_t*>(client + Offsets::jump) = 65537;
            Sleep(0.01);
            *reinterpret_cast<uintptr_t*>(client + Offsets::jump) = 256;
        }
    }
}

int __stdcall DllMain(HMODULE instance, DWORD reason, void* reserved) {
    if (reason == DLL_PROCESS_ATTACH) {
        DisableThreadLibraryCalls(instance);

        auto thread = CreateThread(nullptr, 0, reinterpret_cast<LPTHREAD_START_ROUTINE>(BunnyHop), instance, 0, nullptr);

        if (thread)
            CloseHandle(thread);
    }

    return TRUE;
}
Можем в дс?
 
нашел в исходнике какогото чита, там где норм работает бхоп код:


C++:
Expand Collapse Copy
void F::MISC::MOVEMENT::BunnyHop(CUserCmd* pCmd, CBaseUserCmdPB* pUserCmd, C_CSPlayerPawn* pLocalPawn)
{
    if (!C_GET(bool, Vars.bAutoBHop) || CONVAR::sv_autobunnyhopping->value.i1)
        return;

    update random seed
    MATH::fnRandomSeed(pUserCmd->nRandomSeed);

    // bypass of possible SMAC/VAC server anticheat detection
    if (static bool bShouldFakeJump = false; bShouldFakeJump)
    {
        pCmd->nButtons.nValue |= IN_JUMP;
        bShouldFakeJump = false;
    }
    // check is player want to jump
    else if (pCmd->nButtons.nValue & IN_JUMP)
    {
        // check is player on the ground
        if (pLocalPawn->GetFlags() & FL_ONGROUND)
            // note to fake jump at the next tick
            bShouldFakeJump = true;
        // check did random jump chance passed
        else if (MATH::fnRandomInt(0, 100) <= C_GET(int, Vars.nAutoBHopChance))
            pCmd->nButtons.nValue &= ~IN_JUMP;
    }

    // im lazy so yea :D
    if (pLocalPawn->GetFlags() & FL_ONGROUND)
    {
        pUserCmd->pInButtonState->SetBits(EButtonStatePBBits::BUTTON_STATE_PB_BITS_BUTTONSTATE1);
        pUserCmd->pInButtonState->nValue &= ~IN_JUMP;
    }
}

не особо понимаю что тут вообще происходит, но как я понял, тут сделали какието фейк прыжки по тикам, немогу понять зачем.
это может както помочь мне сделать идельный бхоп, или уже фикшено?

if (MATH::fnRandomInt(0, 100) <= C_GET(int, Vars.nAutoBHopChance)) если ты про это, то это рандом для легит бхопа. в рандомный прыжок может бхоп застопится или потерять скорость.
смотри у тебя external бхоп, чтобы бхоп был идеальным нужно писать интернал. подключать hook createmove и уже с помощью CUserCmd изменять buttons и все такое
 
if (MATH::fnRandomInt(0, 100) <= C_GET(int, Vars.nAutoBHopChance)) если ты про это, то это рандом для легит бхопа. в рандомный прыжок может бхоп застопится или потерять скорость.
смотри у тебя external бхоп, чтобы бхоп был идеальным нужно писать интернал. подключать hook createmove и уже с помощью CUserCmd изменять buttons и все такое
типо такого? только это не работает


Код:
Expand Collapse Copy
#include <Windows.h>
#include <iostream>

typedef bool(__thiscall* CreateMove_t)(void*, float, CUserCmd*);
CreateMove_t oCreateMove;

struct CUserCmd {
    int command_number;
    int tick_count;
    float viewangles[3];
    float forwardmove;
    float sidemove;
    float upmove;
    int buttons;
    char impulse;
    int weaponselect;
    int weaponsubtype;
    int random_seed;
    short mousedx;
    short mousedy;
    bool hasbeenpredicted;
};

constexpr int IN_JUMP = (1 << 1);
constexpr int FL_ONGROUND = (1 << 0);

bool __stdcall hkCreateMove(void* ecx, float sample_time, CUserCmd* cmd) {
    if (!cmd) return false;
    int playerFlags = 65665;
    if (GetAsyncKeyState(VK_SPACE) & 0x8000) {
        if (playerFlags & FL_ONGROUND) {
            cmd->buttons |= IN_JUMP;
        }
    }
    return oCreateMove(ecx, sample_time, cmd);
}

void HookCreateMove() {
    uintptr_t* clientMode = *(uintptr_t**)(GetModuleHandleA("client.dll") + 0x5A5F20);
    oCreateMove = (CreateMove_t)clientMode[24];

    DWORD oldProtect;
    VirtualProtect(&clientMode[24], sizeof(uintptr_t), PAGE_EXECUTE_READWRITE, &oldProtect);
    clientMode[24] = (uintptr_t)&hkCreateMove;
    VirtualProtect(&clientMode[24], sizeof(uintptr_t), oldProtect, &oldProtect);
}

DWORD WINAPI HackThread(LPVOID param) {
    while (!GetModuleHandleA("client.dll")) Sleep(100);
    HookCreateMove();
    return 0;
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
    if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
        DisableThreadLibraryCalls(hModule);
        CreateThread(nullptr, 0, HackThread, hModule, 0, nullptr);
    }
    return TRUE;
}
 
типо такого? только это не работает


Код:
Expand Collapse Copy
#include <Windows.h>
#include <iostream>

typedef bool(__thiscall* CreateMove_t)(void*, float, CUserCmd*);
CreateMove_t oCreateMove;

struct CUserCmd {
    int command_number;
    int tick_count;
    float viewangles[3];
    float forwardmove;
    float sidemove;
    float upmove;
    int buttons;
    char impulse;
    int weaponselect;
    int weaponsubtype;
    int random_seed;
    short mousedx;
    short mousedy;
    bool hasbeenpredicted;
};

constexpr int IN_JUMP = (1 << 1);
constexpr int FL_ONGROUND = (1 << 0);

bool __stdcall hkCreateMove(void* ecx, float sample_time, CUserCmd* cmd) {
    if (!cmd) return false;
    int playerFlags = 65665;
    if (GetAsyncKeyState(VK_SPACE) & 0x8000) {
        if (playerFlags & FL_ONGROUND) {
            cmd->buttons |= IN_JUMP;
        }
    }
    return oCreateMove(ecx, sample_time, cmd);
}

void HookCreateMove() {
    uintptr_t* clientMode = *(uintptr_t**)(GetModuleHandleA("client.dll") + 0x5A5F20);
    oCreateMove = (CreateMove_t)clientMode[24];

    DWORD oldProtect;
    VirtualProtect(&clientMode[24], sizeof(uintptr_t), PAGE_EXECUTE_READWRITE, &oldProtect);
    clientMode[24] = (uintptr_t)&hkCreateMove;
    VirtualProtect(&clientMode[24], sizeof(uintptr_t), oldProtect, &oldProtect);
}

DWORD WINAPI HackThread(LPVOID param) {
    while (!GetModuleHandleA("client.dll")) Sleep(100);
    HookCreateMove();
    return 0;
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
    if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
        DisableThreadLibraryCalls(hModule);
        CreateThread(nullptr, 0, HackThread, hModule, 0, nullptr);
    }
    return TRUE;
}
int playerFlags = 65665; у тебя тут оффсет m_fFlags должен быть.
и проверь у тебя createmove инициализируется
 
int playerFlags = 65665; у тебя тут оффсет m_fFlags должен быть.
и проверь у тебя createmove инициализируется
спасибо большое) сделал и работает идеально, только при изменении оружия сбиваеться почемуто, но а так нормально
 
Назад
Сверху Снизу