macro keybind mod
Из себя этот мод представляет дополнение, которое поможет игрокам,знающим упрощенный синтаксис этого мода, писать некоторые скрипты, добавлять собственные бинды на клавиши и обрабатывать ивенты (события) игры. Наверное, это было не совсем понятно,но давайте разберем на примерах возможности этой модификации:
Для того,чтобы создать новый обработчик событий или добавить скрипт на кнопку клавиатуры, жмём Shift + ~ (тильда) или переходим в Настройки->Управление,и дальше ищем вкладку, как на скриншоте:
Открываем Macro Settings…
В самом верху мы видим надпись “переопределение: клавиши” и стрелки. Этот блок меню отвечает за переключение между настройками биндов на клавиши, события и доп. экран,куда мы сможем добавить свои кнопки.Чаще всего мы будем пользоваться именно первой вкладкой,отвечающий за кнопки и их использование,поэтому сперва рассмотрим её:
Как мы видим,все кнопки обозначены цветами
Красный означает,что кнопка уже занята (используется) и мы не сможем добавить на неё доп. действие
Серый цвет обозначает,что клавиша свободна,и что мы можем добавить на неё собственный скрипт
Желтый же значит,что на этой клавише уже висит добавленный игроком скрипт
-
Бинд на клавиши
Чтобы добавить нашу собственную функцию на клавишу, мы выбираем любую свободную и жмем ПКМ по ней, после чего откроется окно,в котором мы и будем настраивать эту клавишу.
По-сути нас интересует исключительно нижнее текстовое поле, обозначенное как “Редактировать макрос для [выбранная вами клавиша]”.
В это текстовое поле мы будем добавлять функции.
Самое простое использование-автоматический ввод определенных команд при нажатии клавиши. К примеру,мы хотим телепортироваться домой по нажатию клавиши B, для этого в нижнее поле добавляем текст “/home”,и эта команда будет вводиться в чат при нажатии кнопки. -
Использование доп. кнопок на странице чата
Открываем чат кнопкой T, жмем по любой области чата ПКМ, и видим открывающееся меню,состоящее из 3 пунктов:
Нас интересует последний пункт, выделенный желтым цветом. После нажатия этой клавиши увидим сетку на вкладке чата и 3 кнопки снизу-слева. Удаление,редактирование,и добавление объектов на ячейки сетки.
Давайте добавим кнопку:
Жмем третью слева кнопку, которая выглядит как плюсик,и добавляем кнопку
После определяем место для добавление кнопки и назначаем определенные параметры этой кнопке: название, текст,который будет отобжраться и т.д. После создания, она будет серой
Жмем по ней ЛКМ и видим знакомое меню добавления команды на кнопку.
Как вы заметили,я уже назначил другую команду, нежели просто /home,но по-сути это будет то же самое действие,просто по-разному записанное. -
Ивенты
Перейдём во вкладку ивентов. Это самый малоиспользуемый пункт мода,но он позволяет выполнять скрипт в тот момент,когда что-либо в игре изменилось. Каждый раздел проименован по-английски очевидным образом. Теперь как это может использоваться на примере:
Используя ивент OnHealthChange (когда изменился показатель здоровья), мы можем сделать автоматическую телепортацию домой. Это поможет вам остаться в живых,когда вы начинаете получать урон. однако,зная этот мод получше,мы уже можем начать анализировать ситуацию более глубинно, и,например, телепортироваться домой только при попадании в лаву, добавим на этот ивент очень коротенький скриптик:
Скрипт
$${
GETID(%XPOS%,%YPOS%,%ZPOS%,&idblock);
IF(%&idblock%=“lava”)
ECHO("/home");
ENDIF
IF(%&idblock%=“flowing_lava”)
ECHO("/home");
ENDIF
}$$
Скрипт с комментариями
$${ //открыть блок функции
GETID(%XPOS%,%YPOS%,%ZPOS%,&idblock);//получить айди блока,в котором вы стоите
IF(%&idblock%=“lava”)//сравнить название блока с лавой,если это лава,то
ECHO("/home");//выполнить команду /home
ENDIF//конец блока проверки
IF(%&idblock%=“flowing_lava”)//такой же блок,который сравнивает блок с текущей лавой
ECHO("/home");//тпшнуться домой
ENDIF//закрыть блок сравнивания
}$$//закрыть блок функции
Скрипты
-
правила создания
Все скрипты могут храниться как в отдельных файлах, так и быть написано напрямую в текстовом поле макроса, однако первый вариант предпочтителен для длинных и/или сложных программ, где легко запутаться в синтаксисе и пропустить ошибку. И так,приступим:
Все скрипты хранятся по пути: C:\Users%USER%\Pentacraft\updates%SERVER%\liteconfig\common\macros
Записываются они в текстовые файлы с расширением .txt , например, lava.txt
И чтобы запустить выполнение скрипта, мы прописываем $$<script.txt> на кнопку или эвент
Синтаксис прост донельзя: начало обозначается двумя знаками доллара и открытой фигурной скобкой,конец закрытой фигурной скобкой и так же двумя знаками доллара.
То есть самый короткий скрипт,что мы можем создать,но который при этом,очевидно,не будет нести смысловой нагрузки,выглядит так: $${}$$; Весь ваш код помещается между этими фигурными скобками,а используемые функции (или команды,как это проименованно в моде) разделяются точкой с запятой. -
Функции
Список всех доступных функций с кратким пояснением на английском языке вы можете найти по ссылке: Функции (Click me!)
Этим функциям мы должны передать определенные параметры,общий вид:
FUNCTION(parameter1, parameter2, и т.д.);
Все функции пишутся заглавными буквами, не забудьте про это при написании.
Например:
$${
LOG(here a client-side chat message);
}$$
выдаст нам в клиентский лог сообщение “here a client-side chat message”, выглядеть это будет так:
Функция LOG пишет исключительно в ваш клиент,то есть этот текст не отправляется в общий чат сервера,его видите только вы. -
Переменные
Список всех переменных с кратким пояснением на английском языке вы можете найти по ссылке: Переменные (Click me!)
Есть как глобальные,которые хранят какие-либо переменные игры, так и локальные, которые доступны исключительно из родительского скрипта. Если вы объявите переменную,то и использовать её вы сможете исключительно в том скрипте,который вы объявили. Те,что перечислены на сайте,ссылку на который вы видите выше,являются глобальными и отражают какие-либо игровые параметры.
Если вы хотите хранить какие-то данные,то создать их можно следующим образом: -
Текстовая переменная - обозначается как: &имя_переменной - предназначена для хранения текста, значение переменной обозначается в кавычках " "
-
Числовая переменная - обозначается как: #имя_переменной - предназначена для хранения чисел
-
Логическая переменная - обозначается просто: имя переменной - данная переменная может принимать либо значение true (истина), либо false (ложь).
-
Массивы - объекты для хранения переменных, обозначается массив перечислением всех его элементов, т.е. имя_массива[]=значение
-
Ивенты/События
Список всех ивентов с кратким пояснением на английском языке и списком уникальных переменных вы можете найти по ссылке: Ивенты (Click me!)