= 创作分享 =
你问我答
修改武器nbt数据后与Minecraft Wiki所说的情况不符 ...
钢管乐子人

修改武器nbt数据后与Minecraft Wiki所说的情况不符

钢管乐子人 于 2024-8-5 11:03 ( 6月前 ) [复制链接] [只看楼主] [打印]
615 4
70RF
我在学习修改物品nbt时,发现了以下的问题:这里以石剑为例,我想修改它的默认伤害Minecraft Wiki上说要通过属性修饰符,这种方法是在默认值上进行修改。比如我使用
/give @s minecraft:stone_sword{AttributeModifiers:[{AttributeName:"generic.attack_damage",Name:"generic.attack_damage",Amount:5,Operation:0,UUID:[I;1,1,1,1],Slot:"mainhand"}]}
指令,理应获得一把在主手时攻击伤害为10的石剑(石剑默认攻击伤害+4,玩家空手伤害为1,这里的Amount值为5,总和为10),但实际得到的石剑伤害却为5,并没有在基础值上修改。而且通过这种方式得到的石剑攻击速度会异常得快。请问以下这是什么原因?

最佳答案

查看完整内容

因为石剑本身自带 base_attack_damage add_value (Op0) 4(伤害+4) base_attack_speed add_value(Op0)-2.4(1.6攻击速度), 而通过你这串指令获得的石剑就变成只有 base_attack_damage add_value (Op0) 5(伤害+5) 的石剑了,相当于覆盖了原本默认值,所以显示攻击伤害是+5,实际攻击伤害为5+玩家伤害1, 由于攻击速度属性没有设置,所以就会和空手时攻击速度一样快(4攻击速度) ...
发表于 2024-8-5 11:03:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 4 条回复!
HDG
因为石剑本身自带
base_attack_damage add_value (Op0) 4(伤害+4)
base_attack_speed        add_value(Op0)-2.4(1.6攻击速度),
而通过你这串指令获得的石剑就变成只有
base_attack_damage add_value (Op0) 5(伤害+5)
的石剑了,相当于覆盖了原本默认值,所以显示攻击伤害是+5,实际攻击伤害为5+玩家伤害1,
由于攻击速度属性没有设置,所以就会和空手时攻击速度一样快(4攻击速度)
发表于 2024-8-5 11:03:57 | 只看该作者

回复 | 举报

钢管乐子人
HDGzzz 发表于 2024-8-5 11:03
因为石剑本身自带
base_attack_damage add_value (Op0) 4(伤害+4)
base_attack_speed        add_value(Op0)-2.4 ...

但是我注意到武器为修改时各项属性为绿色字,修改后就变为蓝色字了,有没有什么方法能让修改nbt后字体仍为绿色呢
发表于 2024-8-6 12:02:55 | 只看该作者

回复 | 举报

HDG
QQ酱710793 发表于 2024-8-6 12:02
但是我注意到武器为修改时各项属性为绿色字,修改后就变为蓝色字了,有没有什么方法能让修改nbt后字体仍 ...

可以尝试先用HideFlags:2隐藏属性修饰符,再用display:Lore模仿一个出来
比如:
  1. /give @p minecraft:stone_sword{AttributeModifiers:[{AttributeName:"generic.attack_damage",Name:"generic.attack_damage",Amount:5,Operation:0,UUID:[I;1,1,1,1],Slot:"mainhand"},{AttributeName:"generic.attack_speed",Name:"generic.attack_speed",Amount:-2.4,Operation:0,UUID:[I;1,1,1,2],Slot:"mainhand"}],HideFlags:2,display:{Lore:["{\"text\":\"战斗用品\",\"color\":\"blue\",\"italic\":false}","{\"text\":\"\"}","{\"text\":\"在主手时:\",\"color\":\"gray\",\"italic\":false}","{\"text\":\" 6 攻击伤害\",\"color\":\"dark_green\",\"italic\":false}","{\"text\":\" 1.6 攻击速度\",\"color\":\"dark_green\",\"italic\":false}"]}}
复制代码


如果考虑本地化可以设置文本组件type:translatable用本地化键名,这样就与当前加载的语言自动对上了
发表于 2024-8-7 02:18:16 | 只看该作者

回复 | 举报

HDG
本帖最后由 HDGzzz 于 2024-8-7 02:23 编辑
QQ酱710793 发表于 2024-8-6 12:02
但是我注意到武器为修改时各项属性为绿色字,修改后就变为蓝色字了,有没有什么方法能让修改nbt后字体仍 ...

对了,我测试使用的版本是1.20.1,这样伪造的属性显示跟原版几乎没有任何差别(但如果f3+h看nbt标签数还是会不一样)
发表于 2024-8-7 02:18:29 | 只看该作者

回复 | 举报

百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表