Questlines

Questlines

为游戏添加数据驱动的任务线。

冒险

Bisect Hosting 推广横幅

Ko-fi 推广横幅


注意:此模组仍处于早期开发阶段,API 可能会发生变化。

Questlines 是一个数据驱动的 Minecraft 模组,它为游戏添加了——你猜对了——任务线。这些任务线可以通过数据包来创建。这使得创建任务线对于不懂编程的人来说非常容易。

结构

一条任务线由多个任务组成。这些任务可以只是连续的,也可以分支成多个任务分支。每个任务包含一个或多个目标。当所有目标都完成后,该任务也会被标记为完成,其所有子任务将变为可用。

Arc Lib

Questlines 使用一个名为 Arc Lib 的库模组(同样由 DAQEM Studios 制作)来注册目标玩家行为。Arc Lib 使定义玩家行为变得极其简单。你只需告诉 Arc Lib 该行为属于哪个目标,描述行为的条件,并将奖励设置为“目标发生”奖励。

示例

在此示例中,目标是挖掘 10 个草方块,奖励为 10 个石头方块。

任务线

文件:data/namespace/questlines/questlines/questline_name.json

{
  "is_unlocked_by_default": true
}

任务

文件:data/namespace/questlines/quests/quest_name.json

{
  "questline": "namespace:questline_name",
  "objectives": [
    {
      "id": "objective_name",
      "goal": 10
    }
  ],
  "rewards": [
    {
      "type": "arc:item",
      "item": "minecraft:stone",
      "amount": 10
    }
  ]
}

目标行为(Arc Lib)

文件:data/namespace/arc/quest_name/objective_name.json

{
  "holder": {
    "type": "questlines:objective",
    "id": "namespace:quest_name/objective_name"
  },
  "type": "arc:on_break_block",
  "conditions": [
    {
      "type": "arc:block",
      "block": "minecraft:grass_block"
    }
  ],
  "rewards": [
    {
      "type": "questlines:objective_occurrence"
    }
  ]
}

语言

文件:assets/namespace/lang/en_us.json

{
  "questlines.questline.namespace.questline_name": "The Best Quest Line Name!",
  "questlines.quest.namespace.quest_name": "Touch Grass",
  "questlines.quest.namespace.quest_name.description": "Break 10 Blocks of Grass and recieve 10 Stone.",
  "questlines.objective.namespace.quest_name.objective_name.description": "Break Grass Block"
}