两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 |
插件手册:betonquest:任务目标 [2018/06/19 17:21] – [附魔物品: enchant] JohnHo | 插件手册:betonquest:任务目标 [2021/09/24 13:12] (当前版本) – duangfafa |
---|
====== 任务目标列表 Objectives List ====== | ====== 任务目标列表 Objectives List ====== |
| |
(版本:2017-01-12 翻译:kjiang、JohnHo [[https://github.com/Co0sh/BetonQuest/wiki/Objectives-List/f0d1258128e90c5874cababad45af7d40768ca13|原文链接]]) | (版本:2017-01-12 翻译:kjiang、JohnHo、Crysta11ize [[https://github.com/Co0sh/BetonQuest/wiki/Objectives-List/f0d1258128e90c5874cababad45af7d40768ca13|原文链接]]) |
| |
**//kjiang译注:所有“任务目标objective”都可以在参数里加入''events:'',用来指明会在玩家完成这个任务目标的时候自动触发的事件;以及''conditions:''用来规定需要达成的条件。//** | **//kjiang译注:所有“任务目标objective”都可以在参数里加入''events:'',用来指明会在玩家完成这个任务目标的时候自动触发的事件;以及''conditions:''用来规定需要达成的条件。//** |
| |
**例子**: ''mobkill ZOMBIE 5 name:Uber_Zombie conditions:night'' | **例子**: ''mobkill ZOMBIE 5 name:Uber_Zombie conditions:night'' |
| |
| ===== 击杀怪物/MM怪: mmobkill ===== |
| |
| 玩家需要击杀指定数量MM怪。第一个参数必须是生物的内部名称(在你的mm怪物配置列表里)。您可以选择添加''amount''参数以指定需要击杀的怪物数量。也可以添加可选参数''minLevel''并''maxLevel''设置需要击杀的怪物等级。还可以添加一个可选''neutralDeathRadiusAllPlayers''参数, 范围参数来让范围内所有玩家达成该目标。如果希望在目标实现时向玩家发送通知,则可以添加''notify''关键字。 |
| |
| **例子**: ''mmobkill SkeletalKnight amount:2 events:reward'' |
| |
===== 动作: action ===== | ===== 动作: action ===== |
| |
**例子**: ''smelt IRON_INGOT 5 events:reward'' | **例子**: ''smelt IRON_INGOT 5 events:reward'' |
| |
| ===== 拾取物品: pickup ===== |
| |
| 要完成此目标,您需要拾取指定数量的物品。第一个参数必须是 中定义的项目的内部名称''items.yml''。这也可以是多个项目的逗号分隔列表。您可以选择添加''amount:''参数来指定玩家需要拾取的这些物品的数量。这个数量是一个总数量,它不计算每个单独的物品。您可以使用''notify''关键字在玩家每次推进目标时显示一条消息,可选地在冒号后显示通知间隔。 |
| |
| 您还可以添加''notify''关键字以显示还有多少物品需要取件。 |
| |
| 该目标具有三个属性:''amount''、''left''和''total''。''amount''是已经拾取的物品数量, ''left''是仍需要拾取的物品数量, ''total''是最初需要拾取的物品数量。 |
| |
| **例子** ''pickup emerald amount:3 events:reward notify pickup emerald,diamond amount:6 events:reward notify''。 |
| |
===== 驯服: tame ===== | ===== 驯服: tame ===== |
| |
**例子**: ''tame WOLF 2 events:wolfs_tamed'' | **例子**: ''tame WOLF 2 events:wolfs_tamed'' |
| |
| ===== 骑乘实体: ride ===== |
| |
| 这个目标可以通过骑乘[[https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html|指定实体]]来完成 。 ''any''用来匹配任何实体。 |
| |
| **例子** ''ride horse ride any'' |
===== 延迟: delay ===== | ===== 延迟: delay ===== |
| |
**例子**: ''arrow 100.5;200.5;300.5;world 1.1 events:reward conditions:correct_player_position'' | **例子**: ''arrow 100.5;200.5;300.5;world 1.1 events:reward conditions:correct_player_position'' |
| |
| ===== 跳!: jump ===== |
| |
| 要完成这个目标,玩家必须跳跃。唯一的达成要求是数量。您可以使用''notify''关键字在玩家每次推进目标时显示一条消息,可选地在冒号后显示通知间隔。 |
| |
| 该目标具有三个属性:''amount''、''left''和''total''。''amount''是已经完成的跳跃量, ''left''是仍然需要的跳跃量, ''total''是最初需要的跳跃量。 |
| |
| **例子** ''jump 15 events:legExerciseDone'' |
===== 经验: experience ===== | ===== 经验: experience ===== |
| |
为了完成这个目标, 玩家只需离开服务器。请记住, 玩家下线1/20秒后,在此处运行 ''floder'' 事件将使其以 ''persistent'' "持久 " 模式运行, 因为玩家在下一个刻度线上处于离线状态。 | 为了完成这个目标, 玩家只需离开服务器。请记住, 玩家下线1/20秒后,在此处运行 ''floder'' 事件将使其以 ''persistent'' "持久 " 模式运行, 因为玩家在下一个刻度线上处于离线状态。 |
| |
**例子**: `logout events:delete_objective` | **例子**: ''logout events:delete_objective'' |
===== 输入密码: password ===== | ===== 输入密码: password ===== |
| |
此目标要求玩家在聊天栏键入密码。第一个参数是密码。所有 ' _ ' 字符被替换为空格。它用 [正则表达式] 进行了检查(可参见https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html)。 (如果您的密码将是''^beton.*beton$'',目标将接受所有以 'beton' 字开头和结尾的密码 ("^" 代表字符串的开头, '. ' 表示任何字符, ' * ' 允许以前的字符 (在本例中为任何) 重复任意次数, "$" 表示字符串的末尾), 但您也可以使用类似'beton'之类的东西-它会起作用)。如果您希望忽略字母大小写, 可以添加可选的''ignoreCase''参数。为此, 您的正则表达式需要使用小写字母。玩家回答是需要键入 (用他的语言, 可在''messages. yml''配置) ' 密码: 这是玩家的猜测 '。如果失败, 则不会在聊天窗口中显示该消息。 | 此目标要求玩家在聊天栏键入密码。第一个参数是密码。所有 ' _ ' 字符被替换为空格。它用 [正则表达式] 进行了检查(可参见[[https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html|正则表达式]])。 (如果您的密码将是''^beton.*beton$'',目标将接受所有以 'beton' 字开头和结尾的密码 ("^" 代表字符串的开头, '. ' 表示任何字符, ' * ' 允许以前的字符 (在本例中为任何) 重复任意次数, "$" 表示字符串的末尾), 但您也可以使用类似'beton'之类的东西-它会起作用)。如果您希望忽略字母大小写, 可以添加可选的''ignoreCase''参数。为此, 您的正则表达式需要使用小写字母。玩家回答是需要键入 (用他的语言, 可在''messages. yml''配置) ' 密码: 这是玩家的猜测 '。如果失败, 则不会在聊天窗口中显示该消息。 |
| |
**例子**: ''password beton ignoreCase events:message,reward'' | **例子**: ''password beton ignoreCase events:message,reward'' |
===== 变量: variable ===== | ===== 变量: variable ===== |
| |
这个目标是特殊的任务目标,您无法完成它, 它也将忽略定义的事件和条件。你要做的就是开始这个目标。目标活动期间, 玩家在聊天中键入的所有内容 (并匹配特殊模式) 将成为一个变量。模式是 "变量名: 值"(''key: value'')。因此, 如果键入该值, 它将创建一个名为“变量名”''key''的变量, 它将解析为"值"''value''字符串。这种不是全局变量, 您可以将它们作为目标属性访问。假设您在''objectives yml''文件中定义了此目标为''var''。您可以在任何对话、事件或条件中访问变量''% objective.var.key%''。在这个例子里, 它将解析为"值"''value''。玩家可以键入其他内容, 变量将更改其值。变量是每个玩家个人的, 所以不同玩家的相同' 变量名 ' 的变量值也不一定相同, 这取决于玩家自己在聊天中键入的内容。如果你愿意,你想要多少变量就能有多少变量。要删除这个目标,只有使用''objective delete''事件,没有其他方式。 | 这个目标是特殊的任务目标,您无法完成它, 它也将忽略定义的事件和条件。你要做的就是开始这个目标。目标活动期间, 玩家在聊天中键入的所有内容 (并匹配特殊模式) 将成为一个变量。模式是 "变量名: 值"(''key: value'')。因此, 如果键入该值, 它将创建一个名为“变量名”''key''的变量, 它将解析为"值"''value''字符串。这种不是全局变量, 您可以将它们作为目标属性访问。假设您在''objectives yml''文件中定义了此目标为''var''。您可以在任何对话、事件或条件中访问变量''%objective.var.key%''。在这个例子里, 它将解析为"值"''value''。玩家可以键入其他内容, 变量将更改其值。变量是每个玩家个人的, 所以不同玩家的相同' 变量名 ' 的变量值也不一定相同, 这取决于玩家自己在聊天中键入的内容。如果你愿意,你想要多少变量就能有多少变量。要删除这个目标,只有使用''objective delete''事件,没有其他方式。 |
| |
你还可以使用''variable''事件改变目标中的变量数值。有个可选的参数''no-chat'',如果使用这个参数,玩家在对话栏输入的东西将不改变玩家变量的值。 | 你还可以使用''variable''事件改变目标中的变量数值。有个可选的参数''no-chat'',如果使用这个参数,玩家在对话栏输入的东西将不改变玩家变量的值。 |
| |
**例子**: ''variable'' | **例子**: ''variable key: value'' |
| |
===== 杀死玩家: kill ===== | ===== 杀死玩家: kill ===== |