Wiki赞助.jpg
  • 欢迎来到Minecraft插件百科!请在注册后加入百科编辑
  • 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
  • 插件百科企鹅群:223812289

Difference between revisions of "MythicMobs/条件"

From Minecraft插件百科
Jump to: navigation, search
(创建页面,内容为“==条件要求(Conditions)== 一些旧版(2.5.11)的条件。只要把'''Conditions'''改为'''LegacyConditions'''就仍然可在MM4.0.0+使用 <spoiler> *'''biome […”)
 
(条件要求(Conditions))
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
==条件要求(Conditions)==
 
==条件要求(Conditions)==
 
一些旧版(2.5.11)的条件。只要把'''Conditions'''改为'''LegacyConditions'''就仍然可在MM4.0.0+使用
 
一些旧版(2.5.11)的条件。只要把'''Conditions'''改为'''LegacyConditions'''就仍然可在MM4.0.0+使用
<spoiler>
+
===地形===
 
*'''biome [''biome_name'']'''
 
*'''biome [''biome_name'']'''
 
**'''若在此地形'''
 
**'''若在此地形'''
Line 9: Line 9:
 
**'''biome FOREST'''
 
**'''biome FOREST'''
 
<br>
 
<br>
 +
===主人有多少宠物时触发===
 
*'''children [number]'''
 
*'''children [number]'''
 
**'''施法者拥有多少幼儿'''
 
**'''施法者拥有多少幼儿'''
 
**'''4.9.x新增'''
 
**'''4.9.x新增'''
 
<br>
 
<br>
 +
===若在生成点特定的范围内===
 
*'''distancefromspawn [''number'']'''(2.4)
 
*'''distancefromspawn [''number'']'''(2.4)
**'''若在生成点特定的范围内'''
 
 
**可以特定范围 10-405,也可以是范围值 >10 或 <77 等...
 
**可以特定范围 10-405,也可以是范围值 >10 或 <77 等...
 
**'''distancefromspawn >100'''
 
**'''distancefromspawn >100'''
 
<br/>
 
<br/>
 +
===若玩家的分数...时===
 
*'''globalscore [''objective''];[''score'']'''(2.3)
 
*'''globalscore [''objective''];[''score'']'''(2.3)
**'''若玩家的分数...时'''
 
 
**'''globalscore playerkills;>10'''
 
**'''globalscore playerkills;>10'''
 
<br/>
 
<br/>
 +
===若在某y轴高度时===
 
*'''height [''number_range'']'''
 
*'''height [''number_range'']'''
**'''若在某y轴高度时'''
 
 
**可以是范围 20-40, >10 或 <5 等...
 
**可以是范围 20-40, >10 或 <5 等...
 
**按F3可查看高度/Y轴
 
**按F3可查看高度/Y轴
 
**'''height 0-20'''
 
**'''height 0-20'''
 
<br>
 
<br>
*'''hasGravity'''
+
===hasGravity===
 
**'''实体是否拥有重力'''
 
**'''实体是否拥有重力'''
 
**'''4.9.x新增'''
 
**'''4.9.x新增'''
 
<br/>
 
<br/>
 +
===若在以上/以下高度时===
 
*'''heightabove/heightbelow [''number'']'''
 
*'''heightabove/heightbelow [''number'']'''
**'''若在以上/以下高度时'''
 
 
**按F3可查看高度/Y轴
 
**按F3可查看高度/Y轴
 
**'''heightabove 0'''
 
**'''heightabove 0'''
 
<br/>
 
<br/>
*'''holding [''itemname'']'''
+
===当技能使用者手持制定物品时===
**'''当技能使用者手持制定物品时'''
 
 
**必须是Bukkit定义的物品名字。不能是MM物品名字
 
**必须是Bukkit定义的物品名字。不能是MM物品名字
 
**[https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/Material.java 方块/物品名字列表]
 
**[https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/Material.java 方块/物品名字列表]
Line 44: Line 44:
 
**'''holding STICK'''
 
**'''holding STICK'''
 
<br/>
 
<br/>
 +
===若使用者在特定的方块时===
 
*'''inblock [''material_type'']'''
 
*'''inblock [''material_type'']'''
**'''若使用者在特定的方块时'''
 
 
**用于检测是否在水中、空中、岩浆里时十分有效
 
**用于检测是否在水中、空中、岩浆里时十分有效
 
**[https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/Material.java 方块名字列表]
 
**[https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/Material.java 方块名字列表]
Line 52: Line 52:
 
**'''inblock WATER'''
 
**'''inblock WATER'''
 
<br/>
 
<br/>
 +
===若处于战斗状态(拥有目标)时===
 
*'''incombat'''
 
*'''incombat'''
**'''若处于战斗状态(拥有目标)时'''
 
 
**'''incombat'''
 
**'''incombat'''
 
<br/>
 
<br/>
 +
===若处于/不处于WorldGuard插件定义的区域时===
 
*'''inregion/notinregion [''region'']'''
 
*'''inregion/notinregion [''region'']'''
**若处于/不处于WorldGuard插件定义的区域时
 
 
**'''inregion castle'''
 
**'''inregion castle'''
 
<br/>
 
<br/>
 +
===若接受的最后一个信号为此指定的信号===
 
*'''lastsignal [''signal'']'''(2.2.1)
 
*'''lastsignal [''signal'']'''(2.2.1)
**'''若接受的最后一个信号为此指定的信号''' 详见signal技能
+
**详见signal技能
 
**不同于stance条件,signal会检测完全匹配的数据
 
**不同于stance条件,signal会检测完全匹配的数据
 
**'''lastsignal ping'''
 
**'''lastsignal ping'''
 
<br/>
 
<br/>
 +
===若在指定的等级范围内===
 
*'''level [''number_range'']'''
 
*'''level [''number_range'']'''
**'''若在指定的等级范围内'''
 
 
**可以是范围 20-40, >10 或 <5 等...
 
**可以是范围 20-40, >10 或 <5 等...
 
**'''level >3'''
 
**'''level >3'''
 
<br/>
 
<br/>
 +
===若处于指定的亮度范围内===
 
*'''lightlevel [''number_range'']'''
 
*'''lightlevel [''number_range'']'''
**'''若处于指定的亮度范围内'''
 
 
**选值范围必须为0~15之间
 
**选值范围必须为0~15之间
 
**'''lightlevel 0-3'''
 
**'''lightlevel 0-3'''
 
<br/>
 
<br/>
 +
===若处于以上/以下亮度范围内===
 
*'''lightlevelabove/lightlevelbelow [''number'']'''
 
*'''lightlevelabove/lightlevelbelow [''number'']'''
**'''若处于以上/以下亮度范围内'''
 
 
**'''lightlevelabove 6'''
 
**'''lightlevelabove 6'''
 
<br/>
 
<br/>
 +
===若在游戏内的某一天时===
 
*'''lunarphase [''phase'']'''
 
*'''lunarphase [''phase'']'''
**'''若在游戏内的某一天时'''
 
 
**可用逗号,分隔指定的游戏天数
 
**可用逗号,分隔指定的游戏天数
 
**'''lunarphase 0,2,4'''
 
**'''lunarphase 0,2,4'''
 
<br/>
 
<br/>
 +
===若其记分板的分数为某个值时===
 
*'''mobscore [''objective''];[''score'']'''(2.3)
 
*'''mobscore [''objective''];[''score'']'''(2.3)
**'''若其记分板的分数为某个值时'''
 
 
**'''mobscore timeshit;=3'''
 
**'''mobscore timeshit;=3'''
 
<br/>
 
<br/>
 +
===若所在区块有指定量的生物时===
 
*'''mobinchunk [''number_range'']'''
 
*'''mobinchunk [''number_range'']'''
**'''若所在区块有指定量的生物时'''
 
 
**可以是范围 20-40, >10 或 <5 等...
 
**可以是范围 20-40, >10 或 <5 等...
 
**'''mobinchunk <20'''
 
**'''mobinchunk <20'''
 
<br/>
 
<br/>
 +
===若所在世界有指定量的生物时===
 
*'''mobinworld [''number_range'']'''
 
*'''mobinworld [''number_range'']'''
**'''若所在世界有指定量的生物时'''
 
 
**可以是范围 20-40, >10 或 <5 等...
 
**可以是范围 20-40, >10 或 <5 等...
 
**'''mobsinworld >100'''
 
**'''mobsinworld >100'''
 
<br/>
 
<br/>
 +
===若生物的名字匹配时生成此生物===
 
*'''mobtype [''mobname'']'''
 
*'''mobtype [''mobname'']'''
**'''若生物的名字匹配时生成此生物'''
 
 
**只用于随机生成配置下
 
**只用于随机生成配置下
 
**'''mobtype COW'''
 
**'''mobtype COW'''
 
<br/>
 
<br/>
 +
===若技能的整体冷却时间global cooldown为0时===
 
*'''offgcd'''
 
*'''offgcd'''
**'''若技能的整体冷却时间global cooldown为0时'''
 
 
**global cooldown为用于决定生物所不能使用技能的时间段/技能延时
 
**global cooldown为用于决定生物所不能使用技能的时间段/技能延时
 
**使用gcd技能设置技能延时的时间,默认无冷却时间
 
**使用gcd技能设置技能延时的时间,默认无冷却时间
Line 110: Line 111:
 
**'''offfgcd'''
 
**'''offfgcd'''
 
<br/>
 
<br/>
 +
===若站在某方块上时===
 
*'''onblock [''material_type'']'''
 
*'''onblock [''material_type'']'''
**'''若站在某方块上时'''
 
 
**[https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/Material.java 方块名字列表]
 
**[https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/Material.java 方块名字列表]
 
**允许使用/进行分隔
 
**允许使用/进行分隔
 
**'''onblock grass'''
 
**'''onblock grass'''
 
<br/>
 
<br/>
 +
===若在室外/室内时===
 
*'''outside/inside [true/false]'''
 
*'''outside/inside [true/false]'''
**'''若在室外/室内时'''
+
**二白提醒您:''室外''的定义为对天空有清晰的视野时,''室内''的定义则相反
**''室外''的定义为对天空有清晰的视野时,''室内''的定义则相反
 
 
**'''outside true'''
 
**'''outside true'''
 
<br/>
 
<br/>
 +
===若玩家斩杀数为指定值时===
 
*'''playerkills [''number'']'''
 
*'''playerkills [''number'']'''
**'''若玩家斩杀数为指定值时'''
 
 
**'''playerkills 7'''
 
**'''playerkills 7'''
 
<br/>
 
<br/>
 +
===若玩家/目标不在范围内时===
 
*'''playernotwithin/targetnotwithin [''distance'']'''
 
*'''playernotwithin/targetnotwithin [''distance'']'''
**'''若玩家/目标不在范围内时'''
 
 
**输入单个数值。若想使用范围值,使用targetdistance条件
 
**输入单个数值。若想使用范围值,使用targetdistance条件
 
**'''playernotwithin 5'''
 
**'''playernotwithin 5'''
 
**'''targetnotwithin 2'''
 
**'''targetnotwithin 2'''
 
<br/>
 
<br/>
 +
===若玩家/目标在范围内时====
 
*'''playerwithin/targetwithin [''distance'']'''
 
*'''playerwithin/targetwithin [''distance'']'''
**'''若玩家/目标在范围内时'''
 
 
**输入单个数值。若想使用范围值,使用targetdistance条件
 
**输入单个数值。若想使用范围值,使用targetdistance条件
 
**通过连续配合targetinlineofsight条件使用来使生物即使见不到玩家或距离太远时也能使用技能
 
**通过连续配合targetinlineofsight条件使用来使生物即使见不到玩家或距离太远时也能使用技能
Line 138: Line 139:
 
**'''targetwithin 7'''
 
**'''targetwithin 7'''
 
<br/>
 
<br/>
 +
===若正在/没有下雨时===
 
*'''raining [true/false]'''
 
*'''raining [true/false]'''
**'''若正在/没有下雨时'''
 
 
**'''raining false'''
 
**'''raining false'''
 
<br/>
 
<br/>
 +
===用于检测虚拟玩家记分板下的分数===
 
*'''score'''(2.3)
 
*'''score'''(2.3)
**'''用于检测虚拟玩家记分板下的分数'''
 
 
**'''score <''objective''>;<''entry''>;<''numberrange''>
 
**'''score <''objective''>;<''entry''>;<''numberrange''>
 
**'''score kills;dummyplayer;10-14'''
 
**'''score kills;dummyplayer;10-14'''
 
<br/>
 
<br/>
 +
===若生物处于某一状态时===
 
*'''stance [''string'']'''
 
*'''stance [''string'']'''
**'''若生物处于某一状态时'''
 
 
**状态由setstance技能给予
 
**状态由setstance技能给予
 
**使复杂的检测系统成为可能。若当前的状态被设置为AGGRO,而stance条件检测GG时,此次检测成立
 
**使复杂的检测系统成为可能。若当前的状态被设置为AGGRO,而stance条件检测GG时,此次检测成立
 
**'''stance defensive'''
 
**'''stance defensive'''
 
<br/>
 
<br/>
 +
===若处于/不为晴天时===
 
*'''sunny [true/false]'''
 
*'''sunny [true/false]'''
**'''若处于/不为晴天时'''
 
 
**'''sunny true'''
 
**'''sunny true'''
 
<br/>
 
<br/>
 +
===若目标记分板的分数为某数值时===
 
*'''targetscore [''objective''];[''score'']'''(2.3)
 
*'''targetscore [''objective''];[''score'']'''(2.3)
**'''若目标记分板的分数为某数值时'''
 
 
**'''targetscore mobkills;>99'''
 
**'''targetscore mobkills;>99'''
 
<br/>
 
<br/>
 +
===若目标处于范围值内时===
 
*'''targetdistance [''number_range'']'''
 
*'''targetdistance [''number_range'']'''
**'''若目标处于范围值内时'''
 
 
**识别使用范围,如 10-20
 
**识别使用范围,如 10-20
 
**'''targetdistance 10-20'''
 
**'''targetdistance 10-20'''
 
<br/>
 
<br/>
 +
===若目标在/不在可视范围内时===
 
*'''targetinlineofsight/targetnotinlineofsight [true/false]'''
 
*'''targetinlineofsight/targetnotinlineofsight [true/false]'''
**'''若目标在/不在可视范围内时'''
 
 
**'''targetinlineofsight true'''
 
**'''targetinlineofsight true'''
 
<br/>
 
<br/>
 +
===若有/没有打雷时===
 
*'''thundering [true/false]'''
 
*'''thundering [true/false]'''
**'''若有/没有打雷时'''
 
 
**'''thundering false'''
 
**'''thundering false'''
 
<br/>
 
<br/>
 +
===若当前世界为指定的世界时===
 
*'''world [''worldname'']'''
 
*'''world [''worldname'']'''
**'''若当前世界为指定的世界时'''
 
 
**可以指定单个世界,也可以使用逗号列表
 
**可以指定单个世界,也可以使用逗号列表
 
**允许使用/进行分隔
 
**允许使用/进行分隔
 
**'''world snowyworld, lavaworld, islandworld'''
 
**'''world snowyworld, lavaworld, islandworld'''
 
<br/>
 
<br/>
 +
===若当前世界时间为指定范围内时===
 
*'''worldtime [''number_range'']'''
 
*'''worldtime [''number_range'']'''
**'''若当前世界时间为指定范围内时'''
 
 
**取值范围为0~24000<br/>可使用/time显示当前世界的时间
 
**取值范围为0~24000<br/>可使用/time显示当前世界的时间
 
**0-12000为游戏内的白天,12001-13800为黄昏,13801-22200为晚上,22201-24000为黎明
 
**0-12000为游戏内的白天,12001-13800为黄昏,13801-22200为晚上,22201-24000为黎明
 
**'''worldtime 0-12000'''
 
**'''worldtime 0-12000'''
'''例子'''
+
===例子===
 
<pre>
 
<pre>
 
FlameShock:
 
FlameShock:
Line 205: Line 206:
 
   - potion{t=HARM;d=1;l=1}
 
   - potion{t=HARM;d=1;l=1}
 
</pre>
 
</pre>
</spoiler>
+
 
 +
===条件判定方法===
 
条件Conditions用于判定当处于/不处于某个情况时执行某项事件。条件的填写方法见例子<br/>
 
条件Conditions用于判定当处于/不处于某个情况时执行某项事件。条件的填写方法见例子<br/>
 
条件可用于以下位置 ''非所有条件适用于所有地方''
 
条件可用于以下位置 ''非所有条件适用于所有地方''
Line 214: Line 216:
 
当Conditions下有多个条件时,必须按顺序满足所有条件才可执行。那些允许使用'''/'''的条件只要满足其定义中的其中一个即视为匹配此条件
 
当Conditions下有多个条件时,必须按顺序满足所有条件才可执行。那些允许使用'''/'''的条件只要满足其定义中的其中一个即视为匹配此条件
 
===条件是如何运作的===
 
===条件是如何运作的===
'''条件的种类:'''<br/>
 
 
条件可分为三种<br/>
 
条件可分为三种<br/>
 
#条件(Conditions) - 以技能的使用者为目标
 
#条件(Conditions) - 以技能的使用者为目标
Line 251: Line 252:
 
- haspotioneffect{type=POISON;level=>0;duration=0 to 100} true
 
- haspotioneffect{type=POISON;level=>0;duration=0 to 100} true
 
</pre>
 
</pre>
'''条件动作'''<br/>
+
===条件动作注释===<br/>
 
新增的条件动作使我们能在条件上有更多的修改空间。<br/>
 
新增的条件动作使我们能在条件上有更多的修改空间。<br/>
 
比如,新版允许在满足/不满足条件的情况下执行...而旧版的条件要求只会在满足条件的情况下执行
 
比如,新版允许在满足/不满足条件的情况下执行...而旧版的条件要求只会在满足条件的情况下执行

Revision as of 12:25, 27 March 2020

Contents

条件要求(Conditions)

一些旧版(2.5.11)的条件。只要把Conditions改为LegacyConditions就仍然可在MM4.0.0+使用

地形

  • biome [biome_name]
    • 若在此地形
    • 地形种类
    • 允许使用/进行分隔
    • 地形名字应为全大写
    • biome FOREST


主人有多少宠物时触发

  • children [number]
    • 施法者拥有多少幼儿
    • 4.9.x新增


若在生成点特定的范围内

  • distancefromspawn [number](2.4)
    • 可以特定范围 10-405,也可以是范围值 >10 或 <77 等...
    • distancefromspawn >100


若玩家的分数...时

  • globalscore [objective];[score](2.3)
    • globalscore playerkills;>10


若在某y轴高度时

  • height [number_range]
    • 可以是范围 20-40, >10 或 <5 等...
    • 按F3可查看高度/Y轴
    • height 0-20


hasGravity

    • 实体是否拥有重力
    • 4.9.x新增


若在以上/以下高度时

  • heightabove/heightbelow [number]
    • 按F3可查看高度/Y轴
    • heightabove 0


当技能使用者手持制定物品时

    • 必须是Bukkit定义的物品名字。不能是MM物品名字
    • 方块/物品名字列表
    • 由于特殊漏洞原因,此条件不能检测带有损伤值的物品(2.2.1或之前)
    • holding STICK


若使用者在特定的方块时

  • inblock [material_type]
    • 用于检测是否在水中、空中、岩浆里时十分有效
    • 方块名字列表
    • 允许使用/进行分隔
    • 注意若想使用者在水方块中而非仅仅是在水面请使用STATIONARY_WATER替代WATER
    • inblock WATER


若处于战斗状态(拥有目标)时

  • incombat
    • incombat


若处于/不处于WorldGuard插件定义的区域时

  • inregion/notinregion [region]
    • inregion castle


若接受的最后一个信号为此指定的信号

  • lastsignal [signal](2.2.1)
    • 详见signal技能
    • 不同于stance条件,signal会检测完全匹配的数据
    • lastsignal ping


若在指定的等级范围内

  • level [number_range]
    • 可以是范围 20-40, >10 或 <5 等...
    • level >3


若处于指定的亮度范围内

  • lightlevel [number_range]
    • 选值范围必须为0~15之间
    • lightlevel 0-3


若处于以上/以下亮度范围内

  • lightlevelabove/lightlevelbelow [number]
    • lightlevelabove 6


若在游戏内的某一天时

  • lunarphase [phase]
    • 可用逗号,分隔指定的游戏天数
    • lunarphase 0,2,4


若其记分板的分数为某个值时

  • mobscore [objective];[score](2.3)
    • mobscore timeshit;=3


若所在区块有指定量的生物时

  • mobinchunk [number_range]
    • 可以是范围 20-40, >10 或 <5 等...
    • mobinchunk <20


若所在世界有指定量的生物时

  • mobinworld [number_range]
    • 可以是范围 20-40, >10 或 <5 等...
    • mobsinworld >100


若生物的名字匹配时生成此生物

  • mobtype [mobname]
    • 只用于随机生成配置下
    • mobtype COW


若技能的整体冷却时间global cooldown为0时

  • offgcd
    • global cooldown为用于决定生物所不能使用技能的时间段/技能延时
    • 使用gcd技能设置技能延时的时间,默认无冷却时间
    • 用于减慢或防止某些拥有多个技能的生物同时使用不同技能的几率
    • offfgcd


若站在某方块上时


若在室外/室内时

  • outside/inside [true/false]
    • 二白提醒您:室外的定义为对天空有清晰的视野时,室内的定义则相反
    • outside true


若玩家斩杀数为指定值时

  • playerkills [number]
    • playerkills 7


若玩家/目标不在范围内时

  • playernotwithin/targetnotwithin [distance]
    • 输入单个数值。若想使用范围值,使用targetdistance条件
    • playernotwithin 5
    • targetnotwithin 2


若玩家/目标在范围内时=

  • playerwithin/targetwithin [distance]
    • 输入单个数值。若想使用范围值,使用targetdistance条件
    • 通过连续配合targetinlineofsight条件使用来使生物即使见不到玩家或距离太远时也能使用技能
    • playerwithin 15
    • targetwithin 7


若正在/没有下雨时

  • raining [true/false]
    • raining false


用于检测虚拟玩家记分板下的分数

  • score(2.3)
    • score <objective>;<entry>;<numberrange>
    • score kills;dummyplayer;10-14


若生物处于某一状态时

  • stance [string]
    • 状态由setstance技能给予
    • 使复杂的检测系统成为可能。若当前的状态被设置为AGGRO,而stance条件检测GG时,此次检测成立
    • stance defensive


若处于/不为晴天时

  • sunny [true/false]
    • sunny true


若目标记分板的分数为某数值时

  • targetscore [objective];[score](2.3)
    • targetscore mobkills;>99


若目标处于范围值内时

  • targetdistance [number_range]
    • 识别使用范围,如 10-20
    • targetdistance 10-20


若目标在/不在可视范围内时

  • targetinlineofsight/targetnotinlineofsight [true/false]
    • targetinlineofsight true


若有/没有打雷时

  • thundering [true/false]
    • thundering false


若当前世界为指定的世界时

  • world [worldname]
    • 可以指定单个世界,也可以使用逗号列表
    • 允许使用/进行分隔
    • world snowyworld, lavaworld, islandworld


若当前世界时间为指定范围内时

  • worldtime [number_range]
    • 取值范围为0~24000
      可使用/time显示当前世界的时间
    • 0-12000为游戏内的白天,12001-13800为黄昏,13801-22200为晚上,22201-24000为黎明
    • worldtime 0-12000

例子

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}

条件判定方法

条件Conditions用于判定当处于/不处于某个情况时执行某项事件。条件的填写方法见例子
条件可用于以下位置 非所有条件适用于所有地方

当Conditions下有多个条件时,必须按顺序满足所有条件才可执行。那些允许使用/的条件只要满足其定义中的其中一个即视为匹配此条件

条件是如何运作的

条件可分为三种

  1. 条件(Conditions) - 以技能的使用者为目标
  2. 目标条件(TargetConditions) - 以技能的对象为目标
  3. 触发条件(TriggerConditions) - 以触发技能的对象为目标


要注意的是,并不是所有条件要求都适用于这三种类型的条件。比如,

  Conditions:
  - globalscore{objective=Test;v=>10}

globalscore并没有任何特殊的目标,所以只能在Conditions下运作

  TargetConditions:
  - lineofsight false

而这个并不能填写在Conditions下,因为lineofsight需要目标对象才能执行,所以只能填写在TargetConditions或TriggerConditions下

格式:
从4.0.0起,所有条件的新格式大致如下

Conditions:
- 条件 [变量]
- 条件 [变量] [条件动作]
- 条件 [变量] [条件动作] [条件动作的变量]
- 条件{变量1=数值;变量2=数值} [条件动作] [条件动作的变量]

这个新的条件动作可用于在满足/不满足条件的情况下,是否使用技能。例子如下

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

===条件动作注释===
新增的条件动作使我们能在条件上有更多的修改空间。
比如,新版允许在满足/不满足条件的情况下执行...而旧版的条件要求只会在满足条件的情况下执行

  • 以下为一列条件动作
    • 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 等
      也可以是负数(用于跳跃时)
    • 一般掉落的速度为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]}