# Menu
Класс для взаимодействия с меню чита. Даёт возможность создавать свои элементы в меню чита.
Рекомендуем к ознакомлению:
# Статические методы
# AddToggle
Создаёт чекбокс, которые принимает значения вкл/выкл
Аргументы:
whereAt
-Array<string>
name
-string
defaultValue
-true
|false
Возвращаемые значения:
Пример использования:
let exampleScript = {};
let myOption =
Menu.AddToggle(['My', 'Own', 'Path'], 'My Own Option Name', false)
.OnChange(state => {
console.log(`My Own Option changed value from ${state.oldValue} to ${state.newValue}`);
});
exampleScript.OnUpdate = () => {
if (myOption.GetValue() === true) {
console.log('Option is enabled');
} else {
console.log('Option is disabled :(');
}
};
RegisterScript(exampleScript);
# AddSlider
Создаёт слайдер, который позволяет выбрать точное числовое значение в заданном диапозоне
Аргументы:
whereAt
-Array<string>
name
-string
min
-number
max
-number
defaultValue
-number
step?
- "шаг"; по умолчанию1
Пример использования:
let exampleScript = {};
let myOption =
Menu.AddSlider(['My', 'Own', 'Path'], 'My Own Slider Name', 10, 100, 50, 5)
.OnChange(state => {
console.log(`My Own Slider changed value from ${state.oldValue} to ${state.newValue}`);
});
exampleScript.OnUpdate = () => {
if (myOption.GetValue() === 10) {
console.log('Value equal 10');
} else {
console.log('Value NOT equal 10');
}
};
RegisterScript(exampleScript);
# AddComboBox
Создаёт селектор, который позволяет выбрать точное значение из списка
Аргументы:
whereAt
-Array<string>
name
-string
values
-Array<string>
defaultValueIndex
-number
Пример использования:
let exampleScript = {};
const weathers = ['Default', 'Snow', 'Rain', 'Moonbeam', 'Pestilence', 'Harvest', 'Sirocco', 'Spring'];
let weatherStyleIndex = Menu.AddComboBox(
['General', 'Weather Changer'], // whereAt
'Weather Name', // name
weathers, // values
0 // defaultValueIndex
)
.OnChange(state => (weatherStyleIndex = state.newValue))
.GetValue();
exampleScript.OnUpdate = () => {
console.log(`Current weather ${weathers[weatherStyleIndex]}`);
};
RegisterScript(exampleScript);
# AddInputBox
Создаёт поле для ввода
Аргументы:
whereAt
-Array<string>
name
-string
defaultValue
-string
Пример использования:
let exampleScript = {};
let inputBoxValue = Menu.AddInputBox(
['My', 'Own', 'Path'], // whereAt
'Input Box', // name
'Test' // defaultValue
)
.SetNameLocale(locale, loc(locale, "weatherChanger", "type"))
.OnChange(state => (inputBoxValue = state.newValue))
.GetValue();
exampleScript.OnUpdate = () => {
console.log(`Current input box value ${inputBoxValue}`);
};
RegisterScript(exampleScript);
# AddKeyBind
Добавляет возможность назначать бинд на кнопку через меню
Аргументы:
whereAt
-Array<string>
name
-string
defaultKey
- Enum.ButtonCode
Пример использования:
let exampleScript = {};
let keybindHandle = Menu.AddKeyBind(['My', 'Own', 'Path'], 'Key Bind Example', Enum.ButtonCode.KEY_G);
exampleScript.OnUpdate = () => {
if(Menu.IsKeyDown(keybindHandle)) {
console.log('Bind pressed');
}
};
RegisterScript(exampleScript);
# SetOrdering
Устанавливает позицию элемента. По умолчанию у всех элементов позиция 0
, а сортировка происходит по дате создания элемента (ранее созданные находятся выше).
Аргументы:
handle
-MenuOptionHandler
|Array<string>
; можно передавать непосредственно хендлы элементов, а можно передавать пути (см. примеры)value
-number
; от-2147483648
до+2147483647
. Чем выше значение, тем выше будет элемент.
Пример использования:
let exampleScript = {};
Menu.AddToggle(['Ordering Example'], 'The last element', false);
let handle1 = Menu.AddToggle(['Ordering Example'], 'First element', false);
let handle2 = Menu.AddToggle(['Ordering Example'], 'Second element', false);
Menu.SetOrdering(['Ordering Example', 'The last element'], -1); // Пример сортировки по пути эл-та
Menu.SetOrdering(handle1, 1);
Menu.SetOrdering(handle2, 0); // Эта строка необязательна, так как у всех элементов по умолчанию стоит 0
RegisterScript(exampleScript);
# GetLocale
Получает код текущего языка в меню
Возвращаемые значения:
ru
|en
|cn
# GetValue
Получает значение элемента в меню с помощью хендла
Аргументы:
handle
-MenuOptionHandler
Возвращаемые значения:
- В зависимости от типа элемента меню
# SetValue
Устанавливает значение элемента в меню с помощью хендла
Аргументы:
handle
-MenuOptionHandler
value
- в зависимости от типа элемента меню
# IsKeyDown
Проверяет нажата ли кнопка по хендлу меню
Аргументы:
handle
Возвращаемые значения:
true
|false
Пример использования: cм. Menu.AddKeyBind
# IsKeyDownOnce
Алгоритм работы схож с Menu.IsKeyDown, принципиальное отличие в задержке нажатия. Этот бинд будет срабатывать 1 раз в ~200мс
Аргументы:
handle
Возвращаемые значения:
true
|false
Пример использования: cм. Menu.AddKeyBind
# SetImage
Устанавливает изображение для опции
Аргументы:
whereAt
-MenuOptionHandler
|Array<string>
imagePath
-string
; путь до изображения в папке Dota 2 или VPK-архиве. Пример:panorama/images/heroes/icons/npc_dota_hero_rubick_png.vtex_c
# RemoveOption
Удаляет опцию меню с помощью хендла
Аргументы:
handle
-MenuOptionHandler
Пример использования:
let exampleScript = {};
// Если бинд будет нажат, опция удалится из меню
let handle = Menu.AddKeyBind(['My', 'Own', 'Path'], 'Bind', Enum.ButtonCode.KEY_F1);
exampleScript.OnUpdate = () => {
if(handle) {
if(Menu.IsKeyDown(handle)) {
Menu.RemoveOption(handle);
handle = null;
}
}
};
RegisterScript(exampleScript);
ВНИМАНИЕ
Эта зона документация находится в процессе дополнения 😃