卿风风
本帖最后由 卿风风 于 2017-7-8 21:27 编辑
BetonQuest
一点编辑教程

前言:
————————————————————————————————————————————————————
准备工具: BetonQuest/Citizens/MythicMobs
站内贴: BetonQuest  Citizens 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格式
            
            打开进入编辑以下信息
  1. quester: '代毕'
  2. first: 'a'
  3. NPC_options:
  4.   a:
  5.    text: '&a你好'
  6.    pointers: 'p1'
  7. player_options:
  8.   p1:
  9.    text: '&f我好'
复制代码


            然后在游戏中创建一个NPC
            指令: /npc create 代毕
            然后输入/npc,查看NPC的ID是多少
            再回到betonquest文件夹中
            打开default文件夹中的main.yml         
            编辑以下信息
  1. npcs:
  2.   '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的对话文本中修改对话
  1. quester: '代毕'
  2. first: 'a,b'
  3. NPC_options:
  4.   a:
  5.    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
  6.    pointers: 'p1'
  7.   b:
  8.    text: '&a小伙子,木头砍来了吗?'
  9.    pointers: 'p2,p3'
  10.   c:
  11.    text: '&a很感谢你,小伙子'
  12. player_options:
  13.   p1:
  14.    text: '&f可以,没问题'
  15.   p2:
  16.    text: '&f带来了'
  17.    pointers: 'c'
  18. p3:
  19.    text: '&f还没有'
复制代码
            下来,设置条件来限制这两条对话
            打开event.yml
  1. 代毕任务笔记: 'journal add 代毕任务笔记'
  2. 删除代毕任务笔记: 'journal del 代毕任务笔记'
  3. 代毕任务奖励: 'command eco give %player% 100'
复制代码
            第一条event的意思是添加一个笔记名字为 代毕任务笔记 的笔记
            第二条event的意思是删除一个笔记名字为 代毕任务笔记 的笔记
            第二条event的意思是执行一条指令 eco give %player% 100  (%player%为玩家变量)
            打开journal.yml
  1. 代毕任务笔记: '代毕拜托我,让我帮他砍几颗树,并将木头带给他'
复制代码
            笔记名: '笔记内容'
            打开conditions.yml
  1. 代毕任务已接取: 'journal 代毕任务笔记'
复制代码
            这条conditions的意思是 如果拥有笔记名为 代毕任务笔记 的笔记
            那你就拥有条件 代毕任务已接取
            回到代毕.yml
            在NPC_options对话下的a添加上 conditions: '!代毕任务已接取'
            代表的意思是,当玩家没有条件名为 代毕任务已接取 的就可以触发这个对话
            (小写感叹号代表没有,没有小写感叹号代表有)
            再在NPC_options对话下的b添加上 conditions: '代毕任务已接取'
            再在player_options对话下的p1添加上 event: '代毕任务笔记'
            代表的意思是: 当使用到这个对话的时候,触发事件名为"代毕任务笔记"的事件
  1. quester: '代毕'
  2. first: 'a,b'
  3. NPC_options:
  4.   a:
  5.    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
  6.    conditions: '!代毕任务已接取'
  7.    pointers: 'p1'
  8.   b:
  9.    text: '&a小伙子,木头砍来了吗?'
  10.    conditions: '代毕任务已接取'
  11.    pointers: 'p2,p3'
  12.   c:
  13.    text: '&a很感谢你,小伙子'
  14. player_options:
  15.   p1:
  16.    text: '&f可以,没问题'
  17.    event: '代毕任务笔记'
  18.   p2:
  19.    text: '&f带来了'
  20.    pointers: 'c'
  21.   p3:
  22.    text: '&f还没有'
复制代码
            然后在游戏中手持木头输入指令: q item 木头
            然后在conditions.yml中写上
            代毕-拥有五块木头: 'item 木头:5'
            代表的当玩家背包中有五个木头时,拥有条件'代毕-拥有五块木头'
  1. 代毕-拥有五块木头: 'item 木头:5'
复制代码
            再在event.yml中写入
            代毕-收取五块木头: 'take 木头:5'
            代表的意思是从玩家背包中收取五块木头
            (这里的木头是你之前输入指令时设置的,所需的物品是你之前输入指令时手持的物品)
  1. 代毕-收取五块木头: 'take 木头:5'
复制代码
            回到代毕.yml
            在player_options对话p2添加上 conditions: '代毕-拥有五块木头'
            代表的意思是: 但玩家拥有五块木头的时候,开启该对话
            再在player_options对话p3添加上 conditions: '!代毕-拥有五块木头'
            代表的意思是: 但玩家未拥有五块木头的时候,开启该对话
            再在NPC_options对话c添加上 event: '代毕-收取五块木头,删除代毕任务笔记,代毕任务奖励'
            代表的意思是: 执行事件"代毕-收取五块木头  删除代毕任务笔记  代毕任务奖励"
  1. quester: '代毕'
  2. first: 'a,b'
  3. NPC_options:
  4.   a:
  5.    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
  6.    conditions: '!代毕任务已接取'
  7.    pointers: 'p1'
  8.   b:
  9.    text: '&a小伙子,木头砍来了吗?'
  10.    conditions: '代毕任务已接取'
  11.    pointers: 'p2,p3'
  12.   c:
  13.    text: '&a很感谢你,小伙子'
  14.    event: '代毕-收取五块木头,删除代毕任务笔记,代毕任务奖励'
  15. player_options:
  16.   p1:
  17.    text: '&f可以,没问题'
  18.    event: '代毕任务笔记'
  19.   p2:
  20.    text: '&f带来了'
  21.    conditions: '代毕-拥有五块木头'
  22.    pointers: 'c'
  23.   p3:
  24.    text: '&f还没有'
  25.    conditions: '!代毕-拥有五块木头'
复制代码

       这样整个对话是这样子的
            当你没有接取代毕任务时,NPC会说"小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?"
            当你接取了代毕任务时并且拥有了五个木头,
            NPC最后会说"很感谢你,小伙子"并收取你五个木头并执行指令'command eco give %player% 100'
& 最后各个文件中是这样的 &
&2. 结束
————————————————————————————————————————————————————
&2. 做一个随机对话
            首先打开default文件夹中打开conversations文件夹创建一个对话
  1. quester: '咸蛋'
  2. first: 'a'
  3. NPC_options:
  4.   a:
  5.    text: '&a小伙子~'
  6.    pointers: 'p1'
  7. player_options:
  8.   p1:
  9.    text: '&f有事吗'
复制代码
            然后打开default文件夹中的conditions.yml
            输入以下内容
  1. 随机对话: random 1-2
复制代码
            这个的意思是当对话或任务使用到该条件时有1/2几率达成该条件
            回到conversations文件夹中的对话文件
            修改为以下内容
  1. quester: '咸蛋'
  2. first: 'a'
  3. NPC_options:
  4.   a:
  5.    text: '&a小伙子~'
  6.    pointers: 'p1'
  7.   b:
  8.    text: '&a没事'
  9.    conditions: '!随机对话'
  10.   c:
  11.    text: '&a你过来一下,我给你看个宝贝'
  12.    conditions: '随机对话'
  13. player_options:
  14.   p1:
  15.    text: '&f有事吗'
  16.    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格式   
   打开进入编辑以下信息

代码:

  1. quester: '代毕'
  2. first: 'a'
  3. NPC_options:
  4. a:
  5.    text: '&a你好'
  6.    pointers: 'p1'
  7. player_options:
  8. p1:
  9.    text: '&f我好'



   然后在游戏中创建一个NPC   指令: /npc create 代毕   然后输入/npc,查看NPC的ID是多少   再回到betonquest文件夹中   打开default文件夹中的main.yml      编辑以下信息

代码:

  1. npcs:
  2. '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的对话文本中修改对话

代码:

  1. quester: '代毕'
  2. first: 'a,b'
  3. NPC_options:
  4. a:
  5.    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
  6.    pointers: 'p1'
  7. b:
  8.    text: '&a小伙子,木头砍来了吗?'
  9.    pointers: 'p2,p3'
  10. c:
  11.    text: '&a很感谢你,小伙子'
  12. player_options:
  13. p1:
  14.    text: '&f可以,没问题'
  15. p2:
  16.    text: '&f带来了'
  17.    pointers: 'c'
  18. p3:
  19.    text: '&f还没有'
   下来,设置条件来限制这两条对话   打开event.yml

代码:

  1. 代毕任务笔记: 'journal add 代毕任务笔记'
  2. 删除代毕任务笔记: 'journal del 代毕任务笔记'
  3. 代毕任务奖励: 'command eco give %player% 100'
   第一条event的意思是添加一个笔记名字为 代毕任务笔记 的笔记   第二条event的意思是删除一个笔记名字为 代毕任务笔记 的笔记   第二条event的意思是执行一条指令 eco give %player% 100(%player%为玩家变量)   打开journal.yml

代码:

  1. 代毕任务笔记: '代毕拜托我,让我帮他砍几颗树,并将木头带给他'
   笔记名: '笔记内容'   打开conditions.yml

代码:

  1. 代毕任务已接取: 'journal 代毕任务笔记'
   这条conditions的意思是 如果拥有笔记名为 代毕任务笔记 的笔记   那你就拥有条件 代毕任务已接取   回到代毕.yml   在NPC_options对话下的a添加上 conditions: '!代毕任务已接取'   代表的意思是,当玩家没有条件名为 代毕任务已接取 的就可以触发这个对话   (小写感叹号代表没有,没有小写感叹号代表有)   再在NPC_options对话下的b添加上 conditions: '代毕任务已接取'   再在player_options对话下的p1添加上 event: '代毕任务笔记'   代表的意思是: 当使用到这个对话的时候,触发事件名为"代毕任务笔记"的事件

代码:

  1. quester: '代毕'
  2. first: 'a,b'
  3. NPC_options:
  4. a:
  5.    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
  6.    conditions: '!代毕任务已接取'
  7.    pointers: 'p1'
  8. b:
  9.    text: '&a小伙子,木头砍来了吗?'
  10.    conditions: '代毕任务已接取'
  11.    pointers: 'p2,p3'
  12. c:
  13.    text: '&a很感谢你,小伙子'
  14. player_options:
  15. p1:
  16.    text: '&f可以,没问题'
  17.    event: '代毕任务笔记'
  18. p2:
  19.    text: '&f带来了'
  20.    pointers: 'c'
  21. p3:
  22.    text: '&f还没有'
   然后在游戏中手持木头输入指令: q item 木头   然后在conditions.yml中写上   代毕-拥有五块木头: 'item 木头:5'   代表的当玩家背包中有五个木头时,拥有条件'代毕-拥有五块木头'

代码:

  1. 代毕-拥有五块木头: 'item 木头:5'
   再在event.yml中写入   代毕-收取五块木头: 'take 木头:5'   代表的意思是从玩家背包中收取五块木头   (这里的木头是你之前输入指令时设置的,所需的物品是你之前输入指令时手持的物品)

代码:

  1. 代毕-收取五块木头: 'take 木头:5'
   回到代毕.yml   在player_options对话p2添加上 conditions: '代毕-拥有五块木头'   代表的意思是: 但玩家拥有五块木头的时候,开启该对话   再在player_options对话p3添加上 conditions: '!代毕-拥有五块木头'   代表的意思是: 但玩家未拥有五块木头的时候,开启该对话   再在NPC_options对话c添加上 event: '代毕-收取五块木头,删除代毕任务笔记,代毕任务奖励'   代表的意思是: 执行事件"代毕-收取五块木头删除代毕任务笔记代毕任务奖励"

代码:

  1. quester: '代毕'
  2. first: 'a,b'
  3. NPC_options:
  4. a:
  5.    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
  6.    conditions: '!代毕任务已接取'
  7.    pointers: 'p1'
  8. b:
  9.    text: '&a小伙子,木头砍来了吗?'
  10.    conditions: '代毕任务已接取'
  11.    pointers: 'p2,p3'
  12. c:
  13.    text: '&a很感谢你,小伙子'
  14.    event: '代毕-收取五块木头,删除代毕任务笔记,代毕任务奖励'
  15. player_options:
  16. p1:
  17.    text: '&f可以,没问题'
  18.    event: '代毕任务笔记'
  19. p2:
  20.    text: '&f带来了'
  21.    conditions: '代毕-拥有五块木头'
  22.    pointers: 'c'
  23. p3:
  24.    text: '&f还没有'
  25.    conditions: '!代毕-拥有五块木头'

    这样整个对话是这样子的   当你没有接取代毕任务时,NPC会说"小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?"   当你接取了代毕任务时并且拥有了五个木头,   NPC最后会说"很感谢你,小伙子"并收取你五个木头并执行指令'command eco give %player% 100'& 最后各个文件中是这样的 &代毕.yml

代码:

  1. quester: '代毕'
  2. first: 'a,b'
  3. NPC_options:
  4. a:
  5.    text: '&a小伙子,你好.看你身强力壮的,能帮我砍几颗树吗?'
  6.    conditions: '!代毕任务已接取'
  7.    pointers: 'p1'
  8. b:
  9.    text: '&a小伙子,木头砍来了吗?'
  10.    conditions: '代毕任务已接取'
  11.    pointers: 'p2,p3'
  12. c:
  13.    text: '&a很感谢你,小伙子'
  14.    event: '代毕-收取五块木头,删除代毕任务笔记,代毕任务奖励'
  15. player_options:
  16. p1:
  17.    text: '&f可以,没问题'
  18.    event: '代毕任务笔记'
  19. p2:
  20.    text: '&f带来了'
  21.    conditions: '代毕-拥有五块木头'
  22.    pointers: 'c'
  23. p3:
  24.    text: '&f还没有'
  25.    conditions: '!代毕-拥有五块木头'



event.yml

代码:

  1. 代毕任务笔记: 'journal add 代毕任务笔记'
  2. 删除代毕任务笔记: 'journal del 代毕任务笔记'
  3. 代毕任务奖励: 'command eco give %player% 100'
  4. 代毕-收取五块木头: 'take 木头:5'
journal.yml

代码:

  1. 代毕任务笔记: '代毕拜托我,让我帮他砍几颗树,并将木头带给他'
conditions.yml

代码:

  1. 代毕任务已接取: 'journal 代毕任务笔记'
  2. 代毕-拥有五块木头: 'item 木头:5'
&2. 结束
————————————————————————————————————————————————————&2. 做一个随机对话   首先打开default文件夹中打开conversations文件夹创建一个对话

代码:

  1. quester: '咸蛋'
  2. first: 'a'
  3. NPC_options:
  4. a:
  5.    text: '&a小伙子~'
  6.    pointers: 'p1'
  7. player_options:
  8. p1:
  9.    text: '&f有事吗'
   然后打开default文件夹中的conditions.yml   输入以下内容

代码:

  1. 随机对话: random 1-2
   这个的意思是当对话或任务使用到该条件时有1/2几率达成该条件   回到conversations文件夹中的对话文件   修改为以下内容

代码:

  1. quester: '咸蛋'
  2. first: 'a'
  3. NPC_options:
  4. a:
  5.    text: '&a小伙子~'
  6.    pointers: 'p1'
  7. b:
  8.    text: '&a没事'
  9.    conditions: '!随机对话'
  10. c:
  11.    text: '&a你过来一下,我给你看个宝贝'
  12.    conditions: '随机对话'
  13. player_options:
  14. p1:
  15.    text: '&f有事吗'
  16.    pointers: 'b,c'
   这样的话,但你回答NPC '有事吗'的时候,有1/2几率NPC回答你'没事'或'你过来一下,我给你看个宝贝'&3. 结束







梅子酒呀
感觉好难哦。

691732458
。。都看不懂。浏览完的

TONMMY
其实,有BQ编辑器的

nja2106820
输入指令报错:/q item 木头

弑天游戏
大佬有详细点的教程吗

Amoshel
我试了,但是右键没有反应

Amoshel
Amoshel 发表于 2019-7-17 02:05
我试了,但是右键没有反应

全输入了一遍,并没有反应,没有成功

shengtianyu
本帖最后由 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

月熊
做出来提示这个大佬怎么解决

阿莎蕊雅同学
楼主写的太好了!

454564啊
看起来太难了

小菜鸡的铲屎官
没反应呀怎么办

736520978
支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持

天狼解说

楼主写的太好了!

The_shuo
正好用的上!

q1591443
nja2106820 发表于 2018-9-5 15:48
输入指令报错:/q item 木头

我也这样