Переменные: различия между версиями
Quasari (обсуждение | вклад) (Закончена основа раздела обычных переменных и начато создание основы раздела про динамические переменные.) |
Quasari (обсуждение | вклад) м (Quasari переименовал страницу Участник:Quasari/Переменные в Переменные) |
||
(не показано 14 промежуточных версий этого же участника) | |||
Строка 6: | Строка 6: | ||
Значение таким переменным, как Местоположение и Динамическая переменная, устанавливаются иначе: | Значение таким переменным, как Местоположение и Динамическая переменная, устанавливаются иначе: | ||
*С помощью блока-функции "Присвоить переменную", можно установить значение Динамической переменной: | *С помощью блока-функции "Присвоить переменную", можно установить значение Динамической переменной: | ||
− | **Общие действия установки значения | + | **Общие действия установки значения; |
− | **Математические действия | + | **Математические действия; |
− | **Действия с текстами | + | **Действия с текстами; |
**Действия с координатами. | **Действия с координатами. | ||
*Чтобы установить значение переменной "Местоположение", необходимо перейти в основной мир: | *Чтобы установить значение переменной "Местоположение", необходимо перейти в основной мир: | ||
**'''ЛКМ''' - Телепортироваться в обычный мир/Телепортироваться в код. | **'''ЛКМ''' - Телепортироваться в обычный мир/Телепортироваться в код. | ||
**'''ПКМ''' - Сохранить в переменную текущую координату игрока. | **'''ПКМ''' - Сохранить в переменную текущую координату игрока. | ||
− | **'''Шифт + ЛКМ''' - Телепортироваться к сохранённой координате | + | **'''Шифт + ЛКМ''' - Телепортироваться к сохранённой координате. |
**'''ПКМ по блоку''' - Сохранить в переменную координату кликнутого блока. | **'''ПКМ по блоку''' - Сохранить в переменную координату кликнутого блока. | ||
== Список переменных == | == Список переменных == | ||
=== <big>Текстовая переменная</big> === | === <big>Текстовая переменная</big> === | ||
− | Текст поддерживает все текстовые символы и цветовые кода. Текст невозможно использовать как Число, однако текстовое значение можно превратить в числовое, используя | + | Текст поддерживает все текстовые символы и цветовые кода. Текст невозможно использовать как Число, однако текстовое значение можно превратить в числовое, используя действие "Парсить число". |
− | Также этой переменной можно установить звуковой ID, который можно воспроизвести | + | Также этой переменной можно установить звуковой ID, который можно воспроизвести Действием игрока "Воспроизвести звук". |
==== Примеры использования ==== | ==== Примеры использования ==== | ||
− | *Создание обучающего сообщения, голограммы или скорборда | + | *Создание обучающего сообщения, голограммы или скорборда; |
− | *Проверка имён, сообщений и других текстовых значений | + | *Проверка имён, сообщений и других текстовых значений; |
*Установка в текстовую переменную звуковых ID для дальнейшего воспроизведения. | *Установка в текстовую переменную звуковых ID для дальнейшего воспроизведения. | ||
=== <big>Числовая переменная</big> === | === <big>Числовая переменная</big> === | ||
Числовая переменная поддерживает только цифры и используется для настройки числовых параметров, типа времени в мира или установки урона игроку. При написании "P" или "E", числовая переменная принимает значение соответствующих чисел '''π''' и '''e'''. | Числовая переменная поддерживает только цифры и используется для настройки числовых параметров, типа времени в мира или установки урона игроку. При написании "P" или "E", числовая переменная принимает значение соответствующих чисел '''π''' и '''e'''. | ||
− | В настройках времени чаще всего используются не секунды, а тики (1 секунда = 20 тиков). Для экономии времени, числовая переменная поддерживает использование "число+s-m-h (second-minute-hour)", что сразу конвертирует указанное время в тики. | + | В настройках времени чаще всего используются не секунды, а тики (1 секунда = 20 тиков). Для экономии времени, числовая переменная поддерживает использование "число+s-m-h (second-minute-hour)", что сразу конвертирует указанное время в тики. Пример: 1m = 1200 тиков. |
==== Примеры использования ==== | ==== Примеры использования ==== | ||
− | *Настройка числовых параметров игрока и мира | + | *Настройка числовых параметров игрока и мира; |
− | *Установка счёта строки в скорборде | + | *Установка счёта строки в скорборде; |
*Установка задержки в действиях "Ждать", "Отправить диалог" и других. | *Установка задержки в действиях "Ждать", "Отправить диалог" и других. | ||
=== <big>Местоположение</big> === | === <big>Местоположение</big> === | ||
Местоположение способно хранить в себе координаты и направление взгляда. Необходимая вещь в действиях с блоками, а также для создания GUI. | Местоположение способно хранить в себе координаты и направление взгляда. Необходимая вещь в действиях с блоками, а также для создания GUI. | ||
==== Примеры использования ==== | ==== Примеры использования ==== | ||
− | *Установка двух координат для выделения и последующего заполнения, копирования и т.д | + | *Установка двух координат для выделения и последующего заполнения, копирования и т.д; |
− | *Установка координаты для создания GUI | + | *Установка координаты для создания GUI; |
*Проверка местонахождения игрока, ломаемого блока, блока на месте взгляда и т.п. | *Проверка местонахождения игрока, ломаемого блока, блока на месте взгляда и т.п. | ||
=== <big>Зелье</big> === | === <big>Зелье</big> === | ||
− | Данная переменная способна хранить в себе любые зелья, даже не создаваемые. Присутствует возможность настраивать силу и длительность эффекта. Чтобы указать длительность, необходимо взять переменную в руки и написать в чат "m+s (4:20), а чтобы указать силу, нужно сделать то же самое, но уже написав обычное число, которое и будет обозначать силу эффекта. | + | Данная переменная способна хранить в себе любые зелья, даже не создаваемые. Присутствует возможность настраивать силу и длительность эффекта. Чтобы указать длительность, необходимо взять переменную в руки и написать в чат "m+s (4:20)", а чтобы указать силу, нужно сделать то же самое, но уже написав обычное число, которое и будет обозначать силу эффекта. |
==== Примеры использования ==== | ==== Примеры использования ==== | ||
− | *Достижение эффекта моргания с помощью установки Слепоты | + | *Достижение эффекта моргания с помощью установки Слепоты; |
− | *Увеличение или уменьшение скорости копания, скорости, урона и т.д | + | *Увеличение или уменьшение скорости копания, скорости, урона и т.д; |
*Возможность избежать использование нелогичных источников света с помощью Ночного зрения. | *Возможность избежать использование нелогичных источников света с помощью Ночного зрения. | ||
=== <big>Игровое значение</big> === | === <big>Игровое значение</big> === | ||
Игровое значение поддерживает значения сущности, события и игры. Подобная информация может пригодится в различных статистиках, потому что содержит всегда актуальную информацию. | Игровое значение поддерживает значения сущности, события и игры. Подобная информация может пригодится в различных статистиках, потому что содержит всегда актуальную информацию. | ||
==== Примеры использования ==== | ==== Примеры использования ==== | ||
− | *Информационный скорборд со статистикой игры | + | *Информационный скорборд со статистикой игры; |
− | *Кастомный чат со значением "Сообщение игрока" | + | *Кастомный чат со значением "Сообщение игрока"; |
*Наблюдение за нагрузкой кода с помощью "Счётчика выполненных действий". | *Наблюдение за нагрузкой кода с помощью "Счётчика выполненных действий". | ||
=== <big>Эффект частицы</big> === | === <big>Эффект частицы</big> === | ||
Более 50 частиц помогут разнообразить игру, добавив следы убийства, ходьбы и т.д. | Более 50 частиц помогут разнообразить игру, добавив следы убийства, ходьбы и т.д. | ||
==== Примеры использования ==== | ==== Примеры использования ==== | ||
− | *Следы различных действий игрока | + | *Следы различных действий игрока; |
− | *Обозначение снаряда в векторном оружии | + | *Обозначение снаряда в векторном оружии; |
*Использование как косметику. | *Использование как косметику. | ||
+ | |||
== Динамическая переменная == | == Динамическая переменная == | ||
− | '''Динамическая переменная''' - переменная, которая является не просто заранее указанным значением, а условной "коробкой", содержимое (значение) которого можно оперативно менять | + | '''Динамическая переменная''' - переменная, которая является не просто заранее указанным значением, а условной "коробкой", содержимое (значение) которого можно оперативно менять. |
− | === Изменение значения динамической переменной === | + | === <big>Изменение значения динамической переменной</big> === |
Динамической переменной в игре изначально не существует, и чтобы она появилась, необходимо присвоить ей значение с помощью блока-функции "Присвоить переменную". Только после получения значения, динамическая переменная появится в игре и будет служить хранилищем данных. | Динамической переменной в игре изначально не существует, и чтобы она появилась, необходимо присвоить ей значение с помощью блока-функции "Присвоить переменную". Только после получения значения, динамическая переменная появится в игре и будет служить хранилищем данных. | ||
На данный момент, у динамической переменной 4 вида присвоения значения: | На данный момент, у динамической переменной 4 вида присвоения значения: | ||
*Общая (прямая) установка значения: | *Общая (прямая) установка значения: | ||
− | **"Установить" (=) и "Установить предмет" | + | **"Установить" (=) и "Установить предмет"; |
− | **"Установить количество/количество/название..." | + | **"Установить количество/количество/название..."; |
**"Установить случайное значение" из заранее заготовленных. | **"Установить случайное значение" из заранее заготовленных. | ||
*Математические действия: | *Математические действия: | ||
− | **Умножить, поделить, вычесть, сложить | + | **Умножить, поделить, вычесть, сложить; |
− | **Прибавить или убавить | + | **Прибавить или убавить; |
− | ** | + | **Сгенерировать случайное число между двумя числами. |
*Действия с текстом: | *Действия с текстом: | ||
− | **Объединить тексты | + | **Объединить тексты; |
− | **Узнать длину строки в символах | + | **Узнать длину строки в символах; |
**Парсить число. (Превратить текст с числовым значением в числовую переменную) | **Парсить число. (Превратить текст с числовым значением в числовую переменную) | ||
− | |||
*Действия с координатами: | *Действия с координатами: | ||
− | **Узнать расстояние между двумя координатами | + | **Узнать расстояние между двумя координатами; |
− | **Взять одно из трёх значений указанной координаты | + | **Взять одно из трёх значений указанной координаты; |
**Изменить одно из значений координаты. | **Изменить одно из значений координаты. | ||
+ | Чтобы динамическая переменная не потеряла своё значение после остановки игры, её необходимо сохранить. Для этого нужно взять динамическую переменную в руки и нажать '''ШИФТ + ПКМ''', после чего, у динамической переменной появится статус "'''СОХРАНЕНО'''" | ||
− | + | [[Файл:Сохр. динамическая переменная.png|безрамки|396x396пкс]] | |
− | === Типы динамических переменных === | + | === <big>Типы динамических переменных</big> === |
В зависимости от наличия плейсхолдера и его типа, динамическая переменная получит один из двух типов: | В зависимости от наличия плейсхолдера и его типа, динамическая переменная получит один из двух типов: | ||
*'''Глобальная переменная''' - динамическая переменная, в названии которой отсутствует плейсхолдер и которая существует одна на весь мир. | *'''Глобальная переменная''' - динамическая переменная, в названии которой отсутствует плейсхолдер и которая существует одна на весь мир. | ||
*'''Локальная переменная''' - динамическая переменная, в названии которой присутсвует плейсхолдер и значение которой зависит от него. Возьмём три разных плейсхолдера: '''%player%, %victim%''' и '''%selected%''': | *'''Локальная переменная''' - динамическая переменная, в названии которой присутсвует плейсхолдер и значение которой зависит от него. Возьмём три разных плейсхолдера: '''%player%, %victim%''' и '''%selected%''': | ||
**'''%player%''' - чаще всего используется в строчках кода без выборки, в которых присвоить переменную надо обычному игроку, от лица которого сработало событие кода. При изменении динамической переменной "%player% var", изменится динамическая переменная 'Player1 var'. | **'''%player%''' - чаще всего используется в строчках кода без выборки, в которых присвоить переменную надо обычному игроку, от лица которого сработало событие кода. При изменении динамической переменной "%player% var", изменится динамическая переменная 'Player1 var'. | ||
− | **'''%victim%''' - плейсхолдер меняется в зависимости от того, кого бьёт игрок в событиях нанесения урона. | + | **'''%victim%''' - плейсхолдер меняется в зависимости от того, кого бьёт игрок в событиях нанесения урона. Если взять событие "Игрок нанёс игроку урон" и в нём присваивать значение переменной "%victim% var", то будет меняться значение динамической переменной жертвы. |
**'''%selected%''' - плейсхолдер, который может хранить в себе не только 1 сущность. Если выбрать всех игроков с помощью блока-функции "Выбрать объект", то при присваивании значения переменной "%selected% var", у переменных всех выбранных игроков поменяется значение. | **'''%selected%''' - плейсхолдер, который может хранить в себе не только 1 сущность. Если выбрать всех игроков с помощью блока-функции "Выбрать объект", то при присваивании значения переменной "%selected% var", у переменных всех выбранных игроков поменяется значение. | ||
+ | ===<big>Использование динамических переменных</big>=== | ||
+ | Использование динамических переменных обязательно в профессионально созданной игре, поскольку без неё не могут работать такие интересные механики, как статистика игрока, лидерборд, таймер, списки и другие, более сложные и интересные коды. | ||
+ | ====Статистика игрока==== | ||
+ | Когда игрок совершает какое-либо действие, например, убийство, к его локальной динамической переменной "'''%player% kills'''" прибавляется единица, которая означает одно совершённое действие. Подобную статистику можно отобразить разными способами коммуникации, но самым распространённым является скорборд. | ||
+ | |||
+ | <code>Событие игрока — Убийство игрока -> Присвоить переменную — Прибавить (+=) - %player%_kills += 1 (Число)</code> | ||
+ | |||
+ | После обновления лидера по убийствам, можно спавнить NPC, имя которого будет обозначать никнейм лидера, а созданная голограмма под именем - количество убийств. | ||
+ | == Массив == | ||
+ | '''Массив''' простыми словами - список с уникальным именем, в котором у каждого значения свой номер, именуемый индексом, по которому можно брать из массива значение и использовать его в коде. | ||
+ | |||
+ | У массива есть два типа сохранения: | ||
+ | * '''Временный''' - массив, который пропадает после остановки мира. | ||
+ | * '''Постоянный''' - массив, который не пропадает после остановки мира. | ||
+ | === Изменение и использование массива === | ||
+ | Изменить массив можно действием создания с заранее заданными значениями или действиями добавления новых: | ||
+ | * Очистить / Создать массив; | ||
+ | * Вставить / Заменить элемент массива; | ||
+ | * Добавить в конец массива. | ||
+ | После создания или изменения массива, в последующим необходимым будет использование его значений. Чтобы взять из массива значение, необходимо знать его индекс и использовать действие "Получить элемент массива". Взятое значение будет сохранено в отдельную динамическую переменную. | ||
+ | === Примеры использования массива в коде === | ||
+ | ==== Лидерборд ==== | ||
+ | Используя добавление в массив, его сортировку и выборку по количество убийств. | ||
+ | ==== Очистка мира ==== | ||
+ | Используя добавление координат в массив, а позже рекурсивной фунцией устанавить пустой блок на каждую координату в массиве. |
Текущая версия на 23:13, 23 апреля 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 (Число)
После обновления лидера по убийствам, можно спавнить NPC, имя которого будет обозначать никнейм лидера, а созданная голограмма под именем - количество убийств.
Массив
Массив простыми словами - список с уникальным именем, в котором у каждого значения свой номер, именуемый индексом, по которому можно брать из массива значение и использовать его в коде.
У массива есть два типа сохранения:
- Временный - массив, который пропадает после остановки мира.
- Постоянный - массив, который не пропадает после остановки мира.
Изменение и использование массива
Изменить массив можно действием создания с заранее заданными значениями или действиями добавления новых:
- Очистить / Создать массив;
- Вставить / Заменить элемент массива;
- Добавить в конец массива.
После создания или изменения массива, в последующим необходимым будет использование его значений. Чтобы взять из массива значение, необходимо знать его индекс и использовать действие "Получить элемент массива". Взятое значение будет сохранено в отдельную динамическую переменную.
Примеры использования массива в коде
Лидерборд
Используя добавление в массив, его сортировку и выборку по количество убийств.
Очистка мира
Используя добавление координат в массив, а позже рекурсивной фунцией устанавить пустой блок на каждую координату в массиве.