DLL

Статус
В этой теме нельзя размещать новые ответы.

Vintik

Через тернии к звёздам
Автор темы
Проверенный
1,528
1,012
Господа, проконсультируйте молодого, что не так. Проблема в том, что когда активирую столь прекраснейший чит - ГТАшка работает, всё супер, чат идёт, а вот управление полностью отнимается, камеру подвинуть не могу. Когда выключаю чит, все равно этот фриз управления остаётся, хотя по прежнему всё работает, челики бегают, машинки ездят.

И так, я учусь, за гавнокод не ругайте, лучше укажите на ошибки, исправлюсь:
C++:
#include "pch.h"
#include <Windows.h>
#include <process.h>
#include <vector>
#include <thread>
#include <chrono>

#define button_W 87
#define button_S 83
#define button_A 65
#define button_D 68

std::vector<bool> pButton (1, false); // нажата ли клавиша? задержка до отпускания
int LastUse = 0;

bool AirBrake = false;

void __cdecl CheatStart(void *pArg)
{
    auto begin = std::chrono::steady_clock::now();
    while (true)
    {
        if (GetAsyncKeyState(VK_RSHIFT) && !pButton[0])
        {
            pButton[0] = true;
            if (AirBrake)
                AirBrake = false;
            else
                AirBrake = true;
        }
        if (!GetAsyncKeyState(VK_RSHIFT) && pButton[0]) pButton[0] = false;

        if (AirBrake)
        {
            auto end = std::chrono::steady_clock::now();
            auto elapsed_ms = std::chrono::duration_cast<std::chrono::milliseconds>(end - begin);
            int Dtime = elapsed_ms.count() - LastUse;
            if (Dtime >= 50)
            {
                LastUse += Dtime;
                DWORD Cped = *(DWORD*)0xB6F5F0;
                Cped += 0x4C;
                *(float*)Cped = 1E-3;
                Cped -= 0x4C;
                float kAirBrake = 1.5; // длина "телепорта" в аирбрейке
                if (GetAsyncKeyState(VK_UP))
                {
                    Cped += 0x14;
                    DWORD Pstr = *(DWORD*)Cped;
                    DWORD coord3_adr = Pstr + 0x38; // верт. коорд
                    *(float*)coord3_adr += kAirBrake;
                }
                if (GetAsyncKeyState(VK_DOWN))
                {
                    Cped += 0x14;
                    DWORD Pstr = *(DWORD*)Cped;
                    DWORD coord3_adr = Pstr + 0x38; // верт. коорд
                    *(float*)coord3_adr -= kAirBrake;
                }
                if (GetAsyncKeyState(button_W))
                {
                    Cped += 0x14;
                    DWORD Pstr = *(DWORD*)Cped;
                    DWORD coord_adr = Pstr + 0x30;
                    DWORD coord2_adr = Pstr + 0x34;
                    float angle = *(float*)0xB6F258 + 1.57079633;

                    *(float*)coord_adr -= kAirBrake * sin(angle);
                    *(float*)coord2_adr += kAirBrake * cos(angle);
                }
                if (GetAsyncKeyState(button_S))
                {
                    Cped += 0x14;
                    DWORD Pstr = *(DWORD*)Cped;
                    DWORD coord_adr = Pstr + 0x30;
                    DWORD coord2_adr = Pstr + 0x34;
                    float angle = *(float*)0xB6F258 + 1.57079633;

                    *(float*)coord_adr += kAirBrake * sin(angle);
                    *(float*)coord2_adr -= kAirBrake * cos(angle);
                }
                if (GetAsyncKeyState(button_A))
                {
                    Cped += 0x14;
                    DWORD Pstr = *(DWORD*)Cped;
                    DWORD coord_adr = Pstr + 0x30;
                    DWORD coord2_adr = Pstr + 0x34;
                    float angle = *(float*)0xB6F258 + 1.57079633;

                    *(float*)coord_adr -= kAirBrake * cos(angle);
                    *(float*)coord2_adr -= kAirBrake * sin(angle);
                }
                if (GetAsyncKeyState(button_D))
                {
                    Cped += 0x14;
                    DWORD Pstr = *(DWORD*)Cped;
                    DWORD coord_adr = Pstr + 0x30;
                    DWORD coord2_adr = Pstr + 0x34;
                    float angle = *(float*)0xB6F258 + 1.57079633;

                    *(float*)coord_adr += kAirBrake * cos(angle);
                    *(float*)coord2_adr += kAirBrake * sin(angle);
                }
            }
        }

        Sleep(1);
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    if (ul_reason_for_call == DLL_PROCESS_ATTACH)
        _beginthread(CheatStart, NULL, nullptr);
    return TRUE;
}

Код вроде бы читаемый, сразу же подскажу. Всякие "std::chrono::duration_cast<std::chrono::milliseconds>(end - begin);" я делал для того, чтобы программа работала следующим образом: "аир брейк сделал одно действие (НЕ одна итерация цикла), программа зафиксировала сколько времени прошло с момента её запуска, затем еще раз цикл подошёл, она еще раз посчитала, сколько времени прошло с начала, вычла предыдущий результат, если более ста миллисекунд - можно еще раз выполнить одно действие цикла". Прошу, помогите))

P. S. Очень прошу ответить развёрнуто, а не кинуть какую-то левую ссылку на что-то там.
 
Решение
Господа, проконсультируйте молодого, что не так. Проблема в том, что когда активирую столь прекраснейший чит - ГТАшка работает, всё супер, чат идёт, а вот управление полностью отнимается, камеру подвинуть не могу. Когда выключаю чит, все равно этот фриз управления остаётся, хотя по прежнему всё работает, челики бегают, машинки ездят.
это античит сампа, поставь SF, либо посмотри как патчит его собейт

CleanLegend

Известный
Всефорумный модератор
477
935
Господа, проконсультируйте молодого, что не так. Проблема в том, что когда активирую столь прекраснейший чит - ГТАшка работает, всё супер, чат идёт, а вот управление полностью отнимается, камеру подвинуть не могу. Когда выключаю чит, все равно этот фриз управления остаётся, хотя по прежнему всё работает, челики бегают, машинки ездят.
это античит сампа, поставь SF, либо посмотри как патчит его собейт
 
Статус
В этой теме нельзя размещать новые ответы.