pluginiPlugin

交付物品给 NPC

在这个示例中,要求玩家与 NPC 对话并交付物品。

概述

玩家和 NPC 对话,选择领取任务后,玩家将进行收集任务物品的操作。

玩家再次和 NPC 对话,如果玩家有背包里的任务物品,就会显示 交付 选项。选择 交付 后,会扣除背包里的任务物品,并完成任务。

如果玩家没有背包里的任务物品,就不会出现 交付 选项。

步骤

创建分支,如果没有接取任务,就会跳到未接取任务的阶段

任务状态为 INACTIVE(未接取任务) 时
check quest status with 收集美食任务 =? INACTIVE

1

2

18

选中 包在我身上 选项就会领取任务

领取任务
quest accept with 收集美食任务

3

在刚才的分支,新增跳到已接取任务的阶段

任务状态为 ACTIVE(已接取任务) 时
check quest status with 收集美食任务 =? ACTIVE

4

5

如果玩家没有收集完成,就不会出现 我收集好了 选项。

要求玩家背包里有 >=5 个面包
check item_match inv count "Minecraft -material bread" >= 5

6

如果玩家收集完成,就会显示 我收集好了 选项。选中后,会扣除物品,跳到交付对话

扣除背包里的面包
item_match inv take "Minecraft -material bread -amount 5"

7 8

创建任务,如果触发交付对话,就会完成任务

9

talk 是填入 node_1769780985850 的对话标识符,即对话 ID

完成 太好了,真的感谢你,这是我的礼物,请你收下 这段对话后,就会完成任务

10

如果任务完成了,则显示 别骚扰我 的对话

11

进阶设置

导航位置

如果需要导航,你想让玩家前往哪个位置,可以在这里设置。

12

设置追踪时计分板的内容

如果需要设置追踪时计分板的内容,可以在这里设置。

13

启用计分板

QuestEngine/module/scoreboard.yml
setting:
  # 是否启用
  enable: true
  content:
    - "&6&l追踪任务"
    - ""
    - "  &a{name}"
    - "  {ui_display}"
    - ""
  # 正在追踪的任务是否在完成后自动隐藏
  auto-hide: true

接受任务后主动追踪事件条目

如果需要接受任务后主动追踪事件条目,可以在这里设置。

接受任务后主动追踪事件条目
objective track with 1

提示

1 是事件条目的标识符

15

14

接受任务触发器可以设置提示消息

tell "&a开始收集美食任务"

16

完成任务后触发器可以设置提示消息、奖励

tell "&a完成收集美食任务"
command inline "give {{ sender }} minecraft:golden_apple 1" as console

17

完整配置文件

QuestEngine/core/quest/收集美食任务.yml
收集美食任务:
  meta:
    name: 收集美食任务
  objective:
    "1":
      node:
        talk: node_1769780985850
      event: conversation
      agent:
        track: {}
      addon: {}
  objectiveOrder:
    - 1
  addon:
    ui:
      display:
        - "&f收集 &65 &f个面包后交付给奥比"
  trigger:
    accept: |-
      objective track with 1
      tell "&a开始收集美食任务"
    complete: |-
      tell "&a完成收集美食任务"
      command inline "give {{ sender }} minecraft:golden_apple 1" as console
QuestEngine/core/conversation/与奥比的对话.yml
node_1769779007460:
  content:
    - 明天是美食活动,你可以帮助我找一些食材吗?
  answer:
    - text: 包在我身上
      action: quest accept with 收集美食任务
    - text: 下次一定
  canvas:
    x: 520
    "y": -105
node_1769780328024:
  content:
    - 你已经找到食材了吗?
  answer:
    - text: 我收集好了
      if: check item_match inv count "Minecraft -material bread" >= 5
      action: item_match inv take "Minecraft -material bread -amount 5"
      open: node_1769780985850
    - text: 还没有
  canvas:
    x: 520
    "y": 125
switch_1769779253972:
  when:
    - if: check quest status with 收集美食任务 =? INACTIVE
      open: node_1769779007460
    - if: check quest status with 收集美食任务 =? ACTIVE
      open: node_1769780328024
    - if: "true"
      open: node_1769781572609
  canvas:
    x: 100
    "y": 25
  npc: 奥比
node_1769780985850:
  content:
    - 太好了,真的感谢你,这是我的礼物,请你收下
  answer:
    - text: 小意思
  canvas:
    x: 966
    "y": 182
node_1769781572609:
  content:
    - 不要骚扰我
  answer:
    - text: 对不起
  canvas:
    x: 530
    "y": 395

目录