[Гайд] CommandBlock Journal (1): стартовый

CommandBlock Journal

Выпуск первый: стартовый

В данной рубрике будут публиковаться все выпуски нового журнала на сайте, получившего название «CommandBlock Journal». Как несложно догадаться, это — своеобразная газета, сборник новостей, интересных приёмов, а также ответы на вопросы, заданные в комментариях к предыдущему выпуску. Задумка в том, чтобы каждый узнает для себя что-то новое или освежит уже имеющиеся у него знания.

Сегодня хотелось бы рассмотреть сразу несколько крайне интересных тем. Мы будем разбираться в работе операторах системы счёта событий (scoreboard), рассматривать замок, реализованный на рамке, а сразу после перейдём к вопросам! Усаживайтесь поудобней!

Итак, предлагаю начать с объявленной ранее темы — различным операциям, которые мы можем выполнять со значениями игроков в различных статистиках.

Операции с системой счёта событий

Для начала взглянем на краткие характеристики данного раздела:

Сложность освоенияСсылка на первоисточникВерсия для применения
СредняяMinecraft WIKI (английский)1.8 («Bountiful Update»)

История системы счёта игровых событий (scoreboard) начинается в версии 1.5. И на тот момент это было действительно революционное нововведение. Раньше хранить и анализировать данные можно было максимум в опыте игрока. Никаких других возможностей, по сути. Оставались лишь механические конструкции, громоздкие счётчики и модули памяти... И вдруг стало возможным хранить и проверять любую информацию о любом игроке, ещё и привязывая её к определённым игровым событиям. Потрясающе! Великолепно! Это было невероятно удобно и просто. Давайте для примера создадим некоторую статистику:

/scoreboard objectives add RedTeam dummy (*)

А теперь ещё одну, словно притворившись, что мы затеяли создать некую игру с несколькими командами — красной и синей:

/scoreboard objectives add BlueTeam dummy

Просто замечательно! Теперь у нас его две команды и, например, по два игрока в каждой из них. Скажем, в красной будут находиться игроки Bob и Peter, а в синейStephan и Alex. Зададим им некоторые очки по итогам игры:

/scoreboard players set Bob RedTeam 12
/scoreboard players set Peter RedTeam 13
/scoreboard players set Stephan BlueTeam 14
/scoreboard players set Alex BlueTeam 15

И вроде как у нас всё прекрасно. Мы храним все необходимые нам данные, можем их проверять, выводить... Но как определённым данным взаимодействовать друг с другом? Как, например, сложить все очки у игроков из одной команды и затем сравнить результаты? Не хватало в версии 1.5 только возможностей выполнять различные операции с определёнными целями в рамках системы счёта игровых событий (scoreboard). Но в 1.8 эту проблему устранили полностью, добавив нам операторы. Рассмотрим синтаксис:

/scoreboard players operation <цельПервая> <статистикаЦелиПервой> <операция> <цельВторая> <статистикаЦелиВторой>

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

НазваниеОписание
1+=Сложить значения
2-=Вычесть значения
3*=Умножить значения
4/=Разделить значения
5%=Установить остаток от деления
6=Присвоить значение
7<Присвоить в случае, если счётчик второй цели меньше счётчика первой цели
8>Присвоить в случае, если счётчик второй цели больше счётчика первой цели
9><Поменять значения местами

Вот, в принципе, и вся система операторов. Крайне удобна в решении повседневных задач. На ней, к примеру, можно достаточно просто реализовать знаменитую задачу с переливанием воды. Пусть это будет своеобразным домашним заданием для тех, кто только сейчас узнал о возможностях операторов.

Кодовый замок на рамке

Для начала взглянем на краткие характеристики данного раздела:

Сложность освоенияСсылка на первоисточникВерсия для применения
СредняяСобственная идея и видео Кронда1.9 («Combat Update»)

Недавно у меня возникла достаточно интересная потребность — создать кодовый замок на основе рамки. Я увидел несколько путей реализации, но в итоге, после проверок и размышлений, оказалось, что будет работать всего один из них. Ну а пока я лучше попытаюсь объяснить суть, предложив различные варианты решения, которые пришли ко мне в голове в самый первый момент.

Итак, в чём заключается задача? Имеется рамка с некоторым предметом внутри. Игрок может свободно её поворачивать. Установив предмет в рамке в правильном положении, игрок нажимает на кнопку подтверждения. Это положение предмета — словно цифра в коде. Мы продолжаем «набирать его», а затем, после достижения необходимого количества составляющих кода, механизм либо выполняет некоторое действие (если код правильный), либо сбрасывает попытку ввода (в противоположном случае). Что можно придумать для решения такой задачи?

Первое, что приходит в голову — выдавать теги. Т. е. тег pos0 в случае, если у предмета в рамке NBT-тег поворота ItemRotation равен 0b. Но возникает несколько вполне логичных проблем: мы не можем ввести одно составляющее кода два раза, мы не можем определить порядок ввода.

И, если отвергнуть этот, и многие другие похожие варианты решения задачи, мы придём к сочетанию нескольких проверок положения рамки, установки блока и проверке кода отдельной частью механизма. Рассмотрим такой вариант более подробно. Итак. От кнопки сигнал идёт к нескольким модулям проверки положения предмета в рамке:

/testfor @e[x=0,y=0,z=0,r=1,type=ItemFrame] {ItemRotation:0b}
/testfor @e[x=0,y=0,z=0,r=1,type=ItemFrame] {ItemRotation:1b}
... (*)

После этого от каждого такого командного блока должен идти условный командный блок в режиме цепочки, который установит на определённые координаты, скажем, одну из вариаций глины:

/setblock 0 0 0 minecraft:stained_hardened_clay 0
/setblock 0 0 0 minecraft:stained_hardened_clay 1
...

А куда мы устанавливаем блоки глины? В то место, откуда они мгновенно, вместе с предыдущими блоками глины будут перемещены на один блок по одной из осей координат. В итоге мы получим четыре блока глины. Последний из них активирует цепочку, которая сразу проверит соответствие получившегося кода эталону, выполнит в этом случае определённые действия... А в самом конце, вне зависимости от исхода проверки, сбросит нашу попытку ввода, убрав пользовательские блоки глины. Попробуйте разобраться самостоятельно:

Google Drivehttps://drive.google.com/open?id=0By4WSCPS0ESfRENudlNoeTlibkU.

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

Ответы на вопросы

Увы, это — только первый выпуск журнала «CommandBlock Journal», вопросов пока нет. Впрочем, это не отменяет того факта, что их можно совершенно свободно задавать в комментариях.

Оставляйте оценки! На этом всё, удачи! Пока!


Реклама:




Голосуй за новость:
(+26.3326,13-0.20)
  • Просмотров: 1 967
  • Комментариев: 16
Рекомендуемое для Вас:

  1. Просто хорошие люди
    Зарегистрирован: 7.08.2015
    Репутация
    (+54.151,8-2.3)
    MrMaga | Пользователь offline | (26 июля 2016 19:45) | Комментариев: 80 | Новостей: 14 |
    • 0

    оформлено прекрасно! 5 мем
    -----------------------------------------------------------------------------



    IP: mc.vanilla-craft.ru



  2. Просто хорошие люди
    Зарегистрирован: 30.01.2014
    Репутация
    (+25.421,4-4.0)
    etojeVadosk | Пользователь offline | (26 июля 2016 20:24) | Комментариев: 130 | Новостей: 8 |
    • +2

    Самая красивая новость за всю историю румине
    -----------------------------------------------------------------------------




  3. Модератор
    Зарегистрирован: 2.06.2013
    Репутация
    (+1063.91050,2-13.7)
    Капут-противогаз | Пользователь offline | (26 июля 2016 21:05) | Комментариев: 1 801 | Новостей: 100 |
    • +2

    Фомин?

    5 мем
    -----------------------------------------------------------------------------
    Мой сайт
    Эпизоды


  4. Олдфаги
    Зарегистрирован: 16.10.2012
    Репутация
    (+600.2558-42.2)
    frendly herobrin rus | Пользователь offline | (26 июля 2016 21:11) | Комментариев: 508 | Новостей: 14 |
    • +1

    Сила HTML, 5 мем
    -----------------------------------------------------------------------------
    https://vk.com/eurobeateveryday
    Tea Sanctuary Corporation. 2014-2017г


  5. Дедушки
    Зарегистрирован: 26.09.2012
    Репутация
    (+1377.31328,9-48.4)
    Allexx | Пользователь offline | (26 июля 2016 21:21) | Комментариев: 623 | Новостей: 50 |
    • +4

    Если проводить ассоциацию с группами на сайте, то обычные новости из бездны это посетители-ПХЛ, хорошие, приятные глазу новости эт олдфаги-журналисты(по идее). Ну а такая новость тянет на самого ГР или модерака в конце концов. rainbow-face


  6. Главные редакторы
    Зарегистрирован: 11.06.2013
    Репутация
    (+1925.81816,4-109.4)
    3JIou_Kpunep | Пользователь offline | (26 июля 2016 22:03) | Комментариев: 1 312 | Новостей: 104 |
    • +1

    Изумительно.


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

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

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

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



  8. Посетители
    Зарегистрирован: 1.06.2016
    Репутация
    (+0.2-1-1.2)
    sasha.0552 | Пользователь offline | (27 июля 2016 06:58) | Комментариев: 7 | Новостей: 0 |
    • 0

    НОРМ 5 мем
    -----------------------------------------------------------------------------
    Однажды меня сожгли не сервере. В "холодильнике" (2 железных блока, железная дверь, раздатчик.) был огненный шар!
    Мой вывод: не всё то холодильник, что с раздатчиком.


  9. Просто хорошие люди
    Зарегистрирован: 5.02.2016
    Репутация
    (+118.6113,4-5.2)
    Ruslanzh | Пользователь offline | (27 июля 2016 07:01) | Комментариев: 313 | Новостей: 12 |
    • -2

    great-scott без слов,5 мем.
    -----------------------------------------------------------------------------
    Умер


  10. Просто хорошие люди
    Зарегистрирован: 7.03.2016
    Репутация
    (+204.7204,5-0.2)
    Alokey | Пользователь offline | (27 июля 2016 07:10) | Комментариев: 209 | Новостей: 30 |
    • +2

    Дельный гайд для тех, кто собирается учиться строить системы из командных блоков.
    Оформление минималистичное, но в меру, что придаёт новости лаконичность, как по мне.
    И да, HTML - сила.

    5 memes.
    -----------------------------------------------------------------------------



  11. Посетители
    Зарегистрирован: 6.07.2016
    Репутация
    (+3.63,4-0.2)
    mindplayer | Пользователь offline | (27 июля 2016 09:22) | Комментариев: 17 | Новостей: 1 |
    • 0

    Прекрасная новость. Безусловно пятый рейдж и плюс в репу.
    -----------------------------------------------------------------------------
    Прошу обратить особое внимание на мою первую новость: The Golden Chalice of Kurast
    Цитата: Капут-противогаз
    А вообще ньюфаги пидоры, но я не хотел никого обидеть.




  12. Олдфаги
    Зарегистрирован: 15.07.2015
    Репутация
    (+105.1101-4.1)
    JvonlinsMage | Пользователь offline | (27 июля 2016 10:14) | Комментариев: 417 | Новостей: 20 |
    • 0

    5 мем и плюс в репутацию, новость просто идеальна.
    Только вот зачем отдельный акк создавать специально для журнала?


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

    фомин залогинься
    -----------------------------------------------------------------------------
    даблецкий JЕРДNЫ а может БЫТЬ И НЕТ


  14. Главные редакторы
    Зарегистрирован: 26.06.2016
    Репутация
    (+254.2248,9-5.3)
    sdir01 | Пользователь offline | (27 июля 2016 20:18) | Комментариев: 192 | Новостей: 19 |
    • 0

    Не ожидал конечно что от такого не шибко сложного красивого редактирования новости поднимется такой ожиотаж. Ладно, если юзерам так нравиться красивая игра с HTML, который на удивление тут пашет, попробую сделать что-нибудь в таком стиле.
    -----------------------------------------------------------------------------
    *здесь должны быть драконьи яйца*
    *тут левый сайт*

    *а тут непонятная, анимированная херовина на половину страницы*


  15. Посетители
    Зарегистрирован: 11.07.2013
    Репутация
    (+7.87,3-0.5)
    LightMage | Пользователь offline | (28 июля 2016 10:59) | Комментариев: 24 | Новостей: 0 |
    • 0

    5 мем.


  16. Картоделы
    Зарегистрирован: 6.12.2014
    Репутация
    (+16.112,8-3.3)
    TVS___ | Пользователь offline | (30 июля 2016 08:18) | Комментариев: 65 | Новостей: 4 |
    • 0

    Идеально, все очень понятно описано. Хотелось бы еще узнать о /scoreboard players tag - что это вообще такое и как с этими тэгами работать. 5 рэйдж.
    -----------------------------------------------------------------------------
    Карта "RPG - моб арена"


 
Ваше Имя:
  • 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

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

Ответов: 114369

Автор: Andrej2001

Сегодня, 03:36

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

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

Big_Energy

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

Ответов: 2

Автор: gamerch

Сегодня, 03:10

Как убрать сетку у блоков?

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

Rush229

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

Ответов: 7

Автор: MrMaga

Сегодня, 00:15

Не крафтятся предметы из модов на сервере

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

Satyrn

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

Ответов: 6

Автор: Satyrn

Вчера, 17:44

Продажа модов для DayZ проектов.

Тема в разделе: Моддинг

Katafak

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

Ответов: 0

Автор: Katafak

Вчера, 09:10