• 欢迎来到Minecraft插件百科!
  • 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
  • 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289

MythicMobs/条件:修订间差异

来自Minecraft插件百科
跳转到导航 跳转到搜索
无编辑摘要
 
(未显示3个用户的79个中间版本)
第1行: 第1行:
==条件要求(Conditions)==
[[MythicMobs|点击前往MM主页面]]<br>
一些旧版(2.5.11)的条件。只要把'''Conditions'''改为'''LegacyConditions'''就仍然可在MM4.0.0+使用
[[MythicMobs/Skills|点击前往技能页面]]<br>
===地形===
[[MythicMobs/Conditions|点击前往条件页面]]<br>
*'''biome [''biome_name'']'''
[[MythicMobs/Changelogs|点击前往更新日志页面]]<br>
**'''若在此地形'''
[[MythicMobsExtension/New|点击前往MME扩展页面]]<br>
**[https://github.com/Bukkit/mc-dev/blob/master/net/minecraft/server/BiomeBase.java 地形种类]
[[Artifacts|点击前往MythicMobsArtifacts页面]]<br>
**允许使用/进行分隔
[[MythicSkills|点击前往MythicSkills页面]]<br>
**地形名字应为全大写
[[MythicAnimatorStands|点击前往MythicAnimatorStands页面]]
**'''biome FOREST'''
<br>
===主人有多少宠物时触发===
*'''children [number]'''
**'''施法者拥有多少幼儿'''
**'''4.9.x新增'''
<br>
===若在生成点特定的范围内===
*'''distancefromspawn [''number'']'''(2.4)
**可以特定范围 10-405,也可以是范围值 >10 或 <77 等...
**'''distancefromspawn >100'''
<br/>
===若玩家的分数...时===
*'''globalscore [''objective''];[''score'']'''(2.3)
**'''globalscore playerkills;>10'''
<br/>
===若在某y轴高度时===
*'''height [''number_range'']'''
**可以是范围 20-40, >10 或 <5 等...
**按F3可查看高度/Y轴
**'''height 0-20'''
<br>
===hasGravity===
**'''实体是否拥有重力'''
**'''4.9.x新增'''
<br/>
===若在以上/以下高度时===
*'''heightabove/heightbelow [''number'']'''
**按F3可查看高度/Y轴
**'''heightabove 0'''
<br/>
===当技能使用者手持制定物品时===
**必须是Bukkit定义的物品名字。不能是MM物品名字
**[https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/Material.java 方块/物品名字列表]
**由于特殊漏洞原因,此条件不能检测带有损伤值的物品(2.2.1或之前)
**'''holding STICK'''
<br/>
===若使用者在特定的方块时===
*'''inblock [''material_type'']'''
**用于检测是否在水中、空中、岩浆里时十分有效
**[https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/Material.java 方块名字列表]
**允许使用/进行分隔
**注意若想使用者在水方块中而非仅仅是在水面请使用STATIONARY_WATER替代WATER
**'''inblock WATER'''
<br/>
===若处于战斗状态(拥有目标)时===
*'''incombat'''
**'''incombat'''
<br/>
===若处于/不处于WorldGuard插件定义的区域时===
*'''inregion/notinregion [''region'']'''
**'''inregion castle'''
<br/>
===若接受的最后一个信号为此指定的信号===
*'''lastsignal [''signal'']'''(2.2.1)
**详见signal技能
**不同于stance条件,signal会检测完全匹配的数据
**'''lastsignal ping'''
<br/>
===若在指定的等级范围内===
*'''level [''number_range'']'''
**可以是范围 20-40, >10 或 <5 等...
**'''level >3'''
<br/>
===若处于指定的亮度范围内===
*'''lightlevel [''number_range'']'''
**选值范围必须为0~15之间
**'''lightlevel 0-3'''
<br/>
===若处于以上/以下亮度范围内===
*'''lightlevelabove/lightlevelbelow [''number'']'''
**'''lightlevelabove 6'''
<br/>
===若在游戏内的某一天时===
*'''lunarphase [''phase'']'''
**可用逗号,分隔指定的游戏天数
**'''lunarphase 0,2,4'''
<br/>
===若其记分板的分数为某个值时===
*'''mobscore [''objective''];[''score'']'''(2.3)
**'''mobscore timeshit;=3'''
<br/>
===若所在区块有指定量的生物时===
*'''mobinchunk [''number_range'']'''
**可以是范围 20-40, >10 或 <5 等...
**'''mobinchunk <20'''
<br/>
===若所在世界有指定量的生物时===
*'''mobinworld [''number_range'']'''
**可以是范围 20-40, >10 或 <5 等...
**'''mobsinworld >100'''
<br/>
===若生物的名字匹配时生成此生物===
*'''mobtype [''mobname'']'''
**只用于随机生成配置下
**'''mobtype COW'''
<br/>
===若技能的整体冷却时间global cooldown为0时===
*'''offgcd'''
**global cooldown为用于决定生物所不能使用技能的时间段/技能延时
**使用gcd技能设置技能延时的时间,默认无冷却时间
**用于减慢或防止某些拥有多个技能的生物同时使用不同技能的几率
**'''offfgcd'''
<br/>
===若站在某方块上时===
*'''onblock [''material_type'']'''
**[https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/Material.java 方块名字列表]
**允许使用/进行分隔
**'''onblock grass'''
<br/>
===若在室外/室内时===
*'''outside/inside [true/false]'''
**二白提醒您:''室外''的定义为对天空有清晰的视野时,''室内''的定义则相反
**'''outside true'''
<br/>
===若玩家斩杀数为指定值时===
*'''playerkills [''number'']'''
**'''playerkills 7'''
<br/>
===若玩家/目标不在范围内时===
*'''playernotwithin/targetnotwithin [''distance'']'''
**输入单个数值。若想使用范围值,使用targetdistance条件
**'''playernotwithin 5'''
**'''targetnotwithin 2'''
<br/>
===若玩家/目标在范围内时====
*'''playerwithin/targetwithin [''distance'']'''
**输入单个数值。若想使用范围值,使用targetdistance条件
**通过连续配合targetinlineofsight条件使用来使生物即使见不到玩家或距离太远时也能使用技能
**'''playerwithin 15'''
**'''targetwithin 7'''
<br/>
===若正在/没有下雨时===
*'''raining [true/false]'''
**'''raining false'''
<br/>
===用于检测虚拟玩家记分板下的分数===
*'''score'''(2.3)
**'''score <''objective''>;<''entry''>;<''numberrange''>
**'''score kills;dummyplayer;10-14'''
<br/>
===若生物处于某一状态时===
*'''stance [''string'']'''
**状态由setstance技能给予
**使复杂的检测系统成为可能。若当前的状态被设置为AGGRO,而stance条件检测GG时,此次检测成立
**'''stance defensive'''
<br/>
===若处于/不为晴天时===
*'''sunny [true/false]'''
**'''sunny true'''
<br/>
===若目标记分板的分数为某数值时===
*'''targetscore [''objective''];[''score'']'''(2.3)
**'''targetscore mobkills;>99'''
<br/>
===若目标处于范围值内时===
*'''targetdistance [''number_range'']'''
**识别使用范围,如 10-20
**'''targetdistance 10-20'''
<br/>
===若目标在/不在可视范围内时===
*'''targetinlineofsight/targetnotinlineofsight [true/false]'''
**'''targetinlineofsight true'''
<br/>
===若有/没有打雷时===
*'''thundering [true/false]'''
**'''thundering false'''
<br/>
===若当前世界为指定的世界时===
*'''world [''worldname'']'''
**可以指定单个世界,也可以使用逗号列表
**允许使用/进行分隔
**'''world snowyworld, lavaworld, islandworld'''
<br/>
===若当前世界时间为指定范围内时===
*'''worldtime [''number_range'']'''
**取值范围为0~24000<br/>可使用/time显示当前世界的时间
**0-12000为游戏内的白天,12001-13800为黄昏,13801-22200为晚上,22201-24000为黎明
**'''worldtime 0-12000'''
===例子===
<pre>
FlameShock:
  Cooldown: 1
  Conditions:
  - targetwithin 15
  - targetinlineofsight true
  - incombat
  - stance aggressive
  - onblock GRASS
  - offgcd
  Skills:
  - gcd{t=60}
  - message{m="<mob.name> begins casting a spell"}
  - potion{t=SLOW;d=60;l=7}
  - delay 60
  - message{m="<target.name> &ecombusts"}
  - effect:particles{p=flame;a=20;hS=3;vS=1;s=0;y=2}
  - potion{t=HARM;d=1;l=1}
</pre>
 
===条件判定方法===
条件Conditions用于判定当处于/不处于某个情况时执行某项事件。条件的填写方法见例子<br/>
条件可用于以下位置 ''非所有条件适用于所有地方''
*[[MythicMobs技能#.E6.8A.80.E8.83.BD.28Skill_Mechanics.29|基本技能]]
*[[#.E6.8E.89.E8.90.BD.E8.A1.A8.28DropsTables.29|掉落表]]
*[[#.E7.94.9F.E6.88.90.E7.82.B9.28Spawners.29|生成点]]
*随机生成
当Conditions下有多个条件时,必须按顺序满足所有条件才可执行。那些允许使用'''/'''的条件只要满足其定义中的其中一个即视为匹配此条件
===条件是如何运作的===
条件可分为三种<br/>
#条件(Conditions) - 以技能的使用者为目标
#目标条件(TargetConditions) - 以技能的对象为目标
#触发条件(TriggerConditions) - 以触发技能的对象为目标
<br/>
要注意的是,并不是所有条件要求都适用于这三种类型的条件。比如,
<pre>
  Conditions:
  - globalscore{objective=Test;v=>10}
</pre>
''globalscore''并没有任何特殊的目标,所以只能在Conditions下运作<br/>
<br/>
<pre>
  TargetConditions:
  - lineofsight false
</pre>
而这个并不能填写在Conditions下,因为''lineofsight''需要目标对象才能执行,所以只能填写在TargetConditions或TriggerConditions下<br/>
<br/>
'''格式:'''<br/>
从4.0.0起,所有条件的新格式大致如下
<pre>
Conditions:
- 条件 [变量]
- 条件 [变量] [条件动作]
- 条件 [变量] [条件动作] [条件动作的变量]
- 条件{变量1=数值;变量2=数值} [条件动作] [条件动作的变量]
</pre>
这个新的'''条件动作'''可用于在满足/不满足条件的情况下,是否使用技能。例子如下
<pre>
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=0 to 100} true
</pre>
===条件动作注释===<br/>
新增的条件动作使我们能在条件上有更多的修改空间。<br/>
比如,新版允许在满足/不满足条件的情况下执行...而旧版的条件要求只会在满足条件的情况下执行
*以下为一列条件动作
**'''reqiured'''/'''true'''(默认) - 满足条件时,执行技能
**'''cancel'''/'''false''' - 满足条件时,不执行技能
**'''power [数值]''' - 满足条件时,调整技能的伤害 (power 2.0 会使技能的威力翻倍)
**'''cast [技能]''' - 满足条件时,使用额外指定技能
**'''castinstead [技能]''' - 满足条件时,使用指定技能替代原定技能
 
===不选取目标类条件===
*'''globalscore{objective=[objective];value=[vaule]}'''
**检测名为"__GLOBAL__"玩家的分数
**你可以以此用作记录服务器某项东西的分数
**'''globalscore{objective=Test;value⇒10}'''
*'''mobsinworld{a=[amount]}
**检测当前世界的生物数量
**可输入单个数值,或使用数值范围
**'''mobsinworld{a⇒10}'''
===目标/触发类条件===
*'''distance{d=[value]}'''
**当目标在指定范围内时
**可输入单个数值,或使用数值范围 20-40 >10 <5 等
**'''distance{d=<2}
*'''lineofsight'''
**当使用者(生物)在/不在玩家视野范围内时
**'''targetinlineofsight true'''
*'''owner'''
**当目标是/不是某生物的主人时
**''主人''必须通过''setowner''技能设置
**'''owner true'''
*'''targetwithin/targetnotwithin{d=[value]}'''
**当目标在/不在指定范围内时
**'''targetwithin{d=2}
===基本类条件===
*'''altitude{a=[number]}'''
**当使用者/目标离地面的高度满足指定数值时
**可输入单个数值,或使用数值范围 20-40 >10 <5 等
**'''altitude{a⇒1}'''
*'''biome{b=[biome]}'''
**当使用者/目标处于指定群系时
**默认为Plains群系
**'''biome{b=DESERT} true'''
*'''crouching'''
**当目标(玩家)潜行(shift键)时
**应该只适用于玩家
**'''crouching false'''
*'''distancefromspawn [number]'''
**检测离世界出生点的距离
**可输入单个数值,或使用数值范围 20-40 >10 <5 等
**'''distancefromspawn >100'''
*'''entitytype [entity]'''
**检测实体的种类
**'''entitytype player'''
*'''fallspeed{speed=[number/number range]}'''
**可输入单个数值,或使用数值范围 20-40 >10 <5 等<br/>也可以是负数(用于跳跃时)
**一般掉落的速度为0.785
**'''fallspeed{speed⇒0.7845}'''
*'''gliding'''
**检测生物/实体是否佩带滑翔翼并滑翔
**可用''setgliding''技能使生物滑翔
**'''gliding true'''
*'''Cuboid'''
**检测目标是否在由两个点(locationl)组成的矩形内
**4.5新增
**'''cuboid{location1=x,y,z;location2=x,y,z;world=world}'''
*'''LastDamageCause'''
**目标受到的最后一次攻击的类型
**4.5新增
**- lastdamagecause ENTITY_ATTACK
*'''pitch'''
**实体的音高
**4.5新增,不明作用,可用to ><来取范围/定值
**TargetConditions:
**- pitch 20to40
**- pitch <100
**'''cuboid{location1=x,y,z;location2=x,y,z;world=world}'''
*'''*'''Wearing'''
**检测生物指定槽位是否装有指定物品(可以是mm物品)
**4.5新增
**TargetConditions:
**- wearing{slot=helmet;material=DIAMOND_HELMET} true
**- wearing{slot=chestplate;mmitem=AnItem}
**槽位有 头盔(helmet), 胸甲(chestplate), 护腿(leggings), 和靴子(boots)
*'''YAW'''
**目标的视角角度
**4.5新增
**TargetConditions:
**- yaw >50
**- yaw 50to100Stance
*'''Strict'''
**是否进行严格模式(作用于Stance)
**4.5新增
**strict=true/false (默认为false)
*haspotioneffect{type=[potion type];level=[level];duration=[duration start] to [duration end]}

2021年2月27日 (六) 04:00的最新版本