- 欢迎来到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
会是第二个加入任务的玩家。
记录点
Each quest can have at most one active checkpoint. When an object with a defined checkpoint starts, it overwrites the current checkpoint, says what information must be saved and when the checkpoint should be restored.
checkpoint:
# Things to save
save_location: true # to save the location of all players
save_specific_location: world,x,y,z # to save a specific location instead of the players' location
save_branches: true # to save the current states of all branches
save_individual_branches: true # to save the current states of all individual branches
save_model_variables: true # to save the current model variables
save_user_variables: [] # a list of user variables to save
# When to restore them
restore_on_respawn: RESTORE_TYPE # when the player respawns
restore_on_connect: RESTORE_TYPE # when the player reconnects
restore_on_resume: RESTORE_TYPE # when the quest resumes
restore_conditons:
# ... some extra conditions that will lead to checkpoint restore if respected (see "conditions")
individual_restore_conditons:
# ... some extra conditions that will lead to individual checkpoint restore if respected (see "conditions")
RESTORE_TYPE can be either
GLOBAL
,
INDIVIDUAL
or
NONE
. Global will restore the checkpoint of the whole quest, and individual will restore only the particular player’s location and individual branches. If the checkpoint is restored individually for GuillaumeVDN, coop player Notch will not get his location or individual branches restored.
任务点数
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.