插件手册:betonquest:额外

(版本:2021-10-27 作者:duangfafa)

(本文实际上是讨论两种TAG控制对话的结构,初学者也可以只看第一段。)

利用树状图可以让你更清晰的了解某段对话具体要做什么,防止逻辑混乱。


上面这个图中,要和任务管理员成功进行这段接取任务的对话,玩家还不能有完成任务这个tag,它是用来防止玩家完成任务后再次接取任务。可以利用Objectives/静态事件来定时删除,让玩家能够重复进行任务。


除此之外,玩家会在和任务管理员对话完成后添加一个任务中的tag,它用来防止玩家无限次数的和任务管理员对话并接取任务,任务中这个tag将在完成任务后被删除。同样的,它也为玩家添加了找张三这个TAG,只有玩家拥有这个TAG,张三才会和玩家对话,当玩家和张三对话完毕之后这个TAG被删除,玩家再右键张三时就不会显示对话了,李四,老王同理。


我们还可以看到,玩家与老王交谈结束后会添加一个任务TAG,它是用来让玩家找{任务管理员}提交任务用的,没有这个TAG{任务管理员}应该是不会搭理玩家的。

如果你已经会制作任务并且制作了许多,你会发现给玩家添加的tag越来越多了,导致你需要翻找很久才能看完一个玩家所有的TAG,所以我们需要尽量少的给玩家添加永久性的TAG。

在图片中的简单任务链里,我们看到了许多的TAG,他们会在下一个任务完成后都会被删除,真正会给玩家打上的TAG只有完成任务

为什么不在任务完成后统一删除所有的TAG呢?

如果是小型的任务链当然可以。但是想想看,如果这是一个涉及数十个NPC的超大型任务链,要添加数十个TAG,在任务链结束时将要删除的TAG数量会令人发指。

下面是统一删除的大概树状图,对比一下,双方的优劣点。

可以看出,虽然易于管理但是需要的TAG数量更多了,在完成时删除的TAG也就更多。

这两种任务结构其实都有各自的优缺点,但总体第一种更为直观,第二种更方便管理。

  • 插件手册/betonquest/额外.txt
  • 最后更改: 2021/10/27 11:15
  • duangfafa