Caessar136 Опубликовано 4 января Поделиться Опубликовано 4 января Я хочу сделать свою карту но в ней будут важны нпс о должны уметь ходить вперёд, влево, вправо, также вести диалог в зависимости от выбора игрока, но я не смог найти ни одного нормального мода или датапак, а также я слышал что нпс можно делать используя датапаки ,но нормальных гайдов я не нашёл можете ли ли вы подсказать хотбы нормальный гайд на эту тему.(на карте будет быть много нпс) Ссылка на комментарий Поделиться на другие сайты Поделиться
Sheridan Опубликовано 4 января Поделиться Опубликовано 4 января Custom NPC's Hibbe 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Caessar136 Опубликовано 4 января Автор Поделиться Опубликовано 4 января Custom NPC's это очень старый мод и он неподходит для моих задач так как имеет например я не смогу красиво обыграть выбор игрока Ссылка на комментарий Поделиться на другие сайты Поделиться
Hibbe Опубликовано 4 января Поделиться Опубликовано 4 января Только что, Caessar136 сказал: Custom NPC's это очень старый мод и он неподходит для моих задач так как имеет например я не смогу красиво обыграть выбор игрока Если версия 1.12.2, то может подойти Mappet. Что-то типо Custom Npcs, но при этом с удобным интерфейсом, и там еще можно много разных вещей Ссылка на комментарий Поделиться на другие сайты Поделиться
Caessar136 Опубликовано 4 января Автор Поделиться Опубликовано 4 января Мне нужен на новые версии от 1.20 Ссылка на комментарий Поделиться на другие сайты Поделиться
Щербатый бесстыдник Опубликовано 4 января Поделиться Опубликовано 4 января Это очень обширная тема, тебе придётся прям ЗАШАРИТЬ за команды Чтобы создать диалоговое окно (1.21.6+), воспользуйся этим сайтом. И закинув созданный диалог в папку saves\название мира\datapacks\название датапака\data\ещё одно название\dialog ты сможешь показывать его игрокам командой /dialog show. НО вообще, чтобы показать игроку диалог не обязательно прям датапак создавать, ты можешь воспользоваться ленивым методом и скопировать всю инфу о диалоге прямо в команду /dialog show. Не знаю насколько это профессионально, но я иногда этим пользуюсь ;) /dialog show @s {type:"minecraft:server_links",body:{type:"minecraft:plain_message",contents:"квазибоба"},inputs:[],columns:1,title:"диалоговое окошко"} После того как ты прохаваешь создание диалогов (моей инфы тебе вряд ли хватит) можно будет приступать к созданию NPС, использовать ты можешь разные способы, но более правильным наверное будет использование хайповой integration сущности, она представляет из себя пустой хитбокс с возможностью детектить по нему нажатия. Сущность невидимая, но в маине можно смотреть хитбоксы с помощью F3+B /summon minecraft:interaction ~ ~ ~ {width:0.8f,height:2f,Tags:["nps_dimon"]} execute as @e[type=minecraft:interaction,tag=nps_dimon] run data remove entity @s interaction execute as @e[type=minecraft:interaction,tag=nps_dimon] on target run dialog show @s название Теперь, когда у тебя на руках есть "кнопка" и показывающийся на её нажатие диалог, мы можем сделать красивую внешку, для этого можно использовать вообще всё что угодно, главное засунуть туда кнопку. Можно использовать block display или текстурпаки, но так как тебе нужно сделать передвигающуюся модельку я покажу способ с сущностью mannequin (1.21.9+). /summon minecraft:mannequin ~ ~ ~ {Tags:["nps_dimon","conveer"]} Теперь c помощью постоянной телепортации мы будем перемещать кнопку внутрь манекена, но если твой npc не будет двигаться то можно ограничиться одной телепортацией. execute as @e[type=minecraft:mannequin,tag=nps_dimon] at @s run tp @n[type=minecraft:interaction,tag=nps_dimon] ~ ~ ~ Теперь подумаем над перемещением сущности. Хотя думать я не буду, а просто свой способ приложу. Заключается он в том, что если в двух блоках под сущностью c тегом "conveyor" оказывается блок розовой обожжённой терракоты (та что со стрелочкой) то он начинает двигаться и поворачиваться по направлению стрелочки. execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=west] run data modify entity @s Motion[0] set value 0.1 execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=north] run data modify entity @s Motion[2] set value 0.1 execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=east] run data modify entity @s Motion[0] set value -0.1 execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=south] run data modify entity @s Motion[2] set value -0.1 execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=west] run rotate @s facing ~1 ~ ~ execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=north] run rotate @s facing ~ ~ ~1 execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=east] run rotate @s facing ~-1 ~ ~ execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=south] run rotate @s facing ~ ~ ~-1 Вообще наверное гайд надо сделать, тема слишком большая чтобы в ответе на вопрос её рассматривать 𝕬𝖊𝖙𝖍𝖊𝖗𝖎𝖘 ㄚ凵尺凵丂丨 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Velviad_ Опубликовано 5 января Поделиться Опубликовано 5 января а никаких видео гайдов нет? Ссылка на комментарий Поделиться на другие сайты Поделиться
Hibbe Опубликовано 5 января Поделиться Опубликовано 5 января 16 часов назад, Sench_mp4 сказал: Это очень обширная тема, тебе придётся прям ЗАШАРИТЬ за команды Чтобы создать диалоговое окно (1.21.6+), воспользуйся этим сайтом. И закинув созданный диалог в папку saves\название мира\datapacks\название датапака\data\ещё одно название\dialog ты сможешь показывать его игрокам командой /dialog show. НО вообще, чтобы показать игроку диалог не обязательно прям датапак создавать, ты можешь воспользоваться ленивым методом и скопировать всю инфу о диалоге прямо в команду /dialog show. Не знаю насколько это профессионально, но я иногда этим пользуюсь ;) /dialog show @s {type:"minecraft:server_links",body:{type:"minecraft:plain_message",contents:"квазибоба"},inputs:[],columns:1,title:"диалоговое окошко"} После того как ты прохаваешь создание диалогов (моей инфы тебе вряд ли хватит) можно будет приступать к созданию NPС, использовать ты можешь разные способы, но более правильным наверное будет использование хайповой integration сущности, она представляет из себя пустой хитбокс с возможностью детектить по нему нажатия. Сущность невидимая, но в маине можно смотреть хитбоксы с помощью F3+B /summon minecraft:interaction ~ ~ ~ {width:0.8f,height:2f,Tags:["nps_dimon"]} execute as @e[type=minecraft:interaction,tag=nps_dimon] run data remove entity @s interaction execute as @e[type=minecraft:interaction,tag=nps_dimon] on target run dialog show @s название Теперь, когда у тебя на руках есть "кнопка" и показывающийся на её нажатие диалог, мы можем сделать красивую внешку, для этого можно использовать вообще всё что угодно, главное засунуть туда кнопку. Можно использовать block display или текстурпаки, но так как тебе нужно сделать передвигающуюся модельку я покажу способ с сущностью mannequin (1.21.9+). /summon minecraft:mannequin ~ ~ ~ {Tags:["nps_dimon","conveer"]} Теперь c помощью постоянной телепортации мы будем перемещать кнопку внутрь манекена, но если твой npc не будет двигаться то можно ограничиться одной телепортацией. execute as @e[type=minecraft:mannequin,tag=nps_dimon] at @s run tp @n[type=minecraft:interaction,tag=nps_dimon] ~ ~ ~ Теперь подумаем над перемещением сущности. Хотя думать я не буду, а просто свой способ приложу. Заключается он в том, что если в двух блоках под сущностью c тегом "conveyor" оказывается блок розовой обожжённой терракоты (та что со стрелочкой) то он начинает двигаться и поворачиваться по направлению стрелочки. execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=west] run data modify entity @s Motion[0] set value 0.1 execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=north] run data modify entity @s Motion[2] set value 0.1 execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=east] run data modify entity @s Motion[0] set value -0.1 execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=south] run data modify entity @s Motion[2] set value -0.1 execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=west] run rotate @s facing ~1 ~ ~ execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=north] run rotate @s facing ~ ~ ~1 execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=east] run rotate @s facing ~-1 ~ ~ execute as @e[tag=conveyor] at @s if block ~ ~-2 ~ magenta_glazed_terracotta[facing=south] run rotate @s facing ~ ~ ~-1 Вообще наверное гайд надо сделать, тема слишком большая чтобы в ответе на вопрос её рассматривать сколько ты вообще обычно тратишь на такое время Ссылка на комментарий Поделиться на другие сайты Поделиться
macako Опубликовано 15 января Поделиться Опубликовано 15 января Ну хз мне кажется я зря пишу это но Hollow engine вполне справляется с этой задачей на 1.19.2 фордж. И гайд на ютубе есть и документация в их дс сервере. Ссылка на комментарий Поделиться на другие сайты Поделиться
garmxd Опубликовано 31 января Поделиться Опубликовано 31 января мой датапак для управления движениями сущностей https://modrinth.com/datapack/path-entity Hibbe 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
В теме 10 сообщений
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти