- 欢迎来到Minecraft插件百科!
- 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
- 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289
GuillaumeVDN的插件文档/QuestCreator/详细特性
GuillaumeVDN的插件文档 | |
---|---|
页面 | |
所有插件都有的常见内容 | |
QuestCreator |
任务模型
全部模型设置
显示
display_name: '&a任务显示名'
description: |
&7任务描述
&7任务描述第二行
description_placeholder: |
&7多行占位符
&7可和PlaceholderAPI一同使用(见通用变量)
information_message: >
&a当玩家点击任务物品而未开始任务时发送的消息
progress_notify:
# …… 每隔一段时间发送给玩家的进度提醒(见通用配置/提醒)
progress_notify_scoreboard: true # 允许任务显示在计分板上
# 显示优先度
# 优先度从低到高排序。如果A的优先度为1,B的优先度为2,则A的优先度更高。
# 你可以用这个来决定任务显示在actionbar、计分板等地方的优先度。
# 插件会根据优先度分类任务。如果优先度相同,则优先显示进度最新的任务。
# 这是可选设置,没有设置优先度的任务低于设置了优先度的任务。
# 请注意GUI物品不会影响这个优先度
display_priority: 1
GUI物品
任务可以显示在GUI中。你可以给每个任务模型设定物品列表(最终取决于其当前状态)。
要记住,不同的任务状态会有不同的控制选项和lore。比如停止或开始任务以下是可配置的消息。
status_items:
AVAILABLE:
# 可开始任务的物品图标
PROGRESS:
# 任务进行中的物品图标
COOLDOWN:
# 任务冷却中的物品图标
UNAVAILABLE:
# 无法开始任务的物品图标
COMPLETED:
# 任务完成的物品图标(达到最大完成次数时显示)
all_status_items:
# 全部状态都显示为同一物品
# 如果一个状态没有物品,则插件会自动使用一个物品
全部状态的占位符:
{quest}
:任务名{description}
:任务描述{controls}
:根据玩家能做什么显示的动态控制列表;如果没有控制,则该占位符为空{completions}
:该任务的完成文本;如果任务未完成,则该占位符为空{last_completion}
:该任务的上次完成文本;如果未完成过任务,则该占位符为空{cooldown}
:该任务的冷却文本;如果没有任务冷却,则该占位符为空{detailed_progression}
:该任务的详细进度;如果任务未激活,则该占位符为空{detailed_errors}
:显示玩家无法开始的原因的文本;如果如果不是“无法使用”状态,则该占位符为空
PROGRESS状态的占位符:
{players}
:多个玩家名;如果不是多人任务,则该占位符为空- 你也可以使用上面列出的任务占位符。
限制
permission_start_restriction: questcreator.quest.my_quest # 开始任务所需权限
conditions_start_restriction:
# …… 开始任务所需条件(见条件)
world_restriction: # 世界限制
whitelist: |
list_of_worlds
to_allow
blacklist: |
list_of_worlds
to_deny
command_restriction: # 任务进行时无法使用的指令
whitelist: |
/list of commands
/to allow
blacklist: |
/list of commands
/to deny
完成/限时/冷却
completion:
max_completions: 10 # 该任务的最大可完成次数
apply_actor_restriction:
# …… 只对一些身份的玩家将任务标记为已完成 (见“杂项/身份”)
notify:
SUCCESS:
# …… 任务完成时发送的提醒(见“通用配置/提醒”)
# …… 键:SUCCESS、FAIL、CANCEL
notify_coop:
SUCCESS:
# …… 如果完成时发送的提醒(多人任务)
# …… 键:SUCCESS、FAIL、CANCEL
time_limit:
duration: 1 HOUR # 任务限时
reminder:
# …… 发送提醒玩家剩余时间的消息(见“通用配置/提醒”)
# - 显示剩余时间的占位符:{time}
fail_goto: QUEST_FAIL # a goto to apply when the time is over
cooldown:
duration: 12 HOUR
end_types: [SUCCESS] # 只对一些结束类型使用冷却;值:SUCCESS、FAIL、CANCEL、COOP_LEAVE
apply_actor_restriction:
# …… 只对一些身份的玩家设置冷却(见“杂项/身份”)
同时进行任务数/玩家/组队
max_concurrent_instances: 5 # 任务最大同时进行数
# 如果已达任务同时进行数上限,则将玩家加入到队列中
max_concurrent_instances_queue: true
# 玩家数上下限(包括队长)
min_players: 1
max_players: 3 # 设置为大于1的值则允许多人任务
# 允许组队玩家离开任务,该数值需小于最大玩家数
# 如果组队人数低于该值,则剩下的组队玩家无法离开任务
min_active_players: 2
allow_leader_stop: true # 允许队长停止任务
# 队长掉线时的处理方式
# 设置为false则队长掉线后队员仍能继续进行任务
# 如果你在任务中使用了变量则不推荐设置为false
dispose_on_leader_disconnect: true
# 允许队员解析任务设置
# 如果你的设置包含变量,我建议开启该选项
only_leader_parsing: true
notify_coop_player_leave:
# …… 组队玩家离开任务时发送的提醒
保存
saving: ENABLED
值 :
ENABLED
:保存任务到磁盘/数据库中PLUGIN_ACTIVE
:只要加载了插件,任务就会持续活跃PLAYER_ONLINE
:只要加载了插件且玩家在线,任务就会持续活跃
变量
# 默认模型变量值
model_variables:
my_variable: 默认值
激活器
# 该任务的激活器(详见“任务激活器”)
activators: |
first_activator
second_activator
# 在正式开始任务前发送的对话(只对物理激活器有效)
# 玩家每激活一次激活器就发送一条对话
# 发送完全部对话后,玩家可以打开开始任务的确认GUI
activators_dialog: |
&7我找你有事!
&7你想要开始任务吗?
# 自动向范围内的玩家发送第一条对话
activators_dialog_auto_start_distance: 3.5
# 在特定条件下重置对话
activators_dialog_reset:
reset_delay: 30 SECOND # 在一段时间后重置
reset_distance: 5 # 在玩家走远后重置
reset_notify:
# …… 对话重置时发送的提醒
分支/目标
# 任务的分支
branches:
branch_1:
# …… 见任务分支
branch_2:
# …… 见任务分支
# 对一些结束类型的任务执行目标
end_objects:
SUCCESS:
# …… 任务完成时执行的目标列表
FAIL:
# …… 任务失败时执行的目标列表
CANCEL:
# …… 任务取消时执行的目标列表
COOP_LEAVE:
# …… 多人任务取消时执行的目标列表
# 对离线的组队玩家执行结束目标(在玩家重新登录后执行):
end_objects_for_offline_players: true
任务分支
分支设置
starts_directly: true # 在任务开始时自动开始分支
starts_at: OBJECT_1 # 分支开始时的目标
# 该分支的目标列表
objects:
OBJECT_1:
# …… 见任务目标
OBJECT_2:
# …… 见任务目标
分支类型
默认分支类型:
type: NONE # 这是默认类型,你可以不填该选项
display_name: > # 分支显示名(可选)
&a分支
隐藏分支,该分支不会显示在进度中:
type: SECRET
独立分支
独立分支对多人任务有实际意义。如果你用独立分支来制作单人任务,那么它的效果就和普通分支基本一样,不过整体比较混乱,所以请不要这么做。
独立分支是针对任务中的每个玩家的。所以,玩家GuillaumeVDN可以有一个运行中的独立分支my_branch,而玩家Notch可以在这个分支内有不同的状态,甚至未激活该分支。
独立分支主要用来执行作用于单个玩家的效果,或者让任务中的玩家有不同的进度。你可以在SERVER_ACTIONS目标中手动触发,也可以在每个事件目标中触发。
比如:
branches:
TRIGGER_BRANCH:
starts_directly: true
starts_at: TRIGGER
objects:
TRIGGER:
type: PLAYER_CONNECT
goto_individual_branches: [INDIVIDUAL_BRANCH] # 对重连的玩家开始独立分支
goto: OBJECT TRIGGER # 循环激活器以使其常时有效
INDIVIDUAL_BRANCH:
starts_directly: false
starts_at: EFFECT
objects:
EFFECT:
type: SERVER_PLAYER_EFFECTS_GIVE
start_notify:
message: >
&a欢迎回来{player}&a!这是你的速度 II。
effects:
a:
type: SPEED
amplifier: 1
duration: 1 MINUTE
# 无goto,该分支会立即停止
# 只有第一个重连的玩家会获得速度 II的效果。
需要注意的是,从独立分支调用的goto将被用于独立分支。例如,如果你的分支MY_BRANCH的goto是从一个独立分支中调用的,那么该分支将为同一个人开始,而不是整个任务。
任务激活器
激活器位于/quest_activators/
。
激活器设置
和目标或模型不同的是,激活器没有通用设置。其全部设置与其类型有关,唯一的通用设置就是其类型。
type: AUTO # 示例
激活器类型
NONE|无
没有类型的激活器(内部使用;该激活器无法开始任务)。
AUTO|自动
每隔一段时间自动开始任务。
type: AUTO
delay: 15 SECOND # 检测延迟
POSITION|位置
每当玩家匹配特定位置时自动开始任务。
type: POSITION
position:
# …… 开始任务所需匹配的位置(见“通用配置/位置”)
delay: 15 SECOND # 检测延迟
物理激活器
物理激活器也有通用设置。
显示设置
对于每个激活器,你可以根据激活器的当前状态指定一个粒子脚本列表。
particles:
AVAILABLE: script_id # 开始任务时执行的脚本
PROGRESS: script_id # 任务活跃时执行的脚本
COOLDOWN: script_id # 任务冷却中执行的脚本
UNAVAILABLE: script_id # 任务无法开始时执行的脚本
COMPLETED: script_id # 任务完成时执行的脚本(达到完成次数上限)
particles_location:
# …… 基于激活器位置的位置适配器。(见通用配置/相对位置)
使用激活器的任务会根据任务状态进行分类。比如如果有一个可进行的任务和一个冷却中的任务,则粒子脚本会为可进行任务显示粒子效果。
交互设置
interaction_clicks: [LEFT_CLICK,RIGHT_CLICK] # 触发交互所需点击类型
# 一些激活器只有右击有效(特别是NPC激活器)
sneak_click_cancel: true # 允许通过潜行与NPC交互来取消任务
GUI设置
custom_gui: gui_id # 将已配置GUI链接至该激活器,而非根据当前激活器状态生成GUI
gui_name: > # 激活器的GUI名称
&a激活器
gui_type: CHEST_6_ROW # 激活器GUI类型(见通用配置/GUI类型)
gui_show_status: [AVAILABLE,PROGRESS] # 激活器GUI内可用的状态(留空则可用于全部状态);值:AVAILABLE、PROGRESS、COOLDOWN、UNAVAILABLE、COMPLETED
required_gui_quests: 5 # 只在有至少X个可进行的任务时可打开GUI
POSITIONS_INTERACT|位置交互
任务会在玩家与特定位置的方块交互时自动开始。
type: POSITIONS_INTERACT
positions:
# …… 开始任务所需匹配的位置
ENTITIES|实体
任务会在玩家与特定实体交互时自动开始。
type: ENTITIES
entity_types: [CREEPER] # 允许的实体类型(留空则允许全部);值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html
entity_names: [] # 允许的实体自定义名称(留空则允许全部)
entity_colors: [] # 允许的实体颜色(留空则允许全部)
任务池
任务池位于 /quest_pools/
。
设置
display_name: My pool # 任务池显示名
time_frames:
a:
# …… 见“通用配置/时间范围”
b:
# …… 见“通用配置/时间范围”
quests: # 首次处理
quest_id_1:
#任务配置(见下方任务配置部分)
quest_id_2:
#任务配置(见下方任务配置部分)
quest_groups: # 二次处理
group_id_1:
# 任务组配置(见下方)
group_id_2:
# 任务组配置(见下方)
order: RANDOM # 遵循任务组的处理顺序或随机选取;值:IN_ORDER|顺序、RANDOM|随机选取
amount: 2 # 在每个时间段内,该任务池将为多少个任务或任务组提供任务券。
# 每个获得券的任务会降低1点该值
# 每个至少有一个任务的组获得券会降低1点该值
amount_tolerance: COUNT_STARTED # 从要给的券数中减去(或不减去)活跃的任务/组的数量。
# 值:COUNT_STARTED、DONT_COUNT_STARTED
rewards:
a:
# 奖励配置(见下方奖励配置部分)
b:
# 奖励配置(见下方奖励配置部分)
任务配置
process_conditions:
# …… 处理该池所需条件
pre_reset_token: true # 在选取任务前重置该任务的券数
pre_stop: true # 在选取任务前停止该任务
pre_reset_history: true # 在选取任务前重置任务历史
selected_reset_token: true # 如果选取该任务则重置任务券
selected_stop: true # 如果选取该任务则停止任务
selected_reset_history: true # 如果选取该任务则重置任务历史
min_tokens: 1 # 随机给予券数下限
max_tokens: 2 # 随机给予券数上限
refund_token_on_end_types: [CANCEL] # 如果任务以特定类型结束则退回任务券;值:SUCCESS|成功、FAIL|失败、CANCEL|取消、COOP_LEAVE|多人任务离开
池组设置
process_conditions:
# …… 处理该池所需遵循的条件(详见“条件”)
pre_reset_token: true # 在选取任务前重置该任务的券数
pre_stop: true # 在选取任务前停止该任务
pre_reset_history: true # 在选取任务前重置任务历史
selected_reset_token: true # 如果选取该任务则重置任务券
selected_stop: true # 如果选取该任务则停止任务
selected_reset_history: true # 如果选取该任务则重置任务历史
amount: 1 # 选取该组时给予券的任务数
min_tokens: 1 # 选取该组时随机给予的券数下限
max_tokens: 2 # 选取该组时随机给予的券数上限
refund_token_on_end_types: [CANCEL] # 如果任务以特定类型结束则退回任务券;值:SUCCESS|成功、FAIL|失败、CANCEL|取消、COOP_LEAVE|多人任务离开
奖励配置
你可以给玩在一段时间内完成任务池的玩家添加奖励。更具体地说,一个任务池将被视为“已完成”,当玩家完成该池中的全部任务且池中没有更多有券的任务时,将会获得奖励。
奖励以任务目标的形式发放。只有时间驱动型目标才能发放奖励,而时间驱动型目标主要是服务器目标。
奖励列表内的每个目标如果符合池的特定连续完成数,就可以专一执行。当玩家在一个时间范围内完成任务池时会增加一次连续完成次数。当玩家仍有任务券完成池中任务而插件必须重处理任务时,连续完成数会重置为0。
object:
# …… 执行的目标(见“任务目标”)
min_streak: 1 # 执行目标所需最低连续完成数
max_streak: 5 # 最高连续完成数:如果连续完成数大于该值则不会执行目标
任务组
你可以创建使用一些属性的任务组。任务组位于/quest_groups/
。
分组设置
models: [quest_1,quest_2] # 组内的任务
max_concurrent: 1 # 可同时进行组内的任务数
execution_order: true # 需要玩家按顺序完成任务
Goto|前往类型
普通:
OBJECT <同一分支的目标>
:设置当前分支的目标(可以是同一目标)BRANCH <分支id>
:停止当前分支并开始其它分支
任务结束:
QUEST_SUCCESS
:停止任务并标记为成功完成QUEST_SUCCESS_THEN_START
:停止任务并标记为成功完成,然后开始其它任务QUEST_SUCCESS_THEN_START_BYPASS
:停止任务并标记为成功完成,然后开始其它任务(忽略任务开始条件限制)QUEST_FAIL
:停止任务并标记为任务失败QUEST_FAIL_THEN_START
:停止任务并标记为任务失败,然后开始其它任务QUEST_FAIL_THEN_START_BYPASS
:停止任务并标记为任务失败,然后开始其它任务(忽略任务开始条件限制)QUEST_CANCEL
:取消任务QUEST_CANCEL_THEN_START
:取消任务,然后开始其它任务QUEST_CANCEL_THEN_START_BYPASS
:取消任务,然后开始其它任务(忽略任务开始条件限制)QUEST_COOP_LEAVE
:离开任务。如果玩家在多人任务则可以离开任务(在独立分支里很有用)QUEST_COOP_LEAVE_OR_STOP
:离开任务。如果玩家在多人任务内则可以离开或取消任务
任务身份
你可以仅对部分任务身份的玩家应用一些目标和设置。
对于玩家驱动型目标,该设置会限制哪些玩家可以执行这类目标。对于服务器驱动型目标,该设置会限制应用的目标会给予谁效果。
身份类型:
NONE|无
:无身份限制ROLE LEADER|队长
:仅限任务队长ROLE COOP
:仅限组队玩家(除了队长之外的玩家)RANDOM
:随机选取一名任务中的幸运玩家JOIN_ORDER <数字列表,用空格分隔>
:仅限特定加入顺序的玩家:从0开始排序或第一个加入任务的玩家总是会成为队长
示例:JOIN_ORDER 1 2
会是第一和第二个加入任务的玩家。
JOIN_ORDER 2
会是第二个加入任务的玩家。
检查点
每个任务最多可以有一个活跃的检查点。当一个定义了检查点的目标开始时,它会覆盖当前的检查点。
checkpoint:
# 检查点保存的东西
save_location: true # 保存全部玩家的位置
save_specific_location: world,x,y,z # 保存特定位置而非玩家位置
save_branches: true # 保存全部分支的当前状态
save_individual_branches: true # 保存全部独立分支的当前状态
save_model_variables: true # 保存当前模型的变量
save_user_variables: [] # 保存的用户变量
# 何时回到检查点
restore_on_respawn: RESTORE_TYPE # 当玩家重生时
restore_on_connect: RESTORE_TYPE # 当玩家重连时
restore_on_resume: RESTORE_TYPE # 当任务暂停时
restore_conditons:
# …… 会导致回到检查点的一些额外条件(见“条件”)
individual_restore_conditons:
# …… 会导致回到独立检查点的一些额外条件(见“条件”)
RESTORE_TYPE可以是GLOBAL|全局
、INDIVIDUAL|个人
或NONE|无
。 Global会回到整个任务的检查点,INDIVIDUAL会让特定玩家回到特定位置和独立分支。如果玩家GuillaumeVDN单独回到了检查点,组队的玩家Notch不会回到检查点位置或独立分支。
任务点数
Quest points are separated in different categories, so you can have different points leaderboards. You have to register those categories in
/points_categories.yml
.
You can modify those points using the SERVERLOGICPOINTS object and use them as a requirement using the LOGICQUESTPOINTS condition.
They can be seen and manipulated using the
/qc points
command. You can display them in GUIs and open ranking GUIs that will display the player’s points.