BE教程

附加包教程:24.对话

Cat_A***Lv.4 高级会员 发表于 2023-3-3 IP:天津 2,767 0
AI 速览2026-09-25 09:58 生成

附加包教程第24期讲解如何用行为包dialogue文件夹自定义NPC对话

这是附加包系列教程的第二十四期,主题是对话(Dialogue),即自定义NPC对话功能,据帖子介绍该功能约在1.17版本加入。教程说明了对话文件应放在行为包根目录的dialogue文件夹中,并演示了用/summon npc生成NPC、用/dialogue open命令打开对话框的流程,还给出了一个包含按钮效果与进出提示的示例配置。适合正在学习行为包、想给地图或玩法加入NPC交互的玩家参考。

本卡片由 AI 阅读本帖后生成,可能存在疏漏,请以帖子正文为准。
本帖最后由 Cat_Anchor 于 2023-6-17 14:31 编辑

前言

今天,我们来学学对话。这又是一个比较冷门的内容。这个内容应该是在1.17中添加的。所谓对话(Dialogue),其实就是自定义的NPC对话。
NPC对话

打开行为包根目录,打开dialogue文件夹,这里用于存放NPC对话文件。

  1. {
  2.   "format_version": "1.17.100",
  3.   "minecraft:npc_dialogue": {
  4.     "scenes": [ //数组里包括了若干个场景。
  5.       { //一个场景
  6.         "buttons": [ //数组里包括了若干个按钮。(就是可以执行命令的按钮。)
  7.           { //一个按钮
  8.             "commands": [ //要执行的命令。
  9.               "/weather rain"
  10.             ],
  11.             "name": { //按钮上的文字。可以用语言文件翻译。
  12.               "rawtext": [
  13.                 {
  14.                   "text": "播放下雨效果"
  15.                 }
  16.               ]
  17.             }
  18.           },
  19.           { //又一个按钮
  20.             "commands": [
  21.               "/weather clear" //命令
  22.             ],
  23.             "name": { //按钮上的文字
  24.               "rawtext": [
  25.                 {
  26.                   "text": "清除天气效果"
  27.                 }
  28.               ]
  29.             }
  30.           },
  31.           { //还是一个按钮
  32.             "commands": [
  33.               "/give @initiator enchanted_book"
  34.             ],
  35.             "name": {
  36.               "rawtext": [
  37.                 {
  38.                   "text": "空附魔书"
  39.                 }
  40.               ]
  41.             }
  42.           }
  43.         ],
  44.         "npc_name": { //NPC的名字。可以使用语言文件。
  45.           "rawtext": [
  46.             {
  47.               "text": "测试"
  48.             }
  49.           ]
  50.         },
  51.         "scene_tag": "test_tag", //场景标签。记住这个,一会儿要用在命令里。
  52.         "text": { //NPC说的话。可以使用语言文件。
  53.           "rawtext": [
  54.             {
  55.               "text": "NPC进行测试。"
  56.             }
  57.           ]
  58.         },
  59.         "on_close_commands": [
  60.           "/say 退出"
  61.         ], //关闭NPC界面时运行的命令。
  62.         "on_open_commands": [
  63.           "/say 进入"
  64.         ] //打开NPC界面时运行的命令。
  65.       }
  66.     ]
  67.   }
  68. }
复制代码


打开游戏,使用命令“/summon npc”生成一个npc。然后使用命令“/dialogue open @e[c=1] @p 场景标签”来打开你刚才设定的NPC对话框。(注:命令中的“场景标签”四个字要替换成具体的场景标签,上面的代码示例中,场景标签是test_tag。)
如果你把上面的代码复制下来,放进你的行为包根目录/dialogue/名字.json,再运行上述命令,你会看到:
NPC的名字是“测试”。
NPC的对话框中的文字是“NPC进行测试。”
有3个按钮,分别是“播放下雨效果”(按下会下雨)“清除天气效果(按下会变成晴天)”“空附魔书(给予按按钮的玩家一本附魔书)”。
进入NPC界面时,在聊天栏提示“进入”。
退出NPC界面时,在聊天栏提示“退出”。

可以在这里自动生成一个NPC对话文件。
总结

这一期,我们学完了对话。下一期,我们就要讲生成规则了。


您需要登录后才可以回帖 登录 | 立即注册
本版积分规则