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

Кастомный диалог с жителем, телепортация за оплату.


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

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

Всем ку, версия майна 1.18.1 
(в идеале чтобы работала на сервере)


Идея такова:
Хочу сделать жителя (без торгов и ИИ) который будет стоять возле корабля и "перевозить" игроков в определённые города за определённую плату. 
Диалог в чате должен начинаться при левому клику по этому жителю. Варианты кликабельны и выполняют определённые функций.

Вот как это должно работать:

image.thumb.png.5892fa144cadfdae5f10bb7fe31cebca.png

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

/scoreboard objectives add (название) minecraft.custom:minecraft.talked_to_villager - отслеживание клика при взаимодействии с Жителем
Но тогда команда будет работать при каждом клике на каждом жителе, что наверное не хорошо.

Команды на диалоги нашёл в этом комментарии -> тут

Команды чтобы они выполнялась в случае, если у игрока больше или равно определённого количества предметов в инвентаре в этом комментарии -> тут

Так же про диалоги есть этот, вроде бы удобный датапак
conversation engine , но не знаю как вставить туда команды на тп и забирание предметов.

Помогите пожалуйста привести всё это в рабочее состояние.

Получилось, скидываю свою карту:

https://drive.google.com/file/d/1JyEewetHKoAhNCOt3tL3XcEIiAFsNHrg/view?usp=sharing

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

Делаешь через tellraw и trigger

tellraw это сообщения в чате, генераторы в интернете есть

trigger это чтобы встроить команду в чат и она работала у игрока без оператора

trigger работает со скорбордом

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

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

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

Делаешь через tellraw и trigger

tellraw это сообщения в чате, генераторы в интернете есть

trigger это чтобы встроить команду в чат и она работала у игрока без оператора

trigger работает со скорбордом

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

Можешь тогда объяснить свой гайд в этом комментарии? Правильно ли я делаю.

1. Прописал эти команды:
рописал просто в чат) /scoreboard objectives add dialogue trigger - Создаю переменную dialogue с типом trigger.
A. (КБ - Цикл.Всегда актив.) scoreboard players enable @a dialogue  - Даем возможность цели использовать trigger.

2. Сгенерировал сообщения с ответами и прописал на первый вариант:  (или можно все прописать?)
/trigger dialogue set 1

image.png.b45a19a27371bf5d655f077136d26d82.png

Когда вписывал на русском почему то команда выглядела странной, это нормально? или лучше на англ? 

Получилось так:
tellraw @a ["",{"text":"Greetings, Stranger! Where do you want to go?\n\n"},{"text":"[ Geffen - 10 ","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"\u25c6 ","color":"green","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"]","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"\n[ Payon - 15 "},{"text":"\u25c6 ","color":"green"},{"text":"]\n[ Izlude - 20 "},{"text":"\u25c6 ","color":"green"},{"text":"]\n[ "},{"text":"I don't know.","color":"gray"},{"text":" ]"}]

- Вставил в КБ эти команды:
B.(КБ - Импульс.Нужен сигнал.) execute at @a[scores={dialogue=1}] run tellraw @a ["",{"text":"Greetings, Stranger! Where do you want to go?\n\n"},{"text":"[ Geffen - 10 ","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"\u25c6 ","color":"green","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"]","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"\n[ Payon - 15 "},{"text":"\u25c6 ","color":"green"},{"text":"]\n[ Izlude - 20 "},{"text":"\u25c6 ","color":"green"},{"text":"]\n[ "},{"text":"I don't know.","color":"gray"},{"text":" ]"}]

C. (КБ - Цикл.Всегда актив.) execute at @a[scores={dialogue=1}] run scoreboard players set @s dialogue 0 - можешь пояснить что делает эта команда?

Как то так: команды в блоках отметил буквами -  A B С
image.thumb.png.a8b611eede9c89d63748caeddeab48b8.png

Мои проблемы/вопросы:
1. Если я сам не пропишу в чат /trigger dialogue set 1 - то диалог не показывается.
2. Если КБ с диалогом в режиме (КБ - Цикл.Всегда актив.) - то диалог спамиться. Поэтому я использую (КБ - Импульс.Нужен сигнал.) на время тестов.

3. Как теперь соединить это с командами:

/scoreboard objectives add (название) minecraft.custom:minecraft.talked_to_villager - отслеживание клика при взаимодействии с Жителем, но чтобы по определённому жителю а не по всем сразу. ( Может быть сделать это с отслеживанием по на определённой местности по координатам типа execute as @a[x=-16,y=5,z=-228,dx=1,dy=5,dz=1] )

Команды по определению колл-ва предметов в инвентаре и чтобы их забирали: (но либо они не работают, либо я не правильно их поставил хз)

execute as @a store result score @s emerald_count run clear @s minecraft:emerald 0
execute as @a[scores={emerald_count=10..}] run say 10+ изумрудов


Есть еще такая команда, но она забирает 10 изумрудов если только у тебя в инвентаре именно 10 изумрудов, а не любое число
execute as @a if entity @s[nbt={Inventory:[{id:"minecraft:emerald",Count:10b}]}] run clear @p minecraft:emerald 10

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

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

1. Если я сам не пропишу в чат /trigger dialogue set 1 - то диалог не показывается.

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

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

2. Если КБ с диалогом в режиме (КБ - Цикл.Всегда актив.) - то диалог спамиться. Поэтому я использую (КБ - Импульс.Нужен сигнал.) на время тестов.

проверяй скорборд, который считает разговоры с жителем, если значение больше 1 то выполняешь(высвечивание диалога) команду и обнуляешь скорборд

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

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

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

Я эту команду вставил в генераторе, выделяя каждый вариант. 
Я имею ввиду, что вот я в начале поставил все 3 КБ с командами A B С (команды подписаны выше)
Жму на импульсный блок ( B ) и ничего не происходит
пропишу команду /trigger dialogue set 1 в чат и потом жму на импульсный блок ( B ) и выходит диалог. 
 

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

проверяй скорборд, который считает разговоры с жителем, если значение больше 1 то выполняешь(высвечивание диалога) команду и обнуляешь скорборд

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

Я создал скорборд с именем ship
scoreboard objectives add ship minecraft.custom:minecraft.talked_to_villager 

потом что?
как из этого сделать триггер?

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

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

Я эту команду вставил в генераторе, выделяя каждый вариант. 
Я имею ввиду, что вот я в начале поставил все 3 КБ с командами A B С (команды подписаны выше)
Жму на импульсный блок ( B ) и ничего не происходит
пропишу команду /trigger dialogue set 1 в чат и потом жму на импульсный блок ( B ) и выходит диалог.

  

1 час назад, Diemtur сказал:

B.(КБ - Импульс.Нужен сигнал.) execute at @a[scores={dialogue=1}] run tellraw @a ["",{"text":"Greetings, Stranger! Where do you want to go?\n\n"},{"text":"[ Geffen - 10 ","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"\u25c6 ","color":"green","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"]","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"\n[ Payon - 15 "},{"text":"\u25c6 ","color":"green"},{"text":"]\n[ Izlude - 20 "},{"text":"\u25c6 ","color":"green"},{"text":"]\n[ "},{"text":"I don't know.","color":"gray"},{"text":" ]"}]

сам выделил ту часть которая вообще нипонятно что делает

 

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

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

через execute as @a[scores={scoreboard=1..}] где scoreboard имя скорборда с жителем выполняешь команду диалога

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

что значит обнулить скорборд?

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

C. (КБ - Цикл.Всегда актив.) execute at @a[scores={dialogue=1}] run scoreboard players set @s dialogue 0 - можешь пояснить что делает эта команда?

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

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

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

  сам выделил ту часть которая вообще нипонятно что делает

Изначально ты написал эту команду execute at @a[score={dialogue=1}] run (другая команда с диалогом)
(другая команда с диалогом) - я так понял, здесь нужна команда из генератора tellraw, мне выдал генератор эту команду: 

/tellraw @a ["",{"text":"Greetings, Stranger! Where do you want to go?\n\n"},{"text":"[ Geffen - 10 ","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"\u25c6 ","color":"green","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"]","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"\n[ Payon - 15 "},{"text":"\u25c6 ","color":"green"},{"text":"]\n[ Izlude - 20 "},{"text":"\u25c6 ","color":"green"},{"text":"]\n[ "},{"text":"I don't know.","color":"gray"},{"text":" ]"}]

(если нет, то какую?)

 

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

1 час назад, Diemtur сказал:

Изначально ты написал эту команду execute at @a[score={dialogue=1}] run (другая команда с диалогом)
(другая команда с диалогом) - я так понял, здесь нужна команда из генератора tellraw, мне выдал генератор эту команду: 

/tellraw @a ["",{"text":"Greetings, Stranger! Where do you want to go?\n\n"},{"text":"[ Geffen - 10 ","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"\u25c6 ","color":"green","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"]","clickEvent":{"action":"run_command","value":"/trigger dialogue set 1"}},{"text":"\n[ Payon - 15 "},{"text":"\u25c6 ","color":"green"},{"text":"]\n[ Izlude - 20 "},{"text":"\u25c6 ","color":"green"},{"text":"]\n[ "},{"text":"I don't know.","color":"gray"},{"text":" ]"}]

(если нет, то какую?)

 

это ветки в диалоге тоесть когда ты что-то выбераешь

скорее вссего я перепутал at с as, а так как тема закрыта исправить немог

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

ты конечно прости что отвлекаю от темы, но если это пойдет на сервер, не проще ли сделать это через Citizens?

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

3 часа назад, Shomen сказал:

это ветки в диалоге тоесть когда ты что-то выбераешь

скорее вссего я перепутал at с as, а так как тема закрыта исправить немог

Всё, заработало, спасибо!

Можешь тогда пояснить как сделать, чтобы команда выполнялась в случае, если у игрока больше или равно определённого количества предметов в инвентаре? (именно предметов в сумме, а не в определённом слоте)
Например больше или равно 10 -> забрать 10 шт
меньше 10 -> ничего не делать

есть вот эти команды которые я нашёл, но не знаю как их заставить работать


execute as @a if entity @s[nbt={Inventory:[{id:"minecraft:emerald",Count:10b}]}] run 
execute as @a store result score @s stone_count run clear @s minecraft:emerald 0
execute as @a[scores={emerald_count=10..}] run say 10+ камня

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

  • 1 год спустя...

Здравствуй. Слушай хочу повзаимсвтовать эту идею у тебя. Сохранились ли у тебя все команды что ты использовал. Можешь пожалуйста скинуть их при возможности. Очень хочется получить работающий механизм. И мир в котором ты это делал тоже хочу получить. Спасибо

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

В 13.12.2023 в 22:01, ImRystem сказал:

Здравствуй. Слушай хочу повзаимсвтовать эту идею у тебя. Сохранились ли у тебя все команды что ты использовал. Можешь пожалуйста скинуть их при возможности. Очень хочется получить работающий механизм. И мир в котором ты это делал тоже хочу получить. Спасибо

Привет, я уже ему писал по такому же поводу но он давно не заходил в сеть но могу посоветовать этот ролик

 

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

В 13.12.2023 в 20:01, ImRystem сказал:

Здравствуй. Слушай хочу повзаимсвтовать эту идею у тебя. Сохранились ли у тебя все команды что ты использовал. Можешь пожалуйста скинуть их при возможности. Очень хочется получить работающий механизм. И мир в котором ты это делал тоже хочу получить. Спасибо

Сори, я вообще забыл про этот сайт, если еще нужно, скинул свой сейв выше в своём посте.

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

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

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

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

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

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

Войти

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

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

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