- 欢迎来到Minecraft插件百科!
- 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
- 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289
MythicMobs/Skills
技能(Skills)]]
- 一列可用的技能详细列表
- 将写好的技能放在MythicMobs/Skills内
- 技能为MM插件的一大特点。所有MM生物都可以根据不同情况发动技能
- 一个完整的技能由以下几个构成
技能名
特效类技能
技能目标对象Targeters
简易的技能触发要求Triggers
更高级的触发Conditions
技能威力(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
技能顺序格式
鲲鲲: Type: ZOMBIE Display: '鲲鲲' Health: 50 Skills: - 技能 1 - ...
大概就是这样,那一个实际的例子是怎样的呢?
鲲鲲: Type: ZOMBIE Display: '鲲鲲' Health: 50 Skills: - ignite{ticks=100} @target ~onAttack <50% 0.5
就是这样,现在我们来详细看下一个技能的格式
Skills: - 技能名{技能修改项=数值或是否} 目标选择器 ~on激活条件 血量要求(栗:>2%) 几率
技能(Mechanics)
- 技能名字,技能最重要最优先的东西,不支持部分特殊符号
- 大部分技能都有可修改项。就跟在技能名字的后面,填写于{ }的里面。而每个修改项用符号;分隔
Skills: - 技能名{技能修改项=数值或是否;技能修改项=数值或是否;技能修改项=数值或是否}
- 你也可以像下面这样换行使其更易于编辑,不过请保证格式正确
Skills: - 技能名{} 技能修改项=数值; 技能修改项=数值; 技能修改项=数值; }
- 大部分的技能格式都是这样的啦,再举个例子,比如想生物把攻击对象点燃5秒(5秒=100刻,1秒=20刻)
Skills: - ignite{ticks=100}
技能目标(Targeters)
Skills: - 技能名{技能修改项=数值或是否} 目标选择器{选择器修改项=数值}
- 在看回我们之前的例子,点火
Skills - ignite{ticks=100} @target
- 又或者你想技能:点燃激活位置半径范围5格下的所有玩家
Skills: - ignite{ticks=100} @PlayersInRadius{r=5}
- 只要记住,目标就是技能的目标
触发条件(Triggers)
Skills: - 技能名{技能修改项=数值或是否} 目标选择器{选择器修改项=数值} ~on激活时
- 在看回我们先前的例子...我们想生物每次进行攻击时使用一次5秒的点燃技能
Skills: - ignite{ticks=100} @target ~onAttack
血量要求(Health Modifiers)
- 血量要求,用于确定当生物的血量满足什么情况下技能才可以发动
使用这三个判定符=,<,>
以下几个例子
=90% - 血量到达90%时触发 <50% - 血量小于50%时触发 =30%-50% - 当血量为30%到50%之间时触发 <2000 - 血量小于2000点时触发 >500 - 血量大于500点时触发 >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
特殊符号
<spoiler>
变量 | 描述 |
---|---|
<&co> | 返还冒号 : |
<&sq> | 返还撇号 ' |
<&da> | 返还减号 - |
<&bs> | 返还反斜杠 \ |
<&fs> | 返还斜杠 / |
<&sp> | 返还空格 |
<&cm> | 返还逗号 , |
<&sc> | 返还分号 ; |
<&eq> | 返还等号 = |
<&ss> | 返还分节符 § |
<&dq> | 返还双引号 " |
<&rb> | 返还右方括号 ] |
<&lb> | 返还左方括号 [ |
<&rc> | 返还右大括号 } |
<&lc> | 返还左大括号 { |
<&nl> | 另起新的一行 |
<&heart> | 返还一个爱心符号 |
<&skull> | 返还一个骷髅骨头符号 |
</spoiler>
颜色代码
可使用于生物或技能内,也能用于tellraw命令内
- 在部分预览版本被§所替代!
<spoiler>
变量 | 描述 |
---|---|
&0 | 黑色 |
&1 | 深蓝色 |
&2 | 深绿色 |
&3 | 深水蓝色 |
&4 | 深红色 |
&5 | 深紫色 |
&6 | 金色 |
&7 | 灰色 |
&8 | 深灰色 |
&9 | 蓝色 |
&a | 绿色 |
&b | 水蓝色 |
&c | 红色 |
&d | 浅紫 |
&e | 黄色 |
&f | 白色 |
&K | 乱码 |
&L | 加粗 |
&M | 删除线 |
&N | 下划线 |
&O | 斜体 |
&R | 颜色代码重置/清空 |
</spoiler>
条件要求(Conditions)
点击标题进入条件列表
恭喜你发现了彩蛋!
鲲鲲:感谢CHuNan帮忙搬运QWQ
CHuNan:其实我就是个打酱油的
点击此处隐藏彩蛋
目标选择器
- 无目标类技能不需要目标选择器
- 技能组内目标不填写则为生物Yml内该技能组所填写的目标选择器
- 检测条件所检测的目标随目标选择器变化,例如@self为检测自己
- @self时,Conditions/TargetConditions/TriggerConditions所检测的目标相同
- 范围类目标选择器有最大值,超过最大值时技能无效
- @self除外的实体目标选择器,Conditions检测施法者(与上述一样)TargetConditions检测技能的目标
- @trigger时,TargetConditions/TriggerConditions所检测的目标相同
- @self不同于@selflcation,本质上一个实体选择器一个位置选择器,其次selflcation选择的是脚下,而不是实体"中心"
<spoiler>
待测试目标选择器
- 添加于MM4.11.0-BETA的目标选择器..
目标 | 说明 |
---|---|
@CasterSpawnLocation | 施法者出生的位置 |
@ObstructingBlock | 猜测是: 阻碍施法者接近目标的方块 |
@FloorOfTargets | 得写在技能yml里 |
@LocationsOfTargets | 猜测是: 目标的位置,得写在技能yml里 |
单实体目标选择器
class="wikitable" | ||
目标选择器名 | 缩写 | 说明 |
---|---|---|
@Self | @Caster | 施法者本身 |
@Target | @T | 选定施法者的目标为目标 |
@Trigger | 以触发技能の实体为目标 | |
@NearestPlayer{r=#} | 以半径最近の玩家为目标。默认为r=5 | |
@WolfOwner | 以狼の主人为目标 | |
@Owner | 以主人为目标 | |
@Mount | 以目标骑乘着の实体为目标 | |
@Parent | 如果激活者召唤出其他的怪物,那么怪物会以激活者为目标 | |
@Children | 选取自身召唤出の其它怪物作为目标 | |
@Passenger | 骑在目标上方的实体 | |
@PlayerByName{name==""}(MM4.12+) | 选中指定名称の玩家为目标 | |
@Vehicle(MM4.12+) | 以目标骑乘着的实体为目标 |
多实体目标选择器
目标选择器名 | 缩写 | 描述 |
@LivingEntitiesInRadius{r=半径} | 将半径内的生物作为目标 | |
@PlayersInRadius{r=半径} | @PIR{r=半径} | 将半径内的玩家作为目标 |
@MobsInRadius{r=半径;types=A,B,C} | @MIR{r=半径;t=指定生物} | 将半径内的生物作为目标,,若type填写原版生物ID,那么与其类型一致的MM生物并不会被选中,type可以不写但会警告 |
@EntitiesInRadius{r=半径;types=A,B,C} | @EIR{r=半径;t=指定生物} | 将半径内的所有实体作为目标,type必须要写 |
@PlayersInWorld | @World | 将当前世界所有玩家作为目标 |
@PlayersOnServer | @Server | 将服务器内的所有玩家作为目标 |
@PlayersInRing{min=内圈半径;max=外圈半径} | 将环内的所有玩家作为目标 | |
@PlayersNearOrigin{r=半径} | 将生效目标/投射物落点半径内的玩家作为目标 | |
@MobsNearOrigin{r=半径;t=指定生物} | 将生效目标/投射物落点半径内的生物作为目标 | |
@EntitiesNearOrigin{r=半径} | 将生效目标/投射物落点半径范围内的所有实体作为目标 | |
@Siblings | 以目标的同类为目标 |
威胁表目标选择器
这些目标只有在威胁表启用时可用
目标选择器名 | 缩写 | 描述 |
@RandomThreatTarget | @RTT | 将威胁表内的随机一名玩家作为目标 |
@ThreatTable | @TT | 将所有威胁表内的生物作为目标 |
@ThreatTablePlayers | 将威胁表内的所有玩家作为目标 |
@Cone修改项的说明
@Cone本质上是选取一个2D扇形范围内的生物
修改项 | 描述 |
---|---|
angle | 始边与终边的夹角度数,正数为正角(顺时针扩大),负数为负角(逆时针扩大) |
point | 扇形的弧由多少个点组成(不知道咋解释) |
range | 扇形的半径 |
rotation | 对始边进行旋转,正数顺时针旋转,负数逆时针旋转 |
坐标类目标选择器
单坐标目标选择器
目标选择器名 | 缩写 | 描述 |
@SelfLocation{yoffset=0.0} | 生物自己的坐标,y为y轴偏移 | |
@TargetLocation | 生物目标的坐标 | |
@TriggerLocation | 将触发技能的生物的坐标作为目标 | |
@Location{c=x,y,z,,yaw,pitch} | 指定坐标作为目标,Yaw/Ptich(视角水平/俯仰视角度)新增于4.11 | |
@Origin | 将发射物的发射者的坐标作(不一定是生物)为目标 | |
@Spawner{s=刷怪点名} | 将刷怪点的坐标作为目标 | |
@RLNTE{amount=数量;radius=半径;spacing=各点距离;minradius=最小半径} | 选择生物周围随机的坐标点作为目标 | |
@FloorOfTargets{r=半径;ry=y轴半径;noise=不知道;shape=sphere;oa=false;na=true} | 选取目标脚下の方块为目标 | |
@BlocksInRadius{radius=半径;radiusy=#;noise=不知道;shape=形状(sphere(球体)/cube(正方体));onlyair=false;noair=true} | 以目标为中心,选取指定半径内的所有方块为目标 |
多坐标目标选择器
目标选择器名 | 缩写 | 描述 | ||||
@PlayerLocationsInRadius{r=半径} | @PLIR{r=半径} | 将半径内的所有玩家的坐标作为目标 | ||||
@Ring{radius=半径;points=#} | 选择范围圆环内的目标点 | |||||
@Cone{angle=扇形角度;points=点数;range=范围;rotation=起始点角度;yoffset=竖直偏移} | 选择一个扇形作为目标点组 | @EntitiesInCone{angle=点数;range=范围;rotation=起始点角度;} | 选择扇形内的所有生物 |
特殊目标
有一些目标只能用于技能内部
鲲鲲: Type: creeper Display: '鲲鲲' Health: 12 AITargetSelectors: - clear - players [[MythicMobs/Skills|Skills]]: - [[MythicMobs/Skills|skill]]{s=鲲鲲} [[#.E7.9B.AE.E6.A0.87.E9.80.89.E6.8B.A9.E5.99.A8.28AITargetSelectors.29|@target]] 鲲鲲: [[MythicMobs/Skills|Skills]]: - ignite [[#.E7.9B.AE.E6.A0.87.E9.80.89.E6.8B.A9.E5.99.A8.28AITargetSelectors.29|@line{r=1]]}
鲲鲲会点燃目标和生物之间的一切生物
目标选择器名 | 缩写 | 描述 |
@Line{radius=半径;fromorigin=true/false} | @Line{r=半径;fo=true/false} | 将目标和生物之间的连线的所有坐标点作为目标 |
@EntitiesInLine{radius=半径;fromorigin=true/false} | @EIL{r=半径;fo=true/false} | 将目标与生物间连线上的所有生物作为目标 |
原版目标,在1.13+中全部过时
这些目标会像 Minecraft 命令中的目标选择器一样工作。这些目标可能极其复杂冗长,但也可以很简单。这些拓展都包围在[ ]里,包含了可能的半径、数量、游戏模式、计分板分数、队员、生物种类、经验等级、目标等等。 请注意,因为一个BUG,原版的目标选择器搭配 MythicMobs 使用,有可能没有最小半径和半径参数,这将导致没有任何目标被选中。以后的 MythicMobs 版本不再能选择非同一世界的目标。
目标选择器名 | 描述 |
@p | 选择最近的玩家 |
@a | 选择所有玩家 |
@r | 选择随机玩家 |
@e | !选择所有实体 |
参数 | 描述 |
x=X, y=Y, z=Z | 坐标。如果给出了这些属性,那么目标会以此作为基准 |
r=R | 最大半径,必须设置坐标 |
rm=RM | 最小半径 |
m=M | 游戏模式。目标处于的游戏模式 0 = 生存, 1 = 创造, 2 = 冒险, 3 = 旁观 |
c=C | 最大数量的生物,正数尝试选择最近的,负数则是最远的 |
l=L | 最大等级,会尝试选择最高的 |
lm=LM | 最小等级 |
score_<obj>=SCORE | 最大计分板分数 |
score_<obj>_min=SCORE | 最小计分板分数 |
team=TEAM | 是“TEAM”队伍的成员 |
team=!TEAM | 不是“TEAM”队伍的成员 |
name=NAME | 名称必须为“NAME” |
name=!NAME | 名称必须不为“NAME” |
dx=DX, dy=DY, dz=DZ | 体积尺寸,选择长方形区域 |
rx=RX | 最大垂直旋转角 |
rxm=RXM | 最小垂直旋转角 |
ry=RY | 最大水平旋转角 |
rym=RYM | 最小水平旋转角 |
type=TYPE | 目标必须为“TYPE”型生物 |
type=!TYPE | 目标必须不是“TYPE”型生物 |
tag=TAG | 目标必须拥有“TAG”计分板标签 |
tag=!TAG | 目标必须没有“TAG”计分板标签 |
示例
- @p[lm=10]
- 选择最近经验大于10级的玩家
- @a[r=10]
- 选择所有10格内的玩家
- @a[r=10,c=3]
- 选择10格内最近的3个玩家
- @a[r=10,c=2,lm=10]
- 选择10格内的经验大于10级的最近的2个玩家
- @a[r=10,score_ASD=1]
- 选择10格内的计分板 ASD 最大为1的所有玩家
- @a[r=12,score_ASD_min=2]
- 选择10格内的计分板 ASD 最小为2的所有玩家
可能性非常之多! </spoiler>
目标过滤器
目标过滤器允许你过滤掉现有的目标,让目标选择器更加灵活 它仅支持@EIR以及@PIR 可以使用两个选项(可用任何生物目标):
- ignore=X
- target=X
举个例子,过滤掉所有的玩家和动物,可以这样做:
damage{a=20} @EntitiesInRadius{r=10;ignore=players,animals}
让目标只选择玩家,可以这样:
skill{s=鲲鲲} @EntitiesInRadius{r=5;target=players}
或者
skill:鲲鲲 @EntitiesInRadius{r=5;targetplayers=true}
可用的过滤器: <spoiler>
- 忽略创造/观察模式无效,此漏洞修复于4.11
值 | 说明 |
---|---|
self | 自身 |
animals | 非敌人生物 |
creative | 创造/观察模式,默认忽略 |
creatures | 任何生物 |
flyingmobs | 飞行生物 |
monsters | 敌对生物 |
NPCs | 插件:CitizensのNPC |
players | 玩家 |
samefaction | 同派系生物 |
spectators | 旁观者,默认忽略 |
watermobs | 水中生物 |
vanilla | 非 MythicMobs 生物 |
</spoiler>
目标数量限制器
所有实体目标现在都支持目标限制,通过此功能,您可以限制目标的数量,包括选择目标的顺序. 可以使用两个选项(可用任何生物目标):
- limit=数量
- sort=排序类型
举个例子,假设你想在30米内选择2个最近的玩家,您只需将limit的数量设置为2并将soft设置为按NEAREST(最近优先)的顺序排序: @PlayersInRadius{r=30;limit=2;sort=NEAREST} 可填写以下值 <spoiler>
值 | 说明 |
---|---|
NONE | 以实体的存活时间排序 |
RANDOM | 随机 |
NEAREST | 以实体离自身距离排序,近者优先 |
FURTHEST | 以实体离自身距离排序,近者优先 |
</spoiler>
目标生命/威胁数量选择器
可填写以下值 <spoiler>
值 | 说明 |
---|---|
HIGHEST_HEALTH | 最高生命 |
LOWEST_HEALTH | 最高生命 |
HIGHEST_THREAT | 最大威胁 |
LOWEST_THREAT | 最小威胁 |
</spoiler>
@ThreatTablePlayers{sort=HIGHEST_THREAT;limit=5}
选中5个威胁最高的玩家
随机附近目标选择器
@RandomLocationsNearTargets 随机选中自身附近的一个实体
触发器
可用的所有触发器 | |
---|---|
触发器 | 何时触发... |
onCombat | 默认 |
onAttack | 生物攻击后 |
onDamaged | 生物受到伤害后 |
onSpawn | 生物生成后 |
onDeSpawn | 生物非因死亡而消失后(添加于4.6.x) |
onFirstSpawn | 生物第一次从刷怪点出生后 |
onDeath | 生物死亡后 |
onTimer:# | 多少tick后 |
onInteract | 生物被右键后 |
onKillPlayer | 生物击杀玩家后 |
onPlayerDeath | 玩家死亡后 |
onEnterCombat | 生物开始战斗后(需要开启威胁表) |
onDropCombat | 生物停止战斗后(需要开启威胁表) |
onChangeTarget | 生物改变目标后(需要开启威胁表) |
onExplode | 生物爆炸后(经常只用于爬行者) |
onTeleport | 生物传送后(经常只用于末影人) |
onSignal | 生物接收到信号后 |
onShoot | 生物射击后 |
onSignal:信号名[/i] | 生物接收到特定信号后 |
使用触发器
示例 |
---|
[[MythicMobs/Skills|Skills]]: - ignite{ticks=100} [[#.E7.9B.AE.E6.A0.87.E9.80.89.E6.8B.A9.E5.99.A8.28AITargetSelectors.29|@target]] ~onAttack - [[MythicMobs/Skills|skill]]{[[MythicMobs/Skills|s]]=鲲鲲Shield} [[#.E7.9B.AE.E6.A0.87.E9.80.89.E6.8B.A9.E5.99.A8.28AITargetSelectors.29|trigger]] ~onDamaged 0.1 - [[MythicMobs/Skills|skill]]{[[MythicMobs/Skills|s]]=AOE鲲鲲} [[#.E7.9B.AE.E6.A0.87.E9.80.89.E6.8B.A9.E5.99.A8.28AITargetSelectors.29|@self]] ~onTimer:300 在这个栗子里,生物将目标点燃5秒,受伤使用 鲲鲲Shield 每15秒使用 AOE鲲鲲 技能。 [[MythicMobs/Skills|Skills]]: - onDamaged{ auraName=测试;d=200; onTick=[ - particles{p=flame;amount=10;hS=0.4} ]; damageMods="FIRE 0.5"} [[#.E7.9B.AE.E6.A0.87.E9.80.89.E6.8B.A9.E5.99.A8.28AITargetSelectors.29|self]] ~onInteract 生物被右键时自身获得持续10秒名为'测试'的光环,期间受到FIRE类型的伤害减半,并不断释放火焰粒子,这个栗子是新技能写法 |
4.8.0+的触发器技能 |
---|
鲲鲲: Type: Zombie [[MythicMobs/Skills|Skills]]: - [[MythicMobs/Skills|skill]]{[[MythicMobs/s|技能]]=鲲鲲} [[#.E7.9B.AE.E6.A0.87.E9.80.89.E6.8B.A9.E5.99.A8.28AITargetSelectors.29|@self]] ~onDamaged 鲲鲲: [[MythicMobs/Skills|Skills]]: - onDamaged{ auraName=鲲鲲护盾;d=200; onTick=[ - particles{p=flame;amount=10;hS=0.4} ]; damageMods="FIRE 0.5"} [[#.E7.9B.AE.E6.A0.87.E9.80.89.E6.8B.A9.E5.99.A8.28AITargetSelectors.29|@self]] ~onInteract 在这个例子里,当鲲鲲受伤的时候激活鲲鲲这个技能,鲲鲲会获得名为"鲲鲲护盾"的光环持续10秒,并在持续期间不断释放火焰粒子,并在自身被右键的时候免去一半火焰类型的伤害. |
不使用触发器....
若不写触发器,它会默认为onCombat,既生物受伤/攻击/出生/死亡都会触发技能
Skills: - skill:鲲鲲 =10%-90%
生物血量在最大生命值的10-90%之间受伤/攻击会触发 鲲鲲 技能,。
@trigger 目标选择器
不同于@target,@target选择的是施法者的目标,而@trigger会选择令施法者激活触发器的目标,栗子,施法者在追玩家B,玩家A伤害了施法者,且施法者使用了触发器onDamage,那么技能的目标会是玩家A,如果目标选择器写@target,那么目标会是玩家B,触发器onSignal也支持这个目标选择器
详细信息 & 示例
<spoiler>
- ~onSpawn
- ~onDeath
- ~onDeSpawn
- ~onAttack
- ~onDamaged
- ~onExplode
- ~onTeleport
- ~onTimer:<ticks>
- ~onPlayerKill
- ~onEnterCombat
- ~onDropCombat
- ~onTargetChange
- ~onInteract
- ~onSignal 或 ~onSignal:信号
- 在生物收到特定信号后触发技能
</spoiler>