Перейти к содержанию

Проблемы активации команды в определённом радиусе.


Рекомендуемые сообщения

В теме 18 сообщений

Всем ку, версия майна 1.18.1
Идея такова:
Как в РПГ играх по типу Skyrim или новый Elden Ring,
Игрок проходит ко входу в локацию (например данж) и показывается название локации например "Руины" и подзаголовок "Этаж 1", и проигрывается звук. 

Я нашёл подходящие команды:

1. execute as @a[x=-49,y=4,z=-162,dx=5,dy=5,dz=5] run - условие что команда активируется в определенном радиусе

2. title @p title {"text":"Руины", "color":"white"} - заголовок

3. title @p subtitle {"text":"Этаж 1","color":"gray"} - подзаголовок

4. playsound minecraft:ambient.basalt_deltas.mood ambient @a ~ ~ ~ 4 0.7 - звук 

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

Я знаю что можно это исправить добавлением тега для игрока, но не могу найти рабочую команду. 

У меня есть концепт, но не знаю как реализовать командами и будет ли работать:
Игрок заходит в данж (поле активации) -> проигрывается название и т д -> игроку присваивается тег чтобы не проигрывалось название локации и т д снова -> после выхода из данжа есть еще одно поле, которые очищает теги у игроков (возможно поле чуть дальше от входа данжа) чтобы при следующем заходе в данж снова показывало название.

Надеюсь всё понятно объяснил. 
image.thumb.png.484a5c1187bd5de1233b9648fb57ad4f.png


РЕШЕНО:


Получилось реализовать свой концепт при помощи тегов:

При входе в данж есть поле которое снимает тег (в данном случае название тега = ruin):

1. (Цикличный/Всегда Активный) tag @a[x=-16,y=5,z=-225,dx=1,dy=5,dz=1] remove ruin

image.thumb.png.b3b57533c449e78ff4ef634653791eb5.png
 

Далее, после входа, следует еще одно поле которые активирует команды названия, подзаголовка и звука для игроков у которых нет тега ruin, и в конце добавляет игроку тег = ruin чтобы команда не спамила.

2. (Цикличный/Всегда Активный) title @a[tag=!ruin,x=-16,y=5,z=-228,dx=1,dy=5,dz=1] title {"text":"Руины", "color":"white"}
3. (Цепной/Всегда Активный) title @a[tag=!ruin,x=-16,y=5,z=-228,dx=1,dy=5,dz=1] subtitle {"text":"Этаж 1","color":"gray"}
4. (Цепной/Всегда Активный) execute as @a[tag=!ruin,x=-16,y=5,z=-228,dx=1,dy=5,dz=1] run playsound minecraft:ambient.basalt_deltas.mood ambient @s -16 6 -228 1 0.7
5. (Цепной/Всегда Активный) tag @a[x=-16,y=5,z=-228,dx=1,dy=5,dz=1] add ruin 

image.thumb.png.37305efa2f625a606d16f281a41617e4.png

На видео пример того что получилось:

https://drive.google.com/file/d/130PaFLg8-rSlyKmNGNW3FmFeYop55qDe/view?usp=sharing

В принципе это всё что я хотел, спасибо огромное ребят! НО
На последок остались пару вопросов:

1. Что если данж не является закрытым помещением? 
Как сделать чтобы работало второе поле я еще понимаю (просто увеличить радиус активации наверное).
Но как сделать так, чтобы тег убирался каждый раз как ты уходишь с этого радиуса? наделать кучу полей вокруг которые будут убирать тег?

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

Ссылка на комментарий
Поделиться на другие сайты

Ну смотри, ставишь первую команду в цикличный кб (без run) и ставишь всегда активен, присоединяешь к нему компаратор, чтобы два факела смотрели на кб.

И потом подсоединяешь к компаратору импульсные кб с текстом и звуком (либо просто цепочку сделай).

Ссылка на комментарий
Поделиться на другие сайты

Мммм, щас бы тег использовать, хотя чтобы проверить его надо ещё один execute

И если использовать execute будет много импульсов а нужен 1

Ссылка на комментарий
Поделиться на другие сайты

9 минут назад, Ploxy сказал:

Мммм, щас бы тег использовать, хотя чтобы проверить его надо ещё один execute

И если использовать execute будет много импульсов а нужен 1

а если функции в датапаке? М?

15 часов назад, Diemtur сказал:

Всем ку, версия майна 1.18.1
Идея такова:
Как в РПГ играх по типу Skyrim или новый Elden Ring,
Игрок проходит ко входу в локацию (например данж) и показывается название локации например "Руины" и подзаголовок "Этаж 1", и проигрывается звук. 

Я нашёл подходящие команды:

1. execute as @a[x=-49,y=4,z=-162,dx=5,dy=5,dz=5] run - условие что команда активируется в определенном радиусе

2. title @p title {"text":"Руины", "color":"white"} - заголовок

3. title @p subtitle {"text":"Этаж 1","color":"gray"} - подзаголовок

4. playsound minecraft:ambient.basalt_deltas.mood ambient @a ~ ~ ~ 4 0.7 - звук 

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

Я знаю что можно это исправить добавлением тега для игрока, но не могу найти рабочую команду. 

У меня есть концепт, но не знаю как реализовать командами и будет ли работать:
Игрок заходит в данж (поле активации) -> проигрывается название и т д -> игроку присваивается тег чтобы не проигрывалось название локации и т д снова -> после выхода из данжа есть еще одно поле, которые очищает теги у игроков (возможно поле чуть дальше от входа данжа) чтобы при следующем заходе в данж снова показывало название.

Надеюсь всё понятно объяснил. 
image.thumb.png.484a5c1187bd5de1233b9648fb57ad4f.png

1-ой командой давай тег

2,3,4 в цепочку выполняется относительно игрока с тегом

В конце цепочки забирать тег

Ссылка на комментарий
Поделиться на другие сайты

12 минут назад, Shomen сказал:

а если функции в датапаке? М?

1-ой командой давай тег

2,3,4 в цепочку выполняется относительно игрока с тегом

В конце цепочки забирать тег

Едрить... Ты понимаешь что оно будет зациклено? Тег дают, относительно игрока с тегом выполняются команды, забирают тег, и всё заново начинается, понимаешь?

Ссылка на комментарий
Поделиться на другие сайты

5 минут назад, Ploxy сказал:

Едрить... Ты понимаешь что оно будет зациклено? Тег дают, относительно игрока с тегом выполняются команды, забирают тег, и всё заново начинается, понимаешь?

1 дается тем кто зашел в локацию

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Shomen сказал:

1 дается тем кто зашел в локацию

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

Ссылка на комментарий
Поделиться на другие сайты

8 часов назад, Shomen сказал:

просто если игрок не в данже забирай тег

а можно рабочую команду для тега? я не могу найти в инете.

Ссылка на комментарий
Поделиться на другие сайты

думаю я  знаю как это можно сделать, но мне нужно некоторое время чтобы написать и проверить как это будет работать

Ссылка на комментарий
Поделиться на другие сайты

15 минут назад, Diemtur сказал:

а можно рабочую команду для тега? я не могу найти в инете.

Ты через тег это не сделаешь, лучше используй мой способ

Команда для тега - tag <цель> add <тег>

Чтобы убрать - tag <цель> remove <тег>

Ссылка на комментарий
Поделиться на другие сайты

28 минут назад, NecRoZ сказал:

думаю я  знаю как это можно сделать, но мне нужно некоторое время чтобы написать и проверить как это будет работать

было бы здорово

24 минуты назад, Ploxy сказал:

Ты через тег это не сделаешь, лучше используй мой способ

Команда для тега - tag <цель> add <тег>

Чтобы убрать - tag <цель> remove <тег>

Спасибо, я 2 способа попробую всё равно. 

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, Diemtur сказал:

было бы здорово

Спасибо, я 2 способа попробую всё равно. 

а тебе надо чтобы это срабатывало каждый раз когда человек туда приходи или только 1 раз?

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, NecRoZ сказал:

а тебе надо чтобы это срабатывало каждый раз когда человек туда приходи или только 1 раз?

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

Ссылка на комментарий
Поделиться на другие сайты

14 минут назад, Diemtur сказал:

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

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

Ссылка на комментарий
Поделиться на другие сайты

а так у меня получилось вот это:

1 кб - цикличный, всегда активен: title @a[tag=!123,x=-49,y=4,z=-162,dx=5,dy=5,dz=5] title {"text":"Руины", "color":"white"}

2 кб - цепной, всегда активен: title @a[tag=!123,x=-49,y=4,z=-162,dx=5,dy=5,dz=5] subtitle {"text":"Этаж 1","color":"gray"}

3 кб - цепной, всегда активен: execute as @a[tag=!123,x=-49,y=4,z=-162,dx=5,dy=5,dz=5] run playsound minecraft:ambient.basalt_deltas.mood ambient @s ~ ~ ~ 4 0.7

4 кб - цепной, всегда активен: tag @a[x=-49,y=4,z=-162,dx=5,dy=5,dz=5] add 123

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, NecRoZ сказал:

а так у меня получилось вот это:

1 кб - цикличный, всегда активен: title @a[tag=!123,x=-49,y=4,z=-162,dx=5,dy=5,dz=5] title {"text":"Руины", "color":"white"}

2 кб - цепной, всегда активен: title @a[tag=!123,x=-49,y=4,z=-162,dx=5,dy=5,dz=5] subtitle {"text":"Этаж 1","color":"gray"}

3 кб - цепной, всегда активен: execute as @a[tag=!123,x=-49,y=4,z=-162,dx=5,dy=5,dz=5] run playsound minecraft:ambient.basalt_deltas.mood ambient @s ~ ~ ~ 4 0.7

4 кб - цепной, всегда активен: tag @a[x=-49,y=4,z=-162,dx=5,dy=5,dz=5] add 123

Использовал твой код, спасибо, обновил тему, но остались еще пару вопросов. 

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...