Переменные: различия между версиями

Материал из ML WIKI
(Закончена основа раздела обычных переменных и начато создание основы раздела про динамические переменные.)
Строка 56: Строка 56:
 
*Обозначение снаряда в векторном оружии.
 
*Обозначение снаряда в векторном оружии.
 
*Использование как косметику.
 
*Использование как косметику.
 +
== Динамическая переменная ==
 +
'''Динамическая переменная''' - переменная, которая является не просто заранее указанным значением, а условной "коробкой", содержимое (значение) которого можно оперативно менять. Динамическая переменная является неотъемлемой частью кода профессионально созданных игр, которая служит хранилищем кастомных значений игрока, частью таймеров, псевдомассивов и других очень важных механик игры.
 +
=== Изменение значения динамической переменной ===
 +
Динамической переменной в игре изначально не существует, и чтобы она появилась, необходимо присвоить ей значение с помощью блока-функции "Присвоить переменную". Только после получения значения, динамическая переменная появится в игре и будет служить хранилищем данных.
 +
 +
На данный момент, у динамической переменной 4 вида присвоения значения:
 +
*Общая (прямая) установка значения:
 +
**"Установить" (=) и "Установить предмет"
 +
**"Установить количество/количество/название..."
 +
**"Установить случайное значение" из заранее заготовленных.
 +
*Математические действия:
 +
**Умножить, поделить, вычесть, сложить.
 +
**Прибавить или убавить.
 +
**Установить случайное число.
 +
*Действия с текстом:
 +
**Объединить тексты.
 +
**Узнать длину строки в символах.
 +
**Парсить число. (Превратить текст с числовым значением в числовую переменную)
 +
**Действия с координатами.
 +
*Действия с координатами:
 +
**Узнать расстояние между двумя координатами.
 +
**Взять одно из трёх значений указанной координаты.
 +
**Изменить одно из значений координаты.
 +
 +
Чтобы динамическая переменная не потеряла своё значение после остановки игры, её необходимо сохранить. Для этого нужно взять динамическую переменную в руки и нажать '''ШИФТ + ПКМ''', после чего, у динамической переменной появится статус "'''СОХРАНЕНО'''"
 +
=== Типы динамических переменных ===
 +
В зависимости от наличия плейсхолдера и его типа, динамическая переменная получит один из двух типов:
 +
*'''Глобальная переменная''' - динамическая переменная, в названии которой отсутствует плейсхолдер и которая существует одна на весь мир.
 +
*'''Локальная переменная''' - динамическая переменная, в названии которой присутсвует плейсхолдер и значение которой зависит от него. Возьмём три разных плейсхолдера: '''%player%, %victim%''' и '''%selected%''':
 +
**'''%player%''' - чаще всего используется в строчках кода без выборки, в которых присвоить переменную надо обычному игроку, от лица которого сработало событие кода. При изменении динамической переменной "%player% var", изменится динамическая переменная 'Player1 var'.
 +
**'''%victim%''' - плейсхолдер меняется в зависимости от того, кого бьёт игрок в событиях нанесения урона.  Если взять событие "Игрок нанёс игроку урон" и в нём присваивать значение переменной "%victim% var", то будет меняться значение динамической переменной жертвы.
 +
**'''%selected%''' - плейсхолдер, который может хранить в себе не только 1 сущность. Если выбрать всех игроков с помощью блока-функции "Выбрать объект", то при присваивании значения переменной "%selected% var", у переменных всех выбранных игроков поменяется значение.

Версия 04:56, 31 марта 2022

Переменная — значение, которым настраиваются блоки-функции путём установки переменных в нужные слоты.

Установка значения в переменную

Чтобы установить значение переменной, необходимо:

  • Держать переменную в руке и написать нужное значение в чат. (Книга и Число)
  • Кликнуть переменной ПКМ и выбрать из данных. (Зелье, Игровое значение и Частица)

Значение таким переменным, как Местоположение и Динамическая переменная, устанавливаются иначе:

  • С помощью блока-функции "Присвоить переменную", можно установить значение Динамической переменной:
    • Общие действия установки значения.
    • Математические действия.
    • Действия с текстами.
    • Действия с координатами.
  • Чтобы установить значение переменной "Местоположение", необходимо перейти в основной мир:
    • ЛКМ - Телепортироваться в обычный мир/Телепортироваться в код.
    • ПКМ - Сохранить в переменную текущую координату игрока.
    • Шифт + ЛКМ - Телепортироваться к сохранённой координате
    • ПКМ по блоку - Сохранить в переменную координату кликнутого блока.

Список переменных

Текстовая переменная

Текст поддерживает все текстовые символы и цветовые кода. Текст невозможно использовать как Число, однако текстовое значение можно превратить в числовое, используя действия "Парсить число".

Также этой переменной можно установить звуковой 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", у переменных всех выбранных игроков поменяется значение.