====== Conditions ====== ===== 条件 ===== ---- ==== 介绍 ==== 条件用于确定一个动作是否可以执行。这些条件放置在配置中的条件部分下,如下所示(页面底部)。 并非所有条件都适用于任何地方,无法在条件选项中使用变量。 条件可以在中使用: * [[https://git.mythiccraft.io/mythiccraft/MythicMobs/-/wikis/skills/mechanics/skill|技能机制]] * [[插件手册:mythicmobs:物品:掉落物品|掉落物品]]表 * [[https://git.mythiccraft.io/mythiccraft/MythicMobs/-/wikis/Spawners|生成器(不推荐使用的条件系统)]] * [[https://git.mythiccraft.io/mythiccraft/MythicMobs/-/wikis/Random%20Spawns|随机生成器]] 应用多个条件时,必须满足所有条件才能执行操作。某些条件允许可以用逗号分隔的数组。这些条件只需要匹配数组中的字符串之一。 要查看如何使用仅高级在线目标条件,[[https://git.mythiccraft.io/mythiccraft/MythicMobs/-/wikis/skills/conditions/in-linetargetconditions|请单击此处!]](也就是付费版) ==== 用法 ==== ---- ==== 类型 ==== 条件可以分为两种类型- 1.一般条件:可用于 **实体**和**位置** 或**仅用于实体**的条件。 * 比较条件:需要两个实体或两个位置的条件。此条件仅在技能 yaml 的 TargetConditions 部分中使用时才有意义。**请参阅比较条件!** 技能的条件节点中使用的条件: * 每个条件都可以使用。 * 施法者始终是将被检查的实体。可以使用所有条件,但比较 2 个实体的条件在这里没有意义。 技能的 TargetConditions 节点中使用的条件: * 每个条件都可以使用。 * TargetConditions 节点只能在技能中使用。 * 比较实体取决于技能的目标。如果技能使用@self,则比较实体是施法者,如果技能使用任何其他目标,则比较实体/位置是目标中给出的实体。 ==== 例子 ==== Conditions: - globalscore{objective=Test;v=>10} 此条件在条件节点下使用,并将检查施法者的条件。无论技能的目标是什么。 ---- TargetConditions: - globalscore{objective=Test;v=>10} 这个(相同的)条件在 TargetConditions 节点下使用,并将检查目标的条件。 注意:CompareConditions 仅在 TargetConditions 节点中有意义,因为它们比较 2 个实体,其中 1 个始终是施法者,另一个是目标实体。如果在条件节点中使用它们,施法者和目标总是相同的。 **格式:** 自 4.0.0 起,所有条件现在都有新格式。 Conditions: - condition [variable] - condition [variable] [action] - condition [variable] [action] [action_variable] - condition{variable1=value;variable2=value} [action] [action_variable] 这些新的“动作”控制着满足或不满足条件时技能的行为方式。这里有些例子: Conditions: - day required - stance defensive power 0.5 - stance{stance=defensive} power 0.5 - score{objective=test;value=>20} cancel - haspotioneffect{type=POISON;level=>0;duration=0to100} true **范围值:范围** 值使用格式 ''to'' 或 ''-'' 。如果要在范围内使用负数,则必须使用 ''to'' 而不是 ''-'' 。这里以距离条件为例: TargetConditions: - distance{d=1to10} true TriggerConditions: - distance{d=1to10} true Conditions: - altitude{a=1-5} ===== 条件动作 ===== 条件操作允许您根据条件执行其他操作。默认条件动作为**True** |**行动**|**描述**| |required (or true)|技能运行需要条件。| |cancel (or false)|如果满足此条件,该技能将不会运行。| |power [multiplier]|修改技能的威力(ei power 2.0会使技能威力翻倍)| |cast [skill]|如果满足条件,则施放额外的技能。| |castinstead [skill]|如果满足条件,则改为施放不同的技能。| |orElseCast [skill]|如果不满足条件,则改为施放不同的技能| ===== 条件 ===== 具体的例子请[[https://git.mythiccraft.io/mythiccraft/MythicMobs/-/wikis/Skills/Conditions#conditions|查阅原wiki]] |**条件**|**类型**|**描述**| |Altitude|Entity|测试目标实体离地面多远| |Biome|Location|测试目标是否在给定的生物群系列表中| |BlockType|Location|测试存在于目标位置的材料类型| |Blocking|Entity|测试目标实体是否被盾牌阻挡| |Burning|Entity|目标实体是否着火| |Children|Entity|测试施法者有多少召唤物| |Color|Entity|测试实体的颜色| |Crouching|Entity|目标实体是否蹲伏| |Cuboid|Compare|目标是否在 location1 x location2 之间的给定长方体内| |DamageAmount|Entity|检查受到的一系列伤害| |DamageCause|Entity|检查损坏原因的类型| |Dawn|Location|如果时间是黎明,从 22000 到 2000 游戏时间| |Day|Location|如果时间是白天,从 2000 到 10000 游戏时间| |Distance|Compare|施法者与目标的距离是否在给定范围内| |DistanceFromSpawn|Location|世界出生点到目标的距离是否在给定范围内| |Dusk|Location|如果时间是黄昏,从14000到18000游戏时间。| |EnchantingLevel|Entity|检查实体经验| |EnderDragonPhase|Entity|检查末影龙是否处于一个或多个阶段| |EntityType|Entity|测试目标的实体类型| |Faction|Entity|测试目标阵营| |FallSpeed|Entity|如果目标的下落速度在给定范围内| |FieldOfView|Compare|测试目标是否在施法者注视的给定角度内| |FoodLevel||检查目标是否在范围内有食物| |FoodSaturation||检查目标是否在范围内有食物| |Gliding|Entity|如果目标滑翔| |Globalscore|Entity|检查全局记分牌值| |HasAura|Entity|检查目标实体是否具有给定的光环| |HasAuraStacks|Entity|测试目标是否有给定范围的光环叠加| |HasCurrency|Entity|如果目标拥有给定数量的金库货币| |HasInventorySpace|Entity|如果目标有给定数量的背包空间| |HasItem|Entity|测试目标玩家是否拥有给定数量的给定材料| |HasOwner|Entity|测试目标生物是否有所有者| |HasParent|Entity|测试目标生物是否有父级| |HasPassenger|Entity|检查目标实体是否被骑乘| |HasGravity|Entity|测试目标生物是否有重力| |HasPotionEffect|Entity|测试目标实体是否有药水效果| |HasTag|Entity|测试目标是否有记分牌标签| |Haspermission|Entity|测试目标玩家是否有权限| |Health|Entity|匹配目标的血量| |Height|Location|检查目标的 Y 位置是否在范围内| |HeightAbove|Location|检查目标的 Y 位置是否高于某个值| |HeightBelow|Location|检查目标的 Y 位置是否低于给定值| |Holding|Entity|检查目标是否持有给定的材料(支持 MythicMobs 和 MMOItems)| |Inblock|Location|检查目标位置的材料| |Incombat|Entity|如果目标生物在战斗中被考虑| |Inside|Location|检查目标头上是否有方块| |isCaster|Entity|检查目标是否是施法者| |isChild|Entity|检查目标是否是施法者的子级| |isLiving|Entity|检查目标是否为生物| |isMonster|Entity|检查目标是否是怪物| |isPlayer|Entity|检查目标是否是玩家| |isSprinting|Entity|检查目标玩家是否正在冲刺| |ItemRecharging|Entity|检查目标的武器是否正在装填| |LastDamageCause|Entity|检查目标的最后一次伤害原因| |LastSignal|Entity|匹配目标生物收到的最后一个信号| |Level|Entity|检查目标 MythicMob 的等级| |LightLevel|Location|测试目标位置的光照水平| |LineOfSight|Compare|测试目标是否在施法者的视线范围内| |LunarPhase|Location|检查目标世界的月相| |Mobsinradius|Location|检查给定半径内有多少生物| |Mobsinchunk|Location|将范围与目标位置区块中的生物数量相匹配| |Mobsinworld|Location|将范围与目标世界中的生物数量相匹配| |Mounted|Entity|如果目标实体正在骑乘坐骑/车辆| |Moving|Entity|如果目标的速度大于零| |MythicMobType|Entity|检查目标生物的 MythicMob 类型| |Night|Location|如果时间是晚上,从 14000 到 22000 游戏时间| |NotInRegion|Location|如果目标位置不在给定的 WorldGuard 区域内| |OffGCD|Entity|检查目标生物是否有激活的全局冷却时间| |OnBlock|Location|匹配目标实体所在的方块| |OnGround|Entity|如果目标实体站在坚实的地面上| |Outside|Location|如果目标上方有开阔的天空| |Owner|Compare|检查目标实体是否是施法者的所有者| |OwnerIsOnline|Entity|检查目标生物的主人是否在线,如果主人是玩家| |Pitch|Entity|检查目标实体的间距是否在一个范围内| |PlayerKills|Entity|匹配目标生物杀死的玩家数量| |PlayersInRadius|Entity|检查半径内有多少玩家| |PlayerNotWithin|Location|检查是否有玩家在目标半径内| |PlayerWithin|Location|检查是否有玩家在目标半径内| |Raining|Location|如果目标世界正在下雨| |Region|Location|如果目标在给定的 WorldGuard 区域内| |SameFaction|Entity|测试施法者和目标是否在同一阵营| |Score|Entity|检查目标实体的记分板值| |SlimeSize|Entity|检查目标实体的大小| |Stance|Entity|检查目标生物的姿态| |StringEquals|Meta|检查 value1 是否等于 value2。这两个值都可以使用变量和占位符。| |Sunny|Location|如果目标世界的天气晴朗。| |TargetInLineOfSight|测试目标是否有视线到他们的目标| |TargetNotInLineOfSight||测试目标是否与目标没有视线| |TargetWithin|Entity|测试目标的目标是否在一定距离内| |Targetnotwithin|Entity|测试目标的目标是否不在一定距离内| |Targets|Meta|测试从父技能树继承的目标数量是否与给定范围匹配。| |Thundering|Location|检测目标世界是否雷雨天气| |VariableInRange|Meta|检查给定的数值变量是否在某个范围内。| |VariableIsSet|Meta|检查是否设置了给定的变量。| |Variableequals|Meta|检查给定变量是否具有特定值。| |Wearing|Entity|测试目标实体的装备。| |World|Location|检查目标世界的名称。| |Worldtime||将范围与目标位置的世界时间相匹配。| |Yaw|Entity|根据范围检查目标实体的偏航。| |yDiff|Entity|检查目标实体和施法者之间 Y 的差异。| ===== 更多例子 ===== FlameShock: Cooldown: 1 Conditions: - targetwithin 15 - targetinlineofsight true - incombat - stance aggressive - onblock GRASS - offgcd Skills: - gcd{t=60} - message{m=" begins casting a spell"} - potion{t=SLOW;d=60;l=7} - delay 60 - message{m=" &ecombusts"} - effect:particles{p=flame;a=20;hS=3;vS=1;s=0;y=2} - potion{t=HARM;d=1;l=1}