- 55
- 1
- 0
Доброго времени суток. Я бы хотел поделиться своей идеей. Это будет интересно тем, кто разбирается в командах, в особенности в scoreboard. Так вот, мне всегда не хватало глобальных переменных, которые я мог бы использовать вместо координат в командах по типу setblock. Например, я хочу, чтобы каждый последующий блок ставился на один метр правее предыдущего: на данный момент такое можно реализовать либо использованием команды execute, либо установкой больших систем из командных блоков, каждый из которых будет устанавливаться по относительным координатам предыдущего. Короче, неудобно. Я захотел решить эту проблему с помощью команды scoreboard. Идея в том, чтобы использовать переменные значения в любом месте команды, т.е. взаимодействовать со scoreboard как с переменными в программировании.
Поясню. Предположим, у меня есть команда "/setblock 100 60 200 wool", и мне нужно выполнить ее несколько раз так, чтобы каждый новый блок ставился рядом с предыдущим (скажем, сдвигался на единицу по координате x). Я создаю новый scoreboard с именем "coord" и записываю туда значение "100" под именем x. Теперь мне нужно как-то использовать значение этой переменной x в моей команде. Я решил сделать это следующим образом: "OBJ_x_coord_", где "OBJ_" - обозначение того, что я хочу использовать переменную; "x" - название переменной (абстрактного игрока); "coord" - название scoreboard, откуда я беру переменную x. Поэтому конечная команда будет выглядеть так: "/setblock OBJ_x_coord_ 60 200 wool". Ее смысл не поменяется, ведь я просто заменил число 100 на переменную, хранящую в себе число 100. Вызвав эту команду, поставится блок шерсти на координаты 100 60 200. Что же делать дальше? Теперь нам нужно поставить два командных блока друг рядом с другом. Первый, собственно, будет использовать эту команду по установке блока, а второй увеличивать значение переменной x на единицу каждый раз после того, как блок установится. Это будет делать команда "/scoreboard players add x coord 1".
Запустив данную систему (предварительно сделав первый блок - повторяющим, а второй - цепным), мы получим быстро и плавно создающуюся линию из шерсти, удаляющуюся от нас по координате x.
Все это кажется сложным и бесполезным, но это не так. Используя такую систему мапмейкеры смогут добиться максимальной компактности их схем и сэкономить на времени. Скриншоты и гифка - небольшой пример того, что можно с помощью этого. Цвета шерсти изменяются в зависимости от переменной d, что очень круто, ведь иначе пришлось бы ставить не менее 16-ти командных блоков, чтобы собрать всю эту систему, а здесь все уместилось в 7 блоков и один компаратор.
Код для этой системы я написал без API (т.е. без форджа и др.), с помощью mcp. Если кому интересно - могу скинуть. Честно не знаю, зачем я отправил столь длинный пост сюда и чего хочу добиться. Просто интересно мнение - развивать данную тему или нет. Спасибо, что дочитали до конца (даже если вообще не поняли, о чем я здесь написал).
Поясню. Предположим, у меня есть команда "/setblock 100 60 200 wool", и мне нужно выполнить ее несколько раз так, чтобы каждый новый блок ставился рядом с предыдущим (скажем, сдвигался на единицу по координате x). Я создаю новый scoreboard с именем "coord" и записываю туда значение "100" под именем x. Теперь мне нужно как-то использовать значение этой переменной x в моей команде. Я решил сделать это следующим образом: "OBJ_x_coord_", где "OBJ_" - обозначение того, что я хочу использовать переменную; "x" - название переменной (абстрактного игрока); "coord" - название scoreboard, откуда я беру переменную x. Поэтому конечная команда будет выглядеть так: "/setblock OBJ_x_coord_ 60 200 wool". Ее смысл не поменяется, ведь я просто заменил число 100 на переменную, хранящую в себе число 100. Вызвав эту команду, поставится блок шерсти на координаты 100 60 200. Что же делать дальше? Теперь нам нужно поставить два командных блока друг рядом с другом. Первый, собственно, будет использовать эту команду по установке блока, а второй увеличивать значение переменной x на единицу каждый раз после того, как блок установится. Это будет делать команда "/scoreboard players add x coord 1".
Запустив данную систему (предварительно сделав первый блок - повторяющим, а второй - цепным), мы получим быстро и плавно создающуюся линию из шерсти, удаляющуюся от нас по координате x.
Все это кажется сложным и бесполезным, но это не так. Используя такую систему мапмейкеры смогут добиться максимальной компактности их схем и сэкономить на времени. Скриншоты и гифка - небольшой пример того, что можно с помощью этого. Цвета шерсти изменяются в зависимости от переменной d, что очень круто, ведь иначе пришлось бы ставить не менее 16-ти командных блоков, чтобы собрать всю эту систему, а здесь все уместилось в 7 блоков и один компаратор.
Код для этой системы я написал без API (т.е. без форджа и др.), с помощью mcp. Если кому интересно - могу скинуть. Честно не знаю, зачем я отправил столь длинный пост сюда и чего хочу добиться. Просто интересно мнение - развивать данную тему или нет. Спасибо, что дочитали до конца (даже если вообще не поняли, о чем я здесь написал).