• 欢迎来到Minecraft插件百科!
  • 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
  • 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289

BetonQuest

来自Minecraft插件百科
SetttingDust留言 | 贡献2015年8月24日 (一) 14:20的版本
跳转到导航 跳转到搜索
BetonQuest
外文名BetonQuest
插件类型Spigot / CraftBukkit
最新版本v1.7.3
兼容服务端1.7.2-1.8.3
前置插件
源地址http://dev.bukkit.org/bukkit-plugins/BetonQuest


本条目已有一定量的内容,但仍需完善

欢迎参与本条目的完善工作

你可以从以下几个方面入手

  • 参阅格式化手册,并对该页面进行相应格式排版工作;
  • 日常检查是否内容有更新版本并更新该页面;
  • 修复该页面中已出现/潜在的问题

BetonQuest是一个高大上的任务插件。它不像传统的将任务变成一个与对话绑定,而是网状结构(即类似Gal的剧情系统)。
你的任务不一定要像"击杀, 带来物品, 获得奖励"这样: 你可以创建一个多条路线的任务,通过与NPC的对话,玩家可以进入不同的路线,获得不同的任务奖励。

特点

  • 你的冒险不止一条路可以走
  • 强大的事件系统:可以在任何地方发生你想的事情
  • 强大的条件系统:你可以限制任何事情的(不)发生
  • 拥有队伍系统,这带来了团队任务
  • 与NPC的对话的多样性
  • 所有的日志记录在一本书中
  • 独立的任务物品背包
  • 可以对物品操作,甚至是书中的文本
  • 可以给玩家增加标签(tag)来储存信息
  • 完善的荣誉系统
  • 位置监听:当玩家进入指定区域会触发事件
  • 每日任务和可重复任务
  • 任务可以分配到不同的包(方便管理)
  • 支持Citizens2
  • MythicMobs, Skript, WorldGuard和Vault的混合(意思就是全部支持)
  • 多语言支持并且非常容易翻译
  • 玩家可以选择自己的语种
  • 可以使用API创建你自己的事件、条件、目标(Developer)
  • 支持SQLite&MySQL数据库
  • 可备份的配置及数据
  • 自动升级

概览

这插件到底怎样运作?我将以一个简单的伐木任务为例来描述。请注意“事件”、“条件”和“目标”之间的区别。
首先,你需要创建一个和NPC的对话。玩家可在对话内的多个选项中进行选择,NPC会根据选项做出不同的反应(例如NPC会在玩家要求工作时告诉他去砍些树) 。同时,在某些地方会有“事件”被触发,增加一个获得木头的“目标”。它将会把该玩家标记为开始任务的人。从现在开始,NPC会在对话中使用不同的选项,例如他会让玩家快点干活。这些选项将会基于“条件”被选择。
当玩家完成“目标”时(例如通过摧毁木头),“事件”将会触发,将这个玩家标为采集木头的人。当玩家返回NPC处并与其对话时,NPC将以“条件”来核对玩家是否真的拥有那块木头。如果是的话,他将触发给予奖励的“事件”。
我们没有创建任何“任务”对象,只是创建了一个能触发“事件”并与“条件”进行核对的对话。“目标”当然也不是“任务”,它只能在玩家得到木头时标记该玩家,不能单独存在。另一方面,该对话可以在之后开始其他任务(例如挖一些矿石),所以“目标”也不是“任务”
不要为举的例子感到失望,这些只是简化后的过程,所以我可以更简单的解释这个系统,其实用BetonQuest可以做到更多
这些对话可以像在Baldur's Gate或是Skyrim一样有多种路线,任务可以有多种方式来结束,也可以有很多不同的影响玩家声誉的结局,就靠你来决定了。
这个插件也包含了一个在书中的日志。你玩过Morrowind吗? 它们差不多一样,我们只是保留了你查看日志的顺序,所以你不必翻好几百页。现在完成任务并不需要显示像“你收集了所有的矿石,现在回到矿工那儿!”这样的信息。反之,它可以更新玩家的日志,加入像这样的新的记录:“我收集了所有的矿石,我需要回到矿工那儿去拿奖励!”。这样会显得真实得多。

指令

/j – 给予一本日志
/backpack – 打开背包
/q – 列出所有可用的管理员指令
/q reload – 重载插件
/q objectives <playerName> [list/add/del] [instruction] –列出/修改玩家目标
/q tags <playerName> [list/add/del] [tag] – 列出/修改玩家的标签
/q points <playerName> [list/add/del] [category] [amount] – 列出/修改玩家在所有阵营的点数
/q journal <playerName> [list/add/del] [package.pointer] [date] - lists
/q event <playerName> <package.eventID> - 为玩家激活一个事件
/q condition <playerName> <package.conditionID> - 显示玩家是否经历过指定的环境
/q item <package.itemID> - 创建一个基于你手中物品的物品
/q config <set/add/read> <path> [value] – 操作配置项
/q purge <playerName> - 删除玩家数据
/q backup – 创建配置文件和数据库的备份
/q create <package>: 创建一个新的包并包含默认任务
/q vector <packname.variable> <newvariable>: 计算第一个位置变量到你的位置并且储存到第二个参数中
/questlang <lang> - 改变玩家的语言(如果由控制台使用就可以改变全局语言)

缩写

  • /j: bj, journal, bjournal, betonjournal, betonquestjournal
  • /backpack: b, bb, bbackpack, betonbackpack, betonquestbackpack
  • /q: bq, bquest, bquests, betonquest, betonquests, quest, quests
    • objective: o, objectives
    • tag: t, tags
    • point: p, points
    • event: e, events
    • condition: c, conditions
    • journal: j, journals
    • item: i, items
    • create: package
  • /questlang: ql

详情

/q reload重载所有配置,但是不是所有东西都会被保存。当数据库保存时,不可以修改玩家数据。数据库也是一样,你需要重启/重载服务器才可以保存数据库

标签相关的命令可以让你快速的编辑它 ,'/q tags Beton' 将会列出Beton这个玩家的标签。'/q tags Beton add test'将会添加"test"标签给玩家,并且 '/q tags Beton del test' 会移除它

点数相关的命令可以操纵点数。向一个类别添加点数应该用'/q points Beton add reputation 20' (给"reputation"添加20点)。你也可以使用负数来减去。 删除全部点数使用'/q points Beton del reputation'.

日志相关命令与上面两项相同。添加或删除使用 /q journal Beton add default.wood_started (or del),并且你也可以在结尾加上时间来指定时间,格式为:23.04.2014_16:52。注意要用_来代替空格!名字前必须带上包名,因为命令不属于任何包

目标相关命令可以显示玩家的目标。它也可以直接对不表进行操作。记住要在事件/条件前加上包名!如果你想添加一个在events.yml中有定义的目标,只需要使用事件的相关命令

使在线玩家激活事件可以使用'/q event Beton default.give_emeralds'这将会为玩家Beton从”default”包激活 "give_emeralds"。也有条件相关的指令来操作,例如'/q condition Beton default.has_food'。事件与条件必须在它们的文件中定义,这个命令不支持原版指令。你可以不写包名,之后插件会自动读取default_package它可以在config.yml设置

如果需要创建一个"Nettlebane"任务物品,只需要把它拿在手里之后输入'/q item default.nettlebane'. 你手中的物品就会复制到items.yml 并且以你指定的名称保存(这里是"nettlebane"). 你也可以不输入包名.

你可以在. set 项中自定义命令的参数。.add 可以让你快捷的添加字符到存在的值上. (需要注意的地方: 插件不会识别空格,你可以用“_”这个字符来代替空格。例如objective location,是一段存在的字符串,并且你想给它附加 100;200;300;world;10这个值,你的命令应该是/q config add default.events.loc_obj _100;200;300;world;10). read 可以显示配置的值。
这里的路径就是值的地址。你可以用“.”来表示分支,例如config.language,可以设置语言键的值,同理"bye"这个玩家的配置项路径应该是 default.conversations.innkeeper.player_options.bye.text

你可以使用'/q purge Beton'清除指定玩家的数据. 目前无法使用命令清除整个数据库,但你可以修改数据库的前缀
如果你想要备份你的设置以及数据,需要你的服务器是空的(需要获取所有数据库的数据>所有玩家离线)之后运行'/q backup'这条命令,你将会获得一个包含所有数据的zip压缩文件。

使用'/q create beton' 你可以创建一个名为'beton'的任务,它将会与默认任务相同。

/q vector 命令可以让你创建一个由第一个位置变量到你的位置的矢量。结果会储存到"vectors.{第二参数}"

权限

  • betonquest.admin – 允许使用管理员命令(/q ...)且可以创建NPC
  • betonquest.journal – 允许使用/ J指令(默认为玩家)
  • betonquest.backpack –允许使用/backpack 指令(默认为玩家)
  • betonquest.conversation -允许与NPC对话(默认为玩家)betonquest.language -允许改变的语言(默认为玩家)