![]() |
Как вообще делаются читы на C++ для AMAZING ONLINE
Как сделать чит, который бегал бы от одной координаты к другой? |
Цитата:
Для AMAZING ONLINE подходят .asi (по сути, .dll) плагины. Поэтому тебе просто надо сделать .asi файл. Вот как его делать - интересный вопрос. Мне кажется, что самый подходящий гайд - вот этот (там их 5 штук). Еще есть заброшенный цикл уроков от Пикселя. Можно использовать Plugin SDK (в нём уже есть все адреса функций и констант, чтобы не искать всё с нуля). Сам я особо с ним не разбирался, если честно. Чтобы самому понятькак искатьнужные тебе значения (в твоём случае - координаты) икак искатьфункцию, которая заставит твоего игрока бегать и поворачиваться куда нужно, можно глянуть видосы: Иплейлист геймхаклаба. Но в целом для гта (она же - крмп) уже есть готовые адреса. Если что-то непонятно конкретно - пиши, но изначально настоятельно рекомендую посмотреть всё, что скинул выше (цикл геймхаклаба очень длинный, его, конечно, можно весь не смотреть сразу). Твой вопрос достаточно широкий, и за день люди не учатся писать читы. |
Цитата:
23123123.PNGGmazov · 6 Мар 2024 в 16:16' data-fancybox="lb-post-1465372" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/233807/" style="cursor: pointer;" title="23123123.PNG"> https://forum.antichat.xyz/attachments/28465372/ Бег: Код:
#include "pch.h" |
Цитата:
1. Вот это вот неправильно: C++: Код:
intПодробнее надо смотреть об указателях в С++. Код:
0xB6F5F0C++: Код:
intЛибо, что проще и чаще используется: C++: Код:
int2. И это тоже неправильно: C++: Код:
CPedА как надо? CPed (само значение) - тоже является указателем. Я согласен, для новичка это путаница, но всё же. Простая иллюстрация: Цитата:
По адресу 0xB6F5F0 у нас значение CPed (это указатель, т.е. тоже адрес). По адресу CPed у нас непонятно что происходит. На самом деле у нас структура, например (НА САМОМ ДЕЛЕ ОНА НЕ ТАКАЯ!), что-то такого плана: Цитата:
На С++ это будет выглядеть так: C++: Код:
intТретья строка спорная. Не уверен, что там именно тип int, возможно 1 байт (unsigned char). На самом деле, это не сильно важно в нашем случае, потому что у нас порядок байтов "little-endian". Поэтому число 0x11223344 запишется в памяти по байтам в обратном порядке: { 0x44, 0x33, 0x22, 0x11 }. В нашем случае если мы читаем как 1 байт, то будет какое-то двузначное число в шестнадцатеричной системе (например, 154 = 0x9A). Поэтому в памяти это запишется как { 0x9A, не изменится, не изменится, не изменится }. Если же там число (int, т.е. 4 байта), то оно будет формата 154 = 0x0000009A запишется как { 0x9A, 0x00, 0x00, 0x00 }. Поэтому в обоих случаях: C++: Код:
*Первый байт будет 0x9A. Не знаю как она там себе считывают это - как число или как символ. Если как символ - то пофиг как записывать. Если как число - то лучше записать как число, потому что если мы запишем как символ - мы не будем знать что там в 3х последних байтах. 3. Это тоже неверно: C++: Код:
ifТипа Код:
breakКод:
return 0Весь цикл while будет выглядеть вот так: Код:
boolЦитата:
а) У тебя будет срабатывать ВСЁ ВРЕМЯ, пока кнопка нажата. То есть за краткое нажатие в переменную Код:
runб) У тебя ВСЁ ВРЕМЯ, много раз в секунду, будет записываться значение 154. Если тебе нужно, чтобы оно записывалось 1 раз при нажатии - его надо добавить ВМЕСТО Код:
run = true;И я не уверен, что это работать будет, если честно. Но попробовать можно. И да, отключи "Предварительно откомпилированные заголовки (pch.h)". Это делается в Проект -> Настройки проекта (снизу пункт), там поищи... В первом гайде от Кинчстата написано где найти этот пункт. |
поч не работает
C++: Код:
#include "pch.h" |
Цитата:
|
Цитата:
|
Я не гений в написании ботов, но мне просто интересно, какой эффект вы ожидаете увидеть записав в поле float m_fSoundDistUpAsRead класса CCamera?
|
ну так почему не работает?
|
Цитата:
Код:
CPedПо этой строчке можно понять, что тебе стоит начать с изучения C++. Тут речь не про работу с памятью, а про то, что ты буквально говоришь компилятору приравнять одно число к другому. Про код в целом, если всё-таки найти локального игрока через статичный адрес/указатели/функцию FindPlayerPed, то простое изменение анимации не заставит твоего персонажа бежать куда-то. Твой код в теории должен просто анимацию изменить (Тут ещё надо уточнить, что игра может эту анимацию вернуть потом на исходное значение), надо найти функцию в плагин сдк/самому найти (Это не так сложно на самом деле)/ написать свою и уже тогда передавать туда координаты точки, куда твой персонаж должен пойти. Я бы на твоём месте бы создал консоль при инжекте, ну или, хотя бы, MessageBox вызвал, чтобы узнать, нормально ли длл заинжектилась. |
| Время: 07:55 |