在Minecraft,一套神装究竟有多牛逼?
在知道这一章之前,你估计认为Minecraft最牛逼的神装就是:
剑:锋利、耐久、亡灵杀手、戒指杀手........LV.32767
钻石套装:保护、耐久.......LV.32767
然后来个满满一潜影盒的附魔金苹果,这就是神装。
但实际上,真正的Minecraft神装还可以更牛逼。
附魔到顶了,状态效果也到顶了,该怎么办?
这个时候,我们就要用到Mojang官方提供的Minecraft内置属性修改器:
AttributeModifiers [Mojang??]修改器
首先,让我们进入苹果的AttributeModifiers文件夹:
/give @s apple 1 0 {AttributeModifiers:[]}
现在这个文件夹还是空的,所以让我们创建第一个属性加成:
{AttributeModifiers:[{}]}
在这个文件夹里,有这么几个文件,需要我们修改一下(记得去“*”号):
AttributeName*——要修改的属性id
Name*——要修改的属性名字
Slot*——指定生效的槽位
Operation*——属性数值是怎样运算的
Amount*——属性数值
UUIDMost*——这个属性UUID的高位
UUIDLeast*——这个属性UUID的低位
[注:1.16版本不一样,待会会讲,带*为必填项]
首先,我们可以修改什么属性呢?
还记得playsound那一章的声音格式吧?属性的格式大致就是这样。
那么首先,属性有一个统一的出发点:
generic
出发完了,就开始分类了:
attack——攻击
armor——盔甲
movement——实体运动
难道就这么多了吗?
答案是还有,只不过那些都是零零散散的。
首先,从攻击出发:
generic.attackDamage
(注意,这里的两个单词并没有“.”区分,其他的也一样!)
这是普通攻击属性。
当然不止这个攻击,还有:
generic.attackSpeed——攻击的速度,值越快每秒攻击次数越高,最大1024(妈妈再也不用担心我会因为连点器而被封了)
generic.attackReach——攻击的距离,单位为米,最大6米(嗯,这个上限是不是太低了?)[注意,这个属性正式版还未使用]
攻击属性的就那么多,接下来的话就是一些零零散散的:
generic.armor——盔甲的防御点数
generic.armorToughness——盔甲的韧性
generic.movementSpeed——实体的速度
generic.knockbackResistance——实体的抗击退效果(最大值为100%,即为1)
generic.followRange——生物们的视力(注意这个玩家不可用,单位:米)
generic.maxHealth——实体的最大生命值
generic.reachDistance——玩家的手有多长(单位为米,最大为256,默认为5,所以这说明.......)
generic.flyingSpeed——鹦鹉的飞行速度
(当然还有一些其他的属性:
horse.jumpStrength——马的弹跳力
zombie.spawnReinforcements——僵尸攻击一次在周围生成另一个僵尸的可能性[还有这种属性?])
这些就是AttributeName要填的了。
那么name填什么呢?
作者建议你填AttributeName要填的。
为什么填AttributeName要填的呢?
因为Name的用途我们并不知道,你随便写估计也可以,可能就是方便辨认的吧?
但必须要填这就nm离谱。
Slot的作用很简单:刚才上面不是已经写了吗?
那么Slot可以填什么呢?
答案有6个:
mainhand——拿在右手中才起作用
offhand——拿在左手中才起作用
feet——套在脚上才有用
legs——穿在腿上才有用
chest——当成衬衫穿才有用
head——顶在头上才有用
且这些不只是对盔甲有用,而且还对不能穿在身上的还有用(这就nm离谱)。
(聪明的读者:不是,难道不可以通过replaceitem套在身上吗?)
那么接下来,就该设置一下数额了:
{AttributeModifiers:[{Amount:}]}
数额有上限,也有下限。
下限大家都知道,是0。
但有个例外,哎这个例外刚才忘记列了:
generic.luck——玩家的运气
没错,在MInecraft,玩家也有运气(这不是废话吗?)。
你可以很欧:运气值为1024
也可以很“欧”:运气值为-1024
这个运气值会直接影响你钓鱼会钓到的东西——不止这些
运气值还会影响你的:
打开箱子(以及运输箱子)获得的东西(难道箱子里的战利品是在箱子打开的时候才会刷新的吗?)
杀掉生物会掉落的东西
就这些。
那么上限呢?
攻击最高上限为2048.0(六角消除[doge])
防御最高上限为30.0
韧性最高上限为20.0
速度最高上限为1024.0
视力最高上限为2048.0
生命值最高上限为1024
但是,这里的数值也不代表你最终的数值,最终的数值除了看Amount,还要看Operation。
Operation的作用就是选择计算最终的结果的计算方式,如果你在网上去搜教程的话估计都会得出这里是填0。
那么0到底是什么运算方式呢?
答案如下:
现数值=Amount+原数值
(为什么有点儿数学课味了?)
使用0,给出来的物品就会显示+Amount值的标签。
但既然有加,那么有没有乘呢?
答案肯定是有的,只不过很少用——乘的话是填1。
那么乘的运算方式是什么呢?
现数值=Amount×原数值+原数值
这样子得出来的物品会显示百分比,即增加了多少多少(所以你可以在Amount填小数)
现在看起来Operation就这两个运算方式了。
真的是这样吗?
其实还有2——终极乘法。
为什么还有一个终极乘法呢?
这个就要等到下一章再来讨论了。
最后,UUIDMost和UUIDLeast该填什么呢?
看到UUID估计你就知道了,这就是属性的ID。
所以随便写,保证只要是数字就可以了。
(注意,在1.16版本,UUIDMost和UUIDLeast合并成了UUID,并且属性id有所变化:两个单词之间必须要有一个“_”,比如generic.attack_Damage)
哦对了,Mojang在1.16的20w17a添加了一个新的指令:/attribute,这条指令可以极大的方便修改属性。
OK这一章就到这里了。
太棒了!一个特别棒的苹果手机:
/give @p apple 1 0 {ench:[{lvl:32767,id:sharpness}],AttributeModifiers:[{Operation:0,Amount:2048,UUIDLeast:1,UUIDMost:1,AttributeName:“generic.attackDamage“,Name:“a“,Slot:“mainhand“},{Operation:0,Amount:1024,UUIDLeast:1,UUIDMost:1,AttributeName:“generic.attackSpeed“,Name:“b“,Slot:“mainhand“},{Operation:0,Amount:1024,UUIDLeast:1,UUIDMost:1,AttributeName:“generic.maxHealth“,Name:“c“,Slot:“mainhand“},{Operation:0,Amount:30,UUIDLeast:1,UUIDMost:1,AttributeName:“generic.armor“,Name:“d“,Slot:“mainhand“},{Operation:0,Amount:20,UUIDLeast:1,UUIDMost:1,AttributeName:“generic.armorToughness“,Name:“e“,Slot:“mainhand“},{Operation:0,Amount:1024,UUIDLeast:1,UUIDMost:1,AttributeName:“generic.luck“,Name:“f“,Slot:“mainhand“}],display:{Name:“苹果手机“,Lore:[“乔布斯开发的可以吃的苹果手机!“]}}
(乔布斯表示很淦)