Minecraft(我的世界)中文论坛

标题: [Wiki][多人插件] BetonQuest-具体任务Wiki翻译 第十二章:相关插件

作者: WM2030    时间: 2017-2-8 18:36
标题: [Wiki][多人插件] BetonQuest-具体任务Wiki翻译 第十二章:相关插件
本帖最后由 WM2030 于 2017-2-8 19:52 编辑

前言

BetonQuest可以与其他插件挂钩从而扩展其功能。有三款插件较为常用,它们是 Citizens, Vault MythicMobs.



Citizens

如果您安装了这一插件,您可以将这一插件中的NPC用于对话。我个人非常建议您安装这一插件,因为它所包含的NPC拟真度相当高。而且安装这一插件之后,您还可以使用“NPCkill”这一目标。

目标:击杀NPC(npckill)
为达成这一目标,玩家需要击杀一个具有特定ID的NPC。您也可以定义某个NPC被击杀的次数。在目标名之后应当紧跟着NPC的ID。您还可以使用“amount:”来指定数量。
示例:
  1. Example: npckill 16 amount:3 events:reward
复制代码

目标:与NPC互动(npcInteract)
为达成这一目标,玩家需要右击有特定ID的NPC以达成。您也可以选择取消互动,从而使玩家与NPC不发生对话。该目标的第一个参数是NPC的ID(一个数)。第二个参数用于选择取消互动。
示例:
  1. npcinteract 3 cancel conditions:sneak events:steal
复制代码

注意!当您使用Citizens插件时,您需要在main.yml中指定NPC的ID,而不是指定NPC的名称。



Vault

事件:权限(permission)
这一事件用于加入或是移除一条(也可以是一类)权限。第一个参数是加入或者移除。这一参数顾名思义无需多言。第二参数用于选择一条权限或是一类权限。其用途也相当容易理解。第三个参数是您想要加入或是移除的具体内容。最后一个参数的作用是选择这条(这类)权限在哪些世界(主世界、末地和下界)生效。如果在这一栏留空,那么这条(这类)权限将在整个存档中生效。
示例:
  1. permission remove group bandit world_nethe
复制代码

事件:资金(money)
这一事件用于改变玩家账号中的金额数。该事件只存在一个参数,即金额数的改变值,这个值可正可负。对这一数值前不加其他符号时,会使玩家金额数增加这一数值(当该值为负,则减少这一数值)。如果在这一数值之前加上一个星号,那么就会使得玩家的金额数乘上这一数值。
示例:
  1. money -100
复制代码

条件:资金(money)
玩家的金额数是某一特定数值时达成该条件。该条件只有一个参数,即金额数需要达到的特定数值。这个值必须是正整数。
示例:
  1. money 500
复制代码

变量:资金(money)
这一变量用于显示某玩家的金额数,也可以被用来显示一个特定值与当前金额数的差。该变量唯一的参数是一个数值或left:x,这里的x是设定的特定值。
示例:
  1. %money.left:500%
复制代码



MythicMobs

安装该插件使您可以使用“MythicMobs MobKill”这一目标以及“MythicMobs SpawnMob”这一事件。

目标:击杀神话生物(mmobkill)
为达成这一目标,,玩家需要击杀特定数量的神话生物。第一个参数是这一生物在插件中的名称(也就是MythicMobs插件在配置文件中定义的名称)。您也可以根据需要添加“amount:”(数量)参数。这一参数用于指定玩家需要击杀的神话生物的数量。如果您希望让玩家看到还需要击杀的数量,您也可以加上“notify”(提示)这一关键词。
示例:
  1. mmobkill SkeletalKnight amount:2 events:reward
复制代码

事件:生成神话生物(mspawnmob)
在给定位置生成特定数量的神话生物。该事件的第一个参数是生成位置(形式如同“100;200;300;world”)。第二个参数是这一生物在插件中的名称(也就是MythicMobs插件在配置文件中定义的名称)。在这一名称之后需要输入一个冒号并指定该生物的等级。第三个参数是生成数量。这个参数是必填的。
示例:
  1. mspawnmob 100;200;300;world SkeletalKnight:1 5
复制代码



McMMO

条件:McMMO等级(mcmmolevel)
玩家某一项技能的等级足够高时达成该条件。该条件的第一个参数是技能名称。第二个参数是符合条件的最低等级。
示例:
  1. mcmmolevel woodcutting 50
复制代码

事件:McMMO经验值(mcmmoexp)
这一事件用于增加某一特定技能的经验值。第一个参数是技能名称,第二个参数是经验值的增加量。
示例:
  1. mcmmoexp swords 1500
复制代码



Skript

BetonQuest插件也可与Skript插件挂钩。首先,出于避免混淆的考虑,我将用插件名称修饰名词。(比如说Skript中的事件和BetonQuest中的事件可是两回事)安装了Skript插件之后您的服务器将能够在脚本中运行BetonQuest事件和条件。同时这些事件和条件也可以被BetonQuest事件触发。

被BetonQuest事件触发的Skript事件
在这里我先要讲两样东西:Skript事件和BetonQuest事件。
1.Skript event
您在脚本中使用“on [betonquest] event "id"”来开始代码的运行。“[betonquest]”是可有可无的;而“id”则是一个字符串,这一字符串必须与您在BetonQuest事件中所指定的那个字符串相同。
2.BetonQuest event
“skript”这一事件会触发您的脚本中的上述Skript事件。只有事件的ID这一个参数能被指令接受。这个ID必须和您在要触发的Skript event中定义的一致。
示例:在您的脚本中:
  1. on betonquest event "concrete": in events.yml: fire_concrete_script: skript concrete
复制代码

Skript插件中的条件
您可以在脚本中使用语法结构“player meets [betonquest] condition "id"”来查看BetonQuest条件。“[betonquest]”是可有可无的;而“id”则是一个条件的名称(与在conditions.yml中定义的一样)。
示例:在您的脚本中:
  1. player meets condition "has_ore" in conditions.yml: has_ore: item iron_ore:5
复制代码

Skript插件中的事件
您也可以用脚本查看BetonQuest事件。这一操作的语法结构是“fire [betonquest] condition "id"”。其余事项和上文在“Skript插件中的条件”中所述相同。
示例:在您的脚本中:
  1. fire event "give_emeralds" for player in events.yml: give_emeralds: give emerald:5
复制代码



WorldGuard

目标:WorldGuard区域(region)
为达成这一目标,您需要进入特定名称的WorldGuard区域。指令中唯一一个参数是区域的名称。
示例:
  1. region beton events:kill
复制代码

条件:WorldGuard区域(region)
当玩家处于特定区域内时达成该条件。该条件唯一一个参数是区域的名称。
示例:
  1. region beton
复制代码



EffectLib

如果您安装了这一插件,在您的服务器中,NPC在对话时即可拥有颗粒效果,同时您也可以使用颗粒效果这一事件。
在“effectlib_npc_effect”这部分中,您可以通过修改config.yml文件来控制NPC周围颗粒的行为。除去关于延迟的设置,其余设置在EffectLib的网页上都有介绍。延迟设置可以控制颗粒效果出现的频繁程度(以秒计数)。NPC周围的颗粒效果会在NPC本身坐标的上方显示。
如果您不希望应用NPC周围的颗粒效果,您只需要在“effectlib_npc_effect”部分中加上“disabled: 'true'”就好了。

事件:EffectLib(particle)
这一事件用于加载一个在main.yml文件的“effects”部分中被定义过的效果。这一事件的唯一参数是效果名称。您可以选择加上一个“loc:”参数用于定义位置。位置的格式是“100;200;300;world;180;-90”。
示例:
  1. particle beton
复制代码
(以下是在main.yml文件中的定义)
  1. effects:
  2.   beton:
  3.     class: HelixEffect
  4.     iterations: 100
  5.     particle: smoke
  6.     helixes: 5
  7.     circles: 20
  8.     grow: 3
  9.     radius: 30
复制代码



PlayerPoints

事件:PlayerPoints(PlayerPoints)
这一事件用于改变PlayerPoints插件中的点数。该事件只存在一个参数,即数的改变值,这个值可正可负。对这一数值前不加其他符号时,会使玩家数增加这一数值(当该值为负,则减少这一数值)。如果在这一数值之前加上一个星号,那么就会使得玩家的数乘上这一数值。
示例:
  1. playerpoints *2
复制代码

条件:PlayerPoints(PlayerPoints)
玩家的PlayerPoints点数是某一特定数值时达成该条件。该条件只有一个参数,即PlayerPoints点数需要达到的特定数值。
示例:
  1. playerpoints 100
复制代码



Heroes

您安装了Heroes插件之后,所有用该插件中的技能击杀的生物都会被计入“MobKill”目标中。

事件:Heroes经验值(heroesexp)
这一事件用于改变Heroes插件中的经验值。这一事件的第一个参数只能在中选择。这一参数的含义是玩家的阶等。第二个参数是经验值的增加量。
示例:
  1. heroesexp primary 1000
复制代码

条件:Heroes阶等(heroesclass)
这一条件用于检测玩家的阶等。这一条件的第一个参数只能在“primary”(初级的)、“secondary”(中级的)或“mastered”(大师级的)中选择。第二个参数是等阶的名称(例如“初级战士”中的“战士”)。您也可以选择写上“level:”参数,这一参数的冒号之后紧跟着玩家达成该条件需要达到的等阶。
示例:
  1. heroesclass mastered warrior
复制代码

条件:Heroes技能(heroesskill)
当玩家能够使用某一特定技能时达成该条件。唯一的参数是技能的名称。
示例:
  1. heroesskill charge
复制代码



Magic

条件:魔杖(wand)
这一条件用于检测魔杖。该条件的第一个参数只能在“hand”(手持)、“inventory”(在背包中)或“lost”(丢弃)中选择。如果您选择“lost”,那么这一条件将会被用于检测玩家是否丢弃了魔杖。如果您选择“hand”,那么这一条件将会检测玩家是否手持魔杖。如果您选择“inventory”,那么该条件会检测您的背包中是否有魔杖。当您选择“hand”或“inventory”时,您也可以加上“name:”参数,冒号之后填写魔杖的名称(和在Magic插件的wands.yml文件中定义的一样)以检测某一特定种类的魔杖。您同样可以选择加上“spells:”(咒术)参数,冒号之后填写魔杖上的咒术列表,列表中每个咒术之间用逗号隔开。每一个咒术之后都可以通过加上冒号,冒号之后填写达成条件所需要的咒术等级。
示例:
  1. wand hand name:master spells:flare,missile:2
复制代码



Denizen

脚本事件(script)
这一事件可以触发Denizen任务脚本。请不要把它同Skript事件混淆,它们是不同的。这一事件的唯一参数是脚本的名称。
示例:
  1. script beton
复制代码



SkillAPI

条件:类别(skillapiclass)
该条件检测玩家是否属于特定类别或者属于该类别的子类。该条件的第一个参数是类别名称。如果您只希望玩家属于某个类别而不属于该类别的子类,您可以加上“exact”参数。
示例:
  1. skillapiclass warrior
复制代码

条件:等级(skillapilevel)
该条件检测玩家在某一类别中是否有特定(或更高)的等级。第一个参数是类别名称,而第二个参数是达成条件需要的等级。
示例:
  1. skillapilevel warrior 3
复制代码



Quests

Quests是另一款能够提供简单任务功能的插件。如果您不想花费大量时间在BetonQuest插件中编写高端的任务,但是又希望使用这款插件,您可以用“Custom Event Reward”或是“Custom Condition Requirement”。或者说,如果您在Quests中编写了许多任务内容,但是又想把它们同对话系统结合起来,那么您可以使用“quest”事件和“quest”条件。

Quests事件:奖励
但您为一次任务或是任务的某一阶段添加奖励时,请选择"Custom reward"并且在之后选择 "BetonQuest event"。现在您就可以指定事件名称和与它相关联的奖励了(比如 package.eventName)。当授予玩家这一奖励时,Quests插件将会触发BetonQuest事件。

Quests条件:要求
当您为任务添加要求时,请选择"Custom requirement" 并且在之后选择 "BetonQuest condition"。现在您就可以指定条件名称和与它相关联的要求了(比如package.conditionName)。当任务开始时,Quests插件将会检测BetonQuest条件。

BetonQuest事件:任务
这一事件将会为玩家开始任务。该事件的第一个参数是任务名称(同在任务中的名称设置里定义的一样)。如果这一名称含有空格,请用_来代替空格。如果您希望这一事件的发生与任务的开始符合同样的条件,您也可以选择加上“check-requirements”参数。(如果您不加上这一参数,任务将会在事件发生时强制开始)
示例:
  1. quest stone_miner check-requirements
复制代码

BetonQuest条件:任务
当玩家完成了某个特定任务时达成该条件。唯一的参数是任务名称。如果这一名称含有空格,请用_来代替空格。
示例:
  1. quest stone_miner
复制代码

想要跟踪本帖的,请在下方回复或评分
  1. 这wiki翻译不错,我想订阅
复制代码
这样在每次更新时我会@你
@1345979462 @lsz7575 @光の旋律 @Rolas   

本帖与 @Smokey_Days 的翻译帖为同一项目

另外随口说几句



作者: Rolas    时间: 2017-2-8 19:33
很棒的翻译yo
作者: lsz7575    时间: 2017-2-12 13:27
很棒的翻译``你们俩记得做索引哈..
作者: KTR    时间: 2017-2-26 11:34
MythicMobs怪物根本用不着翻译,用过的人自然就懂,为何要翻译成神话生物?
作者: 大力水手    时间: 2017-2-28 23:40
这个插件能不能跟领地之类的其他插件关联呢?
作者: Tale丿神话    时间: 2017-4-3 15:46
那个粒子的那个为什么总是提示不存在 我在main和events里都加了 重载插件之后报错啊 提示效果不存在
作者: hanwanghao    时间: 2017-6-21 00:38
为什么显示没有mmokill目标
作者: 423618228    时间: 2018-8-3 15:23
skillapi中的判断职业等级   skillapilevel warrior 3的warrior 是指什么!
作者: j531065605    时间: 2018-10-19 20:55
423618228 发表于 2018-8-3 15:23
skillapi中的判断职业等级   skillapilevel warrior 3的warrior 是指什么!

大佬,这个问题你解决了嘛?我也不懂该怎么办,我把warrior换成职业好像不行
作者: j531065605    时间: 2018-10-20 08:58
那个skillapi的条件有点迷啊
作者: 423618228    时间: 2018-10-20 17:02
j531065605 发表于 2018-10-20 08:58
那个skillapi的条件有点迷啊

还没有解决...这个条件用不了
作者: j531065605    时间: 2018-10-21 00:49
423618228 发表于 2018-10-20 17:02
还没有解决...这个条件用不了

能用,上面翻译那个一样的,
作者: 寡人无能    时间: 2019-10-10 19:09
这wiki翻译不错,我想订阅