概述
Questlines 是一个数据驱动的任务模组,支持使用数据包来制作任务系统。
模组尚处于早期开发阶段,所使用的 API 可能会改变。
内容
一个任务系统包含许多任务,它们可能是线性的,也可能是树状的。一个任务完成后将会被标记为完成,其子任务将会解锁。
Questlines 使用 Arc Lib 作为 API,依靠其行为 - 回报 - 条件框架作为驱动任务的机制。
以下为一个示例任务,要求挖掘 10 个草方块,以 10 个石头作为奖励。
任务组(Questline)
路径:data/命名空间/questlines/questlines/任务组名.json
内容:
{
"is_unlocked_by_default": true
}
任务(Quest)
路径:data/命名空间/questlines/quests/任务名.json
内容:
{
"questline": "namespace:questline_name",
"objectives": [
{
"id": "objective_name",
"goal": 10
}
],
"rewards": [
{
"type": "arc:item",
"item": "minecraft:stone",
"amount": 10
}
]
}
目标行为(Objective Actions)
路径:data/命名空间/arc/任务名称/目标名称.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/命名空间/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"
}