Index.php?title=Курс для новичков

Материал из ML WIKI

«Курс для новичков» будет полезен людям, делающим первые шаги в Редакторе игр. Здесь собраны самые базовые темы, которые необходимы для создания самых примитивных режимов, к примеру: PvP-Parkour, MagmaBlock, Parkour, Survival и прочее.

Внешний вид игры

Внешний вид игры делится на 3 подпункта:

  • World example.png
    Название игры должно вкратце описывать саму игру. Чем индивидуальнее и красочнее название игры, тем больше внимания она будет привлекать. Для украшения игры можно использовать Unicode символы и различные цвета (посмотреть список всех доступных цветов можно командой /colors)
  • Описание игры должно описывать игру. Отфильтруйте слова-паразиты и оставьте только самое важное. Создать вторую, третью... строку можно с помощью \n в конце предложения.
  • Иконка игры играет немаловажную роль. Чем ярче и необычнее иконка, тем больше внимания она будет привлекать.

Описание блоков-функций

Блоки-функции можно разделить на 3 класса:

Категории

Событие

Данную категорию имеют 3 блока-функций: Событие игрока, Блок цикла, Функция. Важная особенность этих блоков в том, что они ставятся только вначале строки, т. е. исключительно на голубое стекло.

Условие

Данную категорию имеют 5 блока-функций: Если игрок, Если переменная, Если существо, Если игра, Иначе. Данные блоки ставятся только на серое стекло.

Действие

Данную категорию имеют 5 блока-функций: Действие игрока, Игровое действие, Установить переменную, Выбрать объект, Вызвать функцию. Данные блоки ставятся только на серое стекло.

Функционал

Событие игрока

Категория: Событие

При выполнении определённого события, которое можно указать в самом блоке, будет активироваться код, который идёт после Событие игрока.

Если игрок

Категория: Условие

Если игрок проверяет, выполнил ли игрок определённое условие, которое можно указать в самом блоке. В случае выполнения, код, который стоит между поршнями, будет активирован.

Действие игрока

Категория: Действие

Действие игрока позволяет манипулировать игроком - телепортировать, отправлять сообщения, менять здоровье, наносить урон и т.д.

Игровое действие

Игровое действие.png

Категория: Действие

Игровое действие ещё можно назвать Управление миром. Оно позволяет создавать голограммы, менять игровое время, спавнить мобов/NPC/предметы, создавать эффекты, менять/создавать/убирать блоки и т.д.

Присвоить переменную

Категория: Действие

Присвоить переменную позволяет менять значение Динамической переменной - установить определённое значение, изменить определённое значение, перезаписать и т.д.

Если переменная

Категория: Условие

Если переменная позволяет проверять значение Динамической переменной. Если Динамическая переменная имеет такое же значение, как и в Если переменная, то код, который стоит между поршнями, будет активирован.

Если существо

Если существо.png

Категория: Условие

Если существо позволяет узнать, где находится существо, какого типа является моб, на чём стоит существо, является ли он снарядом и т.д. Если существо выполнит определённые условия, указанные в Если существо, то код, который стоит между поршнями, будет активирован.

Выбрать объект.png

Выбрать объект

Категория: Действие

Выбрать объект позволяет выбрать определённый объект и работать с ним. Выбирать можно игроков, мобов, NPC, снаряды, предметы, которые валяются на земле. Чтобы произвести какое-либо действие над объектом, сразу после Выбрать объект надо поставить само действие. К примеру, для телепортации выбранного игрока, после Выбрать объект надо поставить Действие игрока Телепортация.

Если игра

Категория: Условие

Если игра позволяет производить глобальные проверки, такие как: блок равен, контейнер содержит предмет, табличка содержит текст. Если условие, заданное в Если игра выполнилось, то код, который стоит между поршнями, будет активирован.

Иначе

Категория: Условие

Если сущность не выполнила определённое условие, то код, который стоит между поршнями иначе, будет активирован. К примеру: если в Если игрок Имя равно указать определённый Ник, а после Если игрок поставить иначе, то если другой игрок попытается выполнить это действие, будет активирован код, который между поршнями Иначе.

Вызвать функцию

Вызвать функцию.gif

Категория: Действие

Вызвать функцию позволяет вызывать код, который есть в Функция. Вызвать функцию позволяет экономить место. Если в разных частях кода нужно использовать один и тот же код, то вместо дублирования кода в этих местах, достаточно написать код в Функция и затем поставить Вызвать функцию в месте, где нужен повторяющийся код.

Функция

Функция.png

Категория: Событие

Функция может хранить в себе код также, как и Событие игрока или Цикл, однако в неё нельзя поставить Событие игрока или Цикл. Код, написанный в Функция, может быть вызван с помощью Вызвать функцию.

Цикл

Категория: Событие

Цикл.png

Цикл повторяет один и тот же код с определённым промежутком. Промежуток можно отрегулировать с помощью кликов по табличке. ПКМ по табличке - увеличивает промежуток на 1 тик; Шифт и ПКМ - уменьшает промежуток на 1 тик.

1 секунда = 20 тиков. Если взять Переменную Число, ввести в неё число и нажать по табличке, то промежуток станет идентичен числу Переменной Число. Максимально минимальный промежуток - 5 тиков.

Синтаксис

Синтаксис это правильная расстановка блоков-функций, то-есть что за чем идёт и как оно идёт.

1. Блоки-функции с категорией "Событие" всегда ставятся только вначале (на голубое стекло);

2. Блоки-функции с категорией "Условие" и "Действие" ставятся только на светло-серое стекло;

3. Поршни - пределы условия. Если Действие нужно выполнять только при достижении определённого условия, то Действие нужно поставить между поршнями;

4. Условий может быть много, главное, чтобы при установки Условия ставилось 2 поршня (то-есть ставились пределы условия);

5. Код, который идёт после Выбрать объект, будет выполняться над выбираемым объектом;

6. Блок-функция Иначе ставится только после поршня Условия;

Плейсхолдеры

Плейсхолдер (от англ. Placeholder «Заменитель») - функция, позволяющая держать определённую информацию об определённом игроке. Плейсхолдер используется для сохранения количества убийств, смертей, пройденных блоков, сделанных действий и т.д.

Плейсхолдеры можно поделить на 2 типа.

  1. Интегрированный - вшит в саму блок-функцию. Достаточно зажать Shift и нажать ПКМ по табличке Действие игрока или Если игрок.
  2. Внешний - создаётся с помощью Динамической переменной или Текст. Всего есть 10 плейсхолдеров:
    1. %player% - Выбор игрока от которого исполняется код
    2. %damager% - Выбор игрока который ударил какую либо сущность
    3. %victim% - Жертва, кого ударил %damager%
    4. %killer% - Убийца из события
    5. %selected% - Выборка которая выбирает игроков по отдельности (игрок1: = числу2. игрок2: = числу 2. И т.д.)
    6. %selection% - работает как %selected%, но создаёт отдельную переменную с никами игроков в выборке. (игрок1, игрок2, игрок3: = числу 4)
    7. %shooter% - Тот, кто стрельную из лука в какую либо сущность
    8. %default% - заменяется на имя моба или игрока который стоит там "по умолчанию"
    9. %entity% - выбирает имя энтити
    10. %random% - выбирает рандома

Самые популярные и нужные плейсхолдеры - %player% и %victim%. Другие же используются в более продвинутом кодинге.

Создание кодов

После освоения базовых знаний о редакторе игры и синтаксисе, можно приступить к созданию самих кодов. Самое лёгкое обучение - смотреть на результат кода, а дальше попытаться воплотить это у себя в игре. Если код не удалось воссоздать. то можно подсмотреть.

PvP-Parkour

Один из самых нашумевших игр. Его цель - пройти паркур и получить предметы, благодаря которым можно сражаться с игроками.

Для выдачи предметов игроку нужно задействовать 3 блока-функций - Событие игрока, Если игрок, Действие игрока. Сам код будет выглядеть следующем образом:

Событие игрока Правая кнопка --> Если игрок Смотрит на --> Действие игрока Выдать предметы.

Более детально: Событие игрока Правая кнопка [запускает код, если игрок нажмёт ПКМ] --> Если игрок Смотрит на | блок или местоположение [данное условие будет проверять блок, на который нажал игрок] --> Действие игрока Выдать предметы | в сундук положить предметы, которые игрок получит [выдаёт предметы].

Важный момент, связанный с Если игрок Смотрит на.

  1. Блок функция Действие игрока должна быть внутри Если игрок Смотрит на, то-есть между поршнями, иначе игрок будет получать предметы при каждом нажатии ПКМ вне зависимости от блока;
  2. В верхние слои сундука Если игрок Смотрит на можно положить только блоки, а в нижние только Местоположение. Если положить блок, то, вне зависимости от местонахождения блока (проще говоря - на любой блок одинакового типа), код будет срабатывать. Если положить Местоположение, то игрок будет получать предметы только, если нажмёт ПКМ на тот самый выделенный блок.

Код, который выше, является основой всех PvP-Parkour. Теперь, допустим, надо сделать особенный блок, кликнув на который только владелец игры/выбранные им игроки смогут получать предметы.

Событие игрока --> Если игрок Смотрит на --> Если игрок Имя равно --> Действие игрока Выдать предметы.

Более детально: Событие игрока Правая кнопка [запускает код] --> Если игрок Смотрит на | блок или местоположение [проверка блока] --> Если игрок Имя равно | в сундук положить Текст со своим ником/ником игрока, который будет иметь доступ [проверяет, кто именно выполняет действие. В случае совпадения ников - продолжает код, в случае несовпадения - ничего не делает] --> Действие игрока Выдать предметы | в сундук положить предметы, которые игрок получит [выдаёт предметы].

Если игрок заходит в игру, то приятно будет сказать ему "Привет, приятной игры!".

Событие игрока Вход --> Действие игрока Сообщение.

Более детально: Событие игрока Вход [запускает код, когда игрок заходит в игру] --> Действие игрока Сообщение | в сундук Текст с названием "Привет, приятной игры!" [выводит сообщение в чат].

Данное сообщение увидит только тот игрок, который зашёл в мир. Также можно использовать разные цвета (список всех цветов: /colors). К примеру: "&6&lПривет, приятной игры!".

Будет крайне обидно, если игрок потеряет все предметы после перезахода в игру, однако это можно исправить.

Событие игрока Выход --> Действие игрока Сохранить инвентарь;

Событие игрока Вход --> Действие игрока Загрузить инвентарь;

Более детально: Событие игрока Выход [запускает код, когда игрок выходит из игры] --> Действие игрока Сохранить инвентарь [сохраняет нынешние предметы, которые находятся у игрока в инвентаре];

Событие игрока Вход [запускает код, когда игрок заходит в игру] --> Действие игрока Загрузить инвентарь [выдаёт игроку предметы, которые у него были при выходе из мира];

Убийство игрока (очки)

Сохранение инвентаря