Переменные: различия между версиями
| Quasari (обсуждение | вклад) | Quasari (обсуждение | вклад)  м (Quasari переименовал страницу Участник:Quasari/Переменные в Переменные) | ||
| (не показано 13 промежуточных версий этого же участника) | |||
| Строка 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> === | ||
| В зависимости от наличия плейсхолдера и его типа, динамическая переменная получит один из двух типов: | В зависимости от наличия плейсхолдера и его типа, динамическая переменная получит один из двух типов: | ||
| *'''Глобальная переменная''' - динамическая переменная, в названии которой отсутствует плейсхолдер и которая существует одна на весь мир. | *'''Глобальная переменная''' - динамическая переменная, в названии которой отсутствует плейсхолдер и которая существует одна на весь мир. | ||
| Строка 87: | Строка 89: | ||
| **'''%victim%''' - плейсхолдер меняется в зависимости от того, кого бьёт игрок в событиях нанесения урона. Если взять событие "Игрок нанёс игроку урон" и в нём присваивать значение переменной "%victim% var", то будет меняться значение динамической переменной жертвы. | **'''%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, имя которого будет обозначать никнейм лидера, а созданная голограмма под именем - количество убийств.
Массив
Массив простыми словами - список с уникальным именем, в котором у каждого значения свой номер, именуемый индексом, по которому можно брать из массива значение и использовать его в коде.
У массива есть два типа сохранения:
- Временный - массив, который пропадает после остановки мира.
- Постоянный - массив, который не пропадает после остановки мира.
Изменение и использование массива
Изменить массив можно действием создания с заранее заданными значениями или действиями добавления новых:
- Очистить / Создать массив;
- Вставить / Заменить элемент массива;
- Добавить в конец массива.
После создания или изменения массива, в последующим необходимым будет использование его значений. Чтобы взять из массива значение, необходимо знать его индекс и использовать действие "Получить элемент массива". Взятое значение будет сохранено в отдельную динамическую переменную.
Примеры использования массива в коде
Лидерборд
Используя добавление в массив, его сортировку и выборку по количество убийств.
Очистка мира
Используя добавление координат в массив, а позже рекурсивной фунцией устанавить пустой блок на каждую координату в массиве.

