Переменные: различия между версиями
Quasari (обсуждение | вклад) |
Quasari (обсуждение | вклад) |
||
Строка 89: | Строка 89: | ||
Использование динамических переменных обязательно в профессионально созданной игре, поскольку без неё не могут работать такие интересные механики, как статистика игрока, лидерборд, таймер, списки и другие, более сложные и интересные коды. | Использование динамических переменных обязательно в профессионально созданной игре, поскольку без неё не могут работать такие интересные механики, как статистика игрока, лидерборд, таймер, списки и другие, более сложные и интересные коды. | ||
====Статистика игрока==== | ====Статистика игрока==== | ||
− | Когда игрок совершает какое-либо действие, например, убийство, к его локальной динамической переменной "'''%player% kills'''" прибавляется единица, которая | + | Когда игрок совершает какое-либо действие, например, убийство, к его локальной динамической переменной "'''%player% kills'''" прибавляется единица, которая означает одно совершённое действие. Подобную статистику можно отобразить разными способами коммуникации, но самым распространённым является скорборд. |
<code>Событие игрока — Убийство игрока -> Присвоить переменную — Прибавить (+=) - %player%_kills += 1 (Число)</code> | <code>Событие игрока — Убийство игрока -> Присвоить переменную — Прибавить (+=) - %player%_kills += 1 (Число)</code> | ||
+ | |||
====Лидерборд==== | ====Лидерборд==== | ||
Код статистики можно дополнить лидербордом, который будет показывать игрока с самым большим количеством убийств. После убийства, статистика игрока сравнивается со статистикой игрока, у которого больше всего убийств. Если статистика игрока-убийцы больше, то он становится на место того, с кем сравнивался. | Код статистики можно дополнить лидербордом, который будет показывать игрока с самым большим количеством убийств. После убийства, статистика игрока сравнивается со статистикой игрока, у которого больше всего убийств. Если статистика игрока-убийцы больше, то он становится на место того, с кем сравнивался. |
Версия 18:29, 1 апреля 2022
Переменная — значение, которым настраиваются блоки-функции путём установки переменных в нужные слоты.
Установка значения в переменную
Чтобы установить значение переменной, необходимо:
- Держать переменную в руке и написать нужное значение в чат. (Книга и Число)
- Кликнуть переменной ПКМ и выбрать из данных. (Зелье, Игровое значение и Частица)
Значение таким переменным, как Местоположение и Динамическая переменная, устанавливаются иначе:
- С помощью блока-функции "Присвоить переменную", можно установить значение Динамической переменной:
- Общие действия установки значения;
- Математические действия;
- Действия с текстами;
- Действия с координатами.
- Чтобы установить значение переменной "Местоположение", необходимо перейти в основной мир:
- ЛКМ - Телепортироваться в обычный мир/Телепортироваться в код.
- ПКМ - Сохранить в переменную текущую координату игрока.
- Шифт + ЛКМ - Телепортироваться к сохранённой координате.
- ПКМ по блоку - Сохранить в переменную координату кликнутого блока.
Список переменных
Текстовая переменная
Текст поддерживает все текстовые символы и цветовые кода. Текст невозможно использовать как Число, однако текстовое значение можно превратить в числовое, используя действие "Парсить число".
Также этой переменной можно установить звуковой ID, который можно воспроизвести Действием игрока "Воспроизвести звук".
Примеры использования
- Создание обучающего сообщения, голограммы или скорборда;
- Проверка имён, сообщений и других текстовых значений;
- Установка в текстовую переменную звуковых ID для дальнейшего воспроизведения.
Числовая переменная
Числовая переменная поддерживает только цифры и используется для настройки числовых параметров, типа времени в мира или установки урона игроку. При написании "P" или "E", числовая переменная принимает значение соответствующих чисел π и e.
В настройках времени чаще всего используются не секунды, а тики (1 секунда = 20 тиков). Для экономии времени, числовая переменная поддерживает использование "число+s-m-h (second-minute-hour)", что сразу конвертирует указанное время в тики. Пример: 1m = 1200 тиков.
Примеры использования
- Настройка числовых параметров игрока и мира;
- Установка счёта строки в скорборде;
- Установка задержки в действиях "Ждать", "Отправить диалог" и других.
Местоположение
Местоположение способно хранить в себе координаты и направление взгляда. Необходимая вещь в действиях с блоками, а также для создания 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, имя которого будет обозначать никнейм лидера, а созданная голограмма под именем - количество убийств.