Гайд Делаем свои читы с нуля. Урок #2. Делаем триггербот.

bluedream.ltd
bluedream.ltd
Статус
Оффлайн
Регистрация
4 Янв 2020
Сообщения
3,063
Реакции
1,288
Продолжение серии гайдов, в этом уроке напишем свой триггербот. Очистим наш прошлый проект оставив только это
image.png

Добавляем проверку на то живой наш персонаж или нет:
C++:
Expand Collapse Copy
if (!LocalHealth)
    continue;
Добавляем новую переменную, которая будет проверять есть ли кто-то в нашем прицеле:
C++:
Expand Collapse Copy
DWORD isTriggered = mem.Read<DWORD>(LocalPlayer + m_iCrosshairId);
if (!isTriggered || isTriggered > 64)
    continue;
После того, как у нас появился базовый адрес нашего объекта в прицеле создадим две новых переменных для проверки количества хп и команды нашего объекта:
C++:
Expand Collapse Copy
DWORD EntityHp = mem.Read<DWORD>(EntityBase + m_iHealth);
DWORD EntityTeam = mem.Read<DWORD>(EntityBase + m_iTeamNum);
Дальше нам нужно получить базовый адрес игрока в прицеле, делается это вот так:
C++:
Expand Collapse Copy
DWORD EntityBase = mem.Read<int>(clientAddr.dwBase + dwEntityList + (isTriggered - 1) * 0x10);
if (!EntityBase)
    continue;
Сравниваем значения, если здоровье врага не равно нулю, а также если объект не находится в нашей команде:
C++:
Expand Collapse Copy
if (!EntityHp || EntityTeam == LocalTeam)
    continue;
Эмулируем нажатие на кнопку:
C++:
Expand Collapse Copy
Sleep(5);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
Sleep(15);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

C++:
Expand Collapse Copy
#include <iostream>
#include "Memory.h"
#include "offsets.hpp"
using namespace hazedumper;
using namespace netvars;
using namespace signatures;
PModule clientAddr;
memory mem;
int main()
{
    while (!mem.Attach("csgo.exe", PROCESS_ALL_ACCESS)) {}
    clientAddr = mem.GetModule("client.dll");
    std::cout << "Initialized";
    while (true) {
        system("cls");
        DWORD LocalPlayer = mem.Read<DWORD>(clientAddr.dwBase + dwLocalPlayer);
        DWORD LocalTeam = mem.Read<DWORD>(LocalPlayer + m_iTeamNum);
        DWORD LocalHealth = mem.Read<DWORD>(LocalPlayer + m_iHealth);
        DWORD isTriggered = mem.Read<DWORD>(LocalPlayer + m_iCrosshairId);
        if (!isTriggered || isTriggered > 64)
            continue;
        if (!LocalHealth)
            continue;
        DWORD EntityBase = mem.Read<int>(clientAddr.dwBase + dwEntityList + (isTriggered - 1) * 0x10);
        if (!EntityBase)
            continue;
        DWORD EntityHp = mem.Read<DWORD>(EntityBase + m_iHealth);
        DWORD EntityTeam = mem.Read<DWORD>(EntityBase + m_iTeamNum);
        if (!EntityHp || EntityTeam == LocalTeam)
            continue;
        Sleep(5);
        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
        Sleep(15);
        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    }
    return 0;
}
Тем кто посчитает это бесполезным:
Остальным удачи!
 
Демонстрация:
 
Как это так выходит? У тебя entitybase используется до определения
 
Полный код для кого?
Я говорю про гайд, зачем мне полный код твой, оставлять полный код который не более чем сразу спастят не вникая лучше оставлять картинки, гайды такие cntrl c, cntrl v
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Будут ли ещё гайды?
 
как же больно смотреть на людей, которые пользуются возможностями ООП в плюсах
 
Чё норм для новых,у меня на компе лежит хак который я написал на плюсах с 0,и фпс дохуя жрёт.У меня на высоких 300-400,а с читом было 50-80.
 
скорее всего будет фризить,это не выход для оптимизации.Я бы все делал в нескольких потоках
1. Из-за этого не будет фризить
2. Пока нет задержки цикл работает максимально быстро насколько позволяет твоя система
3. Несколько потоков не освободят ресурсы.
 
1. Из-за этого не будет фризить
2. Пока нет задержки цикл работает максимально быстро насколько позволяет твоя система
3. Несколько потоков не освободят ресурсы.
Ресурсы не освободят в любом случае, но несколько потоков позволят быстрее обрабатывать инфу
 
Ресурсы не освободят в любом случае, но несколько потоков позволят быстрее обрабатывать инфу
Как раз таки задержкой в цикле ты поставишь ограничение на скорость выполнения, следовательно снизишь нагрузку на ЦП. А несколько потоков тут не к чему.
Как раз таки "инфа" без задержки обрабатывается настолько быстро, что "съедает" весь твой FPS.
 
Последнее редактирование:
Назад
Сверху Снизу