В данном гайде постараюсь подробно обьянить как сделать аирдроп с рандомной местоположением и рандомным заполнением предметов.
Если понравилась тема ставьте лайк
Переписать код займет приблизно пол часика
Код спавнит аирдроп в рандомном месте карты с таймером, после спавна аирдроп падает с 255 высоты и приземляется. После приземление аирдроп еще не открыт, и игрок должен подождать чтобы аирдроп открылся 3 минуты. После чего аирдроп заполняется абсолютно рандомными предметами в рандомных слотах сундука. Все предметы, время, места спавна можно менять в коде. Также можно сделать чтобы время аирдропа шло только если в мире 2 игрока
Код идет в 5 строк
1 - Событие, запуск всех необходимых циклов
2 - Событие, запрет на открытие сундука если аирдроп еще не открыт
3 - Цикл, спавн аирдропа и таймер до его появления.
4 - Цикл, время до открытия аирдропа
5 - Функция, рекурсивная функция которая заполняет аирдроп рандомными предметами.
Код писал 2.5 часа на скорую руку, если найдутся ошибки в коде или же грамотные ошибки и опечатки сообщите мне в ответе.
1 - Событие, запуск всех необходимых циклов
2 - Событие, запрет на открытие сундука если аирдроп еще не открыт
3 - Цикл, спавн аирдропа и таймер до его появления.
4 - Цикл, время до открытия аирдропа
5 - Функция, рекурсивная функция которая заполняет аирдроп рандомными предметами.
Перед тем как кодить циклы - их нужно запустить.
Код:
Событие Вход игрока
Начать цикл (air_time)
Если переменая = (@airdrop_open@, no) [
Начать цикл (airdrop_spawn)
]
Код чтобы игроки не могли открывать аирдроп до его открытия
Код:
Событие игрока Взаимодейст с блоком
Если игрок Тип взаим. действ. с блоком (Правый клик по блоку) [
Если игрок Блок равен (null, @airdrop_cordinats@) [
Если переменая = (airdrop_open, no) [
Отменить событие
Сообщение игрока (&cАирдроп еще не открыт!)
]
]
]
Код на спавн аирдропа и таймер в виде галограммы. (Самый большой код)
Код:
Цикл air_time 20
Выбрать обьект случайный игрок -- Если вы хотите чтобы цикл работал только когда 2 игрока в мире то добавьте перед всем кодом проверку Сравнить числа легко (Игровое значение количество игроков >= 2)
Присв. переменую -= (@a_secs@, 1)
Если переменая сравнить числа легко (@a_secs@ <= 0) [
Присв. переменую -= (@a_mins@, 1)
Присв. переменую = (@a_secs@, 60)
Если переменая сравнить числа легко (@a_mins@ <= 0) [
Игровое действие поставить блок (null, null, null, @airdrop_cordinats@)
Присв. переменую = (@airdrop_spawned@, yes)
Присв. переменую = (@a_mins@, 19)
Присв. переменую = (@as_minutes@, 4)
Присв. переменую = (@airdrop_open@, no)
Присв. переменую установить случайное значение (@ax, 159, 212) -- ВАЖНО нужно указать кординаты X от которых до которых может спавнится аирдроп
Присв. переменую установить случайное значение (@az, 49, 96) -- ВАЖНО нужно указать кординаты Z от которых до которых может спавнится аирдроп
Присв. переменую уст. знач. в мест. (airdrop_cordinats, местоположение, null, null, @az, 255, @az) {Режим установки x/y/z Замены =} -- В местоположении нужно указать любые кординаты в мире
Игровое действие спавн моба (Житель, airdrop_cordinats, &c&lАИРДРОП, 1, 1, 0, 000.1, 0, 1, Невидимость, null, null, Красная шерсть) {Не получает урон, Звуки Нет, Должна светится, Не должна исчезать, Отображать частицы Нет}
Игровое действие ждать (140) {В тиках}
Выбрать обьект моб по условию имя равно (&c&lАИРДРОП) {Не учитывать, Не учитывать}
Присв. переменую = (@airdrop_cordinats@, Игровое значение текущее местоположение)
Действие игрока удалить сущность `Выборка`
Выбрать обьект случайный игрок
Игровое действие пставить блок (null, Сундук, null, @airdrop_cordinats@
Присв. переменую значение из мест. (@air_y, @airdrop_cordinats@)
Присв. переменую округлить число (@air_y, @air_y) {Обычное округление}
Присв. переменую обьединить текст (@visual_cordinats@, &d Кординаты аирдропа:, ax, air_y, az) {Разделение пробелом}
Присв. переменую = (@airdrop_open@, no)
Игровое действие начать цикл (airdrop_spawn)
]
]
-- Заметьте то что последущий код пишется вне скобок
Присв. переменую обьединить текст (@holo_text, &dАирдроп:, a_mins, м., a_secs, с.) {Разделение пробелом}
Игровое действие удалить голограмму (airtime)
Игровое действие создать голограмму (кординаты голограммы, airtime, &a&lВремя до спавна аирдропа, @holo_text)
Если значение = (airdrop_open, no) [
Присв. переменую уст. знач. в мест. (@airdrop_cordinats2, @airdrop_cordinats@, null, null, null, 255, null) {Режим установки Y +=}
Частицы линия (Частица редстоун, @airdrop_cordinats@, @airdrop_cordinats2)
Ждать (10) {В тиках}
Частицы линия (Частица редстоун, @airdrop_cordinats@, @airdrop_cordinats2)
]
Код чтобы открыть аирдроп спустя 3 минуты
Код:
Цикл airdrop_spawn
Выбрать обьект случайный игрок
Если значение = (@airdrop_spawned@, yes) [
Присв. переменую -= (@as_minutes@, 1)
Если переменая = (@as_minutes@, 3) [
Действие игрока отправить сообщение `Все` (&a&l Аирдроп заспавнился, @visual_cordinats@, &e Откроется через 3 минуты) {Разделение новой строкой}
Действие игрока проиграть звук `Все` (entity.experience_orb.pickup)
]
Если переменая = (@as_minutes@, 2) [
Действие игрока отправить сообщение `Все` (&a&l Аирдроп, @visual_cordinats@, &e Откроется через 2 минуты) {Разделение новой строкой}
]
Если переменая = (@as_minutes@, 1) [
Действие игрока отправить сообщение `Все` (&a&l Аирдроп, @visual_cordinats@, &e Откроется через 1 минуту) {Разделение новой строкой}
Действие игрока проиграть звук `Все` (entity.experience_orb.pickup)
]
Если переменая = (@as_minutes@ <= 0) [
Действие игрока отправить сообщение `Все` (&a&l&n АИРДРОП ОТКРЫЛСЯ, @visual_cordinats@) {Разделение новой строкой}
Действие игрока проиграть звук `Все` (entity.experience_orb.pickup)
Присв. переменую = (@airdrop_open@, yes)
Присв. переменую = (@airdrop_in, 0)
Вызвать функцию (airdrop)
Остановить цикл (airdrop_spawn)
]
]
Код:
Функция airdrop
Присв. переменую += (@airdrop_in, 1)
Присв. переменую случайное число (@airdrop_slot, 1, 27)
Присв. переменую установить предмет (@item1, желанный предмет)
Присв. переменую установить предмет (@item2, желанный предмет)
Присв. переменую установить предмет (@item3, желанный предмет)
... -- Код можно продолжать до того как не закончится строка
Если значение сравнить числа легко (airdrop_in <= 10) [ -- Вместо 10 можно поставить любое число, число будет означать сколько раз будет повторятся функция
Присв. переменую случайное значение (item, item1, item2, item3, ...) -- нужно указать переменые которые вы выше присвоили
Игровое действие установить предметы (@airdrop_cordinats@, @item, null, @aidrop_slot)
Игровое действие ждать (1) {В тиках}
Вызвать функцию (airdrop)
]
() - Что находится внутри сундука
[] - Скобки, в коде майнленда это поршни
{} - Что выбрать в переключателе
`` - Что появляется после Шифт + ПКМ по табличке
"" - Только текст
# - Перед значением означает то что это массив
# - Перед и после значением означает то что это постоянный массив
-- После строки - коментарий автора
@ - Перед значением означает то что это динамическая переменная
@ - Перед и после значения означает то что это сохраненая динамическая переменная
Если значение содержит буквы то это текст, если содержит только цифры то это число
Остальные переменые в коде обозначаются ихними названиями, к примеру Игровое значение местоположение игрока или же Эффект редстоун
[] - Скобки, в коде майнленда это поршни
{} - Что выбрать в переключателе
`` - Что появляется после Шифт + ПКМ по табличке
"" - Только текст
# - Перед значением означает то что это массив
# - Перед и после значением означает то что это постоянный массив
-- После строки - коментарий автора
@ - Перед значением означает то что это динамическая переменная
@ - Перед и после значения означает то что это сохраненая динамическая переменная
Если значение содержит буквы то это текст, если содержит только цифры то это число
Остальные переменые в коде обозначаются ихними названиями, к примеру Игровое значение местоположение игрока или же Эффект редстоун
Переписать код займет приблизно пол часика
Чтобы перейти по гайду тыкни по нему
[ГАЙД] Предупреждение игроку с причиной (#warn, @warn)
[ГАЙД] Система плотов с выгрузкой
[ГАЙД] Команда на перевод валюты @pay [ник] [сумма]
[ГАЙД] Топы
[ГАЙД] Предупреждение игроку с причиной (#warn, @warn)
[ГАЙД] Система плотов с выгрузкой
[ГАЙД] Команда на перевод валюты @pay [ник] [сумма]
[ГАЙД] Топы
Вложения
Последнее редактирование: