Переменные
Переменная — значение, которым настраиваются блоки-функции путём установки переменных в нужные слоты.
Установка значения в переменную
Чтобы установить значение переменной, необходимо:
- Держать переменную в руке и написать нужное значение в чат. (Книга и Число)
- Кликнуть переменной ПКМ и выбрать из данных. (Зелье, Игровое значение и Частица)
Значение таким переменным, как Местоположение и Динамическая переменная, устанавливаются иначе:
- С помощью блока-функции "Присвоить переменную", можно установить значение Динамической переменной:
- Общие действия установки значения.
- Математические действия.
- Действия с текстами.
- Действия с координатами.
- Чтобы установить значение переменной "Местоположение", необходимо перейти в основной мир:
- ЛКМ - Телепортироваться в обычный мир/Телепортироваться в код.
- ПКМ - Сохранить в переменную текущую координату игрока.
- Шифт + ЛКМ - Телепортироваться к сохранённой координате
- ПКМ по блоку - Сохранить в переменную координату кликнутого блока.
Список переменных
Текстовая переменная
Текст поддерживает все текстовые символы и цветовые кода. Текст невозможно использовать как Число, однако текстовое значение можно превратить в числовое, используя действия "Парсить число".
Также этой переменной можно установить звуковой ID, который можно воспроизвести специальным действием.
Примеры использования
- Создание обучающего сообщения, голограммы или скорборда.
- Проверка имён, сообщений и других текстовых значений.
- Установка в текстовую переменную звуковых ID для дальнейшего воспроизведения.
Числовая переменная
Числовая переменная поддерживает только цифры и используется для настройки числовых параметров, типа времени в мира или установки урона игроку. При написании "P" или "E", числовая переменная принимает значение соответствующих чисел π и e.
В настройках времени чаще всего используются не секунды, а тики (1 секунда = 20 тиков). Для экономии времени, числовая переменная поддерживает использование "число+s-m-h (second-minute-hour)", что сразу конвертирует указанное время в тики.
Примеры использования
- Настройка числовых параметров игрока и мира.
- Установка счёта строки в скорборде.
- Установка задержки в действиях "Ждать", "Отправить диалог" и других.
Местоположение
Местоположение способно хранить в себе координаты и направление взгляда. Необходимая вещь в действиях с блоками, а также для создания GUI.
Примеры использования
- Установка двух координат для выделения и последующего заполнения, копирования и т.д.
- Установка координаты для создания GUI.
- Проверка местонахождения игрока, ломаемого блока, блока на месте взгляда и т.п.
Зелье
Данная переменная способна хранить в себе любые зелья, даже не создаваемые. Присутствует возможность настраивать силу и длительность эффекта. Чтобы указать длительность, необходимо взять переменную в руки и написать в чат "m+s (4:20), а чтобы указать силу, нужно сделать то же самое, но уже написав обычное число, которое и будет обозначать силу эффекта.
Примеры использования
- Достижение эффекта моргания с помощью установки Слепоты.
- Увеличение или уменьшение скорости копания, скорости, урона и т.д.
- Возможность избежать использование нелогичных источников света с помощью Ночного зрения.
Игровое значение
Игровое значение поддерживает значения сущности, события и игры. Подобная информация может пригодится в различных статистиках, потому что содержит всегда актуальную информацию.
Примеры использования
- Информационный скорборд со статистикой игры.
- Кастомный чат со значением "Сообщение игрока".
- Наблюдение за нагрузкой кода с помощью "Счётчика выполненных действий".
Эффект частицы
Более 50 частиц помогут разнообразить игру, добавив следы убийства, ходьбы и т.д.
Примеры использования
- Следы различных действий игрока.
- Обозначение снаряда в векторном оружии.
- Использование как косметику.
Динамическая переменная
Динамическая переменная - переменная, которая является не просто заранее указанным значением, а условной "коробкой", содержимое (значение) которого можно оперативно менять. Динамическая переменная является неотъемлемой частью кода профессионально созданных игр, которая служит хранилищем кастомных значений игрока, частью таймеров, псевдомассивов и других очень важных механик игры.
Изменение значения динамической переменной
Динамической переменной в игре изначально не существует, и чтобы она появилась, необходимо присвоить ей значение с помощью блока-функции "Присвоить переменную". Только после получения значения, динамическая переменная появится в игре и будет служить хранилищем данных.
На данный момент, у динамической переменной 4 вида присвоения значения:
- Общая (прямая) установка значения:
- "Установить" (=) и "Установить предмет"
- "Установить количество/количество/название..."
- "Установить случайное значение" из заранее заготовленных.
- Математические действия:
- Умножить, поделить, вычесть, сложить.
- Прибавить или убавить.
- Установить случайное число.
- Действия с текстом:
- Объединить тексты.
- Узнать длину строки в символах.
- Парсить число. (Превратить текст с числовым значением в числовую переменную)
- Действия с координатами.
- Действия с координатами:
- Узнать расстояние между двумя координатами.
- Взять одно из трёх значений указанной координаты.
- Изменить одно из значений координаты.
Чтобы динамическая переменная не потеряла своё значение после остановки игры, её необходимо сохранить. Для этого нужно взять динамическую переменную в руки и нажать ШИФТ + ПКМ, после чего, у динамической переменной появится статус "СОХРАНЕНО"
Типы динамических переменных
В зависимости от наличия плейсхолдера и его типа, динамическая переменная получит один из двух типов:
- Глобальная переменная - динамическая переменная, в названии которой отсутствует плейсхолдер и которая существует одна на весь мир.
- Локальная переменная - динамическая переменная, в названии которой присутсвует плейсхолдер и значение которой зависит от него. Возьмём три разных плейсхолдера: %player%, %victim% и %selected%:
- %player% - чаще всего используется в строчках кода без выборки, в которых присвоить переменную надо обычному игроку, от лица которого сработало событие кода. При изменении динамической переменной "%player% var", изменится динамическая переменная 'Player1 var'.
- %victim% - плейсхолдер меняется в зависимости от того, кого бьёт игрок в событиях нанесения урона. Если взять событие "Игрок нанёс игроку урон" и в нём присваивать значение переменной "%victim% var", то будет меняться значение динамической переменной жертвы.
- %selected% - плейсхолдер, который может хранить в себе не только 1 сущность. Если выбрать всех игроков с помощью блока-функции "Выбрать объект", то при присваивании значения переменной "%selected% var", у переменных всех выбранных игроков поменяется значение.
Использование динамических переменных
Использование динамических переменных обязательно в профессионально созданной игре, поскольку без неё не могут работать такие интересные механики, как статистика игрока, лидерборд, таймер, списки и другие, более сложные и интересные коды.
Статистика игрока
Когда игрок совершает какое-либо действие, например, убийство, к его локальной динамической переменной "%player% kills" прибавляется единица, которая значит одно совершённое действие. Подобную статистику можно отобразить разными способами коммуникации, но самым распространённым является скорборд.
Событие игрока — Игрок убил игрока -> Присвоить переменную — Прибавить (+=) - %player% kills += 1
Лидерборд
Код статистики можно дополнить лидербордом, который будет показывать игрока с самым большим количеством убийств. После убийства, статистика игрока сравнивается со статистикой игрока, у которого больше всего убийств. Если статистика игрока-убийцы больше, то он становится на место того, с кем сравнивался.
Событие игрока - Игрок убил игрока -> Если значение - Сравнить числа (Облегчённая версия) - %player% kills > top 1 kills -> Присвоить переменную - Установить (=) - top 1 kills = %player% kills -> Присвоить переменную - Установить (=) - top 1 nickname = %player% nickname
После обновления лидера по убийствам, можно спавнить NPC, имя которого будет обозначать никнейм лидера, а созданная голограмма под именем - количество убийств.