JS-скрипт [Part 1] All about UI elements in onetap crack (for newbies)

Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,748
Реакции[?]
1,465
Поинты[?]
1K
Ну для того, чтобы понять что здесь происходит нужно знать хотя бы основы языка JavaScript (learn.javascript.ru - хороший учебник для новичков, учился там же) и английский язык на уровне средней школы.
В этом посте я расскажу подробно о UI классе в кряке вантапа. В UI классе присутствует 18 методов, 9 из которых это сами элементы, 8 из них это взаимодействие с этими элементами и последний метод можно отнести к прочее, поговорим о нем ниже.
(Все элементы которые добавляются с помощью UI класса находятся в меню вантапа по пути Misc - JAVASCRIPT - Script items)

Сначала пройдемся по самим UI элементам, а после по взаимодействию с ними, и так начнем:
UI.AddCheckbox('Checkbox_name') - Самый используемый элемент в меню. Имеет 2 состояния - enabled (true) и disabled (false), что позволяет нам понимать, нужно ли выполнять функцию или нет. Принимает в себя один аргумент - строку, содержащую название самого Checkbox-a.
Добавим его следующим образом:
JavaScript:
UI.AddCheckbox('Our checkbox')
UI.AddHotkey('Hotkey_name') - Один из важнейших элементов в меню. Так же имеет 2 состояния - enabled (true) и disabled (false), позволяет нам определить, активирован ли бинд или нет. Принимает в себя один аргумент - строку, содержащую название Hotkey-я.
Добавим его следующим образом:
JavaScript:
UI.AddHotkey('Our hotkey')
UI.AddSliderInt('Int_slider_name', min_int_value, max_int_value) - Слайдер с целыми числами. Имеет количество состояний которое зависит от чисел, указанных в диапазоне слайдера. Позволяет нам узнать число, выставленное пользователем. Принимает в себя 3 аргумента - строку (название слайдера), минимальное целое число слайдера и максимальное целое число слайдера.
Добавим его так:
JavaScript:
UI.AddSliderInt('Our int slider', 0, 10)
UI.AddSliderFloat('float_slider_name', min_float_value, max_float_value) - Все то же самое что и UI.AddSliderInt(Int_slider_name, min_int_value, max_int_value), только принимает в себя не целые, а дробные числа.
Добавим его так:
JavaScript:
UI.AddSliderFloat('Our float slider', 0.0, 10.0)
UI.AddColorPicker('Colorpicker_name') - Колорпикер (Инструмент выбора цвета). Позволяет нам узнать цвет, выбранный пользователем. Принимает в себя один аргумент - строку (название колорпикера).
Добавим так:
JavaScript:
UI.AddColorPicker('Our colorpicker')
UI.AddDropdown('Dropdown_name', ['1st variant', '2nd variant', ..., '55th variant']) - Выпадающий список с возможностью выбрать один из предложенных вариантов.
Позволяет узнать, какой вариант выбрал пользователь в выпадающем списке. Принимает в себя 2 варианта - строку (название выпадающего списка) и массив с произвольным кол-вом вариантов состоящий из строк.
Добавим его так:
JavaScript:
UI.AddDropdown('Our dropdown', ['1st variant', '2nd variant', '3rd variant'])
UI.AddMultiDropdown('Multidropdown_name', ['1st variant', '2nd variant', ..., '55th variant']) - Выпадающий список с возможностью выбрать несколько из предложенных вариантов. Позволяет узнать, какие варианты выбрал пользователь в выпадающем списке. Принимает в себя 2 варианта - строку (название выпадающего списка) и массив с произвольным кол-вом вариантов состоящий из строк.
Добавим так:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1st variant', '2nd variant', '3rd variant'])
UI.AddTextbox('Textbox_name') - Textbox, в него можно вписывать текст. Позволяет узнать текст, вписанный в него. Принимает в себя один аргумент - строку (название текстбокса)
Добавим его так:
JavaScript:
UI.AddTextbox('Our textbox')
UI.AddLabel('Label name') - Просто строка в меню, можно использовать как описание функции. Принимает в себя один аргумент - строку (название label-а).
Добавим так:
JavaScript:
UI.AddLabel('Our label')
С самими элементами в UI классе мы разобрались, давайте перейдем к методам.
(На этом моменте я понял что я ебнулся, пишу этот пост в 2:08, это пиздец товарищи :roflanPominki: (try harder спокойной ночи))
UI.GetValue(path, 'object_name') - Метод, позволяющий получить значение того или иного элемента в меню. Принимает в себя два аргумента - Путь (может состоять из нескольких строк) и название самого объекта (checkbox, slider, etc.), тоже строка.
Пример синтаксиса такой:
JavaScript:
UI.GetValue('Rage', 'GENERAL', 'General', 'Enabled')
Давайте разберем этот метод для каждого элемента:
Для Checkbox:
Пропишем такой код:
JavaScript:
const state = UI.GetValue('Rage', 'GENERAL', 'General', 'Enabled') //Создаем переменную и записываем в нее состояние слайдера.
Cheat.Print(state.toString()) //Выводит это состояние в консоль
Этот код будет получать значение чекбокса Enabled и выводить его в консоль.
В случае если чекбокс активирован, то код выведет в консоль 1 (что можно расценивать как true).
В случае если чекбокс не активирован, то код выведет в консоль 0 (что можно расценивать как false)
Вот пример, как привязать чекбокс к любому действию:
JavaScript:
UI.AddCheckbox('Checkbox') //Создаем чекбокс

if (UI.GetValue('Script items', 'Checkbox')) {     //Проверяем, активен ли чекбокс
    //Code body                                    //Если да - тело условя начнет выполняться
}
                                                //Если нет - тело условия НЕ будет выполняться

Для Slider (Для SliderInt и SliderFloat):
Напишем такой код:
JavaScript:
UI.AddSliderInt('Our slider int', 0, 10) //Создаем наш слайдер
const a = UI.GetValue('Script items', 'Our slider int') //Записываем в переменную значение из слайдера
Cheat.Print(a.toString()) //Выводим в консоль это значение
Он будет выводить в консоль значение от 0 до 10, т.е. то значение, которое выставлено в слайдер.
Работает как для SliderInt, так и для SliderFloat одинаково.

Для Dropdown:
Опять же, напишем такой код:
JavaScript:
UI.AddDropdown('Our dropdown', ['1', '2', '3']) //Создаем выпадающий список
const a = UI.GetValue('Script items', 'Our dropdown') //Заносим его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Он выведет нам в консоль индекс активированного варианта из массива с вариантами.
Например, если активирован 1, скрипт выведет 0, если активирован 2 то 1 и т.д.
Вот пример использования:
JavaScript:
UI.AddDropdown('Tab', ['Rage', 'Anti-Aim', 'Visual', 'Misc']) //Создаем выпадающий список

if (UI.GetValue('Script items', 'Tab') == 0/*0 its index*/) { //Проверяем, включен ли в выпадающем списке именно RAGE
    //Тело условия
}
Для Multidropdown:
Приведем в пример такой код:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4'])
const a = UI.GetValue('Script items', 'Our multidropdown')
Cheat.Print(a.toString())
Этот код будет выводить цифры в консоль, но какие же?
Если мы активируем ТОЛЬКО первый аргумент - выведет 1, если мы активируем 1 и 2 то выведет 3, активируем 1, 2 и 3 - выведет 7.
Так как же узнать какой элемент активен, а какой нет?
Для Multidropdown-ов нужно использовать такой синтаксис (просто пример):
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4']) //Создаем наш мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our multidropdown') //Заносим его в переменную
zeroIndexEnabled = dropdown & (1 << 0 /*0 its index*/) ? true : false //Создаем переменную, где проверяем, активен ли нулевой индекс или нет
Cheat.Print(zeroIndexEnabled.toString()) //Выводим в консоль переменную с проверкой индекса.
Если активирован нулевой индекс (первый вариант) то в консоль выведет true, иначе false.
UI.GetValue() Можно использовать только для вышеперечисленных объектов, перейдем к другим методам получения информации.

UI.IsHotkeyActive(path, 'object_name')
Этот метод используется только для получения состояния Hotkey-я.
Напишем следующее:
JavaScript:
UI.AddHotkey('Our hotkey') //Создаем Hotkey
const a = UI.IsHotkeyActive('Script items', 'Our hotkey') //Заносим его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Если Hotkey активен, то скрипт выведет в консоль 1, иначе 0.
Вот более детальный пример:
JavaScript:
UI.AddHotkey('Damage override') //Создаем Hotkey

if (UI.IsHotkeyActive('Damage override')) { //Делаем проверку на то, активирован ли Hotkey
   //Тело условия
}
UI.GetString(path, 'object_name')
Этот метод используется только для получения текста из Textbox-а.
Напишем такой код:
JavaScript:
UI.AddTextbox('Our textbox') //Создаем Textbox
const a = UI.GetString('Script items', 'Our textbox') //Записываем его значение в переменную
Cheat.Print(a) //Выводим это значение в консоль
Этот код выведет в консоль текст, написанный в текстбоксе.
Так-же более детальный пример
JavaScript:
UI.AddTextbox('Name') //Создаем текстбокс

if (UI.GetString('Script items', 'Name') == 'dfrnz') { //Делаем проверку на то, вписан ли в текстбокс dfrnz
    Cheat.Print('Hello dfrnz!') //Выводим в консоль если условие выполнилось
}
UI.GetColor(path, 'object_name')
Этот метод используется только для получения цвета из Colorpicker-а.
Используем такой код:
JavaScript:
UI.AddColorPicker('Our colorpicker') //Создаем колорпикер
const a = UI.GetColor('Script items', 'Our colorpicker') //Записываем его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Этот код выведет нам строку из RGBA чисел.

Это были все методы получения информации из элементов меню. Давайте теперь посмотрим как их выставлять.
UI.SetValue(path, 'object_name') Метод, позволяющий выставлять значение в тот или иной элемент в меню. Принимает в себя 3 аргумента - Путь (может состоять из нескольких строк), название самого объекта (checkbox, slider, etc. (тоже строка)) и значение, которое будет установлено.
Пример синтаксиса
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 0)
Давайте рассмотрим это для каждого элемента в меню
Для Checkbox:
(Возьмем пример, который я привел выше)
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 0)
Этот кусок кода выключит рейджбот
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 1)
А этот включит рейджбот
Давайте сделаем уже какой нибудь хороший код, где можно будет понять взаимодействие получения значения элементов из меню и их "выставление" в меню
JavaScript:
UI.AddHotkey('ping spike on key') //Создаем Hotkey в меню

function a() { //Напишем функцию
    if (UI.IsHotkeyActive('Script items', 'ping spike on key')) { //Делаем проверку на активность Hotkey-я
        UI.SetValue('Misc', 'Miscellaneous', 'Extended backtracking', 1) //Если он активен, выставим значение Extended backtracking-а 1
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Делаем callback
Этот код будет делать чекбокс Extended backtracking активным если активен Hotkey ping spike on key. Надеюсь все понятно.
Для Slider (Для SliderInt и SliderFloat):
Этот код будет работать одинаково как для SliderInt, так и для SliderFloat:
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'Targeting', 'Fov', 100)
Он будет выставлять значение FOV в глобальном разделе Rage бота на 100.
Вот еще пример взаимодействия:
JavaScript:
UI.AddSliderInt('Thirdperson distance', 0, 300)

function a() {
    t = UI.GetValue('Script items', 'Thirdperson distance')
    UI.SetValue('Visual', 'World', 'View', 'Thirdperson', t)
}

Cheat.RegisterCallback('CreateMove', 'a')
Этим куском кода мы выставляем значение из нашего слайдера в слайдер Thirdperson.
Для Dropdown:
Чтобы выставить определенное значение в ОБЫЧНЫЙ дропдаун, напишем такой код:
JavaScript:
UI.AddDropdown('Our dropdown', ['1', '2', '3', '4'])

[CODE=javascript]UI.AddDropdown('Tab', ['Rage', 'Anti-Aim', 'Visual', 'Misc']) //Создаем дродаун
UI.AddCheckbox('Set rage tab!') //Создаем чекбокс

if (UI.GetValue('Script items', 'Set rage tab!')) { //Делаем проверку на то, активирован ли чекбокс
    UI.SetValue('Script items', 'Tab', 0) //Если условие верно - выставляем дропдауну значение 0, т.е. Rage
}
UI.SetValue('Script items', 'Our dropdown', 0)[/CODE]
Этим мы выставили значение нашего дропдауна на 1, т.е. на нулевой индекс.
Для Multidropdown:
Тут все немного сложнее, давайте для начала напишем легкий код:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4', '5'])

UI.SetValue('Script items', 'Our multidropdown', 0)
Такой код активирует '1' в этом мультидропдауне
Но если мы напишем вместо 0 цифру 4, то в мультидропдауне активируется '3'.
Короче, чтобы сделать элемент в мультидропдауне активным, пропишем следующее:
JavaScript:
UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5']) //Создадим мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our dropdown') //Занесем его значение в переменную
const static = 1 << 0 /*0 its index*/ //Определим, какой индекс нужно сделать активным
UI.SetValue('Script items', 'Our dropdown', dropdown | static ) //Сделаем его активным
Этот код делает активным нулевой индекс.

Чтобы сделать элемент в мультидропдауне НЕ активным, напишем следующее.
JavaScript:
UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5']) //Создадим мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our dropdown') //Занесем его значение в переменную
const static = 1 << 0 /*0 its index*/ //Определимся с индексом
UI.SetValue('Script items', 'Our dropdown', dropdown &~ static ) //Сделаем этот индекс НЕ активным.
Этот код делать нулевой индекс в мультидропдауне не активным.
Можно даже написать функцию, которая будет автоматически выставлять нужные нам значения:
JavaScript:
UI.SetMultiDropdownValue = function(dropdown, index, enabled) {
    static = 1 << index

    return enabled ? (dropdown | static) : (dropdown &~ static)
}

UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5'])

UI.SetValue('Script items', 'Our dropdown', UI.SetMultiDropdownValue(UI.GetValue('Script items', 'Our dropdown'), 2, true))
UI.ToggleHotkey(path, 'object_name') - Метод позволяет делать Hotkey активным
Пример:
JavaScript:
UI.ToggleHotkey("Rage", "GENERAL", "Exploits", "Doubletap")
Запустив кусок этого кода, скрипт сделает Doubletap активным.

UI.SetColor(path, 'object name', value) - Метод позволяет выставлять определенный цвет в колорпикер
Пример:
JavaScript:
UI.AddColorPicker('Colorpicker') //Создаем колорпикер
UI.SetColor('Script items', 'Colorpicker', [255,255,255,255]) //Выставим в этот колорпикер белый цвет
Этот кусок кода создает колорпикер и выставляет в него белый цвет.

На этом вроде бы все, но есть еще два метода класса UI, это

UI.SetEnabled(path, 'object_name', value) - Метод позволяет скрыть элемент в меню. Принимает в себя 3 аргумента - путь, название объекта, и значение.
Покажу наглядно что оно делает:
JavaScript:
UI.AddCheckbox('Checkbox') //Создаем чекбокс
UI.AddSliderInt('Slider', 0, 130) //Создаем Слайдер

function a() { //Пишем функцию
    if (UI.GetValue('Script items', 'Checkbox')) { //Делаем проверку на то, активен ли чекбокс или нет
        UI.SetEnabled('Script items', 'Slider', 0) //Если активен - скрываем слайдер в меню
    } else {
        UI.SetEnabled('Script items', 'Slider', 1) //Если НЕ активен - снова делаем слайдер видимым в меню
    }
}

Cheat.RegisterCallback('Draw', 'a') //Добавим колбек
Если активирован чекбокс "Checkbox", то Slider скрывается, если нет - появляется.

UI.IsMenuOpen() - Метод позволяет узнать, открыто ли меню.
Code:
JavaScript:
const a = UI.IsMenuOpen() //Заносим в переменную состояние меню

Cheat.Print(a.toString()) //Выводим это состояние в консоль
если меню открыто - выведет в консоль true, иначе false.

На этом вроде бы все. Я искренне надеюсь что это поможет кому-нибудь, ибо я писал это 4 часа ночью. :kappa::kappa::kappa:
Жду объективную критику и указание на ошибки.
Могу написать еще несколько таких постов про разные классы по типу Entity и детально разобрать их (возможно со скринами), если это кому-нибудь понадобиться...

Следующая часть - https://yougame.biz/threads/206711/
 
Последнее редактирование:
EBLAN
Пользователь
Статус
Оффлайн
Регистрация
7 Фев 2021
Сообщения
465
Реакции[?]
146
Поинты[?]
2K
Я тему не смотрел, но видно что старался. Любой труд должен оцениваться.
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,748
Реакции[?]
1,465
Поинты[?]
1K
Добавил чуть-чуть комментариев, может быть станет более понятно что я делал.
 
Эксперт
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
1,796
Реакции[?]
589
Поинты[?]
2K
Ну для того, чтобы понять что здесь происходит нужно знать хотя бы основы языка JavaScript (learn.javascript.ru - хороший учебник для новичков, учился там же) и английский язык на уровне средней школы.
В этом посте я расскажу подробно о UI классе в кряке вантапа. В UI классе присутствует 18 методов, 9 из которых это сами элементы, 8 из них это взаимодействие с этими элементами и последний метод можно отнести к прочее, поговорим о нем ниже.
(Все элементы которые добавляются с помощью UI класса находятся в меню вантапа по пути Misc - JAVASCRIPT - Script items)

Сначала пройдемся по самим UI элементам, а после по взаимодействию с ними, и так начнем:
UI.AddCheckbox('Checkbox_name') - Самый используемый элемент в меню. Имеет 2 состояния - enabled (true) и disabled (false), что позволяет нам понимать, нужно ли выполнять функцию или нет. Принимает в себя один аргумент - строку, содержащую название самого Checkbox-a.
Добавим его следующим образом:
JavaScript:
UI.AddCheckbox('Our checkbox')
UI.AddHotkey('Hotkey_name') - Один из важнейших элементов в меню. Так же имеет 2 состояния - enabled (true) и disabled (false), позволяет нам определить, активирован ли бинд или нет. Принимает в себя один аргумент - строку, содержащую название Hotkey-я.
Добавим его следующим образом:
JavaScript:
UI.AddHotkey('Our hotkey')
UI.AddSliderInt('Int_slider_name', min_int_value, max_int_value) - Слайдер с целыми числами. Имеет количество состояний которое зависит от чисел, указанных в диапазоне слайдера. Позволяет нам узнать число, выставленное пользователем. Принимает в себя 3 аргумента - строку (название слайдера), минимальное целое число слайдера и максимальное целое число слайдера.
Добавим его так:
JavaScript:
UI.AddSliderInt('Our int slider', 0, 10)
UI.AddSliderFloat('float_slider_name', min_float_value, max_float_value) - Все то же самое что и UI.AddSliderInt(Int_slider_name, min_int_value, max_int_value), только принимает в себя не целые, а дробные числа.
Добавим его так:
JavaScript:
UI.AddSliderFloat('Our float slider', 0.0, 10.0)
UI.AddColorPicker('Colorpicker_name') - Колорпикер (Инструмент выбора цвета). Позволяет нам узнать цвет, выбранный пользователем. Принимает в себя один аргумент - строку (название колорпикера).
Добавим так:

JavaScript:
UI.AddColorPicker('Our colorpicker')
UI.AddDropdown('Dropdown_name', ['1st variant', '2nd variant', ..., '55th variant']) - Выпадающий список с возможностью выбрать один из предложенных вариантов.
Позволяет узнать, какой вариант выбрал пользователь в выпадающем списке. Принимает в себя 2 варианта - строку (название выпадающего списка) и массив с произвольным кол-вом вариантов состоящий из строк.
Добавим его так:
JavaScript:
UI.AddDropdown('Our dropdown', ['1st variant', '2nd variant', '3rd variant'])
UI.AddMultiDropdown('Multidropdown_name', ['1st variant', '2nd variant', ..., '55th variant']) - Выпадающий список с возможностью выбрать несколько из предложенных вариантов. Позволяет узнать, какие варианты выбрал пользователь в выпадающем списке. Принимает в себя 2 варианта - строку (название выпадающего списка) и массив с произвольным кол-вом вариантов состоящий из строк.
Добавим так:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1st variant', '2nd variant', '3rd variant'])
UI.AddTextbox('Textbox_name') - Textbox, в него можно вписывать текст. Позволяет узнать текст, вписанный в него. Принимает в себя один аргумент - строку (название текстбокса)
Добавим его так:
JavaScript:
UI.AddTextbox('Our textbox')
UI.AddLabel('Label name') - Просто строка в меню, можно использовать как описание функции. Принимает в себя один аргумент - строку (название label-а).
Добавим так:

JavaScript:
UI.AddLabel('Our label')
С самими элементами в UI классе мы разобрались, давайте перейдем к методам.
(На этом моменте я понял что я ебнулся, пишу этот пост в 2:08, это пиздец товарищи :roflanPominki: (try harder спокойной ночи))


UI.GetValue(path, 'object_name') - Метод, позволяющий получить значение того или иного элемента в меню. Принимает в себя два аргумента - Путь (может состоять из нескольких строк) и название самого объекта (checkbox, slider, etc.), тоже строка.
Пример синтаксиса такой:

JavaScript:
UI.GetValue('Rage', 'GENERAL', 'General', 'Enabled')
Давайте разберем этот метод для каждого элемента:
Для Checkbox:
Пропишем такой код:
JavaScript:
const state = UI.GetValue('Rage', 'GENERAL', 'General', 'Enabled') //Создаем переменную и записываем в нее состояние слайдера.
Cheat.Print(state.toString()) //Выводит это состояние в консоль
Этот код будет получать значение чекбокса Enabled и выводить его в консоль.
В случае если чекбокс активирован, то код выведет в консоль 1 (что можно расценивать как true).
В случае если чекбокс не активирован, то код выведет в консоль 0 (что можно расценивать как false)
Вот пример, как привязать чекбокс к любому действию:

JavaScript:
UI.AddCheckbox('Checkbox') //Создаем чекбокс

if (UI.GetValue('Script items', 'Checkbox')) {     //Проверяем, активен ли чекбокс
    //Code body                                    //Если да - тело условя начнет выполняться
}
                                                //Если нет - тело условия НЕ будет выполняться

Для Slider (Для SliderInt и SliderFloat):
Напишем такой код:

JavaScript:
UI.AddSliderInt('Our slider int', 0, 10) //Создаем наш слайдер
const a = UI.GetValue('Script items', 'Our slider int') //Записываем в переменную значение из слайдера
Cheat.Print(a.toString()) //Выводим в консоль это значение
Он будет выводить в консоль значение от 0 до 10, т.е. то значение, которое выставлено в слайдер.
Работает как для SliderInt, так и для SliderFloat одинаково.


Для Dropdown:
Опять же, напишем такой код:
JavaScript:
UI.AddDropdown('Our dropdown', ['1', '2', '3']) //Создаем выпадающий список
const a = UI.GetValue('Script items', 'Our dropdown') //Заносим его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Он выведет нам в консоль индекс активированного варианта из массива с вариантами.
Например, если активирован 1, скрипт выведет 0, если активирован 2 то 1 и т.д.
Вот пример использования:

JavaScript:
UI.AddDropdown('Tab', ['Rage', 'Anti-Aim', 'Visual', 'Misc']) //Создаем выпадающий список

if (UI.GetValue('Script items', 'Tab') == 0/*0 its index*/) { //Проверяем, включен ли в выпадающем списке именно RAGE
    //Тело условия
}
Для Multidropdown:
Приведем в пример такой код:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4'])
const a = UI.GetValue('Script items', 'Our multidropdown')
Cheat.Print(a.toString())
Этот код будет выводить цифры в консоль, но какие же?
Если мы активируем ТОЛЬКО первый аргумент - выведет 1, если мы активируем 1 и 2 то выведет 3, активируем 1, 2 и 3 - выведет 7.
Так как же узнать какой элемент активен, а какой нет?
Для Multidropdown-ов нужно использовать такой синтаксис (просто пример):

JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4']) //Создаем наш мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our multidropdown') //Заносим его в переменную
zeroIndexEnabled = dropdown & (1 << 0 /*0 its index*/) ? true : false //Создаем переменную, где проверяем, активен ли нулевой индекс или нет
Cheat.Print(zeroIndexEnabled.toString()) //Выводим в консоль переменную с проверкой индекса.
Если активирован нулевой индекс (первый вариант) то в консоль выведет true, иначе false.
UI.GetValue() Можно использовать только для вышеперечисленных объектов, перейдем к другим методам получения информации.


UI.IsHotkeyActive(path, 'object_name')
Этот метод используется только для получения состояния Hotkey-я.
Напишем следующее:

JavaScript:
UI.AddHotkey('Our hotkey') //Создаем Hotkey
const a = UI.IsHotkeyActive('Script items', 'Our hotkey') //Заносим его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Если Hotkey активен, то скрипт выведет в консоль 1, иначе 0.
Вот более детальный пример:
JavaScript:
UI.AddHotkey('Damage override') //Создаем Hotkey

if (UI.IsHotkeyActive('Damage override')) { //Делаем проверку на то, активирован ли Hotkey
   //Тело условия
}
UI.GetString(path, 'object_name')
Этот метод используется только для получения текста из Textbox-а.
Напишем такой код:

JavaScript:
UI.AddTextbox('Our textbox') //Создаем Textbox
const a = UI.GetString('Script items', 'Our textbox') //Записываем его значение в переменную
Cheat.Print(a) //Выводим это значение в консоль
Этот код выведет в консоль текст, написанный в текстбоксе.
Так-же более детальный пример

Код:
UI.AddTextbox('Name') //Создаем текстбокс
if (UI.GetString('Script items', 'Name') == 'dfrnz') { //Делаем проверку на то, вписан ли в текстбокс dfrnz
    Cheat.Print('Hello dfrnz!') //Выводим в консоль если условие выполнилось
}
UI.GetColor(path, 'object_name')
Этот метод используется только для получения цвета из Colorpicker-а.
Используем такой код:

JavaScript:
UI.AddColorPicker('Our colorpicker') //Создаем колорпикер
const a = UI.GetColor('Script items', 'Our colorpicker') //Записываем его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Этот код выведет нам строку из RGBA чисел.

Это были все методы получения информации из элементов меню. Давайте теперь посмотрим как их выставлять.

UI.SetValue(path, 'object_name') Метод, позволяющий выставлять значение в тот или иной элемент в меню. Принимает в себя 3 аргумента - Путь (может состоять из нескольких строк), название самого объекта (checkbox, slider, etc. (тоже строка)) и значение, которое будет установлено.
Пример синтаксиса
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 0)
Давайте рассмотрим это для каждого элемента в меню

Для Checkbox:
(Возьмем пример, который я привел выше)
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 0)
Этот кусок кода выключит рейджбот

JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 1)
А этот включит рейджбот
Давайте сделаем уже какой нибудь хороший код, где можно будет понять взаимодействие получения значения элементов из меню и их "выставление" в меню

JavaScript:
UI.AddHotkey('ping spike on key') //Создаем Hotkey в меню

function a() { //Напишем функцию
    if (UI.IsHotkeyActive('Script items', 'ping spike on key')) { //Делаем проверку на активность Hotkey-я
        UI.SetValue('Misc', 'Miscellaneous', 'Extended backtracking', 1) //Если он активен, выставим значение Extended backtracking-а 1
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Делаем callback
Этот код будет делать чекбокс Extended backtracking активным если активен Hotkey ping spike on key. Надеюсь все понятно.
Для Slider (Для SliderInt и SliderFloat):
Этот код будет работать одинаково как для SliderInt, так и для SliderFloat:
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'Targeting', 'Fov', 100)
Он будет выставлять значение FOV в глобальном разделе Rage бота на 100.
Вот еще пример взаимодействия:

JavaScript:
UI.AddSliderInt('Thirdperson distance', 0, 300)

function a() {
    t = UI.GetValue('Script items', 'Thirdperson distance')
    UI.SetValue('Visual', 'World', 'View', 'Thirdperson', t)
}

Cheat.RegisterCallback('CreateMove', 'a')
Этим куском кода мы выставляем значение из нашего слайдера в слайдер Thirdperson.
Для Dropdown:
Чтобы выставить определенное значение в ОБЫЧНЫЙ дропдаун, напишем такой код:
JavaScript:
UI.AddDropdown('Our dropdown', ['1', '2', '3', '4'])

[CODE=javascript]UI.AddDropdown('Tab', ['Rage', 'Anti-Aim', 'Visual', 'Misc']) //Создаем дродаун
UI.AddCheckbox('Set rage tab!') //Создаем чекбокс

if (UI.GetValue('Script items', 'Set rage tab!')) { //Делаем проверку на то, активирован ли чекбокс
    UI.SetValue('Script items', 'Tab', 0) //Если условие верно - выставляем дропдауну значение 0, т.е. Rage
}
UI.SetValue('Script items', 'Our dropdown', 0)[/CODE]
Этим мы выставили значение нашего дропдауна на 1, т.е. на нулевой индекс.
Для Multidropdown:
Тут все немного сложнее, давайте для начала напишем легкий код:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4', '5'])

UI.SetValue('Script items', 'Our multidropdown', 0)
Такой код активирует '1' в этом мультидропдауне
Но если мы напишем вместо 0 цифру 4, то в мультидропдауне активируется '3'.
Короче, чтобы сделать элемент в мультидропдауне активным, пропишем следующее:

JavaScript:
UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5']) //Создадим мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our dropdown') //Занесем его значение в переменную
const static = 1 << 0 /*0 its index*/ //Определим, какой индекс нужно сделать активным
UI.SetValue('Script items', 'Our dropdown', dropdown | static ) //Сделаем его активным
Этот код делает активным нулевой индекс.

Чтобы сделать элемент в мультидропдауне НЕ активным, напишем следующее.

JavaScript:
UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5']) //Создадим мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our dropdown') //Занесем его значение в переменную
const static = 1 << 0 /*0 its index*/ //Определимся с индексом
UI.SetValue('Script items', 'Our dropdown', dropdown &~ static ) //Сделаем этот индекс НЕ активным.
Этот код делать нулевой индекс в мультидропдауне не активным.
Можно даже написать функцию, которая будет автоматически выставлять нужные нам значения:

JavaScript:
UI.SetMultiDropdownValue = function(dropdown, index, enabled) {
    static = 1 << index

    return enabled ? (dropdown | static) : (dropdown &~ static)
}

UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5'])

UI.SetValue('Script items', 'Our dropdown', UI.SetMultiDropdownValue(UI.GetValue('Script items', 'Our dropdown'), 2, true))
UI.ToggleHotkey(path, 'object_name') - Метод позволяет делать Hotkey активным
Пример:
JavaScript:
UI.ToggleHotkey("Rage", "GENERAL", "Exploits", "Doubletap")
Запустив кусок этого кода, скрипт сделает Doubletap активным.


UI.SetColor(path, 'object name', value) - Метод позволяет выставлять определенный цвет в колорпикер
Пример:

JavaScript:
UI.AddColorPicker('Colorpicker') //Создаем колорпикер
UI.SetColor('Script items', 'Colorpicker', [255,255,255,255]) //Выставим в этот колорпикер белый цвет
Этот кусок кода создает колорпикер и выставляет в него белый цвет.

На этом вроде бы все, но есть еще два метода класса UI, это


UI.SetEnabled(path, 'object_name', value) - Метод позволяет скрыть элемент в меню. Принимает в себя 3 аргумента - путь, название объекта, и значение.
Покажу наглядно что оно делает:

JavaScript:
UI.AddCheckbox('Checkbox') //Создаем чекбокс
UI.AddSliderInt('Slider', 0, 130) //Создаем Слайдер

function a() { //Пишем функцию
    if (UI.GetValue('Script items', 'Checkbox')) { //Делаем проверку на то, активен ли чекбокс или нет
        UI.SetEnabled('Script items', 'Slider', 0) //Если активен - скрываем слайдер в меню
    } else {
        UI.SetEnabled('Script items', 'Slider', 1) //Если НЕ активен - снова делаем слайдер видимым в меню
    }
}

Cheat.RegisterCallback('Draw', 'a') //Добавим колбек
Если активирован чекбокс "Checkbox", то Slider скрывается, если нет - появляется.

UI.IsMenuOpen() - Метод позволяет узнать, открыто ли меню.
Code:

JavaScript:
const a = UI.IsMenuOpen() //Заносим в переменную состояние меню

Cheat.Print(a.toString()) //Выводим это состояние в консоль
если меню открыто - выведет в консоль true, иначе false.

На этом вроде бы все. Я искренне надеюсь что это поможет кому-нибудь, ибо я писал это 4 часа ночью. :kappa::kappa::kappa:
Жду объективную критику и указание на ошибки.
Могу написать еще несколько таких постов про разные классы по типу Entity и детально разобрать их (возможно со скринами), если это кому нибудь понадобиться...
Пояснение конечно пиздатое, но нахуя?
 
Эксперт
Статус
Оффлайн
Регистрация
20 Май 2020
Сообщения
1,354
Реакции[?]
441
Поинты[?]
2K
Ну для того, чтобы понять что здесь происходит нужно знать хотя бы основы языка JavaScript (learn.javascript.ru - хороший учебник для новичков, учился там же) и английский язык на уровне средней школы.
В этом посте я расскажу подробно о UI классе в кряке вантапа. В UI классе присутствует 18 методов, 9 из которых это сами элементы, 8 из них это взаимодействие с этими элементами и последний метод можно отнести к прочее, поговорим о нем ниже.
(Все элементы которые добавляются с помощью UI класса находятся в меню вантапа по пути Misc - JAVASCRIPT - Script items)

Сначала пройдемся по самим UI элементам, а после по взаимодействию с ними, и так начнем:
UI.AddCheckbox('Checkbox_name') - Самый используемый элемент в меню. Имеет 2 состояния - enabled (true) и disabled (false), что позволяет нам понимать, нужно ли выполнять функцию или нет. Принимает в себя один аргумент - строку, содержащую название самого Checkbox-a.
Добавим его следующим образом:
JavaScript:
UI.AddCheckbox('Our checkbox')
UI.AddHotkey('Hotkey_name') - Один из важнейших элементов в меню. Так же имеет 2 состояния - enabled (true) и disabled (false), позволяет нам определить, активирован ли бинд или нет. Принимает в себя один аргумент - строку, содержащую название Hotkey-я.
Добавим его следующим образом:
JavaScript:
UI.AddHotkey('Our hotkey')
UI.AddSliderInt('Int_slider_name', min_int_value, max_int_value) - Слайдер с целыми числами. Имеет количество состояний которое зависит от чисел, указанных в диапазоне слайдера. Позволяет нам узнать число, выставленное пользователем. Принимает в себя 3 аргумента - строку (название слайдера), минимальное целое число слайдера и максимальное целое число слайдера.
Добавим его так:
JavaScript:
UI.AddSliderInt('Our int slider', 0, 10)
UI.AddSliderFloat('float_slider_name', min_float_value, max_float_value) - Все то же самое что и UI.AddSliderInt(Int_slider_name, min_int_value, max_int_value), только принимает в себя не целые, а дробные числа.
Добавим его так:
JavaScript:
UI.AddSliderFloat('Our float slider', 0.0, 10.0)
UI.AddColorPicker('Colorpicker_name') - Колорпикер (Инструмент выбора цвета). Позволяет нам узнать цвет, выбранный пользователем. Принимает в себя один аргумент - строку (название колорпикера).
Добавим так:

JavaScript:
UI.AddColorPicker('Our colorpicker')
UI.AddDropdown('Dropdown_name', ['1st variant', '2nd variant', ..., '55th variant']) - Выпадающий список с возможностью выбрать один из предложенных вариантов.
Позволяет узнать, какой вариант выбрал пользователь в выпадающем списке. Принимает в себя 2 варианта - строку (название выпадающего списка) и массив с произвольным кол-вом вариантов состоящий из строк.
Добавим его так:
JavaScript:
UI.AddDropdown('Our dropdown', ['1st variant', '2nd variant', '3rd variant'])
UI.AddMultiDropdown('Multidropdown_name', ['1st variant', '2nd variant', ..., '55th variant']) - Выпадающий список с возможностью выбрать несколько из предложенных вариантов. Позволяет узнать, какие варианты выбрал пользователь в выпадающем списке. Принимает в себя 2 варианта - строку (название выпадающего списка) и массив с произвольным кол-вом вариантов состоящий из строк.
Добавим так:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1st variant', '2nd variant', '3rd variant'])
UI.AddTextbox('Textbox_name') - Textbox, в него можно вписывать текст. Позволяет узнать текст, вписанный в него. Принимает в себя один аргумент - строку (название текстбокса)
Добавим его так:
JavaScript:
UI.AddTextbox('Our textbox')
UI.AddLabel('Label name') - Просто строка в меню, можно использовать как описание функции. Принимает в себя один аргумент - строку (название label-а).
Добавим так:

JavaScript:
UI.AddLabel('Our label')
С самими элементами в UI классе мы разобрались, давайте перейдем к методам.
(На этом моменте я понял что я ебнулся, пишу этот пост в 2:08, это пиздец товарищи :roflanPominki: (try harder спокойной ночи))


UI.GetValue(path, 'object_name') - Метод, позволяющий получить значение того или иного элемента в меню. Принимает в себя два аргумента - Путь (может состоять из нескольких строк) и название самого объекта (checkbox, slider, etc.), тоже строка.
Пример синтаксиса такой:

JavaScript:
UI.GetValue('Rage', 'GENERAL', 'General', 'Enabled')
Давайте разберем этот метод для каждого элемента:
Для Checkbox:
Пропишем такой код:
JavaScript:
const state = UI.GetValue('Rage', 'GENERAL', 'General', 'Enabled') //Создаем переменную и записываем в нее состояние слайдера.
Cheat.Print(state.toString()) //Выводит это состояние в консоль
Этот код будет получать значение чекбокса Enabled и выводить его в консоль.
В случае если чекбокс активирован, то код выведет в консоль 1 (что можно расценивать как true).
В случае если чекбокс не активирован, то код выведет в консоль 0 (что можно расценивать как false)
Вот пример, как привязать чекбокс к любому действию:

JavaScript:
UI.AddCheckbox('Checkbox') //Создаем чекбокс

if (UI.GetValue('Script items', 'Checkbox')) {     //Проверяем, активен ли чекбокс
    //Code body                                    //Если да - тело условя начнет выполняться
}
                                                //Если нет - тело условия НЕ будет выполняться

Для Slider (Для SliderInt и SliderFloat):
Напишем такой код:

JavaScript:
UI.AddSliderInt('Our slider int', 0, 10) //Создаем наш слайдер
const a = UI.GetValue('Script items', 'Our slider int') //Записываем в переменную значение из слайдера
Cheat.Print(a.toString()) //Выводим в консоль это значение
Он будет выводить в консоль значение от 0 до 10, т.е. то значение, которое выставлено в слайдер.
Работает как для SliderInt, так и для SliderFloat одинаково.


Для Dropdown:
Опять же, напишем такой код:
JavaScript:
UI.AddDropdown('Our dropdown', ['1', '2', '3']) //Создаем выпадающий список
const a = UI.GetValue('Script items', 'Our dropdown') //Заносим его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Он выведет нам в консоль индекс активированного варианта из массива с вариантами.
Например, если активирован 1, скрипт выведет 0, если активирован 2 то 1 и т.д.
Вот пример использования:

JavaScript:
UI.AddDropdown('Tab', ['Rage', 'Anti-Aim', 'Visual', 'Misc']) //Создаем выпадающий список

if (UI.GetValue('Script items', 'Tab') == 0/*0 its index*/) { //Проверяем, включен ли в выпадающем списке именно RAGE
    //Тело условия
}
Для Multidropdown:
Приведем в пример такой код:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4'])
const a = UI.GetValue('Script items', 'Our multidropdown')
Cheat.Print(a.toString())
Этот код будет выводить цифры в консоль, но какие же?
Если мы активируем ТОЛЬКО первый аргумент - выведет 1, если мы активируем 1 и 2 то выведет 3, активируем 1, 2 и 3 - выведет 7.
Так как же узнать какой элемент активен, а какой нет?
Для Multidropdown-ов нужно использовать такой синтаксис (просто пример):

JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4']) //Создаем наш мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our multidropdown') //Заносим его в переменную
zeroIndexEnabled = dropdown & (1 << 0 /*0 its index*/) ? true : false //Создаем переменную, где проверяем, активен ли нулевой индекс или нет
Cheat.Print(zeroIndexEnabled.toString()) //Выводим в консоль переменную с проверкой индекса.
Если активирован нулевой индекс (первый вариант) то в консоль выведет true, иначе false.
UI.GetValue() Можно использовать только для вышеперечисленных объектов, перейдем к другим методам получения информации.


UI.IsHotkeyActive(path, 'object_name')
Этот метод используется только для получения состояния Hotkey-я.
Напишем следующее:

JavaScript:
UI.AddHotkey('Our hotkey') //Создаем Hotkey
const a = UI.IsHotkeyActive('Script items', 'Our hotkey') //Заносим его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Если Hotkey активен, то скрипт выведет в консоль 1, иначе 0.
Вот более детальный пример:
JavaScript:
UI.AddHotkey('Damage override') //Создаем Hotkey

if (UI.IsHotkeyActive('Damage override')) { //Делаем проверку на то, активирован ли Hotkey
   //Тело условия
}
UI.GetString(path, 'object_name')
Этот метод используется только для получения текста из Textbox-а.
Напишем такой код:

JavaScript:
UI.AddTextbox('Our textbox') //Создаем Textbox
const a = UI.GetString('Script items', 'Our textbox') //Записываем его значение в переменную
Cheat.Print(a) //Выводим это значение в консоль
Этот код выведет в консоль текст, написанный в текстбоксе.
Так-же более детальный пример

Код:
UI.AddTextbox('Name') //Создаем текстбокс
if (UI.GetString('Script items', 'Name') == 'dfrnz') { //Делаем проверку на то, вписан ли в текстбокс dfrnz
    Cheat.Print('Hello dfrnz!') //Выводим в консоль если условие выполнилось
}
UI.GetColor(path, 'object_name')
Этот метод используется только для получения цвета из Colorpicker-а.
Используем такой код:

JavaScript:
UI.AddColorPicker('Our colorpicker') //Создаем колорпикер
const a = UI.GetColor('Script items', 'Our colorpicker') //Записываем его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Этот код выведет нам строку из RGBA чисел.

Это были все методы получения информации из элементов меню. Давайте теперь посмотрим как их выставлять.

UI.SetValue(path, 'object_name') Метод, позволяющий выставлять значение в тот или иной элемент в меню. Принимает в себя 3 аргумента - Путь (может состоять из нескольких строк), название самого объекта (checkbox, slider, etc. (тоже строка)) и значение, которое будет установлено.
Пример синтаксиса
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 0)
Давайте рассмотрим это для каждого элемента в меню

Для Checkbox:
(Возьмем пример, который я привел выше)
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 0)
Этот кусок кода выключит рейджбот

JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 1)
А этот включит рейджбот
Давайте сделаем уже какой нибудь хороший код, где можно будет понять взаимодействие получения значения элементов из меню и их "выставление" в меню

JavaScript:
UI.AddHotkey('ping spike on key') //Создаем Hotkey в меню

function a() { //Напишем функцию
    if (UI.IsHotkeyActive('Script items', 'ping spike on key')) { //Делаем проверку на активность Hotkey-я
        UI.SetValue('Misc', 'Miscellaneous', 'Extended backtracking', 1) //Если он активен, выставим значение Extended backtracking-а 1
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Делаем callback
Этот код будет делать чекбокс Extended backtracking активным если активен Hotkey ping spike on key. Надеюсь все понятно.
Для Slider (Для SliderInt и SliderFloat):
Этот код будет работать одинаково как для SliderInt, так и для SliderFloat:
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'Targeting', 'Fov', 100)
Он будет выставлять значение FOV в глобальном разделе Rage бота на 100.
Вот еще пример взаимодействия:

JavaScript:
UI.AddSliderInt('Thirdperson distance', 0, 300)

function a() {
    t = UI.GetValue('Script items', 'Thirdperson distance')
    UI.SetValue('Visual', 'World', 'View', 'Thirdperson', t)
}

Cheat.RegisterCallback('CreateMove', 'a')
Этим куском кода мы выставляем значение из нашего слайдера в слайдер Thirdperson.
Для Dropdown:
Чтобы выставить определенное значение в ОБЫЧНЫЙ дропдаун, напишем такой код:
JavaScript:
UI.AddDropdown('Our dropdown', ['1', '2', '3', '4'])

[CODE=javascript]UI.AddDropdown('Tab', ['Rage', 'Anti-Aim', 'Visual', 'Misc']) //Создаем дродаун
UI.AddCheckbox('Set rage tab!') //Создаем чекбокс

if (UI.GetValue('Script items', 'Set rage tab!')) { //Делаем проверку на то, активирован ли чекбокс
    UI.SetValue('Script items', 'Tab', 0) //Если условие верно - выставляем дропдауну значение 0, т.е. Rage
}
UI.SetValue('Script items', 'Our dropdown', 0)[/CODE]
Этим мы выставили значение нашего дропдауна на 1, т.е. на нулевой индекс.
Для Multidropdown:
Тут все немного сложнее, давайте для начала напишем легкий код:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4', '5'])

UI.SetValue('Script items', 'Our multidropdown', 0)
Такой код активирует '1' в этом мультидропдауне
Но если мы напишем вместо 0 цифру 4, то в мультидропдауне активируется '3'.
Короче, чтобы сделать элемент в мультидропдауне активным, пропишем следующее:

JavaScript:
UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5']) //Создадим мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our dropdown') //Занесем его значение в переменную
const static = 1 << 0 /*0 its index*/ //Определим, какой индекс нужно сделать активным
UI.SetValue('Script items', 'Our dropdown', dropdown | static ) //Сделаем его активным
Этот код делает активным нулевой индекс.

Чтобы сделать элемент в мультидропдауне НЕ активным, напишем следующее.

JavaScript:
UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5']) //Создадим мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our dropdown') //Занесем его значение в переменную
const static = 1 << 0 /*0 its index*/ //Определимся с индексом
UI.SetValue('Script items', 'Our dropdown', dropdown &~ static ) //Сделаем этот индекс НЕ активным.
Этот код делать нулевой индекс в мультидропдауне не активным.
Можно даже написать функцию, которая будет автоматически выставлять нужные нам значения:

JavaScript:
UI.SetMultiDropdownValue = function(dropdown, index, enabled) {
    static = 1 << index

    return enabled ? (dropdown | static) : (dropdown &~ static)
}

UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5'])

UI.SetValue('Script items', 'Our dropdown', UI.SetMultiDropdownValue(UI.GetValue('Script items', 'Our dropdown'), 2, true))
UI.ToggleHotkey(path, 'object_name') - Метод позволяет делать Hotkey активным
Пример:
JavaScript:
UI.ToggleHotkey("Rage", "GENERAL", "Exploits", "Doubletap")
Запустив кусок этого кода, скрипт сделает Doubletap активным.


UI.SetColor(path, 'object name', value) - Метод позволяет выставлять определенный цвет в колорпикер
Пример:

JavaScript:
UI.AddColorPicker('Colorpicker') //Создаем колорпикер
UI.SetColor('Script items', 'Colorpicker', [255,255,255,255]) //Выставим в этот колорпикер белый цвет
Этот кусок кода создает колорпикер и выставляет в него белый цвет.

На этом вроде бы все, но есть еще два метода класса UI, это


UI.SetEnabled(path, 'object_name', value) - Метод позволяет скрыть элемент в меню. Принимает в себя 3 аргумента - путь, название объекта, и значение.
Покажу наглядно что оно делает:

JavaScript:
UI.AddCheckbox('Checkbox') //Создаем чекбокс
UI.AddSliderInt('Slider', 0, 130) //Создаем Слайдер

function a() { //Пишем функцию
    if (UI.GetValue('Script items', 'Checkbox')) { //Делаем проверку на то, активен ли чекбокс или нет
        UI.SetEnabled('Script items', 'Slider', 0) //Если активен - скрываем слайдер в меню
    } else {
        UI.SetEnabled('Script items', 'Slider', 1) //Если НЕ активен - снова делаем слайдер видимым в меню
    }
}

Cheat.RegisterCallback('Draw', 'a') //Добавим колбек
Если активирован чекбокс "Checkbox", то Slider скрывается, если нет - появляется.

UI.IsMenuOpen() - Метод позволяет узнать, открыто ли меню.
Code:

JavaScript:
const a = UI.IsMenuOpen() //Заносим в переменную состояние меню

Cheat.Print(a.toString()) //Выводим это состояние в консоль
если меню открыто - выведет в консоль true, иначе false.

На этом вроде бы все. Я искренне надеюсь что это поможет кому-нибудь, ибо я писал это 4 часа ночью. :kappa::kappa::kappa:
Жду объективную критику и указание на ошибки.
Могу написать еще несколько таких постов про разные классы по типу Entity и детально разобрать их (возможно со скринами), если это кому нибудь понадобиться...
но зачем.... ты же просто потратил свое время....
Пожалуйста, авторизуйтесь для просмотра ссылки.
no add
 
!@#$%^&*()_+
Участник
Статус
Оффлайн
Регистрация
4 Сен 2019
Сообщения
1,063
Реакции[?]
246
Поинты[?]
0
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,748
Реакции[?]
1,465
Поинты[?]
1K
но зачем.... ты же просто потратил свое время....
Пожалуйста, авторизуйтесь для просмотра ссылки.
no add
А вы тоже любите делать ctrl c + ctrl v на свой гитхаб?
Пожалуйста, авторизуйтесь для просмотра ссылки.

Вот тебе еще одна ссылка на гитхаб, ТАМ ВСЕ АБСОЛЮТНО ОДИНАКОВО. Поэтому я потратил время не просто так.
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,279
Реакции[?]
2,229
Поинты[?]
127K
Оформление отвратительное, нечитабельно.


У тебя описаны методы, про которые забыли
Пожалуйста, авторизуйтесь для просмотра ссылки.
?
 
Начинающий
Статус
Оффлайн
Регистрация
11 Сен 2020
Сообщения
14
Реакции[?]
0
Поинты[?]
0
Оформление отвратительное, нечитабельно.


У тебя описаны методы, про которые забыли
Пожалуйста, авторизуйтесь для просмотра ссылки.
?
Всё отлично видно, в моём случае мне это как раз нужно было. Всё понятно, если у тебя всё плохо со зрением то тебе уже не помочь.
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,279
Реакции[?]
2,229
Поинты[?]
127K
Всё понятно, если у тебя всё плохо со зрением то тебе уже не помочь.
У меня нормально всё со зрением. Тему с таким оформлением читать невозможно, ибо ярко-белый цвет на сером фоне выглядит ужасно.


P0Z1T1V4iK28, к чему ты печально поставил?... Я, вроде, объективно написал. Ну и на вопрос нет ответа..
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,748
Реакции[?]
1,465
Поинты[?]
1K
У меня нормально всё со зрением. Тему с таким оформлением читать невозможно, ибо ярко-белый цвет на сером фоне выглядит ужасно.


P0Z1T1V4iK28, к чему ты печально поставил?... Я, вроде, объективно написал. Ну и на вопрос нет ответа..
Я не вижу здесь какого то плохого оформления, делал как и всегда. Если хочешь помочь мне в оформлении - прошу в личные сообщения форума, это не единственный пост про API вантапа который я буду делать. Буду благодарен если поможешь с этим.
 
Пользователь
Статус
Оффлайн
Регистрация
22 Май 2018
Сообщения
221
Реакции[?]
229
Поинты[?]
6K
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,279
Реакции[?]
2,229
Поинты[?]
127K
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,748
Реакции[?]
1,465
Поинты[?]
1K
Ты так и не ответил...
Я расписал все подробно для самых маленьких. Если бы все было хорошо описано у manulove, отсутствовали бы люди который просят добавить чекбокс/хоткей к функции скрипта. Хуже того когда тебе пишут в дискорд/вк чтобы помочь с этим. Можно смело кидать им эту тему чтобы они учились САМИ, а не просили это у других, это и есть сам смысл создания таких тем.
 
Участник
Статус
Оффлайн
Регистрация
14 Сен 2019
Сообщения
856
Реакции[?]
248
Поинты[?]
2K
Ну для того, чтобы понять что здесь происходит нужно знать хотя бы основы языка JavaScript (learn.javascript.ru - хороший учебник для новичков, учился там же) и английский язык на уровне средней школы.
В этом посте я расскажу подробно о UI классе в кряке вантапа. В UI классе присутствует 18 методов, 9 из которых это сами элементы, 8 из них это взаимодействие с этими элементами и последний метод можно отнести к прочее, поговорим о нем ниже.
(Все элементы которые добавляются с помощью UI класса находятся в меню вантапа по пути Misc - JAVASCRIPT - Script items)

Сначала пройдемся по самим UI элементам, а после по взаимодействию с ними, и так начнем:
UI.AddCheckbox('Checkbox_name') - Самый используемый элемент в меню. Имеет 2 состояния - enabled (true) и disabled (false), что позволяет нам понимать, нужно ли выполнять функцию или нет. Принимает в себя один аргумент - строку, содержащую название самого Checkbox-a.
Добавим его следующим образом:
JavaScript:
UI.AddCheckbox('Our checkbox')
UI.AddHotkey('Hotkey_name') - Один из важнейших элементов в меню. Так же имеет 2 состояния - enabled (true) и disabled (false), позволяет нам определить, активирован ли бинд или нет. Принимает в себя один аргумент - строку, содержащую название Hotkey-я.
Добавим его следующим образом:
JavaScript:
UI.AddHotkey('Our hotkey')
UI.AddSliderInt('Int_slider_name', min_int_value, max_int_value) - Слайдер с целыми числами. Имеет количество состояний которое зависит от чисел, указанных в диапазоне слайдера. Позволяет нам узнать число, выставленное пользователем. Принимает в себя 3 аргумента - строку (название слайдера), минимальное целое число слайдера и максимальное целое число слайдера.
Добавим его так:
JavaScript:
UI.AddSliderInt('Our int slider', 0, 10)
UI.AddSliderFloat('float_slider_name', min_float_value, max_float_value) - Все то же самое что и UI.AddSliderInt(Int_slider_name, min_int_value, max_int_value), только принимает в себя не целые, а дробные числа.
Добавим его так:
JavaScript:
UI.AddSliderFloat('Our float slider', 0.0, 10.0)
UI.AddColorPicker('Colorpicker_name') - Колорпикер (Инструмент выбора цвета). Позволяет нам узнать цвет, выбранный пользователем. Принимает в себя один аргумент - строку (название колорпикера).
Добавим так:

JavaScript:
UI.AddColorPicker('Our colorpicker')
UI.AddDropdown('Dropdown_name', ['1st variant', '2nd variant', ..., '55th variant']) - Выпадающий список с возможностью выбрать один из предложенных вариантов.
Позволяет узнать, какой вариант выбрал пользователь в выпадающем списке. Принимает в себя 2 варианта - строку (название выпадающего списка) и массив с произвольным кол-вом вариантов состоящий из строк.
Добавим его так:
JavaScript:
UI.AddDropdown('Our dropdown', ['1st variant', '2nd variant', '3rd variant'])
UI.AddMultiDropdown('Multidropdown_name', ['1st variant', '2nd variant', ..., '55th variant']) - Выпадающий список с возможностью выбрать несколько из предложенных вариантов. Позволяет узнать, какие варианты выбрал пользователь в выпадающем списке. Принимает в себя 2 варианта - строку (название выпадающего списка) и массив с произвольным кол-вом вариантов состоящий из строк.
Добавим так:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1st variant', '2nd variant', '3rd variant'])
UI.AddTextbox('Textbox_name') - Textbox, в него можно вписывать текст. Позволяет узнать текст, вписанный в него. Принимает в себя один аргумент - строку (название текстбокса)
Добавим его так:
JavaScript:
UI.AddTextbox('Our textbox')
UI.AddLabel('Label name') - Просто строка в меню, можно использовать как описание функции. Принимает в себя один аргумент - строку (название label-а).
Добавим так:

JavaScript:
UI.AddLabel('Our label')





С самими элементами в UI классе мы разобрались, давайте перейдем к методам.
(На этом моменте я понял что я ебнулся, пишу этот пост в 2:08, это пиздец товарищи :roflanPominki: (try harder спокойной ночи))


UI.GetValue(path, 'object_name') - Метод, позволяющий получить значение того или иного элемента в меню. Принимает в себя два аргумента - Путь (может состоять из нескольких строк) и название самого объекта (checkbox, slider, etc.), тоже строка.
Пример синтаксиса такой:

JavaScript:
UI.GetValue('Rage', 'GENERAL', 'General', 'Enabled')
Давайте разберем этот метод для каждого элемента:
Для Checkbox:
Пропишем такой код:
JavaScript:
const state = UI.GetValue('Rage', 'GENERAL', 'General', 'Enabled') //Создаем переменную и записываем в нее состояние слайдера.
Cheat.Print(state.toString()) //Выводит это состояние в консоль
Этот код будет получать значение чекбокса Enabled и выводить его в консоль.
В случае если чекбокс активирован, то код выведет в консоль 1 (что можно расценивать как true).
В случае если чекбокс не активирован, то код выведет в консоль 0 (что можно расценивать как false)
Вот пример, как привязать чекбокс к любому действию:

JavaScript:
UI.AddCheckbox('Checkbox') //Создаем чекбокс

if (UI.GetValue('Script items', 'Checkbox')) {     //Проверяем, активен ли чекбокс
    //Code body                                    //Если да - тело условя начнет выполняться
}
                                                //Если нет - тело условия НЕ будет выполняться

Для Slider (Для SliderInt и SliderFloat):
Напишем такой код:

JavaScript:
UI.AddSliderInt('Our slider int', 0, 10) //Создаем наш слайдер
const a = UI.GetValue('Script items', 'Our slider int') //Записываем в переменную значение из слайдера
Cheat.Print(a.toString()) //Выводим в консоль это значение
Он будет выводить в консоль значение от 0 до 10, т.е. то значение, которое выставлено в слайдер.
Работает как для SliderInt, так и для SliderFloat одинаково.


Для Dropdown:
Опять же, напишем такой код:
JavaScript:
UI.AddDropdown('Our dropdown', ['1', '2', '3']) //Создаем выпадающий список
const a = UI.GetValue('Script items', 'Our dropdown') //Заносим его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Он выведет нам в консоль индекс активированного варианта из массива с вариантами.
Например, если активирован 1, скрипт выведет 0, если активирован 2 то 1 и т.д.
Вот пример использования:

JavaScript:
UI.AddDropdown('Tab', ['Rage', 'Anti-Aim', 'Visual', 'Misc']) //Создаем выпадающий список

if (UI.GetValue('Script items', 'Tab') == 0/*0 its index*/) { //Проверяем, включен ли в выпадающем списке именно RAGE
    //Тело условия
}
Для Multidropdown:
Приведем в пример такой код:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4'])
const a = UI.GetValue('Script items', 'Our multidropdown')
Cheat.Print(a.toString())
Этот код будет выводить цифры в консоль, но какие же?
Если мы активируем ТОЛЬКО первый аргумент - выведет 1, если мы активируем 1 и 2 то выведет 3, активируем 1, 2 и 3 - выведет 7.
Так как же узнать какой элемент активен, а какой нет?
Для Multidropdown-ов нужно использовать такой синтаксис (просто пример):

JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4']) //Создаем наш мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our multidropdown') //Заносим его в переменную
zeroIndexEnabled = dropdown & (1 << 0 /*0 its index*/) ? true : false //Создаем переменную, где проверяем, активен ли нулевой индекс или нет
Cheat.Print(zeroIndexEnabled.toString()) //Выводим в консоль переменную с проверкой индекса.
Если активирован нулевой индекс (первый вариант) то в консоль выведет true, иначе false.
UI.GetValue() Можно использовать только для вышеперечисленных объектов, перейдем к другим методам получения информации.


UI.IsHotkeyActive(path, 'object_name')
Этот метод используется только для получения состояния Hotkey-я.
Напишем следующее:

JavaScript:
UI.AddHotkey('Our hotkey') //Создаем Hotkey
const a = UI.IsHotkeyActive('Script items', 'Our hotkey') //Заносим его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Если Hotkey активен, то скрипт выведет в консоль 1, иначе 0.
Вот более детальный пример:
JavaScript:
UI.AddHotkey('Damage override') //Создаем Hotkey

if (UI.IsHotkeyActive('Damage override')) { //Делаем проверку на то, активирован ли Hotkey
   //Тело условия
}
UI.GetString(path, 'object_name')
Этот метод используется только для получения текста из Textbox-а.
Напишем такой код:

JavaScript:
UI.AddTextbox('Our textbox') //Создаем Textbox
const a = UI.GetString('Script items', 'Our textbox') //Записываем его значение в переменную
Cheat.Print(a) //Выводим это значение в консоль
Этот код выведет в консоль текст, написанный в текстбоксе.
Так-же более детальный пример

Код:
UI.AddTextbox('Name') //Создаем текстбокс
if (UI.GetString('Script items', 'Name') == 'dfrnz') { //Делаем проверку на то, вписан ли в текстбокс dfrnz
    Cheat.Print('Hello dfrnz!') //Выводим в консоль если условие выполнилось
}
UI.GetColor(path, 'object_name')
Этот метод используется только для получения цвета из Colorpicker-а.
Используем такой код:

JavaScript:
UI.AddColorPicker('Our colorpicker') //Создаем колорпикер
const a = UI.GetColor('Script items', 'Our colorpicker') //Записываем его значение в переменную
Cheat.Print(a.toString()) //Выводим это значение в консоль
Этот код выведет нам строку из RGBA чисел.





Это были все методы получения информации из элементов меню. Давайте теперь посмотрим как их выставлять.

UI.SetValue(path, 'object_name') Метод, позволяющий выставлять значение в тот или иной элемент в меню. Принимает в себя 3 аргумента - Путь (может состоять из нескольких строк), название самого объекта (checkbox, slider, etc. (тоже строка)) и значение, которое будет установлено.
Пример синтаксиса
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 0)
Давайте рассмотрим это для каждого элемента в меню

Для Checkbox:
(Возьмем пример, который я привел выше)
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 0)
Этот кусок кода выключит рейджбот

JavaScript:
UI.SetValue('Rage', 'GENERAL', 'General', 'Enabled', 1)
А этот включит рейджбот
Давайте сделаем уже какой нибудь хороший код, где можно будет понять взаимодействие получения значения элементов из меню и их "выставление" в меню

JavaScript:
UI.AddHotkey('ping spike on key') //Создаем Hotkey в меню

function a() { //Напишем функцию
    if (UI.IsHotkeyActive('Script items', 'ping spike on key')) { //Делаем проверку на активность Hotkey-я
        UI.SetValue('Misc', 'Miscellaneous', 'Extended backtracking', 1) //Если он активен, выставим значение Extended backtracking-а 1
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Делаем callback
Этот код будет делать чекбокс Extended backtracking активным если активен Hotkey ping spike on key. Надеюсь все понятно.
Для Slider (Для SliderInt и SliderFloat):
Этот код будет работать одинаково как для SliderInt, так и для SliderFloat:
JavaScript:
UI.SetValue('Rage', 'GENERAL', 'Targeting', 'Fov', 100)
Он будет выставлять значение FOV в глобальном разделе Rage бота на 100.
Вот еще пример взаимодействия:

JavaScript:
UI.AddSliderInt('Thirdperson distance', 0, 300)

function a() {
    t = UI.GetValue('Script items', 'Thirdperson distance')
    UI.SetValue('Visual', 'World', 'View', 'Thirdperson', t)
}

Cheat.RegisterCallback('CreateMove', 'a')
Этим куском кода мы выставляем значение из нашего слайдера в слайдер Thirdperson.
Для Dropdown:
Чтобы выставить определенное значение в ОБЫЧНЫЙ дропдаун, напишем такой код:
JavaScript:
UI.AddDropdown('Our dropdown', ['1', '2', '3', '4'])

[CODE=javascript]UI.AddDropdown('Tab', ['Rage', 'Anti-Aim', 'Visual', 'Misc']) //Создаем дродаун
UI.AddCheckbox('Set rage tab!') //Создаем чекбокс

if (UI.GetValue('Script items', 'Set rage tab!')) { //Делаем проверку на то, активирован ли чекбокс
    UI.SetValue('Script items', 'Tab', 0) //Если условие верно - выставляем дропдауну значение 0, т.е. Rage
}
UI.SetValue('Script items', 'Our dropdown', 0)[/CODE]
Этим мы выставили значение нашего дропдауна на 1, т.е. на нулевой индекс.
Для Multidropdown:
Тут все немного сложнее, давайте для начала напишем легкий код:
JavaScript:
UI.AddMultiDropdown('Our multidropdown', ['1', '2', '3', '4', '5'])

UI.SetValue('Script items', 'Our multidropdown', 0)
Такой код активирует '1' в этом мультидропдауне
Но если мы напишем вместо 0 цифру 4, то в мультидропдауне активируется '3'.
Короче, чтобы сделать элемент в мультидропдауне активным, пропишем следующее:

JavaScript:
UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5']) //Создадим мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our dropdown') //Занесем его значение в переменную
const static = 1 << 0 /*0 its index*/ //Определим, какой индекс нужно сделать активным
UI.SetValue('Script items', 'Our dropdown', dropdown | static ) //Сделаем его активным
Этот код делает активным нулевой индекс.

Чтобы сделать элемент в мультидропдауне НЕ активным, напишем следующее.

JavaScript:
UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5']) //Создадим мультидропдаун
const dropdown = UI.GetValue('Script items', 'Our dropdown') //Занесем его значение в переменную
const static = 1 << 0 /*0 its index*/ //Определимся с индексом
UI.SetValue('Script items', 'Our dropdown', dropdown &~ static ) //Сделаем этот индекс НЕ активным.
Этот код делать нулевой индекс в мультидропдауне не активным.
Можно даже написать функцию, которая будет автоматически выставлять нужные нам значения:

JavaScript:
UI.SetMultiDropdownValue = function(dropdown, index, enabled) {
    static = 1 << index

    return enabled ? (dropdown | static) : (dropdown &~ static)
}

UI.AddMultiDropdown('Our dropdown', ['1', '2', '3', '4', '5'])

UI.SetValue('Script items', 'Our dropdown', UI.SetMultiDropdownValue(UI.GetValue('Script items', 'Our dropdown'), 2, true))
UI.ToggleHotkey(path, 'object_name') - Метод позволяет делать Hotkey активным
Пример:
JavaScript:
UI.ToggleHotkey("Rage", "GENERAL", "Exploits", "Doubletap")
Запустив кусок этого кода, скрипт сделает Doubletap активным.


UI.SetColor(path, 'object name', value) - Метод позволяет выставлять определенный цвет в колорпикер
Пример:

JavaScript:
UI.AddColorPicker('Colorpicker') //Создаем колорпикер
UI.SetColor('Script items', 'Colorpicker', [255,255,255,255]) //Выставим в этот колорпикер белый цвет
Этот кусок кода создает колорпикер и выставляет в него белый цвет.

На этом вроде бы все, но есть еще два метода класса UI, это


UI.SetEnabled(path, 'object_name', value) - Метод позволяет скрыть элемент в меню. Принимает в себя 3 аргумента - путь, название объекта, и значение.
Покажу наглядно что оно делает:

JavaScript:
UI.AddCheckbox('Checkbox') //Создаем чекбокс
UI.AddSliderInt('Slider', 0, 130) //Создаем Слайдер

function a() { //Пишем функцию
    if (UI.GetValue('Script items', 'Checkbox')) { //Делаем проверку на то, активен ли чекбокс или нет
        UI.SetEnabled('Script items', 'Slider', 0) //Если активен - скрываем слайдер в меню
    } else {
        UI.SetEnabled('Script items', 'Slider', 1) //Если НЕ активен - снова делаем слайдер видимым в меню
    }
}

Cheat.RegisterCallback('Draw', 'a') //Добавим колбек
Если активирован чекбокс "Checkbox", то Slider скрывается, если нет - появляется.

UI.IsMenuOpen() - Метод позволяет узнать, открыто ли меню.
Code:

JavaScript:
const a = UI.IsMenuOpen() //Заносим в переменную состояние меню

Cheat.Print(a.toString()) //Выводим это состояние в консоль
если меню открыто - выведет в консоль true, иначе false.

На этом вроде бы все. Я искренне надеюсь что это поможет кому-нибудь, ибо я писал это 4 часа ночью. :kappa::kappa::kappa:
Жду объективную критику и указание на ошибки.
Могу написать еще несколько таких постов про разные классы по типу Entity и детально разобрать их (возможно со скринами), если это кому-нибудь понадобиться...
Теперь мне тебя жалко. Как же ты заебался.
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,748
Реакции[?]
1,465
Поинты[?]
1K
Сверху Снизу