Модуль это одна функция клиента, которую можно включить и выключить: Aura, Speed, ESP. Модуль из скрипта ничем не хуже встроенного. Он попадает в то же меню, в ту же категорию, его так же биндят, а включён он или нет клиент запоминает в конфиге.
Создаётся модуль одной строкой.
mod = Module("AutoSprint", "Movement")
mod.setDesc("Спринт, пока идёшь вперёд")Переменная mod это твой пульт от модуля. Через неё можно спросить у модуля что угодно и что угодно ему приказать.
| Метод | Что делает |
|---|---|
isEnabled() | Включён ли модуль прямо сейчас. Отвечает True или False |
setEnabled(True) | Включить модуль из кода. С False выключить |
toggle() | Переключить: был включён, станет выключен, и наоборот |
getName() | Название модуля |
getCategory() | Категория, то есть вкладка меню |
setDesc("...") | Задать описание, которое видно в подсказке |
getKeyName() | На какую клавишу модуль забинжен, например "R" |
Почти все методы, которые что-то задают, возвращают сам модуль. Поэтому их можно писать цепочкой в одну строку:
mod = Module("AutoSprint", "Movement").setDesc("Спринт, пока идёшь вперёд")Категория это вторая строка в Module(...). Она решает, на какой вкладке меню окажется модуль. Большие или маленькие буквы неважны, "combat" и "Combat" это одно и то же.
| Категория | Что туда кладут |
|---|---|
Combat | Бой: аура, автоатака, антинокбек |
Movement | Движение: спринт, полёт, скорость |
Visuals | Визуал: ESP, трейсеры, всё, что видно на экране |
Player | Игрок: скаффолд, автототем, инвентарь |
Other | Всё остальное: утилиты, чат, мелочи |
Ты уже знаешь, что клиент зовёт твои функции всегда, независимо от того, включён модуль или нет. Специальных функций «модуль включили» и «модуль выключили» в скриптах не существует. Поэтому приёмов ровно два.
Первый: проверять состояние прямо в функции. Так делают в большинстве случаев.
mod = Module("AutoSprint", "Movement")
@events.tick
def on_tick(event):
if not mod.isEnabled():
return
# тут действие, которое должно происходить, пока модуль включёнВторой: событие module_toggled. Оно приходит в момент, когда включают или выключают любой модуль, твой или встроенный. Нужно тогда, когда важен сам момент переключения: обнулить счётчик, вернуть что-то на место, написать в чат.
mod = Module("AutoSprint", "Movement")
hits = 0
@events.module_toggled
def on_toggle(event):
global hits
if event.getModule().getName() != "AutoSprint":
return # переключили не наш модуль, выходим
if event.isState(): # True, если модуль включили
hits = 0
client.msg("AutoSprint включён")
else:
client.msg("AutoSprint выключен")Дальше модулю нужны настройки: галочки, ползунки, выбор режима и цвета. Про них следующая страница, Настройки и бинды.
А ещё скрипт видит не только свои модули, но и все встроенные: их можно включать, выключать и читать их настройки. Про это страница Модули и настройки клиента.