[Гайд] Автоматическое управление светом с помощью возможностей 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качиваний: 7) .

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

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

Реклама:




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

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

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


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

    Круто, Пять.


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

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


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

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


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

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

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

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



  6. ТруЪ Олдфаги-с
    Зарегистрирован: 9.07.2012
    Репутация
    (+1084.41048,3-36.1)
    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) | Комментариев: 73 | Новостей: 4 |
    • 0

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



 
Ваше Имя:
  • the-manvitalyapumbapekagustaololoshapokerface
    ololoshanikoloskrovjopagoritgopnikcreepy-troll
    bombanuloanatoliyjewishbadumtssbatrollface
    bayandudecomeonmemefemaleseriouslyneveralonenothingtodohere
    numbsadfsadtrollfacetrolldadwinthistimeclear
    yesmingfupizdynaxezmetall
    pacanypeka-facepikap-masterpoker-face2redface
    rzhakacat-lolDa-nu-nafigfrayna-uchi
    OhGodoh-god-whyponimaeshShto-zaso-close
    so-much-winsurprised-cattrue-storyWTF2voobscheto
    pticapleasepetrosyanpacanohfuck
    irodidisudaheystopityouGTFOefacepalm
    dosvidaniyableayouthful-fearten-guyrage-no-whyyy
    NewspaperGuyTearNewspaperGuyHighhappy-dolangonna
    geniusCerealGuySquintCerealGuyAngryAww-Yeahchallenge-failed
    Determlesqueemisc-alloh_godoh-stop-it-you
    omega-troll-faceotdubpedobearpoker-facerainbow-face
    sincere-trollSlowpokeruka-licopfffnudaeIII
    nikolosneutralmBinimposhappyf
    begomaccepted-drunkbad-poker-facecereal-guycereal-guy-spitting
    chanconcentrateddance-jumpevil-smilefap
    flipfreddie-mercurygreat-scotthappyherp-derp
    jesuslied-lightme-gusta-creepymichelle-not-badnerd
    non2no-whyyyover-heresad-cryingseriously
    staresurprised-kidsurprised-omgwatching-uyou-did-there
    3a_4tokrutoymiloMother_of_godNoris
    not_badot_kompaparkerpovarprelest
    spravedlivomil2big trollbuueeedefault
    fack yeahforever alone2krainyaa stepenkrasnie glazaLOL2
    nravitsaokeyreshitelentrollxD
    zanyatmilanonimbrezguetdefault2
    default3forever aloneHmmmegafffuuumegayeah
    ololoshaOMGshok trollwomen trollwomen
    zadumalsya
Докажи, что не робот:*

 

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

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

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

3JIou_Kpunep

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

Ответов: 114533

Автор: Капут-противогаз

Сегодня, 18:05

VanillaCraft - лучший сервер без привата!

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

MrMaga

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

Ответов: 155

Автор: MrMaga

Сегодня, 15:49

Проблема с шейдерами и моделькой Стива

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

BACABI7

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

Ответов: 0

Автор: BACABI7

Сегодня, 13:51

GamePoint - Получи настоящее удовольствие от игры в MineCraft!

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

Big_Energy

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

Ответов: 6

Автор: MrMaga

Сегодня, 13:08

Ищу админа для небольшого частного сервера "для своих"

Тема в разделе: Частные, домашние, Hamachi сервера

Zelder

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

Ответов: 22

Автор: Dezertir009

Сегодня, 13:03