本帖最后由 longlongz 于 2019-7-24 11:33 编辑

QuestCreator
[翻译文档帮助] | [Plugins Wiki]


欢迎来到QuestCreator的文档帮助界面! 在这里你可以找到许多关于插件的信息和帮助教程.
你可以在下方菜单中选择你想要了解的信息. 这个文档是为QuestCreator v2.0.0以上的版本写的.




主页与信息简述 [#2]
指令与权限 [#3]
对新用户的全面介绍 [#4]
-
任务分类 [#5]
创建一个任务 [#6]
任务奖励条件 [#7]
任务类型分支 [#8]
任务目标 [#9]
-
开发者信息 [#9]



项目翻译人员
Cytrus (@longlongz)





主页与信息简述
[ Home and Misc # Pg 2 ]



声音/材料/生物的相关信息 :
(如果有任何缺失的材料或声音,你可以联系作者)

这个页面中拥有一部分事件的解释,但是如果你想要了解详细内容的话,你应该阅读以下页面 :
  • 变量
  • 文本变量 (占位符)
  • 物品配置与方块
  • 储存系统





对变量的介绍
这款插件拥有一个十分先进的变量系统。变量可以在很多方面上影响到玩家的任务。举个例子,玩家在进行多项选择后,变量能够影响NPC的对话并改变当前的任务,甚至其他的任务也能够改变,还可以防止玩家做某些事,或者你可以在变量页面中查看更多的信息.
你需要了解的关于变量的一些事 :
  • 所有的变量只能够被分配到任何只拥有一行(数字,字符串,布尔值或其他)数值的事件上,并不支持列表。
  • 变量并不是通用的,这意味着每个变量的数值对所有人都不同。例如:如果一个变量叫做"帅气数值",这个变量可能对玩家LocusAzzuro的数值为100,但是对玩家longlongz的数值却可能是50。
  • 变量的名称和数值都对大小写敏感。
  • 你可以在配置的"Variables"列表中为变量设置一个默认的数值,这不会对插件造成任何的实质性的影响





文本变量 (占位符)
这里是一些主要的占位符。你基本上可以在插件的任何文本上使用这些占位符,但是有些文本可能会造成一定的影响或者某种情况下不支持部分占位符。
{quest}, {name} - 任务名称
{player} - 小组组长名称
{objective} - 当前的任务目标
{objective_progress} - {objective}的进度
{objective_goal} - {objective}的目的
{detailed_progression} - 详细的进度"树状图" - 你可以在某些情况下使用这个占位符
{objective_detail_progress} - 当前目标的进度 - 你可以在某些情况下使用这个占位符
{objective_detail_goal} - 当前目标的目的 - - 你可以在某些情况下使用这个占位符
{objective_detail_percentage} - 当前目标的进度百分比 - - 你可以在某些情况下使用这个占位符
{variable:[变量名} - 变量对玩家的数值 (没有数值则显示 0)



材料列表(查看物品/方块ID用) : http://pyrrh4.be/doc/material/ (英)
每次你要配置一个物品是,你可以特定很多的设置。在下方的例子中你可以看到所有可以调整的设置.
大部分选项都可以自定义。如果你不想要任何物品,比如某些目标不需要,那么你就不用在"item"设置中添加任何代码
  1. item:
  2.   slot: 0 # 可选 ( GUI菜单用 )
  3.   enabled: true # 可选 ( GUI菜单用 )
  4.   type: YELLOW_WOOL #物品类型
  5.   durability: 0 # 耐久度(填写"0"代表无限耐久)
  6.   unbreakable: true # 无限耐久标签
  7.   amount: 1 #物品数量
  8.   name: '&a物品名称'
  9.   lore:
  10.     - '&7物品介绍'
  11.     - '&7第二排'
  12.   enchants: # 每一行放一个附魔属性, 格式为 : "[附魔属性英文名],[等级]"
  13.     - DAMAGE_ALL,1
  14.     - DURABILITY,3
  15.   nbt: # 一个 64 位物品 NBT 标签字符串 ; 可以用插件在游戏内的编辑器来导入代码
  16.   must_have_in_hand: true # 物品必须拿在手中 , 可选 (特定任务目标需要)
  17.   remove_after_action: true # 交互后移除物品 , 可选 (特定任务目标需要)
复制代码

你也可以在一些任务中指定多样物品 :
  1. items:
  2.   1:
  3.     type: COBBLESTONE
  4.     ...
  5.   2:
  6.     type: STONE
  7.     ....
复制代码



关于储存/配置文件的注释
配置文件位置: /server/plugins/QuestCreator/
此处可以创建新的任务: /server/plugins/QuestCreator/quests/
自定义插件信息/语言: /server/plugins/QuestCreator/quests/texts.yml
用户数据/当前暂停的任务/NPC数据: /server/plugins/PyrCore/data/
除非你选择 JSON 文件格式储存数据, 或者MySQL表格创建。请勿删除/data/文件否则你会丢失当前的所有数据,最好不要编辑数据文件除非你知道你在做什么。如果你想要编辑文件,最好先使服务器停止运行。
config.yml (默认) :
  1. #----------------------------------------------------------------------------------------------------
  2. # QuestCreator 配置文件
  3. #----------------------------------------------------------------------------------------------------

  4. # 数据管理
  5. data:
  6.   # 后端: (JSON, MYSQL) (默认 JSON)
  7.   # 如果你选择了 MySQL, 你就必须在PyrCore内也选择这个
  8.   backend: JSON
  9.   # 同步延迟 (/秒) (填写 -1 关闭, 默认关闭)
  10.   # 如果这个选项被开启,插件会检测储存数据 (json/mysql), 如果有新/不同的数据,隐藏的数据会被覆盖掉。
  11.   sync_delay: -1
  12.   # MySQL 鉴定 (如果 MYSQL 为后端)
  13. #  mysql:
  14. #    host: mysql.myserver.com
  15. #    name: mydatabase
  16. #    user: username
  17. #    pass: pwd

  18. # 显示详细 debug 信息
  19. detailed_debug_informations: true

  20. # 延迟任务加载 (因此QuestCreator的附属插件就有足够的时间被注册并加载到任务中)
  21. delay_quest_load: false

  22. # 开启计分板进度显示
  23. scoreboard_progression: true

  24. # 玩家在一定时间(分钟)内没有活动就会自动取消任务 (设置为 -1 关闭)
  25. cancel_delay: -1

  26. # 玩家可同时接受任务的数量
  27. max_active_quests_player: 10

  28. # 任务书在物品栏的位置
  29. quest_journal_hotbar_slot: 8

  30. # 进度名称行数限制 (GUI 显示)
  31. progress_name_line_length_limit: 50

  32. # Dynmap动态地图任务标记图标
  33. # 默认图标列表: https://github.com/webbukkit/dynmap/wiki/Using-markers
  34. dynmap_quest_marker_icon: 'exclamation'

  35. # 目标SERVER_COMMANDS_PERFORM(服务器指令执行)不允许执行的指令
复制代码

guis.yml (默认)
  1. #----------------------------------------------------------------------------------------------------
  2. # GUI 配置文件 QuestCreator
  3. #----------------------------------------------------------------------------------------------------

  4. # 返回上一页
  5. previous_page_item:
  6.   type: ARROW
  7.   name: '&7上一页'

  8. # 进入下一页
  9. next_page_item:
  10.   type: ARROW
  11.   name: '&7下一页'

  12. # GUIs列表 (一个 GUI = 一个箱子菜单)
  13. # 所有配置物品都可以添加选项 "link", "quest", "quest_group" "commands" (请不要对一个物品使用多个选项) (如果不使用任何选项则物品只用于展示)
  14. # 你可以添加所有类型的选项到任何物品内

  15. guis:

  16.   # 主菜单配置 (请不要修改 "main_gui" id, 这是唯一一个你不能改的 ; 如果没有检测到 "main_gui", GUI 就不能在游戏中被打开)
  17.   main_gui:
  18.     # settings  
  19.     name: '你的任务'
  20.     size: 9
  21.     # 内容 : 在这个 GUI 中的物品
  22.     content:
  23.       # 例子: 如果你点击这个物品,就会连接到一个任务中
  24.       1:
  25.         type: GOLD_INGOT
  26.         name: '&6进行中的任务'
  27.         lore:
  28.           - '&7检查所有进行中的任务'
  29.         slot: 0
  30.         link: active_quests #连接GUI名称
  31.       # 另外一个连接,打开 "my_gui"
  32.       3:
  33.         type: DIAMOND_SWORD
  34.         name: '&c我的任务'
  35.         slot: 3
  36.         link: my_gui
  37.       # 另外一个连接,打开 "farm_gui"
  38.       4:
  39.         type: DIAMOND_PICKAXE
  40.         name: '&c农场任务'
  41.         slot: 4
  42.         link: farm_gui
  43.   
  44.   # 子任务GUI例子
  45.   my_gui:
  46.     # 设置
  47.     name: '击杀任务'
  48.     size: 9
  49.     # 内容
  50.     content:
  51.       # 任务物品例子:如果你点击这个物品,它就会查看任务ID"example"(你不需要配置任何关于物品类型或者名称的设置,因为插件会根据插件的状态直接在任务文件中自动配置)。
  52.       1:
  53.         slot: 0
  54.         quest: example
  55.       # 指令物品例子:点击这个物品会执行/kills指令
  56.       2:
  57.         type: IRON_SWORD
  58.         name: '&aYour kills'
  59.         slot: 1
  60.         commands:
  61.           - 'kills'
  62.       # 展示物品例子:点击这个物品什么都不会发生
  63.       3:
  64.         type: STONE
  65.         name: '&7Useless'
  66.         lore:
  67.           - '&7There''s no point in this'
  68.           - '&7item, it''s just here for'
  69.           - '&7beauty purposes.'
  70.         slot: 4
  71.       # 链接物品,打开 "main_gui" 主菜单
  72.       4:
  73.         type: STICK
  74.         slot: 8
  75.         name: '&7Main menu'
  76.         link: main_gui
  77.   
  78.   # 另外一个GUI例子
  79.   farm_gui:
  80.     # 设置
  81.     name: 'Farm quests'
  82.     size: 9
  83.     # 内容
  84.     content:
  85.       # 任务组例子:如果你点击这个物品,它就会查看当前/下一个列表中的任务 (因此它会显示任务组内被激活的任务,或者下一个可截取的任务。
  86.       #   如果一个任务可以被完成10次,那么他就会在显示下一个任务之前显示10次(包括物品冷却);如果没有剩余的任务就会显示下方配置的物品介绍)
  87.       1:
  88.         type: REDSTONE
  89.         name: '&7所有任务已被完成 !'
  90.         lore:
  91.           - '&7There are no more'
  92.           - '&7quests available.'
  93.         quest_group:
  94.           - quest1
  95.           - quest2
  96.           - quest3
  97.       # 另外一个链接 打开 "main_gui" 主菜单
  98.       2:
  99.         type: STICK
  100.         slot: 8
  101.         name: '&7主菜单'
  102.         link: main_gui
复制代码

quest_npcs.yml (默认)(前置Citizens)
  1. #----------------------------------------------------------------------------------------------------
  2. # NPC 配置文件 QuestCreator
  3. #----------------------------------------------------------------------------------------------------

  4. # 在此处注册NPC与他们的任务

  5. npcs:
  6.   # 1 是NPC的ID
  7.   1:
  8.     # 玩家右键NPC时会列出的所有可用的任务 (如果玩家没有从这个NPC接取任何任务,此任务则会被接取)
  9.     quests:
  10.       - example
  11.     # 最大可以同时从该NPC接取的任务数量
  12.     max_concurrent: 1
  13.     # 任务开始的点击方式
  14.     start_click_type: RIGHT_CLICK #右键
  15.     # 点击+下蹲时取消任务
  16.     cancel_on_sneak_click: true
  17.     # 粒子效果 NPC
  18.     # 类型 : http://pyrrh4.be/doc/particles/ (填写 'NONE' 关闭)
  19.     particle_quest_available: VILLAGER_HAPPY
  20.     particle_quest_progress: FIREWORKS_SPARK
  21.     particle_quest_cooldown: CLOUD
  22.     particle_quest_completed: CLOUD
复制代码


quest_blocks.yml (默认)
  1. #----------------------------------------------------------------------------------------------------
  2. # 任务方块设置 QuestCreator
  3. #----------------------------------------------------------------------------------------------------

  4. # 注册任务方块和它们的任务 (和npc类似)

  5. blocks:
  6.   # 1 是方块的ID
  7.   1:
  8.     # 方块的坐标
  9.     location: world,100,100,100
  10.     # 玩家右键方块时会列出的所有可用的任务 (如果玩家没有从这个NPC接取任何任务,此任务则会被接取)
  11.     quests:
  12.       - example
  13.     # 最大可以同时从该NPC接取的任务数量
  14.     max_concurrent: 1
  15.     # 粒子效果 NPC
  16.     # 类型 : http://pyrrh4.be/doc/particles/ (填写 'NONE' 关闭)
  17.     particle_quest_available: VILLAGER_HAPPY
  18.     particle_quest_progress: FIREWORKS_SPARK
  19.     particle_quest_cooldown: CLOUD
  20.     particle_quest_completed: CLOUD
复制代码


指令与权限
[ Commands and Permissions # Pg 3 ]




唯一的根(主)指令是/quests. 你也可以用别名 /quest, /questcreator and /qc
如果你需要在游戏中显示指令列表,可以在根指令后添加-help参数. 例子 /quests -help, /quests -help:2 (第二页) 或 /quests start -help (关于任务开始的帮助).

/quests
打开任务GUI,需要全选 (questcreator.command.menu), 否则显示指令帮助.

/quests reload (权限 questcreator.admin)
Reloads the plugin

/quests -help
显示指令列表

/quests edit (questcreator.command.edit)
打开游戏内菜单进行任务、类型和通用变量的编辑与创建

/quests list (questcreator.command.list)
在聊天版上列出所有可接受的任务(与任务文本交互来开始任务或获得更多信息)

/quests menu -player|p:[名称] (questcreator.command.menu[.others])
打开任务菜单

/quests journal (questcreator.command.journal)
开启/关闭任务日志

/quests scoreboard (questcreator.command.scoreboard)
开启/关闭任务计分板 (如果这个功能在配置中被启用)

/quests journal -reset -player|p:[名称] (questcreator.command.journal.reset[.others])
重置任务日志

/quests variable|var -player:[名称] -variable|var|v:[变量] -set:[新数值] -delete|del|remove|rem (questcreator.command.variables.see, questcreator.command.variables.set 和 questcreator.command.variables.others)
查看特定/所有变量的数值,然后设置一个新的数值。使用-del移除 (与设置数值的权限相同)

/quests progress -admin -quest|q:[任务id] -player|p:[名称] (questcreator.command.progress[.others] 和 questcreator.command.progress.admin)
在聊天版上任务详细和进度/目标

/quests stats -player|p:[名称] (questcretor.command.stats[.others])
查看玩家当前的成就

/quests start -quest|q:[id] -player|p:[名称] (questcreator.command.start[.others])
开始一个任务

/quests start
使任务生效,
如果有在等待的任务可以被开启

/quests invite -player|p:[名称] (questcreator.command.invite)
邀请一个玩家,
如果有在等待的任务可以被开启
/quests goto -quest|q:[任务] -branch|b:[id] -object|o:[id] -stopbranch|sb:[id] -player|p:[名称] (权限 questcreator.command.goto[.others])
前往任务中一个特定的存在的目标。参数stopbranch应该
只有在当一个活动的任务分支最初自然地转到这个目标,并且当新目标启动时,没有保持这个分支活动的目的(?)。

/quests stop|cancel -all -quest|q:[id] -player|p:[名称] (permission questcreator.command.stop[.others] 和 questcreator.command.stop.all)
停止一个激活的任务或所有激活的任务

/quests reset -all -quest|q:[id] -player|p:[名称] (权限 questcreator.command.reset[.others] 和 questcreator.command.reset.all)
重置这个任务的历史或填写任务历史

/quests setcompleted -quest|q:[id] -player|p:[名称] (权限 questcreator.command.setcompleted[.others])
是一个任务完成 (一定的次数)


questcreator.gui.see.available
允许在任务菜单中查看可接受的任务

questcreator.gui.see.progress
允许在任务菜单中查看进行中的任务

questcreator.gui.see.completed
允许在任务菜单中查看已完成的任务

questcreator.gui.see.unavailable
允许在任务菜单中查看不可用的任务

questcreator.gui.start
允许点击菜单内任务物品来开始任务





对新用户的全面介绍
[ Complete step by step introduction for new users # Pg4 ]








任务分类
[ Catagories # Pg5]




为了能让你的任务能被检测到并能被完成,它们需要被注册到一个类型里.

categories.yml (默认) :

  1. #----------------------------------------------------------------------------------------------------
  2. # 任务分类配置文件 QuestCreator
  3. #----------------------------------------------------------------------------------------------------

  4. # 在此注册所有任务

  5. categories:
  6.   
  7.   # 分类例子
  8.   example:
  9.     # 触发器 (在wiki中查看触发器和它们设置)
  10.     activator:
  11.       type: ENABLED
  12.     # 最大可接受任务数量 (单个玩家)
  13.     max_concurrent: 100
  14.     # 下方的任务列表是按顺序执行的吗?
  15.     execution_order: false
  16.     # ... 如果是,是否需要完成前一个任务才能开始下一个任务 ?
  17.     previous_quest_required: false
  18.     # 任务列表
  19.     quest_list:
  20.       - example
  21.     # 该分类在菜单中的名称
  22.     gui_name: 'Example Quest'
  23.     # 右键是否会在菜单中开始一个任务 ?
  24.     gui_right_click_start: true
  25.   
  26.   # 默认"农场"类型
  27.   example_farm:
  28.     activator:
  29.       type: ENABLED
  30.     max_concurrent: 1
  31.     execution_order: true
  32.     previous_quest_required: true
  33.     quest_list:
  34.       - example_farm_1
  35.       - example_farm_2
  36.     gui_name: 'Example Farm Quests'
  37.     gui_right_click_start: true
复制代码


常规设置
一个类别是一个 '** 任务' (可以使单个任务).
类别任务可以有或没有执行顺序
类别任务都会用同一种方式触发 (NPC触发, 与方块交互, 自动开始, 日常任务, 延迟任务, 区域任务, etc).
类别任务可以要求之前任务完成之后才能开始下一个任务 (需填指定任务执行顺序).
一个类别可以有自己的GUI菜单 (在GUI配置中通过指定 'link: category_[类别名称]' 连接菜单).
一个类别可以有最大正在执行任务数.
一个类别是一个拥有自己设定的配置区域

  1. my_category:

  2.   activator:

  3.     # 触发方式设置

  4.   max_concurrent: 100

  5.   execution_order: true

  6.   previous_quest_required: true

  7.   quest_list:

  8.     - my_quest_1

  9.     - my_quest_2

  10.   gui_name: '任务名'

  11.   gui_right_click_start: true



  12. 触发方式是一个包含触发设置的配置区域.


  13. max_concurrent 是一个玩家最大可在该类别中接取的任务数量.


  14. execution_order (可选) 是否要有接取任务的顺序


  15. previous_quest_required (可选) 玩家是否应该在接取下一个任务之前完成当前的任务(如果execution_order 为 true ,这个设定也应该选true)
复制代码

触发器

一个触发器是任务触发方式并且定义了任务开始的条件


An activator is a configuration section with its own settings.



activator:


  type: ENABLED




type is the activator type (all detailed below).




Activator types



AUTO


The quest will attempt to start automatically as soon as possible.


activator:


  type: AUTO



BLOCK


The quest will attempt to start when the player interacts with a block.


activator:


  type: BLOCK


  block: world,0,0,0


  selection_gui_when_one_quest: false


  start_click_type: RIGHT_CLICK


  sneak_click_cancel: false


  particle_available: VILLAGER_HAPPY


  particle_progress: FIREWORKS_SPARK


  particle_cooldown: CLOUD


  particle_completed: CLOUD



block is the location of the block.


selection_gui_when_one_quest (optional) should be true if you wish the selection GUI to appear when clicking the block even if there's only one quest available.


start_click_type is the click type required to start the quest (can be : `RIGHT_CLICK, LEFT_CLICK')


sneak_click_cancel (optional) should be true if you wish the active quest to be cancelled when clicking the block while sneaking.


particle_[...] is the particle effect that will be displayed on this block if there's a quest available (remove those lines for no effect).



DAILY

The quest will attempt to start every day. Note that this will not restart the quest if it's already running.

activator:

  type: DAILY

  hour_of_day: 0



hour_of_day (optional) is the hour of day (24h format).



DELAY

The quest will attempt to start after a specific delay since the last completion.

activator:

  type: DELAY

  delay: 10080



hour_of_day is the delay, in minutes.



DISABLED

The quest will not be available at all.

activator:

  type: DISABLED


ENABLED

The quest will start when the player decides to (by a GUI click or a command for example).

activator:

  type: ENABLED


ENTITY

The quest will attempt to start when the player interacts with a named entity. Works if you specify the Citizens NPC name as well, even though it's recommended to use the NPC activator.

activator:

  type: ENTITY

  name: '&cSuper Creeper'

  selection_gui_when_one_quest: false

  sneak_click_cancel: false

  particle_yoff: 2.0

  particle_available: VILLAGER_HAPPY

  particle_progress: FIREWORKS_SPARK

  particle_cooldown: CLOUD

  particle_completed: CLOUD



name is the entity custom name (can be hidden).


selection_gui_when_one_quest (optional) should be true if you wish the selection GUI to appear when clicking the entity even if there's only one quest available.


sneak_click_cancel (optional) should be true if you wish the active quest to be cancelled when clicking the entity while sneaking.


particle_yoff is the particle vertical offset.


particle_[...] is the particle effect that will be displayed above this NPC if there's a quest available (remove those lines for no effect).



FIRSTCONNECT

The quest will start when the player first connects to the server.

activator:

  type: FIRSTCONNECT


NPC

The quest will attempt to start when the player interacts with a NPC.

activator:

  type: NPC

  id: 0

  selection_gui_when_one_quest: false

  start_click_type: RIGHT_CLICK

  sneak_click_cancel: false

  particle_available: VILLAGER_HAPPY

  particle_progress: FIREWORKS_SPARK

  particle_cooldown: CLOUD

  particle_completed: CLOUD



id is the Citizens NPC id.


selection_gui_when_one_quest (optional) should be true if you wish the selection GUI to appear when clicking the NPC even if there's only one quest available.


start_click_type is the click type required to start the quest (can be : `RIGHT_CLICK, LEFT_CLICK')


sneak_click_cancel (optional) should be true if you wish the active quest to be cancelled when clicking the NPC while sneaking.


particle_[...] is the particle effect that will be displayed above this NPC if there's a quest available (remove those lines for no effect).



PRECISE_ENTITY

The quest will attempt to start when the player interacts with a precise entity.

activator:

  type: PRECISE_ENTITY

  uuid: 662812ef-ddba-3699-8a5e-3a924376769c

  selection_gui_when_one_quest: false

  sneak_click_cancel: false

  particle_yoff: 2.0

  particle_available: VILLAGER_HAPPY

  particle_progress: FIREWORKS_SPARK

  particle_cooldown: CLOUD

  particle_completed: CLOUD



uuid is the entity unique id.


selection_gui_when_one_quest (optional) should be true if you wish the selection GUI to appear when clicking the entity even if there's only one quest available.


sneak_click_cancel (optional) should be true if you wish the active quest to be cancelled when clicking the entity while sneaking.


particle_yoff is the particle vertical offset.


particle_[...] is the particle effect that will be displayed above this NPC if there's a quest available (remove those lines for no effect).



WORLDGUARD_REGION

The quest will attempt to start when the player will be in a WorldGuard region. Note that this is not instant, the check is made every minute.

activator:

  type: WORLDGUARD_REGION

  world: world

  region: region



world is the world in which the region is.


region is the WorldGuard region id.

[groupid=1597]Citrus Studio[/groupid]