Гайд Создание функции "SpamX" для Warface [ СМОЖЕТ КАЖДЫЙ ]

Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сегодня я расскажу и наглядно объясню как легко написать одну из интересных и достаточно простых функций на нашу игру Warface. Сегодня мы уберем ограничение каунтера на действия вашего персонажа как: Лечь/Встать, а так же полностью разберем методы объявления и написания кода.

Для первого шага нам понадобится создать класс ( Название можно использовать любое, но мы будем называть Cvars, в нем обычно хранятся всякие функции по типу спама...)

Заполняем следующим образом:

C++:
class GameCvars
{
    public:
template <class CvarsSet>
        auto SetCvars(DWORD64 Offset, CvarsSet Value)
          { 
                   *(CvarsSet*)((DWORD64)this + Offset) = Value;
          }
}
С помощью строчки "template <class CvarsSet>" мы создаем локальный класс от которого будет отталкиваться наша основная функция "SetCvars" (если мы укажем вместо CvarsSet имя нашего основного класса, то компилятор выбьет ошибку, ну логично).

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 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Какие функции хотите увидеть еще?
 
#include <brain>
Забаненный
Статус
Оффлайн
Регистрация
29 Сен 2020
Сообщения
588
Реакции[?]
99
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А есть готовая дллка ?)
 
the outcome cant be changed
Пользователь
Статус
Оффлайн
Регистрация
19 Май 2017
Сообщения
292
Реакции[?]
39
Поинты[?]
0
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
strodfane
Начинающий
Статус
Оффлайн
Регистрация
6 Май 2019
Сообщения
130
Реакции[?]
19
Поинты[?]
0
можно сделать без смещения на квары, чисто по названию квара обнулять.
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Мм, так это же даже школьник знал, не?
 
Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
И что оно дает?
 
сдерживаю выходящее наружу зло
Пользователь
Статус
Оффлайн
Регистрация
25 Ноя 2018
Сообщения
503
Реакции[?]
104
Поинты[?]
1K
пиздец. крайне не рекомендую писать именно так. стиль кода очень некрасив, зачем-то называть ещё и темплейт, когда его можно назвать просто t и не ебаться с этим. ещё 1 строка с иницилизацией адреса до ICVar, когда можно внести её в класс

C++:
class ICVar
{
public:
    template <class t>
    void Set(uintptr_t offset, t value)
    {
        *(t*)((uintptr_t)this + offset) = value;
    }
    template <class T>
    t Get(uintptr_t offset)
    {
        return *(t*)((uintptr_t)this + offset);
    }

    static ICVar* Singleton()
    {
        return *(ICVar**)0x14217C758;
    }
}
в идеале конечно кастить, т.к мы пишем на плюсах, а не на просто С, но мне лень

usage:
C++:
ICVar::Singleton()->Set(offset, value);
мог бы указать у кого взял. идеально видно что взял ты его у меня просто написав перменные с главной буквы и переименовав Set на SetCvars
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
пиздец. крайне не рекомендую писать именно так. стиль кода очень некрасив, зачем-то называть ещё и темплейт, когда его можно назвать просто t и не ебаться с этим. ещё 1 строка с иницилизацией адреса до ICVar, когда можно внести её в класс

C++:
class ICVar
{
public:
    template <class t>
    void Set(uintptr_t offset, t value)
    {
        *(t*)((uintptr_t)this + offset) = value;
    }
    template <class T>
    t Get(uintptr_t offset)
    {
        return *(t*)((uintptr_t)this + offset);
    }

    static ICVar* Singleton()
    {
        return *(ICVar**)0x14217C758;
    }
}
в идеале конечно кастить, т.к мы пишем на плюсах, а не на просто С, но мне лень

usage:
C++:
ICVar::Singleton()->Set(offset, value);
мог бы указать у кого взял. идеально видно что взял ты его у меня просто написав перменные с главной буквы и переименовав Set на SetCvars
Пожалуйста, авторизуйтесь для просмотра ссылки.
Но а смысл её какой?
 
сдерживаю выходящее наружу зло
Пользователь
Статус
Оффлайн
Регистрация
25 Ноя 2018
Сообщения
503
Реакции[?]
104
Поинты[?]
1K
Но а смысл её какой?
я сам до конца не понимаю какой смысл от неё, когда с таким же изменением памяти можно сделать аим или просто читать память и рисовать визуалы не от движка
 
Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я сам до конца не понимаю какой смысл от неё, когда с таким же изменением памяти можно сделать аим или просто читать память и рисовать визуалы не от движка
Вот именно. Куда не посмотри, он почти везде есть, а смысл от него не кто не говорит. Типо есть, ну есть.
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
пиздец. крайне не рекомендую писать именно так. стиль кода очень некрасив, зачем-то называть ещё и темплейт, когда его можно назвать просто t и не ебаться с этим. ещё 1 строка с иницилизацией адреса до ICVar, когда можно внести её в класс

C++:
class ICVar
{
public:
    template <class t>
    void Set(uintptr_t offset, t value)
    {
        *(t*)((uintptr_t)this + offset) = value;
    }
    template <class T>
    t Get(uintptr_t offset)
    {
        return *(t*)((uintptr_t)this + offset);
    }

    static ICVar* Singleton()
    {
        return *(ICVar**)0x14217C758;
    }
}
в идеале конечно кастить, т.к мы пишем на плюсах, а не на просто С, но мне лень

usage:
C++:
ICVar::Singleton()->Set(offset, value);
мог бы указать у кого взял. идеально видно что взял ты его у меня просто написав перменные с главной буквы и переименовав Set на SetCvars
Взял. Повыебывался. Ушел. Нахуя? Зачем? Своими статиками ты уже заебал, если можно легко инициализировать это сразу в функциях и вообще. Я блять просто показал как это сделать, в твоем случае кода больше получилось. Не нужно всю свою обиду на меня (хуй знает вообще из за чего) переносить на туториалы и путать людей.
 
сдерживаю выходящее наружу зло
Пользователь
Статус
Оффлайн
Регистрация
25 Ноя 2018
Сообщения
503
Реакции[?]
104
Поинты[?]
1K
Взял. Повыебывался. Ушел. Нахуя? Зачем? Своими статиками ты уже заебал, если можно легко инициализировать это сразу в функциях и вообще. Я блять просто показал как это сделать, в твоем случае кода больше получилось. Не нужно всю свою обиду на меня (хуй знает вообще из за чего) переносить на туториалы и путать людей.
мне не за чем на тебя обижаться. выкладываешь код - будь любезен, выкладывай его адекватно. в моём случае кода получилось меньше, если убрать функцию Get. И я не выёбываюсь, а показываю как лучше.
GameCvars* c_cvars = *(GameCvars**)0x14217C758;
дело в том, что используя такой код, проект будет в говне. куда лучше использовать как показал я, ибо так выглядит эстетичние, сам посмотри
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
мне не за чем на тебя обижаться. выкладываешь код - будь любезен, выкладывай его адекватно. в моём случае кода получилось меньше, если убрать функцию Get. И я не выёбываюсь, а показываю как лучше.

дело в том, что используя такой код, проект будет в говне. куда лучше использовать как показал я, ибо так выглядит эстетичние, сам посмотри
В моем примере меньше кода... Из за чего проект будет в говне? Писать ненужные статики или сразу инициализировать по ходу действия? Думаю ответ очевиден.
 
Начинающий
Статус
Оффлайн
Регистрация
18 Май 2019
Сообщения
30
Реакции[?]
2
Поинты[?]
0
Подскажи пожалуйста, как ты нашёл этот адрес
0x14217C758 ?
 
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу