- 欢迎来到Minecraft插件百科!
- 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
- 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289
BetonQuest:修订间差异
SetttingDust(留言 | 贡献) 无编辑摘要 |
SetttingDust(留言 | 贡献) 无编辑摘要 |
||
第76行: | 第76行: | ||
*/questlang: ql | */questlang: ql | ||
=== 详情 === | === 详情 === | ||
/q reload重载所有配置,但是不是所有东西都会被保存。当数据库保存时,不可以修改玩家数据。数据库也是一样,你需要重启/重载服务器才可以保存数据库 | */q reload重载所有配置,但是不是所有东西都会被保存。当数据库保存时,不可以修改玩家数据。数据库也是一样,你需要重启/重载服务器才可以保存数据库<br> | ||
标签相关的命令可以让你快速的编辑它 ,'/q tags Beton' 将会列出Beton这个玩家的标签。'/q tags Beton add test'将会添加"test"标签给玩家,并且 '/q tags Beton del test' 会移除它 | *标签相关的命令可以让你快速的编辑它 ,'/q tags Beton' 将会列出Beton这个玩家的标签。'/q tags Beton add test'将会添加"test"标签给玩家,并且 '/q tags Beton del test' 会移除它<br> | ||
点数相关的命令可以操纵点数。向一个类别添加点数应该用'/q points Beton add reputation 20' (给"reputation"添加20点)。你也可以使用负数来减去。 删除全部点数使用'/q points Beton del reputation'. | *点数相关的命令可以操纵点数。向一个类别添加点数应该用'/q points Beton add reputation 20' (给"reputation"添加20点)。你也可以使用负数来减去。 删除全部点数使用'/q points Beton del reputation'.<br> | ||
日志相关命令与上面两项相同。添加或删除使用 /q journal Beton add default.wood_started (or del),并且你也可以在结尾加上时间来指定时间,格式为:23.04.2014_16:52。注意要用_来代替空格!名字前必须带上包名,因为命令不属于任何包 | *日志相关命令与上面两项相同。添加或删除使用 /q journal Beton add default.wood_started (or del),并且你也可以在结尾加上时间来指定时间,格式为:23.04.2014_16:52。注意要用_来代替空格!名字前必须带上包名,因为命令不属于任何包<br> | ||
目标相关命令可以显示玩家的目标。它也可以直接对不表进行操作。记住要在事件/条件前加上包名!如果你想添加一个在events.yml中有定义的目标,只需要使用事件的相关命令 | *目标相关命令可以显示玩家的目标。它也可以直接对不表进行操作。记住要在事件/条件前加上包名!如果你想添加一个在events.yml中有定义的目标,只需要使用事件的相关命令<br> | ||
使在线玩家激活事件可以使用'/q event Beton default.give_emeralds'这将会为玩家Beton从”default”包激活 "give_emeralds"。也有条件相关的指令来操作,例如'/q condition Beton default.has_food'。事件与条件必须在它们的文件中定义,这个命令不支持原版指令。你可以不写包名,之后插件会自动读取default_package它可以在config.yml设置 | *使在线玩家激活事件可以使用'/q event Beton default.give_emeralds'这将会为玩家Beton从”default”包激活 "give_emeralds"。也有条件相关的指令来操作,例如'/q condition Beton default.has_food'。事件与条件必须在它们的文件中定义,这个命令不支持原版指令。你可以不写包名,之后插件会自动读取default_package它可以在config.yml设置<br> | ||
如果需要创建一个"Nettlebane"任务物品,只需要把它拿在手里之后输入'/q item default.nettlebane'. 你手中的物品就会复制到items.yml 并且以你指定的名称保存(这里是"nettlebane"). 你也可以不输入包名. | *如果需要创建一个"Nettlebane"任务物品,只需要把它拿在手里之后输入'/q item default.nettlebane'. 你手中的物品就会复制到items.yml 并且以你指定的名称保存(这里是"nettlebane"). 你也可以不输入包名.<br> | ||
你可以在. set 项中自定义命令的参数。.add 可以让你快捷的添加字符到存在的值上. (需要注意的地方: 插件不会识别空格,你可以用“_”这个字符来代替空格。例如objective location,是一段存在的字符串,并且你想给它附加 100;200;300;world;10这个值,你的命令应该是/q config add default.events.loc_obj _100;200;300;world;10). read 可以显示配置的值。<br> | *你可以在. set 项中自定义命令的参数。.add 可以让你快捷的添加字符到存在的值上. (需要注意的地方: 插件不会识别空格,你可以用“_”这个字符来代替空格。例如objective location,是一段存在的字符串,并且你想给它附加 100;200;300;world;10这个值,你的命令应该是/q config add default.events.loc_obj _100;200;300;world;10). read 可以显示配置的值。<br> | ||
这里的路径就是值的地址。你可以用“.”来表示分支,例如config.language,可以设置语言键的值,同理"bye"这个玩家的配置项路径应该是 | 这里的路径就是值的地址。你可以用“.”来表示分支,例如config.language,可以设置语言键的值,同理"bye"这个玩家的配置项路径应该是 | ||
default.conversations.innkeeper.player_options.bye.text | default.conversations.innkeeper.player_options.bye.text<br> | ||
你可以使用'/q purge Beton'清除指定玩家的数据. 目前无法使用命令清除整个数据库,但你可以修改数据库的前缀<br> | *你可以使用'/q purge Beton'清除指定玩家的数据. 目前无法使用命令清除整个数据库,但你可以修改数据库的前缀<br> | ||
如果你想要备份你的设置以及数据,需要你的服务器是空的(需要获取所有数据库的数据>所有玩家离线)之后运行'/q backup'这条命令,你将会获得一个包含所有数据的zip压缩文件。 | 如果你想要备份你的设置以及数据,需要你的服务器是空的(需要获取所有数据库的数据>所有玩家离线)之后运行'/q backup'这条命令,你将会获得一个包含所有数据的zip压缩文件。<br> | ||
使用'/q create beton' 你可以创建一个名为'beton'的任务,它将会与默认任务相同。 | *使用'/q create beton' 你可以创建一个名为'beton'的任务,它将会与默认任务相同。<br> | ||
/q vector 命令可以让你创建一个由第一个位置变量到你的位置的矢量。结果会储存到"vectors.{第二参数}" | */q vector 命令可以让你创建一个由第一个位置变量到你的位置的矢量。结果会储存到"vectors.{第二参数}" | ||
== 权限 == | == 权限 == | ||
*betonquest.admin – 允许使用管理员命令(/q ...)且可以创建NPC | *betonquest.admin – 允许使用管理员命令(/q ...)且可以创建NPC | ||
第95行: | 第95行: | ||
*betonquest.backpack –允许使用/backpack 指令(默认为玩家) | *betonquest.backpack –允许使用/backpack 指令(默认为玩家) | ||
*betonquest.conversation -允许与NPC对话(默认为玩家)betonquest.language -允许改变的语言(默认为玩家) | *betonquest.conversation -允许与NPC对话(默认为玩家)betonquest.language -允许改变的语言(默认为玩家) | ||
== 创建对话 == | |||
对话是rpg系统的基础,这是开始或者完成任务的主要方法,也可以制造更多身临其境的游戏体验。你制作的每一个对话文件都放在在"conversations" 目录下。(更多相关信息请看"default"文件夹里面的 BetonQuest目录)对话文件文件必须以.yml为后缀,比如 innkeeper. yml | |||
让我们来脑补一下。然后我们可以尝试去弄清楚如何完成它。在玩家的眼里面看上去是这样的:玩家右击npc(让我们把npc称作小芳玩家称作小五)小芳说出她的初始文本,然后小五可以从中选择,假设有三个选项。小五在聊天栏输入 1(或者2,3),然后小芳继续对话。小五再一次拥有选项去选择之类的。如果小五输入其他例如字母或者较大的数字。小芳会做出她无法理解他的回应。 | |||
每一个对话必须设定npc名字(一些对话不可以绑定任何npc,所以指定它非常重要,即使还没有这个npc),他的初次问候选项,他对未知玩家的回答和最终事件。 | |||
注意1:配置文件使用yaml格式。如果你不知道什么是yaml,cnm不会百度么(can u f**k the Google?)?最主要的规则是当你进入更深层的阶层树时你要用两个空格代替标签。如果你想使用单引号(必须半角),你需要确保还有另一个单引号且它们分别处于文本开头及结尾 (例如上面的未知配置项)。当写为ture或者false时它依旧需要用'围起来。如果你想用&来做一行的开头,那么你需要在开头结尾加上单引号。 | |||
注意2:上文的对话只是一个栗子。它并不是有效的,因为它缺少了很多其他的设置。 |
2015年8月24日 (一) 14:29的版本
外文名 | 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 -允许改变的语言(默认为玩家)
创建对话
对话是rpg系统的基础,这是开始或者完成任务的主要方法,也可以制造更多身临其境的游戏体验。你制作的每一个对话文件都放在在"conversations" 目录下。(更多相关信息请看"default"文件夹里面的 BetonQuest目录)对话文件文件必须以.yml为后缀,比如 innkeeper. yml
让我们来脑补一下。然后我们可以尝试去弄清楚如何完成它。在玩家的眼里面看上去是这样的:玩家右击npc(让我们把npc称作小芳玩家称作小五)小芳说出她的初始文本,然后小五可以从中选择,假设有三个选项。小五在聊天栏输入 1(或者2,3),然后小芳继续对话。小五再一次拥有选项去选择之类的。如果小五输入其他例如字母或者较大的数字。小芳会做出她无法理解他的回应。
每一个对话必须设定npc名字(一些对话不可以绑定任何npc,所以指定它非常重要,即使还没有这个npc),他的初次问候选项,他对未知玩家的回答和最终事件。
注意1:配置文件使用yaml格式。如果你不知道什么是yaml,cnm不会百度么(can u f**k the Google?)?最主要的规则是当你进入更深层的阶层树时你要用两个空格代替标签。如果你想使用单引号(必须半角),你需要确保还有另一个单引号且它们分别处于文本开头及结尾 (例如上面的未知配置项)。当写为ture或者false时它依旧需要用'围起来。如果你想用&来做一行的开头,那么你需要在开头结尾加上单引号。 注意2:上文的对话只是一个栗子。它并不是有效的,因为它缺少了很多其他的设置。