-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сегодня я расскажу и наглядно объясню как легко написать одну из интересных и достаточно простых функций на нашу игру Warface. Сегодня мы уберем ограничение каунтера на действия вашего персонажа как: Лечь/Встать, а так же полностью разберем методы объявления и написания кода.
Для первого шага нам понадобится создать класс ( Название можно использовать любое, но мы будем называть Cvars, в нем обычно хранятся всякие функции по типу спама...)
Заполняем следующим образом:
С помощью строчки "template <class CvarsSet>" мы создаем локальный класс от которого будет отталкиваться наша основная функция "SetCvars" (если мы укажем вместо CvarsSet имя нашего основного класса, то компилятор выбьет ошибку, ну логично).
Auto вы можете заменить на более известное - функцию void (использовать авто гораздо удобней), далее задаем название нашей функции "SetCvars" и включаем в нее 2 переменные типа Dword64 (можно заменить на любой другой тип данных по типу INT64) и переменную созданную из локального класса.
Первая переменная - это наш оффсет, который мы заранее нашли
Вторая переменная - это значение нашего оффсета, т.е включение или выключение в нашем случае.
И наконец создаем легкую часть функции, присваивание значения Value к Offset.
C самой сложной частью мы закончили, переходим в функции...
Нам понадобится создать функцию типа void:
Для первого шага нам понадобится создать класс ( Название можно использовать любое, но мы будем называть Cvars, в нем обычно хранятся всякие функции по типу спама...)
Заполняем следующим образом:
C++:
class GameCvars
{
public:
template <class CvarsSet>
auto SetCvars(DWORD64 Offset, CvarsSet Value)
{
*(CvarsSet*)((DWORD64)this + Offset) = Value;
}
}
Auto вы можете заменить на более известное - функцию void (использовать авто гораздо удобней), далее задаем название нашей функции "SetCvars" и включаем в нее 2 переменные типа Dword64 (можно заменить на любой другой тип данных по типу INT64) и переменную созданную из локального класса.
Первая переменная - это наш оффсет, который мы заранее нашли
Вторая переменная - это значение нашего оффсета, т.е включение или выключение в нашем случае.
И наконец создаем легкую часть функции, присваивание значения Value к Offset.
C самой сложной частью мы закончили, переходим в функции...
Нам понадобится создать функцию типа void:
C++:
void Spam()
{
GameCvars* c_cvars = *(GameCvars**)0x14217C758;
c_cvars->SetCvars(0xD3C,0);
}
1 строчка из данной функции - это создание переменной класса GameCvars , которая несет в себе адрес этого класса (игровой)
2 строчка функции - это объявление функции SetCvars из переменной c_cvars
0xD3C - это ячейка памяти игры (оффсет) именно этого действия, т.е лечь/встать.
0 - это значение для этого оффсета (т.е ВЫКЛ).
Все, мы добавили в наш чит новую функцию - SPAM X.
Video:
2 строчка функции - это объявление функции SetCvars из переменной c_cvars
0xD3C - это ячейка памяти игры (оффсет) именно этого действия, т.е лечь/встать.
0 - это значение для этого оффсета (т.е ВЫКЛ).
Все, мы добавили в наш чит новую функцию - SPAM X.
Video: