跳转至内容

[原创][数据包][持续更新]NuQuest模组中的对话框使用示例

妙妙工具
1 1 133 1
  • 很多人在催这玩意,但是也有人不知道这玩意怎么用,那我今天来教教大家吧。

    数据包路径

    关于数据包的路径存放
    目前的路径是在nu_quest/dialog下的
    完整路径就是data/nu_quest/dialog
    代码会自动检测这个路径下的全部文件,包括子文件夹,所以大可放心整理问题。

    编写数据包

    那现在我们就来介绍如何写对话了

    {
      "dialogueId": "intro",
      "dialogTexts": [
        {
          "title": "dialog.nuquest.intro.title",
          "text": "dialog.nuquest.intro.text",
          "imageGroup": {
            "image": "foo:textures/gui/npc.png",
            "x": "0",
            "y": "(screenheight / 3 * 2) - 64",
            "width": 64,
            "height": 64,
            "uOffset": 0,
            "vOffset": 0,
            "uWidth": 64,
            "vHeight": 64,
            "textureWidth": 64,
            "textureHeight": 64
          },
          "soundGroup": {
            "sound": "minecraft:entity.villager.yes",
            "volume": 1.0,
            "pitch": 1.0
          },
          "textEffect": {
            "name": "typewriter"
          },
          "params": {
            "speed": 2
          }
        }
      ],
      "dialogActionDatas": [
        {
          "message": "dialog.nuquest.intro.continue",
          "action": {
            "name": "dialog",
            "params": {
              "dialogId": "foo:intro_2"
            }
          }
        },
        {
          "message": "dialog.nuquest.intro.exit",
          "action": {
            "name": "close"
          }
        }
      ]
    }
    

    这是目前对话中可用的全部功能
    在最外级的json元素中主要有三个,分别是dialogueIddialogTextsdialogActionDatas
    dialogueId定义了这个动画的id名,调用时也是通过id名来查找,而dialogTexts是一个列表,里面存放了对话的文本内容,dialogActionDatas是选项按钮,在对话文字全部播放完后则会出现。


相关推荐


  • [原创][KubeJS]kubejs获取玩家所处坐标的结构

    妙妙工具 kubejs
    1
    1 赞同
    1 帖子
    110 浏览
    忆然
    本文使用:CC-BY-NC-SA 4.0协议 直接上代码 在此推荐下来自ZZZank的ProbeJS Legacy (已经支持1.20.1了(喜)) /** * 获取实体坐标的所有结构 * @param {Internal.Entity} entity * @returns {$StructureStart_[]} */ function getAllStructuresAt(entity) { let structureList = [] /**@type {$ServerLevel_} */ let serverLevel = entity.level let entityPos = entity.block.pos /** @type {Internal.Structure[]} */ let structureArray = serverLevel.structureManager().getAllStructuresAt(entityPos).keySet().toArray() for (let structure of structureArray) { let structureStart = serverLevel.structureManager().getStructureAt(entityPos, structure) if (structureStart.isValid()) { structureList.push(structureStart) } } return structureList }
  • [原创][Mod]基于opengl取色的hsv色盘屏幕

    妙妙工具 渲染
    5
    0 赞同
    5 帖子
    113 浏览
    不是客服M
    没有教程的话,哇达西?
  • 0 赞同
    3 帖子
    190 浏览
    sdjgeS
    补药在1.21.1偷走我的钱包