Давайте сразу создадим небольшой Alias, а потом уже будем разбираться в нём.
Открываем наш autoexec.cfg
файл, чистенький, мы им раньше пользовались и начинем писать туда примеры.
alias NoWallhack "esp.active 0"
alias
— команда для создания Alias-аNoWallhack
— имя нашего нового Alias-а. Обратите внимание, что это имя должно быть уникальным в рамках конфигов одного хага."esp.active 0"
— команда, которую содержит в себе данный Alias.
А теперь обсудим, что это такое и зачем это надо.
Alias-ы нужны в этой системе, чтобы можно было удобно выполнять одну или несколько команд, вызывая их по имени.
Сам по себе Alias при создании не выполняется. Чтобы команды внутри выполнились, нужно его либо вызвать по имени через консоль, либо создать горячую клавишу и нажать её.
Пример:
alias NoWallhack "esp.active 0"
bind V NoWallhack
Теперь, при нажатии на X
, будет выполняться код, который привязан к Алиасу NoWallhack
, т.е. при нажатии X будет выполнена консольная команда "esp.active 0"
.
Обычно, в Alias пишется больше чем одна команда, тогда их нужно будет разделять точкой с запятой.
Пример:
alias NoWallhack "esp.active 0; print No More Wallhack"
bind V NoWallhack
Теперь при нажатии Х
будет выполнен следующий код: "esp.active 0; print No More Wallhack"
, как вы видите, тут есть две команды, esp.active 0
и print No More Wallhack
.
Эти команда разделены точкой с запятой и их выполнение будет выполнено так, будто вы просто ввели в консоль две отдельные команды последовательно.
Помните, мы раньше изменяли autoexec.cfg в игре, в которую вы играете? Давайте попробуем там наш новый alias:
gbind insert gui.toggle // Open/Close the menu
// Startup script
exec bones_head.cfg
gui.load
skin_load steam
skin_enable 1
crosshair crosshair.png
exec wep.txt //edit this file to change the Displaying names of the weapons
//ниже мы будем писать наш код
bind X "esp.active 0"
bind C "esp.active 1"
alias NoWallhack "esp.active 0; print No More Wallhack"
bind V NoWallhack
Зайдите в игру, перезагрузите конфиг и попробуйте новую горячую клавишу V
.
Скрипт переключения между значениями
Это, пожалуй, самая сложная для понимания конструкция в хаге. Если её понять, то считайте всё, конфиги вы поняли!
Давайте сразу возьмём пример из существующего конфига для ГТА хага.
Код:
// Heavy mode bind
alias heavyOn "wtf.heavy 1; clear; print Heavy mode ENABLED; alias switchHeavy heavyOff"
alias heavyOff "wtf.heavy 0; clear; print Heavy mode DISABLED; alias switchHeavy heavyOn"
alias switchHeavy heavyOn
bind B switchHeavy
Давайте разбираться по порядку. Сначала просто описание того, что тут написано.
alias heavyOn "wtf.heavy 1; clear; print Heavy mode ENABLED; alias switchHeavy heavyOff"
Cоздаём alias и называем его heavyOn
. Присваиваем ему код wtf.heavy 1; clear; print Heavy mode ENABLED; alias switchHeavy heavyOff
alias heavyOff "wtf.heavy 0; clear; print Heavy mode DISABLED; alias switchHeavy heavyOn"
Cоздаём alias и называем его heavyOff
. Присваиваем ему код wtf.heavy 0; clear; print Heavy mode DISABLED; alias switchHeavy heavyOn
alias switchHeavy heavyOn
Cоздаём alias
и называем его switchHeavy
. Тут и начинается интересное. Мы switchHeavy
присвоили другой alias
, в данном случае heavyOn
.
Поясню, когда мы вызовем switchheavy
— выполнится код heavyOn
. Одному алиасу можно присваивать другой алиас.
Создаём горячую клавишу B
и присваиваем ей вызов switchHeavy
.
Как работает скрипт:
Мы нажимаем на кнопку B
, у нас вызывается switchHeavy
.
В switchHeavy
у нас сейчас присвоего heavyOn
, так что вызывается код, который присвоен в heavyOn
, у нас это wtf.heavy 1; clear; print Heavy mode ENABLED; alias switchHeavy heavyOff
.
Рассмотрим код heavyOn
подробнее:
wtf.heavy 1
— консольная команда, которая включает самолечение.clear
— консольная команда, которая очищает консоль. Нужно, чтобы в окне Messages не было много ненужного текста.print Heavy mode Enabled
— пишет в консольHeavy mode Enabled
, т.е. самолечение включено.alias switchHeavy heavyOff
— присваиваем переменной switchHeavy вызов переменной heavyOff <-- Вот тут происходит самое интересное. Мы поменяли то, что будет вызываться, при вызове переменной switchHeavy, т.е. мы изменили бинд кнопкиB
в ходе выполнения кода.
В следующий раз, когда мы нажмём кнопку B
, у нас опять вызовется switchHeavy
, но на этот раз в нём уже будет другой alias
, мы его изменили и теперь это heavyOff
.
При вызове switchHeavy
вызывается heavyOff
и его код — alias heavyOff "wtf.heavy 0; clear; print Heavy mode DISABLED; alias switchHeavy heavyOn"
Рассмотрим код heavyOff подробнее:
wtf.heavy 0
— консольная команда, которая выключает самолечение.clear
— консольная команда, которая очищает консоль. Нужно, чтобы в окне Messages не было много ненужного текстаprint
Heavy mode Disabled — пишет в консоль Heavy mode Disabled, т.е. самолечение выключено.alias switchHeavy heavyOn
— присваиваем переменнойswitchHeavy
вызов переменнойheavyOn
<-- теперь вswitchHeavy
опятьheavyOn
и при следующем нажатии кнопкиB
— будет выполнен кодheavyOn
.
Общая суть работы Toggle скрипта:
Мы создаём кольцо из alias-ов, которые будут переназначать переменную switch
на выполнение следующего alias-а при нажатии горячей клавиши. Так мы можем сделать цепочку переключения между разными списками команд и значений по нажатию одной кнопки.
Упрощённая конструкция:
alias firstAlias "print 1; alias switch secondAlias"
alias secondAlias "print 2; alias switch thirdAlias"
alias thirdAlias "print 3; alias switch firstAlias"
alias switch firstAlias
bind N switch
Давайте добавим этот код из примера в свой autoexec.cfg и посмотрим на результат.
Мы нажимаем кнопку N
и у нас по очереди вызываются команды из всех трёх алиасов и пишут нам цифры в консоль командой print
.
Ещё один пример использования Toggle скрипта из настоящего конфига:
// Bones presets switching code
alias bonesHead "exec bones_head.cfg;clear;print HEAD priority; alias switchBones bonesBody"
alias bonesBody "exec bones_body.cfg;clear;print BODY priority; alias switchBones bonesFeet"
alias bonesFeet "exec bones_feet.cfg;clear;print FEET priority; alias switchBones bonesHead
alias switchBones bonesHead
Тут мы переключаем приоритет наведения аимбота между Head, Body и Feet путём вызова этих файлов. Скрипт последовательно вызывает exec bones_head.cfg
, exec bones_body.cfg
и exec bones_feet.cfg
. Cкрипт так же сообщает через print
, куда сейчас целится аимбот.
Правда удобно?
Скрипт с зажатием клавиши
Иногда возникает такая надобность, чтобы что-то включалось, пока зажата клавиша и выключалось, когда клавишу отпустили.
Самый яркий пример такой функции это Аимбот.
Рассмотрим код:
// Aimbot code
alias +aim "bot.aim 1"
alias -aim "bot.aim 0"
notify mouse2 +aim
Если приписать к началу названия alias-а +
, то это будет значить, что код этого алиаса будет выполнен, когда клавиша будет нажата.
Если клавишу отпустить, то будет выполнен второй алиас, с минусом. Второй алиас с минусом создавать не обязательно, если для ваших нужд оно вам не надо.
Нажали кнопку — выполнилась команда bot.aim 1
, отпустили кнопку — выполнился bot.aim 0
.
Главное, чтобы имена плюса и минуса совпадали, ктогда всё будет работать правильно.
Биндить кнопку тоже нужно на плюс, как в примере у нас +aim
.
Ещё пример кода из ГТА хага:
// wtf.car_handel 1, details in the guide - https://hags-club.com/forum/f53/gta-5-guide-5572/
alias +car_handel "car.gravity 40; wtf.car_handel 1; clear; print Speed ENABLED"
alias -car_handel "car.gravity 10.78; wtf.car_handel 0; clear; print Speed DISABLED"
bind ctrl +car_handel
Тут кода чуть больше. В +car_handel
мы увеличиваем гравитацию, из-за чего машина начинает быстрее ехать. Так же, мы ставим переменную wtf.car_handel 1
и пишем текст, что спидхак включён.
Когда мы отпускаем ctrl
— выполняется -car_handel
и там гравитация возвращается в норму, wtf.car_handel
выключается и выводится сообщение, что спидхак выключен.
Комментарии