技能(Skills)
免费版变量机制能作用于消息类技能修改项、击杀信息等,例如Speak,付费版变量机制在此基础上能作用于大多数技能修改项
技能组
为了更好的阅读体验,中文百科新增了一个官网未拥有的名词:技能组
概念
- 技能组,就是由多条技能组合而成の一个技能,但也可以是单条技能,存放于Skills文件夹の任意文档内
- 技能不一定包含于技能组,实体配置内所写的多条技能不属于技能组,而应称之为技能配置
- 技能组内最重要の是技能组名:与Skills,此俩项一旦错误,所处の文档内所有技能都会失效,且不产生报错
- 百科内一般不会用技能组去代表单条技能,一般意思是即可以仅含单条技能の技能组也可以由多条技能组合而成の技能组
- 单条技能一般称之为技能行
鲲鲲:
Type: ZOMBIE
Display: '鲲鲲'
Health: 50
Skills:
- 无目标类技能 触发器
- ignite{ticks=100} @target ~onAttack <50% 0.5
- skill:技能组名 @T ~onDamaged >0% 1
- 技能名{修改项=值;修改项=值} 目标选择器 触发器 血量要求 几率
或:
Skills:
- 技能名{
技能修改项=数值;
技能修改项=数值;
技能修改项=数值;
}
技能组名:
Skills:
- 技能
- 技能 目标选择器
再次提醒一下,必须确保组名与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"使用
激活名为鲲鲲的刷怪点Skills:
- activatespawner{spawner=鲲鲲}
激活所有于鲲鲲组下的刷怪点 Skills:
- activatespawner{spawner=g:鲲鲲}
生成名字带有鲲鲲的刷怪点(比如鲲鲲1,鲲鲲2) Skills:
- activatespawner{spawner=鲲鲲*}
|
pushbutton—按钮:按下坐标位置的按钮
|
标签(缩写)
|
描述
|
默认设置
|
x
|
x轴坐标
|
0
|
y
|
y轴坐标
|
0
|
z
|
z轴坐标
|
0
|
鲲鲲:
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刻就会变得越久
- 如果上面写了多条延迟,那么下面的技能会叠加多条延迟!
- 若延迟应用于单条技能行,则多条技能行之间的延迟都是独立计算,不同于delay独立成行时的叠加
这是一个例子
测试:
Skills:
- delay 5 #0.25秒延迟
- 技能{delay=5} #0.25秒延迟
- delay 10 #0.5秒
- 技能2{delay=10} #0.5秒
在0.25秒后释放技能,0.75秒(0.25秒+0.5秒)后释放技能2
|
repeat(不可缩写)-重复激活(次数)
|
- 此标签需写在技能(无限制)の中括号({})里(例如damage{})
- 实际触发次数为Repeat值+1
- 与delay一样 多次激活带有repeat标签的技能 各次激活所附带的repeat将独立计算并激活
- 技能持续时间=重复次数x重复间隔,下文说明为何要在这点明
- 填入小数将导致无效
- 必须配合标签repeatInterval(重复间隔)使用!
这是一个例子
测试:
Skills:
- skill{s=技能;repeat=50;repeatInterval=1} @self
在50tick(1tick/次x50)内连续释放51次技能
|
repeatInterval(不可缩写)-重复间隔
|
- 此标签需写在技能(无限制)的中括号({})里(例如damage{})
- 必须配合标签repeat(重复次数)使用!
- 技能持续时间=重复次数x重复间隔,下文说明为何要在这点明
- 若技能标签所在的技能(skill{s=鲲鲲;repeat=次数;repeatInterval=次数)
-里的Super设置了冷却,则重复间隔会加上冷却时间!
这是一个例子
测试:
Cooldown: 20
Skills:
- skill{s=技能;repeat=50;repeatInterval=2} @self
在5秒(100tick=2tick/次x50次)内连续释放51次技能
由于你设置了冷却为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
特殊符号
<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>
点击标题进入条件列表
恭喜你发现了彩蛋!
鲲鲲:感谢CHuNan帮忙搬运QWQ
CHuNan:其实我就是个打酱油的
点击此处隐藏彩蛋
鲲鲲:
Conditions:
- 条件 条件活动(默认为true)
- 条件
Skills:
- 技能
- 技能 目标选择器
目标选择器与过滤器(Targeters)概览
有关目标选择/过滤器の注意事项与更多内容请点击-->目标选择/过滤器页面
触发器
无法写在技能文档内
可用的所有触发器
|
触发器 |
描述 |
血量 |
几率
|
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>}
实体文档:
鲲鲲:
Type: Zombie
Skills:
- skill{s=技能;粒子数量=2;技能伤害OwO=5}