用AttributeModifiers这样的属性修饰器改的话只能做到加算和乘算。现在想要做到的效果是,原版的剑抹掉攻击力,只留下攻击速度。请问一下这样子的应该怎么实现。(如果用AttributeModifiers修饰攻速的话,就会变成白板物品的一攻击速度+附加的攻速)
 本帖最后由 Chelover_C60 于 2021-8-6 18:17 编辑 
玩家默认攻速是4,剑的攻速是1.6
那么只要给玩家一个攻速为-2.4的剑即可
于是。。。版本呢?
1.9~1.12
复制代码1.13~1.15
复制代码1.16+
复制代码
18:17补充:
物品不允许设置属性基值,只允许使用修饰符。
即便是原版的剑实际上也是通过修饰符实现的,只是显示的是默认情况下修饰后的基值罢了。
可以在1.16后将玩家攻速属性基值设置成2.4,然后可以发现玩家不能举起剑,以及在基值为22.4下能立即举起剑来验证这个说法。
玩家默认攻速是4,剑的攻速是1.6
那么只要给玩家一个攻速为-2.4的剑即可
于是。。。版本呢?
1.9~1.12
- /give @p minecraft:diamond_sword 1 0 {AttributeModifiers:[{AttributeName:"generic.attackSpeed",Name:"generic.attackSpeed",Operation:0,Amount:-2.4d,Slot:"mainhand",UUIDLeast:1L,UUIDMost:1L}]}
- /give @s minecraft:diamond_sword{AttributeModifiers:[{AttributeName:"generic.attackSpeed",Name:"generic.attackSpeed",Operation:0,Amount:-2.4d,Slot:"mainhand",UUIDLeast:1L,UUIDMost:1L}]}
- /give @s minecraft:diamond_sword{AttributeModifiers:[{AttributeName:"generic.attack_speed",Name:"generic.attack_speed",Operation:0,Amount:-2.4d,Slot:"mainhand",UUID:[I;1,1,1,1]}]}
18:17补充:
物品不允许设置属性基值,只允许使用修饰符。
即便是原版的剑实际上也是通过修饰符实现的,只是显示的是默认情况下修饰后的基值罢了。
可以在1.16后将玩家攻速属性基值设置成2.4,然后可以发现玩家不能举起剑,以及在基值为22.4下能立即举起剑来验证这个说法。
Chelover_C60 发表于 2021-8-6 17:51
玩家默认攻速是4,剑的攻速是1.6
那么只要给玩家一个攻速为-2.4的剑即可
于是。。。版本呢?
以及如果你给剑上了属性修饰器的话剑本身给玩家设置的属性是会被抹掉的
感谢两位大佬的回答,忘记说了==版本是1.16。其实我在研究的时候也想过通过给剑添加攻击速度减值来实现和原版相同的效果,只是我觉得这样物品的描述不太好看==想请问一下有没有办法能对已有的物品进行属性修改...这样的就能保持原版的模板而去掉攻击力...或者有没有能让自己添加的属性像原版那样显示的方法
wyw838wyw 发表于 2021-8-6 19:30
感谢两位大佬的回答,忘记说了==版本是1.16。其实我在研究的时候也想过通过给剑添加攻击速度减值来实现和原 ...
啊这就好办了上个HideFlags:63就能禁用物品信息的显示,之后把自己需要显示的内容用Lore糊上去就OK了
- give @p minecraft:iron_sword{AttributeModifiers:[{Slot:"mainhand",AttributeName:"generic.attack_speed",Name:"generic.attack_speed",Amount:2.5,Operation:0,UUID:[I;8,1,1,3]}],HideFlags:63,display:{Lore:['{"text":"test"}']}}
 本帖最后由 晴路卡 于 2021-8-6 20:17 编辑 
论坛审核心急多回复了一份
晴路卡 发表于 2021-8-6 19:55
论坛审核心急多回复了一份
解决拉,感谢大佬