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

MythicMobs/Skills

来自Minecraft插件百科
1240798440讨论 | 贡献2021年7月17日 (六) 17:53的版本 条件要求(Conditions)
跳转至: 导航搜索

技能(Skills)

  • 一列可用的技能详细列表
  • 将写好的技能放在MythicMobs/Skills内
  • 技能为MM插件的一大特点。所有MM生物都可以根据不同情况发动技能
  • 一个完整的技能由以下几个构成
    技能名
    特效类技能
    技能目标对象Targeters
    简易的技能触发要求Triggers
    更高级的触发Conditions


技能格式

鲲鲲:
  Type: ZOMBIE
  Display: '鲲鲲'
  Health: 50
  Skills:
  - 无目标类技能 触发器
  - ignite{ticks=100} @target ~onAttack <50% 0.5
  - skill:技能组名 @T ~onDamaged >0% 1
 - 技能名{修改项=值;修改项=值} 目标选择器 触发器 血量要求 几率

或:

Skills:
  - 技能名{
      技能修改项=数值;
      技能修改项=数值;
      技能修改项=数值;
      }

特殊类技能可使用此格式:

鲲鲲:
  Skills:
  - projectile{
     interval=1;velocity=5;tyo=0.5;g=1;hnp=true;stopatentity=true;duration=300;
     onHit=[
         - ignite{ticks=20}
     ];
     onTick=[
         - effect:particles{p=flame;a=20;hs=0.5;vs=0.5}
     ];
     onEnd=[
         - effect:particles{p=largeexplode;a=50;speed=1;hs=0.05;vs=0.05}
         - effect:sound{s=entity.dragon_fireball.explode;p=0.6;v=2}
         - damage{amount=30} @ENO{r=5}
     ]} @target

血量要求(Health Modifiers)

  • 血量要求,用于确定当生物的血量满足什么情况下技能才可以发动
    使用这三个判定符=,<,>
    以下几个例子
=90% - 血量到达90%时触发
<50% - 血量小于50%时触发
=30%-50% - 当血量为30%到50%之间时触发
<2000 - 血量小于2000点时触发
>10,=5,<3% - 血量大于10点,等于5,或小于3%时都可触发
  • 我们把之前的例子再拉回来...血量小于50%时,每次攻击目标时使用技能:点燃
Skills:
   - ignite{ticks=100} @target ~onAttack <50%

几率(Chance)

  • =满足条件后技能使用的几率
  • 1.0为100%,一般不填写的话也就是默认100%使用;0.5是50%几率,0就是不会发动...
  • 我们把例子最后一次再拉回来...血量小于50%时,每次攻击目标时有50%几率使用技能:点燃
Skills:
  - ignite{ticks=100} @target ~onAttack <50% 0.5

技能列表

通过点击下方の蓝色文字浏览相应类型的技能列表,或在技能列表页面浏览全部技能

常用类

目标类技能|无目标类技能|特殊类技能|特效类技能

坐标类

  • 此类技能的位置从@Location目标选择器或其他原因选取
activatespawner—激活刷怪点
标签(缩写) 描述 默认设置
spawners(spawner,s) 刷怪点的名字,或其他

最好配合"刷怪点的useTimer设置为false"使用
激活名为BossAdd的刷怪点

Skills:
- activatespawner{spawner=BossAdd}

激活所有于Castle组下的刷怪点

Skills:
- activatespawner{spawner=g:Castle}

生成名字带有DungeonBoss1Spawner的刷怪点(比如DungeonBoss1Spawner1, DungeonBoss1Spawner2)

Skills:
- activatespawner{spawner=DungeonBoss1Spawner*}
pushbutton—按钮:按下坐标位置的按钮
标签(缩写) 描述 默认设置
x x轴坐标 0
y y轴坐标 0
z z轴坐标 0
HitSecretButton:
  Skills:
  - pushbutton{x=15;y=67;z=-213}
breakblock—破坏方块:破坏坐标位置的方块

若施法者为玩家,破坏方块将无视WG区域保护,此漏洞修复于4.12

标签(缩写) 描述 默认设置
doDrops(drops,d MM4.12+) 是否掉落方块 false
doEffect(effect,e MM4.12+) 是否播放破坏方块特效 false
useTool(tool,t MM4.12+) 是否使用施法者(需为玩家)手持着的工具破坏方块 true
鲲鲲:
  Skills:
  - breakblock{forcesync=true} @location{c=100,64,100} ~onInteract

如果玩家挖的是矿石/石头之类的但没有拿镐,那么不会掉落方块与播放破坏粒子

- breakblock{forcesync=true;doEffect=true;doDrops=true;useTool=true} @targetlocation
breakblockandgiveitem—破坏并给予方块:破坏坐标位置的方块后给予施法者所破坏の方块

需forcesync为true(强制激活)

标签(缩写) 描述 默认设置
doDrops(drops,d MM4.12+) 是否掉落方块 false
doEffect(effect,e MM4.12+) 是否播放破坏方块特效 false
useTool(tool,t MM4.12+) 是否使用施法者(需为玩家)手持着的工具破坏方块 true
fakelooting(fl) 是否播放物品拾取动画 false
items(item,i) 所给予の物品,填写后方块不会掉落它本身
鲲鲲:
  Skills:
  - breakBlockAndGiveItem{dodrops=false;items=diamond}

破坏方块直接掉落钻石,而不是所破坏の方块

togglelever—拉杆:激活坐标位置的拉杆

默认会激活1秒后关闭

标签(缩写) 描述 默认设置
duration(d)-似乎无效 拉杆持续激活的时间(刻) 20
x x轴坐标 0
y y轴坐标 0
z z轴坐标 0

最好使用目标选择器:@Location

鲲鲲:
  Skills:
  - togglelever @Location{duration=600;x=77;y=82;z=-24}

通用标签

一列适用于所有技能的标签,4.10+的版本全部支持变量
若Repeat所作用の技能报错,则Repeat会无止境激活の漏洞修复于4.10
Cooldown不读取小数の漏洞修复于4.10

标签(缩写) 描述 默认设置
Cooldown(cd)大小写要注意 技能冷却时间 0
delay 延迟所执行的技能时间(刻) 0
repeat 技能重复的次数 0
repeatInterval 每过多少刻才能重复技能 0

通用标签的具体用法

Cooldown(cd)-冷却
  • 注 意 大 小 写
  • 冷却的计时单位是秒,且数值前方必须有空格!,冷却可以是小数
  • ≤0可能会没用?
测试:
  Cooldown: 0
  Skills:
  - 技能
Delay(不可缩写)-延迟
  • 无限制大小写
  • 延迟的计时单位是刻(tick),且数值前方必须有空格!
  • 一般来讲刻不会是小数.
  • 换算:1h=72000tick;1min=1200tick;1s=20tick
  • 网络延迟越大,1刻就会变得越久
  • 延迟应当写在应用技能的上方
  • 如果上面写了多条延迟,那么下面的技能会叠加多条延迟!
这是一个例子
测试:
  Skills:
  - delay 5 #0.25秒
  - 技能
  - delay 10 #0.5秒
  - 技能2
在0.25秒后释放技能,0.75秒(0.25秒+0.5秒)后释放技能2
repeat(不可缩写)-重复激活(次数)
  • 此标签需写在技能(无限制)的中括号({})里(例如damage{})
  • 与delay一样 多次激活带有repeat标签的技能 各次激活所附带的repeat将独立计算并激活
  • 技能持续时间=重复次数x重复间隔,下文说明为何要在这点明
  • 填入小数将导致无效
  • 必须配合标签repeatInterval(重复间隔)使用!
这是一个例子
测试:
  Skills:
  - skill{s=技能;repeat=50;repeatInterval=1} @self
在50tick(1tick/次x50次)内连续释放50次技能
repeatInterval(不可缩写)-重复间隔
  • 此标签需写在技能(无限制)的中括号({})里(例如damage{})
  • 必须配合标签repeat(重复次数)使用!
  • 技能持续时间=重复次数x重复间隔,下文说明为何要在这点明
  • 若技能标签所在的技能(skill{s=鲲鲲;repeat=次数;repeatInterval=次数)
-里的Super设置了冷却,则重复间隔会加上冷却时间!
这是一个例子
测试:
  Cooldown: 20
  Skills:
  - skill{s=技能;repeat=50;repeatInterval=2} @self
在5秒(100tick=2tick/次x50次)内连续释放50次技能
由于你设置了冷却为20秒,在第一次重复就会开始冷却
也就是说真正的冷却时间只有15秒
另一种情况:测试无冷却,技能有冷却
测试:
  Skills:
  - skill{s=技能;repeat=50;repeatInterval=2} @self
技能:
  cd: 2
  - damage{a=0;ia=true}

间隔设置的是0.1秒/次,而我们设置了重复的技能冷却时间为2秒 只有冷却结束才会重复出“技能”,但这并不代表冷却未到的时候两 个重复标签会等待冷却,而是在冷却未到期间不会放出“技能” 50次x2tick/秒=100tick,2sx20tick=40tick 100/40=2余20,所以在测试重复释放“技能”期间,只会释放两次"技能"

技能威力(Power)

鲲鲲:早在2020上半年就很好奇这是个啥东西..直到2020.1.6翻了翻官方百科

技能 受影响修改项 影响之前的计算 影响后的计算
basedamage multiplier(m) 数值为m的值 数值为m的值 * 技能威力
consume damage(d)与health(h) 数值为d与h的值 d与h的值各自*技能威力
damage amount(a) 数值为a的值 数值为a的值 * 技能威力
leap velocity(v) 数值为v的值 数值为v的值 * ( 1 + 技能威力 * 0.1 )
projectile velocity(v)与maxrange(mr) 数值为v与mr的值 v与mr的值各自*技能威力
missile velocity(v)与maxrange(mr) 数值为v与mr的值 v与mr的值各自*技能威力
  • 栗子:
2级的鲲鲲,damage伤害将从5增加到10(鲲鲲为1级 + 默认的技能威力为1
即1+1 = 2, 5*2 = 10),3级的鲲鲲伤害则增加到15
鲲鲲:
  Type: SKELETON
  Health: 20
  LevelModifiers:
    Health: 10
    Power: 1
  Skills:
  - damage{a=5} @trigger ~onDamaged

特殊符号

变量 描述
<&co> 返还冒号 :
<&sq> 返还撇号 '
<&da> 返还减号 -
<&bs> 返还反斜杠 \
<&fs> 返还斜杠 /
<&sp> 返还空格
<&cm> 返还逗号 ,
<&sc> 返还分号 ;
<&eq> 返还等号 =
<&ss> 返还分节符 §
<&dq> 返还双引号 "
<&rb> 返还右方括号 ]
<&lb> 返还左方括号 [
<&rc> 返还右大括号 }
<&lc> 返还左大括号 {
<&nl> 另起新的一行
<&heart> 返还一个爱心符号
<&skull> 返还一个骷髅骨头符号

颜色代码

可使用于生物或技能内,也能用于tellraw命令内

  • 在部分预览版本被§所替代!

变量 描述
&0 黑色
&1 深蓝色
&2 深绿色
&3 深水蓝色
&4 深红色
&5 深紫色
&6 金色
&7 灰色
&8 深灰色
&9 蓝色
&a 绿色
&b 水蓝色
&c 红色
&d 浅紫
&e 黄色
&f 白色
&K 乱码
&L 加粗
&M 删除线
&N 下划线
&O 斜体
&R 颜色代码重置/清空

条件要求(Conditions)

点击标题进入条件列表

恭喜你发现了彩蛋!

鲲鲲:感谢CHuNan帮忙搬运QWQ
CHuNan:其实我就是个打酱油的

点击此处隐藏彩蛋

鲲鲲:
  Conditions:
  - 条件 条件活动(默认为true)
  - 条件
  Skills:
  - 技能
  - 技能 目标选择器

目标选择器与过滤器(Targeters)概览

有关目标选择/过滤器的注意事项与更多内容请点击-->目标选择/过滤器页面

  • 无目标类技能不需要目标选择器
  • 技能组内目标不填写则为生物Yml内该技能组所填写的目标选择器
  • 检测条件所检测的目标随目标选择器变化,例如@self为检测自己
  • @self时,Conditions/TargetConditions/TriggerConditions所检测的目标相同
  • 范围类目标选择器有最大值,超过最大值时技能无效
  • @self除外的实体目标选择器,Conditions检测施法者(与上述一样)TargetConditions检测技能的目标
  • @trigger时,TargetConditions/TriggerConditions所检测的目标相同
  • @self不同于@selflcation,本质上一个实体选择器一个位置选择器,其次selflcation选择的是脚下,而不是实体"中心"

触发器

无法写在技能文档

可用的所有触发器
触发器 描述 血量 几率
onCombat 默认
onAttack 实体造成伤害(包括技能)后
onDamaged 实体受到伤害后
onSpawn 实体生成后 ×
onDeath 实体死亡后 ×
onDeSpawn 实体非因死亡而消失后(添加于4.6.x) ×
onFirstSpawn 实体第一次从刷怪点出生后 ×
onTimer:# 经过多少刻后
onInteract 实体被右键后
onKillPlayer 实体击杀玩家后
onPlayerDeath 玩家(施法者)死亡后 ×
onEnterCombat 实体开始战斗后(需开启威胁表)
onDropCombat 实体停止战斗后(需开启威胁表)
onChangeTarget 实体改变目标后(需开启威胁表)
onExplode 实体爆炸后(经常只用于爬行者)
onTeleport 实体传送后(经常只用于末影人)
onSignal 实体生物接收到信号后
onShoot 实体生物射击后
onSignal:信号名[/i] 实体接收到特定信号后

使用栗子

示例
Skills:
  - ignite{ticks=100} @target ~onAttack
  - skill:鲲鲲Shield @trigger ~onDamaged 0.1
  - skill:AOE鲲鲲 @self ~onTimer:300

在这个栗子里,生物将目标点燃5秒,受伤使用 鲲鲲Shield 每15秒使用 AOE鲲鲲 技能

  Skills:
  - onDamaged{
      auraName=测试;d=200;
      onTick=[
        - particles{p=flame;amount=10;hS=0.4}
      ];
      damageMods="FIRE 0.5"} @self ~onInteract

生物被右键时自身获得持续10秒名为'测试'的光环,期间受到FIRE类型的伤害减半,并不断释放火焰粒子,这个栗子是新技能写法 4.8.0+的触发器技能↓

  • onDamaged现在可为施法者添加一个伤害修正光环,并应用指定伤害调整(damageMode)拥有持续时间设置
  • 同时也可以作为抵消指定伤害的光环(下面这个是新版技能写法
    光环特效
鲲鲲:
  Type: Zombie
  Skills:
  - skill:鲲鲲 @self ~onDamaged
  鲲鲲:
  Skills:
  - onDamaged{
      auraName=鲲鲲护盾;d=200;
      onTick=[
        - particles{p=flame;amount=10;hS=0.4}
      ];
      damageMods="FIRE 0.5"} @self ~onInteract
在这个例子里,当鲲鲲受伤的时候激活鲲鲲这个技能,鲲鲲会获得名为"鲲鲲护盾"的光环持续10秒,并在持续期间不断释放火焰粒子,并在自身被右键的时候免去一半火焰类型的伤害.

触发器与 @trigger 目标选择器

不同于 @target(施法者の目标) @Trigger 所选择の是 激活触发器の实体
如,施法者目标是鲲鲲,鲨鲨伤害了施法者,且施法者使用了触发器:onDamaged
那么技能的目标会是鲨鲨,如果目标选择器为:@Target,则为鲲鲲

自定义技能修改项变量(4.12+ Skill Parameters)

自定义技能修改项变量是一个全新の付费版机制,允许你为技能组自定义新の变量(赋值于修改项),用于给该技能组内的其他技能使用

在该机制出现前,技能组一般这么写↓

技能伤害为20:
  Skills:
  - damage{amount=20}
  - 一些粒子
技能伤害为50:
  Skills:
  - damage{amount=50}
  - 一些粒子

生物文档:

鲲鲲:
  Type: Zombie
  Skills:
  - skill:技能伤害位20 目标选择器 ~onAttack

鲨鲨:
  Type: Zombie
  Skills:
  - skill:技能伤害位50 目标选择器 ~onAttack

有了自定义技能参数,技能组可以这么写↓

技能伤害自定义:
  Skills:
  - damage{amount=<skill.技能伤害>}

生物文档↓

鲲鲲:
  Type: Zombie
  Skills:
  - skill:技能伤害自定义{技能伤害=20} ~onAttack

鲨鲨:
  Type: Zombie
  Skills:
  - skill:技能伤害自定义{技能伤害=50} ~onAttack

另一个技能组栗子:

技能:
  Skills:
  - particles{amount=<skill.粒子数量>}
  - damage{amount=<skill.技能伤害OwO>}

生物Yml:

鲲鲲:
  Type: Zombie
  Skills:
  - skill{s=技能;粒子数量=2;技能伤害OwO=5}