[Гайд] Автоматическое управление светом с помощью возможностей Minecraft 1.9

[Гайд] Автоматическое управление светом с помощью возможностей Minecraft 1.9

Версия для многопользовательской игры

Недавно я публиковал небольшой гайд о новых возможностях командных блоков. Как я в нём упоминал, ничего особенно нового введено не было, но зато разработка механизмов теперь выполняется намного проще и быстрей. Пообещав рассмотреть примеры, я, в общем-то, не соврал. Сегодня мы посмотрим на разобранный мной пример системы автоматического управления светом, которая понадобилась мне при создании одного из моих проектов... Знакома ли Вам система освещения в современных подъездах? Когда свет включается только при чьём-либо движении, после некоторое время остаётся включённым, а при прекращении движения через определённое количество времени отключается. Полагаю, да. Именно этот механизм мы и попытаемся создать с помощью новых возможностей Minecraft 1.9.

Для начала стоит задуматься о том, какие статистики нам потребуются для реализации предложенной задачи. Напомню, что нам придётся отслеживать (а) движение игрока и (б) то время, через которое перестанет работать освещение. Посмотрим, как можно лаконично создать соответствующие ранее обозначенные статистики:

  • (а) Создадим статистику перемещений «AutoLight» с критерием «stat.walkOneCm», которая будет изменяться тогда, когда игрок пройдёт некоторое расстояние;
    /scoreboard objectives add AutoLight stat.walkOneCm
  • (б) Создадим статистику таймера «AutoLightTimer» с критерием «dummy», которую мы будем изменять самостоятельно.
    /scoreboard objectives add AutoLightTimer dummy


Отлично! Теперь нам нужно задуматься: всегда ли мы должны ориентироваться лишь на движение игрока? Разумеется, нет. Нам необходимо также знать, находится ли игрок на той территории, где его будет обнаруживать «камера движения». Для этого, на два блока ниже нужного нам пространства установим лазуритовые блоки. Они будут для нас ориентиром. Также стоит отметить, что виртуальное освещение будет включаться путём установки в определённое место блока из красного камня (его координаты определим условно как 1 2 3).

Приступим к детальному изучению механизма. Командные блоки следует располагать: (а) в предложенном порядке, чтобы стрелка каждого предыдущего командного блока направлялась в следующий; (б) предложенного типа; (в) с предложенными вариациями модификаторов. Если соблюдать предложенные условия, подготовить место (установив на необходимой глубине лазуритовые блоки), а также создать необходимые статистики, то всё будет прекрасно работать.

Тип (картинка)МодификаторыКомандаОбъяснение
УсловностьАктивность
1Безусловная (Unconditional)«Всегда активен» (Always Active)
/execute @a[score_AutoLight_min=1] ~ ~ ~ detect ~ ~-2 ~ minecraft:lapis_block 0 /scoreboard players tag @p add AL
Добавляем тег «AL» тем игрокам, у которых в статистике перемещений «AutoLight» есть как минимум одно очко (т. е. тем, кто двигался) и под которыми на два блока ниже есть лазуритовый блок (т. е. тем, кто оказался в зоне видимости нашей «камеры движения»).
2Условная (Conditional)«Всегда активен» (Always Active)
/setblock 1 2 3 minecraft:redstone_block
Устанавливаем блок из красного камня (т. е. включаем освещение). Так как данный командный блок в режиме цепочки имеет условную вариацию модификатора, он будет срабатывать только тогда, когда сработает предыдущий командный блок в режиме цепочки (т. е. тогда, когда мы найдём нужных нам игроков).
3Безусловная (Unconditional)«Всегда активен» (Always Active)
/scoreboard players add @a[tag=AL] AutoLightTimer 1
Добавляем одно очко в статистику таймера «AutoLightTimer» тем игрокам, у которых есть тег «AL». Так как данный командный блок в режиме цепочки имеет безусловную вариацию модификатора, каждый игровой такт игрокам с соответствующим тегом будет добавляться одно очко в наш таймер.
4 Безусловная (Unconditional) «Всегда активен» (Always Active)
/scoreboard players tag @a[score_AutoLightTimer_min=100] remove AL
Забираем тег «AL» у тех игроков, у которых в статистике таймера «AutoLightTimer» набралась как минимум сотня очков (т. е. тогда, когда прошло сто игровых тактов, мы забираем у отслеживаемых игроков тег). Так как данный командный блок в режиме цепочки имеет безусловную вариацию модификатора, проверка будет производиться каждый игровой такт.
5 Безусловная (Unconditional) «Всегда активен» (Always Active)
/scoreboard players set @a[score_AutoLightTimer_min=100] AutoLightTimer 0
Данный командный блок обнуляет таймер у тех игроков, у которых в статистике таймера «AutoLightTimer» есть как минимум сотня очков (т. е. у тех игроков, которые выждали сто игровых тактов). Так как данный командный блок в режиме цепочки имеет безусловную вариацию модификатора, проверка будет производиться каждый игровой такт.
6 Условная (Conditional) «Всегда активен» (Always Active)
/setblock 1 2 3 minecraft:air
Убираем блок из красного камня (ставим воздух; отключаем освещение). Так как данный командный блок в режиме цепочки имеет условную вариацию модификатора, он сработает только тогда, когда игроки выждут сто игровых тактов.
7 Безусловная (Unconditional) «Всегда активен» (Always Active)
/scoreboard players set @a[score_AutoLight_min=1] AutoLight 0
Сбрасываем статистику перемещений «AutoLight» у всех игроков, у которых в ней есть как минимум одно очко. Так как данный командный блок в режиме цепочки имеет безусловную вариацию модификатора, это действие будет производиться каждый игровой такт.


Модификатор активности отдельно не комментировался. С ним всё совершенно очевидно.

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

Скачать:auto-light.zip [180,51 Kb] (cкачиваний: 13) .

Теперь о некоторых дополнительных моментах. Во-первых, если игрок в зоне видимости нашей «камеры движения» продолжит двигаться по истечению таймера в сто игровых тактов, может быть заметно мерцание блока, так как в один игровой такт блок из красного камня убирают, в другой — ставят. Для того, чтобы избавиться от этой проблемы, на месте выхода сигнала из блока из красного камня я рекомендую поставить повторитель с максимальной задержкой. Такой повторитель не будет успевать гаснуть во время быстрых замен, потому мерцания нашего освещения не будет. Во-вторых, в данном механизме отслеживается только перемещение на обычной скорости (из-за использования в статистике перемещений «AutoLight» критерия «stat.walkOneCm»). Это сделано для упрощения схемы. Также, механизм работает в многопользовательской версии игры.

В принципе, это всё. Надеюсь, что эта схема будет кому-то полезна.

Реклама:




Голосуй за новость:
(+21.3520,9-0.45)
  • Просмотров: 2 077
  • Комментариев: 7
Рекомендуемое для Вас:

  1. Олдфаги
    Зарегистрирован: 1.02.2015
    Репутация
    (+443.6367,4-76.2)
    HerrManelling | Пользователь offline | (19 июня 2016 20:34) | Комментариев: 358 | Новостей: 5 |
    • +4

    Читать, конечно, не стану, ибо подобным не интересуюсь, но явно видно, что Фаменушка старался. women Ну шо сказать? Как всегда отлично. women
    -----------------------------------------------------------------------------
    Sag' das Zauberwort und du hast die Macht

    Дискорд-сервер


  2. Картоделы
    Зарегистрирован: 19.12.2015
    Репутация
    (+23.511,3-12.2)
    Hapyl | Пользователь offline | (19 июня 2016 20:37) | Комментариев: 105 | Новостей: 7 |
    • -1

    Круто, Пять.


  3. Картоделы
    Зарегистрирован: 21.02.2016
    Репутация
    (+8.7-7,5-16.2)
    Nick_Demn | Пользователь offline | (20 июня 2016 08:47) | Комментариев: 41 | Новостей: 4 |
    • 0

    Нормег Гайдег
    Пятёрка


  4. Просто хорошие люди
    Зарегистрирован: 27.03.2016
    Репутация
    (+70.565,2-5.3)
    5 0 0 0 | Пользователь offline | (20 июня 2016 11:47) | Комментариев: 38 | Новостей: 0 |
    • +1

    моча какая-то пятый мем
    -----------------------------------------------------------------------------
    даблецкий JЕРДNЫ а может БЫТЬ И НЕТ


  5. ТруЪ Олдфаги-с
    Зарегистрирован: 9.11.2013
    Репутация
    (+228.7166,7-62.0)
    golovorez3000 | Пользователь offline | (20 июня 2016 16:51) | Комментариев: 855 | Новостей: 23 |
    • -1

    5 мем, как от редстоунера.
    -----------------------------------------------------------------------------
    Набор в строительную команду карт на прохождение! Лучшая карта от русских разработчиков!
    Мой Ютуб канал - TrioCraft

    Цитата: Astron
    Залезть обратно я имел ввиду в собачье гавно глист картавый

    Цитата: Astron
    я просто прошу тебя засунуть все свои гавно слова себе в анальное отверстие где то на см так 10 и при каждом их выходе запихивать обратно



  6. ТруЪ Олдфаги-с
    Зарегистрирован: 9.07.2012
    Репутация
    (+1094.21057,9-36.3)
    overstalker | Пользователь offline | (20 июня 2016 19:14) | Комментариев: 1 849 | Новостей: 54 |
    • 0

    *присвистнул*
    Пятёра.
    -----------------------------------------------------------------------------


    Покровитель/кошмар бездны. По настроению.


  7. Просто хорошие люди
    Зарегистрирован: 13.06.2014
    Репутация
    (+28.428,3-0.1)
    OtakuMaster | Пользователь offline | (20 июня 2016 22:30) | Комментариев: 74 | Новостей: 3 |
    • 0

    Цитата: HerrManelling
    Читать, конечно, не стану, ибо подобным не интересуюсь, но явно видно, что Фаменушка старался. women Ну шо сказать? Как всегда отлично. women
    -----------------------------------------------------------------------------


Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Последние сообщения с форума

Название темы Автор Статистика Последнее сообщение
Форумный чат

Тема в разделе: Чат флудилка

3JIou_Kpunep

Просмотров: 7776620

Ответов: 135256

Автор: Allexx

Сегодня, 22:21

Анархия. Сервер Майнкрафт без привата и правил.

Тема в разделе: Проекты

dementiacreator

Просмотров: 78

Ответов: 11

Автор: Father

Сегодня, 21:55

ECHO - Terra Incognita

Тема в разделе: Карта "в разработке"

MrDanklark

Просмотров: 4234

Ответов: 139

Автор: MrCommandBlock

Сегодня, 18:55

Слетели достижения и статистика.

Тема в разделе: Ваши вопросы по Minecraft

N1C0L4Y

Просмотров: 25

Ответов: 0

Автор: N1C0L4Y

Сегодня, 09:44

Дэвид Боуи

Тема в разделе: Музыка

lendorlight

Просмотров: 429

Ответов: 6

Автор: Oksana Drotschko

Вчера, 22:19