[Гайд] Автоматическое управление светом с помощью возможностей Minecraft 1.9
Версия для многопользовательской игры
Недавно я публиковал небольшой гайд о новых возможностях командных блоков. Как я в нём упоминал, ничего особенно нового введено не было, но зато разработка механизмов теперь выполняется намного проще и быстрей. Пообещав рассмотреть примеры, я, в общем-то, не соврал. Сегодня мы посмотрим на разобранный мной пример системы автоматического управления светом, которая понадобилась мне при создании одного из моих проектов. Знакома ли Вам система освещения в современных подъездах? Когда свет включается только при чьём-либо движении, после некоторое время остаётся включённым, а при прекращении движения через определённое количество времени отключается. Полагаю, да. Именно этот механизм мы и попытаемся создать с помощью новых возможностей Minecraft 1.9.
Для начала стоит задуматься о том, какие статистики нам потребуются для реализации предложенной задачи. Напомню, что нам придётся отслеживать (а) движение игрока и (б) то время, через которое перестанет работать освещение. Посмотрим, как можно лаконично создать соответствующие ранее обозначенные статистики:
Отлично! Теперь нам нужно задуматься: всегда ли мы должны ориентироваться лишь на движение игрока? Разумеется, нет. Нам необходимо также знать, находится ли игрок на той территории, где его будет обнаруживать «камера движения». Для этого, на два блока ниже нужного нам пространства установим лазуритовые блоки. Они будут для нас ориентиром. Также стоит отметить, что виртуальное освещение будет включаться путём установки в определённое место блока из красного камня (его координаты определим условно как 1 2 3).
Приступим к детальному изучению механизма. Командные блоки следует располагать: (а) в предложенном порядке, чтобы стрелка каждого предыдущего командного блока направлялась в следующий; (б) предложенного типа; (в) с предложенными вариациями модификаторов. Если соблюдать предложенные условия, подготовить место (установив на необходимой глубине лазуритовые блоки), а также создать необходимые статистики, то всё будет прекрасно работать.
| № | Тип (картинка) | Модификаторы | Команда | Объяснение | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Условность | Активность | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1 | ![]() | Безусловная (Unconditional) | «Всегда активен» (Always Active) | Добавляем тег «AL» тем игрокам, у которых в статистике перемещений «AutoLight» есть как минимум одно очко (т. е. тем, кто двигался) и под которыми на два блока ниже есть лазуритовый блок (т. е. тем, кто оказался в зоне видимости нашей «камеры движения»). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2 | ![]() | Условная (Conditional) | «Всегда активен» (Always Active) | Устанавливаем блок из красного камня (т. е. включаем освещение). Так как данный командный блок в режиме цепочки имеет условную вариацию модификатора, он будет срабатывать только тогда, когда сработает предыдущий командный блок в режиме цепочки (т. е. тогда, когда мы найдём нужных нам игроков). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3 | ![]() | Безусловная (Unconditional) | «Всегда активен» (Always Active) | Добавляем одно очко в статистику таймера «AutoLightTimer» тем игрокам, у которых есть тег «AL». Так как данный командный блок в режиме цепочки имеет безусловную вариацию модификатора, каждый игровой такт игрокам с соответствующим тегом будет добавляться одно очко в наш таймер. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4 | ![]() | Безусловная (Unconditional) | «Всегда активен» (Always Active) | Забираем тег «AL» у тех игроков, у которых в статистике таймера «AutoLightTimer» набралась как минимум сотня очков (т. е. тогда, когда прошло сто игровых тактов, мы забираем у отслеживаемых игроков тег). Так как данный командный блок в режиме цепочки имеет безусловную вариацию модификатора, проверка будет производиться каждый игровой такт. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5 | ![]() | Безусловная (Unconditional) | «Всегда активен» (Always Active) | Данный командный блок обнуляет таймер у тех игроков, у которых в статистике таймера «AutoLightTimer» есть как минимум сотня очков (т. е. у тех игроков, которые выждали сто игровых тактов). Так как данный командный блок в режиме цепочки имеет безусловную вариацию модификатора, проверка будет производиться каждый игровой такт. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6 | ![]() | Условная (Conditional) | «Всегда активен» (Always Active) | Убираем блок из красного камня (ставим воздух; отключаем освещение). Так как данный командный блок в режиме цепочки имеет условную вариацию модификатора, он сработает только тогда, когда игроки выждут сто игровых тактов. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 7 | ![]() | Безусловная (Unconditional) | «Всегда активен» (Always Active) | Сбрасываем статистику перемещений «AutoLight» у всех игроков, у которых в ней есть как минимум одно очко. Так как данный командный блок в режиме цепочки имеет безусловную вариацию модификатора, это действие будет производиться каждый игровой такт. Модификатор активности отдельно не комментировался. С ним всё совершенно очевидно. Если попытаться разобраться, всё окажется очень и очень просто. Потому, я публикую карту с данным механизмом, где Вы сможете опробовать его лично, а также изучить команды без моих комментариев. Теперь о некоторых дополнительных моментах. Во-первых, если игрок в зоне видимости нашей «камеры движения» продолжит двигаться по истечению таймера в сто игровых тактов, может быть заметно мерцание блока, так как в один игровой такт блок из красного камня убирают, в другой — ставят. Для того, чтобы избавиться от этой проблемы, на месте выхода сигнала из блока из красного камня я рекомендую поставить повторитель с максимальной задержкой. Такой повторитель не будет успевать гаснуть во время быстрых замен, потому мерцания нашего освещения не будет. Во-вторых, в данном механизме отслеживается только перемещение на обычной скорости (из-за использования в статистике перемещений «AutoLight» критерия «stat.walkOneCm»). Это сделано для упрощения схемы. Также, механизм работает в многопользовательской версии игры. В принципе, это всё. Надеюсь, что эта схема будет кому-то полезна. Minecraft WikiИз-за новой политики Microsoft в отношении сторонних ресурсов, Minecraft Wiki больше не является официальной. В связи с этим были внесены некоторые изменения, в том числе и обновлён логотип вики-проекта. Подробности на нашем Discord-сервере. ЭффектЭффекты могут быть получены от употребления зелий, использования взрывающихся, оседающих зелий и стрел, еды, взаимодействия с мобами, при нахождении рядом с маяком и некоторыми другими способами. СодержаниеОбщая информация [ ]Эффекты разнообразными способами воздействуют на игроков и мобов в течение некоторого времени (некоторые эффекты действуют мгновенно; если заставить игру применить эти эффекты более чем на 1 такт, они будут применяться каждый такт). С Beta 1.9-pre2 игроки могут посмотреть свои активные эффекты зелий в инвентаре, а с Beta 1.9-pre4 от игроков и мобов исходят спиралевидные частицы, цвет которых зависит от активных эффектов. Одновременно может быть активно любое количество эффектов, даже противоположных по влиянию (например, эффекты силы и слабости). Нельзя получить несколько одинаковых эффектов в один момент времени, но если игрок получит эффект, больший или равный по уровню эффекту, который у него уже есть, новый эффект заменит/обновит старый. При попытке выпить зелье с более слабой версией эффекта, чем активный, зелье будет использовано, но не даст эффект. Максимальный уровень эффекта — 256, минимальный — 1. Список эффектов [ ]Эффекты имеют два параметра: продолжительность и уровень, от которого зависит сила эффекта. Minecraft WikiИз-за новой политики Microsoft в отношении сторонних ресурсов, Minecraft Wiki больше не является официальной. В связи с этим были внесены некоторые изменения, в том числе и обновлён логотип вики-проекта. Подробности на нашем Discord-сервере. Свет (англ. Light) в Minecraft влияет на видимость, спаун мобов и выращивание растений. Есть два типа света: небесный свет, который обеспечивается солнцем, и блочный свет. СодержаниеЯркость [ ]Кривые освещения. Горизонтальная ось — блочный свет, вертикальная — небесный свет. Существует 16 уровней освещенности, которые задаются целым числом от 0 (минимум) до 15 (максимум). В игре используется уровень освещенности блока для вычисления яркости данного блока. Свет полностью монохроматичен и не может быть по-настоящему цветным. Яркость блока зависит как от уровня освещенности других блоков, так и от уровня небесного света. Обратите внимание, что «небесный свет» здесь не уменьшается ночью, вместо этого сама кривая яркости изменяется в зависимости от времени. При этом он соответствует значению освещения неба на экране отладки. В общем, освещение из-за блоков приводит к более высокой яркости, которая уравновешивается тем фактом, что свет из-за блоков эффективно начинается с 14 (сплошные блоки источника света излучают уровень 15, но это для самого блока источника света), в то время как яркость небесного света 15. Свет из-за блоков также имеет тенденцию к оранжевому в средних диапазонах, в то время как свет неба в дневное время верхнего мира белый. В верхнем мире с настройкой яркости «Тёмный» полный дневной свет достигает яркости 98 %. Полная темнота составляет около 5 % яркости. В Аду, освещение неба не играет роли, поскольку нет источника неба (хотя, если бы он был, он достиг бы яркости около 99 %. Полная темнота с настройкой яркости «Тёмный» составляет около 25 % яркости, немного темнее, чем уровень блочного освещения, равный 7. Затенена в сторону оранжевого цвета. В Крае, небесное освещение не сыграло бы никакой роли, даже если бы был источник небесного света; это также видно, если в энде вызывается молния, вспышки яркости нет, как в других измерениях. Полная темнота в энде с настройкой яркости «Тёмный» составляет около 28 % яркости и затенена в сторону голубовато-зеленого. Распространение [ ]
Свет от светоизлучающих блоков уменьшается на один уровень света на каждый метр (блок) от источника света. Обратите внимание, что это относится к каждой из 3 осей. Другими словами, свет уменьшается по диагонали на сумму расстояния вдоль каждой оси. Это означает, что если факел (уровень 14) установлен на полу, уровень освещенности соседних блоков пола во всех четырёх направлениях равен 13, а у диагональных блоков во всех четырёх направлениях уровень освещенности 12 (например, 14 минус 1 юг, минус 1 восток). Вдоль пола этот эффект создает ромбовидный рисунок освещения вокруг источника света. Свет также может распространяться по сложным извилистым путям, если он заблокирован непрозрачными блоками, используя своего рода алгоритм. Помните, что уменьшение света происходит в трех измерениях. Это означает, что если факел (уровень 14) установлен на стене на расстоянии одного блока от пола, то блок на полу, который находится по диагонали на расстоянии одного блока (то есть не касается стены), имеет уровень освещенности 11 (например, 14 минус 1 юг, минус 1 восток, минус 1 вниз). Источники света [ ]Сравнение различных уровней света, которые излучают блоки. Блоки [ ]Следующие значения являются яркостью самого блока:
Блоки света [ ]Блоки света имеют ассоциированное значение от 0 до 15 включительно. Когда помещены как блок, они производят этот уровень света. Другое [ ]
Светофильтрующие блоки [ ]Как лёд влияет на свет. Нажмите, чтобы увидеть его между льдом и водой. Непрозрачные блоки препятствуют распространению света; 21 × 21 квадрата из непрозрачного материала достаточно для появления мобов в тени под ними. Напротив, некоторые прозрачные блоки, такие как стекло и железные решётки не влияют на уровень освещенности. Все остальные прозрачные блоки уменьшают распространение света. Листья и паутина не оказывают никакого дополнительного эффекта на блочный свет, но они рассеивают свет неба. Это означает, что под этими блоками уровень небесного света уменьшается на 1 для каждого блока расстояния вниз, начиная с препятствия. В Java Edition вода имеет тот же эффект. Этот эффект можно ясно увидеть, создав непрозрачную трубу 1 × 1 с листьями или паутиной у её отверстия сверху. Следующие значения — это величина, на которую каждый блок уменьшает значение освещенности. Испускаемый свет уменьшается на единицу для каждого блока расстояния от источника света, больше в зависимости от блока, через который он проходит.
Эффекты света [ ]Примечание: Имейте в виду, что уровень освещенности — это только одно из соображений, касающихся моба и роста растений. Блоки [ ]Другое [ ]
Мягкое освещение [ ]Разница между включенным сглаженным освещением и выключенным. Мягкое освещение, а также интерполяция освещения по граням блоков — это механизм освещения, который смешивает уровни света и затемняет углы, чтобы добавить полуреалистичные тени и свечение от источников света. Он влияет только на то, как мир отображается на экране, а не на то, как блоки рассчитывают уровень освещенности, поэтому он не влияет на спаун мобов или рост урожая. Он включен по умолчанию. Картины и вода не затрагиваются. ( MC-1531 ) [ только для Java Edition ] В Bedrock Edition, плавное освещение может быть включено или выключено в настройках видео, доступ к которым осуществляется из меню настроек. В Java Edition, он имеет три настройки: минимальный, максимальный или выключен и может быть изменён путем доступа к параметрам видео. История [ ]Проблемы [ ]Отчёты об ошибках, связанных с «Свет», поддерживаются в системе отслеживания ошибок Mojira. Сообщайте о найденных ошибках там (на английском языке). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||




.png)
.png)
.png)


