本帖最后由 卿风风 于 2017-7-8 21:27 编辑 
              复制代码
复制代码
复制代码
             复制代码复制代码复制代码复制代码复制代码复制代码复制代码复制代码
复制代码复制代码复制代码复制代码复制代码复制代码复制代码复制代码
前言:————————————————————————————————————————————————————准备工具: BetonQuest/Citizens/MythicMobs 站内贴: BetonQuestCitizens MythicMobs原帖: BetonQuest Citizens MythicMobs站内WIKI翻译贴: http://mcbbs.tvt.im/thread-676922-1-1.html
& 插件介绍 &BetonQuest是一款先进而强大的任务插件。 它提供与NPC的RPG式对话和非常灵活的任务系统。 BetonQuest允许您自由定义应该发生的事件(event),它将在什么时候发生(conditions)以及需要做什么(objectives),而不是限制在纯粹的任务 。 你的任务不必看起来像“杀怪,带来掉落物,获得奖励”;你可以创建多分支的故事,过程中与NPC对话,产生多个结局,在许多方面改变玩家的游戏体验。————————————————————————————————————————————————————正篇:(事件 条件 目标等,请前往WIKI翻译帖查看)&1. 创建一个能说话的NPC 首先打开default文件夹中的conversations文件夹 创建一个文件格式为yml格式 打开进入编辑以下信息
      打开进入编辑以下信息
然后在游戏中创建一个NPC 指令: /npc create 代毕 然后输入/npc,查看NPC的ID是多少 再回到betonquest文件夹中 打开default文件夹中的main.yml 编辑以下信息      '0': 代毕
'0'代表的是NPC的ID "代毕"代表的是conversations文件夹中对话的文件名称, 比如刚刚的代毕.yml改成白迟.yml的话 那么main.yml中应该是 '0': 白迟 然后在游戏中输入指令: /q reload 现在右键NPC试试
       &1. 结束————————————————————————————————————————————————————&2. 做一个物品交付重复任务      首先打开default文件夹中的conversations文件夹中的代毕.yml      然后再打开default文件夹中的event.yml和conditions.yml和journal.yml      先到代毕.yml的对话文本中修改对话      下来,设置条件来限制这两条对话      打开event.yml      第一条event的意思是添加一个笔记名字为 代毕任务笔记 的笔记      第二条event的意思是删除一个笔记名字为 代毕任务笔记 的笔记      第二条event的意思是执行一条指令 eco give %player% 100(%player%为玩家变量)      打开journal.yml      笔记名: '笔记内容'      打开conditions.yml      这条conditions的意思是 如果拥有笔记名为 代毕任务笔记 的笔记      那你就拥有条件 代毕任务已接取      回到代毕.yml      在NPC_options对话下的a添加上 conditions: '!代毕任务已接取'      代表的意思是,当玩家没有条件名为 代毕任务已接取 的就可以触发这个对话      (小写感叹号代表没有,没有小写感叹号代表有)      再在NPC_options对话下的b添加上 conditions: '代毕任务已接取'      再在player_options对话下的p1添加上 event: '代毕任务笔记'      代表的意思是: 当使用到这个对话的时候,触发事件名为"代毕任务笔记"的事件      然后在游戏中手持木头输入指令: q item 木头      然后在conditions.yml中写上      代毕-拥有五块木头: 'item 木头:5'      代表的当玩家背包中有五个木头时,拥有条件'代毕-拥有五块木头'      再在event.yml中写入      代毕-收取五块木头: 'take 木头:5'      代表的意思是从玩家背包中收取五块木头      (这里的木头是你之前输入指令时设置的,所需的物品是你之前输入指令时手持的物品)      回到代毕.yml      在player_options对话p2添加上 conditions: '代毕-拥有五块木头'      代表的意思是: 但玩家拥有五块木头的时候,开启该对话      再在player_options对话p3添加上 conditions: '!代毕-拥有五块木头'      代表的意思是: 但玩家未拥有五块木头的时候,开启该对话      再在NPC_options对话c添加上 event: '代毕-收取五块木头,删除代毕任务笔记,代毕任务奖励'      代表的意思是: 执行事件"代毕-收取五块木头删除代毕任务笔记代毕任务奖励"
&1. 结束————————————————————————————————————————————————————&2. 做一个物品交付重复任务      首先打开default文件夹中的conversations文件夹中的代毕.yml      然后再打开default文件夹中的event.yml和conditions.yml和journal.yml      先到代毕.yml的对话文本中修改对话      下来,设置条件来限制这两条对话      打开event.yml      第一条event的意思是添加一个笔记名字为 代毕任务笔记 的笔记      第二条event的意思是删除一个笔记名字为 代毕任务笔记 的笔记      第二条event的意思是执行一条指令 eco give %player% 100(%player%为玩家变量)      打开journal.yml      笔记名: '笔记内容'      打开conditions.yml      这条conditions的意思是 如果拥有笔记名为 代毕任务笔记 的笔记      那你就拥有条件 代毕任务已接取      回到代毕.yml      在NPC_options对话下的a添加上 conditions: '!代毕任务已接取'      代表的意思是,当玩家没有条件名为 代毕任务已接取 的就可以触发这个对话      (小写感叹号代表没有,没有小写感叹号代表有)      再在NPC_options对话下的b添加上 conditions: '代毕任务已接取'      再在player_options对话下的p1添加上 event: '代毕任务笔记'      代表的意思是: 当使用到这个对话的时候,触发事件名为"代毕任务笔记"的事件      然后在游戏中手持木头输入指令: q item 木头      然后在conditions.yml中写上      代毕-拥有五块木头: 'item 木头:5'      代表的当玩家背包中有五个木头时,拥有条件'代毕-拥有五块木头'      再在event.yml中写入      代毕-收取五块木头: 'take 木头:5'      代表的意思是从玩家背包中收取五块木头      (这里的木头是你之前输入指令时设置的,所需的物品是你之前输入指令时手持的物品)      回到代毕.yml      在player_options对话p2添加上 conditions: '代毕-拥有五块木头'      代表的意思是: 但玩家拥有五块木头的时候,开启该对话      再在player_options对话p3添加上 conditions: '!代毕-拥有五块木头'      代表的意思是: 但玩家未拥有五块木头的时候,开启该对话      再在NPC_options对话c添加上 event: '代毕-收取五块木头,删除代毕任务笔记,代毕任务奖励'      代表的意思是: 执行事件"代毕-收取五块木头删除代毕任务笔记代毕任务奖励"
这样整个对话是这样子的 当你没有接取代毕任务时,NPC会说"小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?" 当你接取了代毕任务时并且拥有了五个木头, NPC最后会说"很感谢你,小伙子"并收取你五个木头并执行指令'command eco give %player% 100'& 最后各个文件中是这样的 &代毕.yml
event.ymljournal.ymlconditions.yml&2. 结束————————————————————————————————————————————————————&2. 做一个随机对话      首先打开default文件夹中打开conversations文件夹创建一个对话      然后打开default文件夹中的conditions.yml      输入以下内容      这个的意思是当对话或任务使用到该条件时有1/2几率达成该条件      回到conversations文件夹中的对话文件      修改为以下内容      这样的话,但你回答NPC '有事吗'的时候,有1/2几率NPC回答你'没事'或'你过来一下,我给你看个宝贝'&3. 结束
BetonQuest
一点编辑教程
前言:
————————————————————————————————————————————————————
准备工具: BetonQuest/Citizens/MythicMobs 
站内WIKI翻译贴: http://mcbbs.tvt.im/thread-676922-1-1.html
& 插件介绍 &
BetonQuest是一款先进而强大的任务插件。 它提供与NPC的RPG式对话和非常灵活的任务系统。 
BetonQuest允许您自由定义应该发生的事件(event),它将在什么时候发生(conditions)以及需要做什么(objectives),
而不是限制在纯粹的任务 。 
你的任务不必看起来像“杀怪,带来掉落物,获得奖励”;
你可以创建多分支的故事,过程中与NPC对话,产生多个结局,在许多方面改变玩家的游戏体验。
————————————————————————————————————————————————————
正篇:
(事件 条件 目标等,请前往WIKI翻译帖查看)
&1. 创建一个能说话的NPC
            首先打开default文件夹中的conversations文件夹
            创建一个文件格式为yml格式

            打开进入编辑以下信息
- quester: '代毕'
 
- first: 'a'
 
- NPC_options:
 
-   a:
 
-    text: '&a你好'
 
-    pointers: 'p1'
 
- player_options: 
 
-   p1:
 
- text: '&f我好'
            然后在游戏中创建一个NPC
            指令: /npc create 代毕
            然后输入/npc,查看NPC的ID是多少
            再回到betonquest文件夹中
            打开default文件夹中的main.yml         
            编辑以下信息
- npcs:
 
- '0': 代毕
            '0': 代毕
            '0'代表的是NPC的ID
            "代毕"代表的是conversations文件夹中对话的文件名称,
            比如刚刚的代毕.yml改成白迟.yml的话
            那么main.yml中应该是 '0': 白迟
            然后在游戏中输入指令: /q reload
            现在右键NPC试试

&1. 结束
————————————————————————————————————————————————————
&2. 做一个物品交付重复任务
            首先打开default文件夹中的conversations文件夹中的代毕.yml
            然后再打开default文件夹中的event.yml和conditions.yml和journal.yml
            先到代毕.yml的对话文本中修改对话
- quester: '代毕'
 
- first: 'a,b'
 
- NPC_options:
 
-   a:
 
-    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
 
-    pointers: 'p1'
 
-   b:
 
-    text: '&a小伙子,木头砍来了吗?'
 
-    pointers: 'p2,p3'
 
-   c:
 
-    text: '&a很感谢你,小伙子'
 
- player_options: 
 
-   p1:
 
-    text: '&f可以,没问题'
 
-   p2:
 
-    text: '&f带来了' 
 
-    pointers: 'c'
 
- p3:
 
-    text: '&f还没有'
 
            下来,设置条件来限制这两条对话
            打开event.yml
- 代毕任务笔记: 'journal add 代毕任务笔记'
 
- 删除代毕任务笔记: 'journal del 代毕任务笔记'
 
- 代毕任务奖励: 'command eco give %player% 100'
            第一条event的意思是添加一个笔记名字为 代毕任务笔记 的笔记
            第二条event的意思是删除一个笔记名字为 代毕任务笔记 的笔记
            第二条event的意思是执行一条指令 eco give %player% 100  (%player%为玩家变量)
            打开journal.yml
- 代毕任务笔记: '代毕拜托我,让我帮他砍几颗树,并将木头带给他'
 
            笔记名: '笔记内容'
            打开conditions.yml
- 代毕任务已接取: 'journal 代毕任务笔记'
 
            这条conditions的意思是 如果拥有笔记名为 代毕任务笔记 的笔记
            那你就拥有条件 代毕任务已接取
            回到代毕.yml
            在NPC_options对话下的a添加上 conditions: '!代毕任务已接取'
            代表的意思是,当玩家没有条件名为 代毕任务已接取 的就可以触发这个对话
            (小写感叹号代表没有,没有小写感叹号代表有)
            再在NPC_options对话下的b添加上 conditions: '代毕任务已接取'
            再在player_options对话下的p1添加上 event: '代毕任务笔记'
            代表的意思是: 当使用到这个对话的时候,触发事件名为"代毕任务笔记"的事件
- quester: '代毕'
 
- first: 'a,b'
 
- NPC_options:
 
-   a:
 
-    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
 
-    conditions: '!代毕任务已接取'
 
-    pointers: 'p1'
 
-   b:
 
-    text: '&a小伙子,木头砍来了吗?'
 
-    conditions: '代毕任务已接取'
 
-    pointers: 'p2,p3'
 
-   c:
 
-    text: '&a很感谢你,小伙子'
 
- player_options: 
 
-   p1:
 
-    text: '&f可以,没问题'
 
-    event: '代毕任务笔记'
 
-   p2:
 
-    text: '&f带来了'
 
-    pointers: 'c'
 
-   p3:
 
- text: '&f还没有'
            然后在游戏中手持木头输入指令: q item 木头
            然后在conditions.yml中写上
            代毕-拥有五块木头: 'item 木头:5'
            代表的当玩家背包中有五个木头时,拥有条件'代毕-拥有五块木头'
- 代毕-拥有五块木头: 'item 木头:5'
 
            再在event.yml中写入
            代毕-收取五块木头: 'take 木头:5'
            代表的意思是从玩家背包中收取五块木头
            (这里的木头是你之前输入指令时设置的,所需的物品是你之前输入指令时手持的物品)
- 代毕-收取五块木头: 'take 木头:5'
 
            回到代毕.yml
            在player_options对话p2添加上 conditions: '代毕-拥有五块木头'
            代表的意思是: 但玩家拥有五块木头的时候,开启该对话
            再在player_options对话p3添加上 conditions: '!代毕-拥有五块木头'
            代表的意思是: 但玩家未拥有五块木头的时候,开启该对话
            再在NPC_options对话c添加上 event: '代毕-收取五块木头,删除代毕任务笔记,代毕任务奖励'
            代表的意思是: 执行事件"代毕-收取五块木头  删除代毕任务笔记  代毕任务奖励"
- quester: '代毕'
 
- first: 'a,b'
 
- NPC_options:
 
-   a:
 
-    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
 
-    conditions: '!代毕任务已接取'
 
-    pointers: 'p1'
 
-   b:
 
-    text: '&a小伙子,木头砍来了吗?'
 
-    conditions: '代毕任务已接取'
 
-    pointers: 'p2,p3'
 
-   c:
 
-    text: '&a很感谢你,小伙子'
 
-    event: '代毕-收取五块木头,删除代毕任务笔记,代毕任务奖励'
 
- player_options: 
 
-   p1:
 
-    text: '&f可以,没问题'
 
-    event: '代毕任务笔记' 
 
-   p2:
 
-    text: '&f带来了'
 
-    conditions: '代毕-拥有五块木头'
 
-    pointers: 'c'
 
-   p3:
 
-    text: '&f还没有'
 
- conditions: '!代毕-拥有五块木头'
       这样整个对话是这样子的
            当你没有接取代毕任务时,NPC会说"小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?"
            当你接取了代毕任务时并且拥有了五个木头,
            NPC最后会说"很感谢你,小伙子"并收取你五个木头并执行指令'command eco give %player% 100'
& 最后各个文件中是这样的 &
&2. 结束
————————————————————————————————————————————————————
&2. 做一个随机对话
            首先打开default文件夹中打开conversations文件夹创建一个对话
复制代码
- quester: '咸蛋'
- first: 'a'
- NPC_options:
- a:
- text: '&a小伙子~'
- pointers: 'p1'
- player_options:
- p1:
- text: '&f有事吗'
            然后打开default文件夹中的conditions.yml
            输入以下内容
复制代码
- 随机对话: random 1-2
            这个的意思是当对话或任务使用到该条件时有1/2几率达成该条件
            回到conversations文件夹中的对话文件
            修改为以下内容
复制代码
- quester: '咸蛋'
- first: 'a'
- NPC_options:
- a:
- text: '&a小伙子~'
- pointers: 'p1'
- b:
- text: '&a没事'
- conditions: '!随机对话'
- c:
- text: '&a你过来一下,我给你看个宝贝'
- conditions: '随机对话'
- player_options:
- p1:
- text: '&f有事吗'
- pointers: 'b,c'
            这样的话,但你回答NPC '有事吗'的时候,有1/2几率NPC回答你'没事'或'你过来一下,我给你看个宝贝'
&3. 结束
2021.12 数据,可能有更多内容
BetonQuest一点编辑教程前言:————————————————————————————————————————————————————准备工具: BetonQuest/Citizens/MythicMobs 站内贴: BetonQuestCitizens MythicMobs原帖: BetonQuest Citizens MythicMobs站内WIKI翻译贴: http://mcbbs.tvt.im/thread-676922-1-1.html
& 插件介绍 &BetonQuest是一款先进而强大的任务插件。 它提供与NPC的RPG式对话和非常灵活的任务系统。 BetonQuest允许您自由定义应该发生的事件(event),它将在什么时候发生(conditions)以及需要做什么(objectives),而不是限制在纯粹的任务 。 你的任务不必看起来像“杀怪,带来掉落物,获得奖励”;你可以创建多分支的故事,过程中与NPC对话,产生多个结局,在许多方面改变玩家的游戏体验。————————————————————————————————————————————————————正篇:(事件 条件 目标等,请前往WIKI翻译帖查看)&1. 创建一个能说话的NPC 首先打开default文件夹中的conversations文件夹 创建一个文件格式为yml格式

代码:
- quester: '代毕'
 
- first: 'a'
 
- NPC_options:
 
- a:
 
-    text: '&a你好'
 
-    pointers: 'p1'
 
- player_options: 
 
- p1:
 
- text: '&f我好'
然后在游戏中创建一个NPC 指令: /npc create 代毕 然后输入/npc,查看NPC的ID是多少 再回到betonquest文件夹中 打开default文件夹中的main.yml 编辑以下信息
代码:
- npcs:
 
- '0': 代毕
'0'代表的是NPC的ID "代毕"代表的是conversations文件夹中对话的文件名称, 比如刚刚的代毕.yml改成白迟.yml的话 那么main.yml中应该是 '0': 白迟 然后在游戏中输入指令: /q reload 现在右键NPC试试

代码:
- quester: '代毕'
 
- first: 'a,b'
 
- NPC_options:
 
- a:
 
-    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
 
-    pointers: 'p1'
 
- b:
 
-    text: '&a小伙子,木头砍来了吗?'
 
-    pointers: 'p2,p3'
 
- c:
 
-    text: '&a很感谢你,小伙子'
 
- player_options: 
 
- p1:
 
-    text: '&f可以,没问题'
 
- p2:
 
-    text: '&f带来了' 
 
-    pointers: 'c'
 
- p3:
 
-    text: '&f还没有'
 
代码:
- 代毕任务笔记: 'journal add 代毕任务笔记'
 
- 删除代毕任务笔记: 'journal del 代毕任务笔记'
 
- 代毕任务奖励: 'command eco give %player% 100'
代码:
- 代毕任务笔记: '代毕拜托我,让我帮他砍几颗树,并将木头带给他'
 
代码:
- 代毕任务已接取: 'journal 代毕任务笔记'
 
代码:
- quester: '代毕'
 
- first: 'a,b'
 
- NPC_options:
 
- a:
 
-    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
 
-    conditions: '!代毕任务已接取'
 
-    pointers: 'p1'
 
- b:
 
-    text: '&a小伙子,木头砍来了吗?'
 
-    conditions: '代毕任务已接取'
 
-    pointers: 'p2,p3'
 
- c:
 
-    text: '&a很感谢你,小伙子'
 
- player_options: 
 
- p1:
 
-    text: '&f可以,没问题'
 
-    event: '代毕任务笔记'
 
- p2:
 
-    text: '&f带来了'
 
-    pointers: 'c'
 
- p3:
 
- text: '&f还没有'
代码:
- 代毕-拥有五块木头: 'item 木头:5'
 
代码:
- 代毕-收取五块木头: 'take 木头:5'
 
代码:
- quester: '代毕'
 
- first: 'a,b'
 
- NPC_options:
 
- a:
 
-    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
 
-    conditions: '!代毕任务已接取'
 
-    pointers: 'p1'
 
- b:
 
-    text: '&a小伙子,木头砍来了吗?'
 
-    conditions: '代毕任务已接取'
 
-    pointers: 'p2,p3'
 
- c:
 
-    text: '&a很感谢你,小伙子'
 
-    event: '代毕-收取五块木头,删除代毕任务笔记,代毕任务奖励'
 
- player_options: 
 
- p1:
 
-    text: '&f可以,没问题'
 
-    event: '代毕任务笔记' 
 
- p2:
 
-    text: '&f带来了'
 
-    conditions: '代毕-拥有五块木头'
 
-    pointers: 'c'
 
- p3:
 
-    text: '&f还没有'
 
- conditions: '!代毕-拥有五块木头'
这样整个对话是这样子的 当你没有接取代毕任务时,NPC会说"小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?" 当你接取了代毕任务时并且拥有了五个木头, NPC最后会说"很感谢你,小伙子"并收取你五个木头并执行指令'command eco give %player% 100'& 最后各个文件中是这样的 &代毕.yml
代码:
- quester: '代毕'
 
- first: 'a,b'
 
- NPC_options:
 
- a:
 
-    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
 
-    conditions: '!代毕任务已接取'
 
-    pointers: 'p1'
 
- b:
 
-    text: '&a小伙子,木头砍来了吗?'
 
-    conditions: '代毕任务已接取'
 
-    pointers: 'p2,p3'
 
- c:
 
-    text: '&a很感谢你,小伙子'
 
-    event: '代毕-收取五块木头,删除代毕任务笔记,代毕任务奖励'
 
- player_options: 
 
- p1:
 
-    text: '&f可以,没问题'
 
-    event: '代毕任务笔记' 
 
- p2:
 
-    text: '&f带来了'
 
-    conditions: '代毕-拥有五块木头'
 
-    pointers: 'c'
 
- p3:
 
-    text: '&f还没有'
 
- conditions: '!代毕-拥有五块木头'
event.yml
代码:
- 代毕任务笔记: 'journal add 代毕任务笔记'
 
- 删除代毕任务笔记: 'journal del 代毕任务笔记'
 
- 代毕任务奖励: 'command eco give %player% 100'
 
- 代毕-收取五块木头: 'take 木头:5'
代码:
- 代毕任务笔记: '代毕拜托我,让我帮他砍几颗树,并将木头带给他'
 
代码:
- 代毕任务已接取: 'journal 代毕任务笔记'
 
- 代毕-拥有五块木头: 'item 木头:5'
 
代码:
- quester: '咸蛋'
 
- first: 'a'
 
- NPC_options:
 
- a:
 
-    text: '&a小伙子~'
 
-    pointers: 'p1'
 
- player_options: 
 
- p1:
 
-    text: '&f有事吗'
 
代码:
- 随机对话: random 1-2
 
代码:
- quester: '咸蛋'
 
- first: 'a'
 
- NPC_options:
 
- a:
 
-    text: '&a小伙子~'
 
-    pointers: 'p1'
 
- b:
 
-    text: '&a没事'
 
-    conditions: '!随机对话'
 
- c:
 
-    text: '&a你过来一下,我给你看个宝贝'
 
-    conditions: '随机对话'
 
- player_options: 
 
- p1:
 
-    text: '&f有事吗'
 
-    pointers: 'b,c'
 
感觉好难哦。
。。都看不懂。浏览完的
其实,有BQ编辑器的
输入指令报错:/q item 木头
大佬有详细点的教程吗
我试了,但是右键没有反应
 本帖最后由 shengtianyu 于 2020-4-21 17:46 编辑 
怎么样才能取消套娃,这个任务做下来如果不删除任务手中一直有木头就会一直触发奖励,如果删除任务再次对话依旧会重新获取任务
怎么样才能取消套娃,这个任务做下来如果不删除任务手中一直有木头就会一直触发奖励,如果删除任务再次对话依旧会重新获取任务
感谢楼主分享
https://s1.ax1x.com/2020/09/22/wO7L1P.png
出错提示
https://s1.ax1x.com/2020/09/22/wO7qpt.png
https://s1.ax1x.com/2020/09/22/wO7XX8.png
https://s1.ax1x.com/2020/09/22/wO7O6f.png
出错提示
https://s1.ax1x.com/2020/09/22/wO7qpt.png
https://s1.ax1x.com/2020/09/22/wO7XX8.png
https://s1.ax1x.com/2020/09/22/wO7O6f.png
做出来提示这个大佬怎么解决









楼主写的太好了!
看起来太难了
没反应呀怎么办
支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持
楼主写的太好了!
正好用的上!