属性(Attributes)是生物的增益/减益特性系统。属性也存在修饰符(Modifiers),用于调整属性的强度。
属性[]
每个独立的属性都控制着生物的一些能力,例如攻击伤害和速度等。一个属性都有它们对应的名称(Name)、基值(Base)和值域,有时属性也带会有一些修饰符(Modifiers)用于修饰基值。当属性没有被特殊定义时,属性将以默认值(Default Value)作为基值计算。
已知属性项[]
属性名称 | 默认值 | 值域 | 概述 | 作用生物 | 基值 |
---|---|---|---|---|---|
generic.max_health | 20 | 1~1024 | 代表生物的最大生命值,即能回复到的最高生命值 | 所有生物 | 生物的最大生命值 |
generic.max_absorption | 0 | 0~2048 | 代表生物的伤害吸收值。 | 所有生物 | 0 |
generic.follow_range | 32 | 0~2048 | 生物的跟随距离,即追踪其他实体的最远范围,超过这个范围的实体不能被生物追踪到 | 恶魂 | 100 |
末影人 | 64 | ||||
烈焰人 悦灵 蜜蜂 村民 |
48 | ||||
羊驼 凋灵 |
40 | ||||
僵尸 尸壳 溺尸 僵尸村民 僵尸猪灵 |
35 | ||||
狐狸 掠夺者 劫掠兽 |
32 | ||||
北极熊 | 20 | ||||
幻术师 | 18 | ||||
唤魔者 卫道士 |
12 | ||||
其他所有生物 | 16 | ||||
generic.knockback_resistance | 0 | 0~1 | 生物的击退抗性,1代表完全抵抗击退 | 铁傀儡 监守者 |
1 |
劫掠兽 | 0.75 | ||||
疣猪兽 僵尸疣猪兽 |
0.6 | ||||
其他所有生物 | 0 | ||||
generic.movement_speed | 0.7 | 0~1024 | 生物的基础移动加速度,此值与最高持续移动速度的关系为(单位为米每游戏刻),其中a代表此项属性值,f代表生物脚下的方块阻力,但由于生物AI的作用,除玩家外的生物几乎不能达到此理论最高持续移动速度 | 海豚 | 1.2 |
美西螈 青蛙 蝌蚪 |
1 | ||||
蝙蝠 鳕鱼 末影龙 恶魂 发光鱿鱼 幻翼 河豚 鲑鱼 潜影贝 鱿鱼 热带鱼 恼鬼 流浪商人 |
0.7 | ||||
凋灵 | 0.6 | ||||
唤魔者 巨人 守卫者 幻术师 |
0.5 | ||||
猪灵 猪灵蛮兵 掠夺者 卫道士 |
0.35 | ||||
蜜蜂 猫 洞穴蜘蛛 远古守卫者 末影人 狐狸 疣猪兽 豹猫 兔子 蜘蛛 监守者 狼 僵尸疣猪兽 劫掠兽 |
0.3 | ||||
鸡 苦力怕 末影螨 猪 北极熊 蠹虫 骷髅 流浪者 海龟 女巫 凋灵骷髅 |
0.25 | ||||
烈焰人 溺尸 尸壳 绵羊 僵尸 僵尸村民 僵尸猪灵 |
0.23 | ||||
马 | 0.1125~0.3375 均匀分布随机数 | ||||
史莱姆 | 0.2+0.1×体型 | ||||
牛 山羊 岩浆怪 哞菇 鹦鹉 骷髅马 僵尸马 |
0.2 | ||||
驴 羊驼 骡 炽足兽 行商羊驼 |
0.175 | ||||
熊猫 | 0.15 | ||||
悦灵 嗅探兽 玩家 |
0.1 | ||||
骆驼 | 0.09 | ||||
熊猫(懒惰的) | 0.07 | ||||
generic.armor | 0 | 0~30 | 盔甲值,用于抵挡伤害 | 杀手兔 | 8 |
凋灵 | 4 | ||||
僵尸 尸壳 溺尸 僵尸村民 僵尸猪灵 |
2 | ||||
其他所有生物 | 0 | ||||
generic.armor_toughness | 0 | 0~20 | 盔甲韧性,用于抵挡伤害 | 所有生物 | 0 |
generic.attack_damage | 2 | 0~2048 | 生物的近战攻击伤害 | 巨人 | 50 |
监守者 | 30 | ||||
劫掠兽 | 12 | ||||
青蛙 | 10 | ||||
远古守卫者 | 8 | ||||
末影人 猪灵蛮兵 |
7 | ||||
幻翼 | 6+体型(体型大于0) 2(体型为0) | ||||
烈焰人 守卫者 疣猪兽 熊猫 北极熊 僵尸疣猪兽 |
6 | ||||
猪灵 掠夺者 卫道士 僵尸猪灵 |
5 | ||||
恼鬼 | 4 | ||||
猫 海豚 溺尸 尸壳 豹猫 僵尸 僵尸村民 |
3 | ||||
悦灵 美西螈 蜜蜂 洞穴蜘蛛 苦力怕 末影螨 唤魔者 狐狸 山羊 幻术师 岩浆怪 骷髅 史莱姆 蜘蛛 流浪者 女巫 凋灵 凋灵骷髅 狼 |
2 | ||||
蠹虫 玩家 |
1 | ||||
generic.attack_knockback | 0 | 0-5 | 生物攻击的击退效果 | 劫掠兽 监守者 |
1.5 |
疣猪兽 僵尸疣猪兽 |
1 | ||||
其他所有生物 | 0 | ||||
generic.flying_speed | 0.4 | 0-1024 | 生物飞行时的移动加速度 | 凋灵 蜜蜂 |
0.6 |
鹦鹉 | 0.4 | ||||
悦灵 | 0.1 | ||||
generic.attack_speed | 4 | 0~1024 | 每秒可以进行全力攻击的次数 | 玩家 | 4 |
generic.luck | 0 | -1024~1024 | 幸运值,影响战利品表 | 玩家 | 0 |
zombie.spawn_reinforcements | 0 | 0~1 | 僵尸类生物召唤增援的概率 | 僵尸 尸壳 溺尸 僵尸村民 僵尸猪灵 |
0~0.1 均匀分布随机数 |
horse.jump_strength | 0.7 | 0~2 | 可骑乘生物的弹跳力 | 马 骷髅马 僵尸马 |
0.4~1 均匀分布随机数 |
骆驼 | 0.42 | ||||
驴 骡 羊驼 行商羊驼 |
0.175 |
修饰符[]
修饰符会修饰一个属性的基值。在使用某项属性时,系统会使用这项属性的基值与所有这项属性的修饰符进行计算,得出最终属性值,但修饰后的最终属性值不能仍然越过该属性最大值/最小值的限制。就像属性一样,修饰符也具有名称(Name),并具有标识它们的UUID。修饰符的名称与它的具体效果无关,而由它的运算模式(Operation)和修饰值(Amount)决定。如果两个修饰符具有相同的UUID,并作用于一个属性上,那么后加入的修饰符会替代先加入的修饰符,而不是相叠加。
运算模式[]
一个修饰符的运算模式(Operation)决定它修饰基值时的行为。共有三种运算模式:
- 增量操作(Op0)
该模式直接在基值上进行加减法操作。
例:用{Amount:2,Operation:0}
和{Amount:4,Operation:0}
同时修饰基值为3的某个属性,那么修饰过程就是3+(2+4)=9
。
- 倍率操作(Op1)
该模式将在增量操作后执行,对增量操作后的值进行倍率上的修改。如果修饰值设置为1,则修饰后的值会被增加一倍;如果设置为0,则不进行修改。
例:用{Amount:3,Operation:1}
和{Amount:6,Operation:1}
修饰某属性,且经过增量操作后的属性值为9,那么这个修饰过程就是9×(1+3+6)=90
。
- 最终倍乘操作(Op2)
该模式将会在其他所有修饰操作完成后,将修饰后的值乘以指定数字,得到最终属性值。由于这是最终的操作,因此多个最终倍乘之间相互独立,分别进行各自的乘法操作,而不是修饰值相加后进行乘法操作。
例:用{Amount:2,Operation:2}
和{Amount:4,Operation:2}
修饰某属性,经过其他所有操作后的属性值为90,那么这个修饰过程就是90×(1+2)×(1+4)=1350
。
下面从数学角度解释修饰符的作用,为了方便起见,简记Base为属性的基值,Op0为所有增量操作修饰值的总和,Op1为所有倍率操作修饰值的总和,Op2为所有最终倍乘修饰值+1后的乘积[1],则最终属性值为(Base+Op0)×(1+Op1)×Op2
。
已知修饰符[]
修饰符名称 | 作用属性 | 应用对象与UUID | 操作与默认值 | 修饰作用 |
---|---|---|---|---|
Unknown synced attribute modifier (未知同步属性修饰符) |
未知 | 未知 | 未知 | 仅在网络同步中使用 |
effect.minecraft.absorption 等级-1 | generic.max_absorption | 所有生物 | Op0,等级×4 | 伤害吸收状态效果 |
effect.minecraft.speed 等级-1 | generic.movement_speed | 所有生物 | Op2,等级×0.2 | 迅捷状态效果 |
effect.minecraft.slowness 等级-1 | generic.movement_speed | 所有生物 | Op2,等级×-0.15 | 迟缓状态效果 |
effect.minecraft.haste 等级-1 | generic.attack_speed | 玩家 | Op2,等级×0.1 | 急迫状态效果 |
effect.minecraft.mining_fatigue 等级-1 | generic.attack_speed | 玩家 | Op2,等级×-0.1 | 挖掘疲劳状态效果 |
effect.minecraft.strength 等级-1 | generic.attack_damage | 可近战攻击的所有生物 | Op0,等级×3 | 力量状态效果 |
effect.minecraft.weakness 等级-1 | generic.attack_damage | 可近战攻击的所有生物 | Op0,等级×-4 | 虚弱状态效果 |
effect.minecraft.health_boost 等级-1 | generic.max_health | 所有生物 | Op0,等级×4 | 生命提升状态效果 |
effect.minecraft.luck 等级-1 | generic.luck | 玩家 | Op0,等级×1 | 幸运状态效果 |
effect.minecraft.unluck 等级-1 | generic.luck | 玩家 | Op0,等级×-1 | 霉运状态效果 |
Soul speed boost (灵魂疾行加速) |
generic.movement_speed | 所有生物 | Op0,0.03×(1+等级×0.35) | 灵魂疾行附魔,仅在靴子槽位时起作用 |
Powder snow slow (细雪减速) |
generic.movement_speed | 所有生物 | Op0,被冰冻的百分比×-0.05 | 在细雪中的减速 |
Sprinting speed boost (疾跑加速) |
generic.movement_speed | 所有生物 | Op2,0.3 | 疾跑时添加此修饰符 |
Random spawn bonus (随机生成修饰) |
generic.follow_range | 所有生物 | Op1,0-0.11485三角形分布随机数 | 生物生成时随机增加跟随距离 |
generic.knockback_resistance | 僵尸、溺尸、尸壳、僵尸村民和僵尸猪灵 | Op0,0-0.05均匀分布随机数 | 僵尸类生物生成额外增加击退抗性 | |
Horse armor bonus (马匹盔甲修饰) |
generic.armor | 所有马 | Op0,盔甲保护值 | 马铠提供的盔甲值 |
Attacking speed boost (攻击时速度加成) |
generic.movement_speed | 末影人 | Op0,0.15 | 末影人进行攻击时的加速 |
僵尸猪灵 | Op0,0.05 | 僵尸猪灵进行攻击时的加速 | ||
Covered armor bonus (覆盖盔甲加成) |
generic.armor | 潜影贝 | Op0,20 | 潜影贝闭壳时的盔甲值加成 |
Strider suffocating modifier (炽足兽减速修饰) |
generic.movement_speed | 炽足兽 | Op1,-0.34 | 当炽足兽离开熔岩等方块时施加的减速效果 |
Drinking speed penalty (饮用药水减速) |
generic.movement_speed | 女巫 | Op0,-0.25 | 当女巫饮用药水时施加的减速效果 |
Random zombie-spawn bonus (随机僵尸生成修饰) |
generic.follow_range | 部分僵尸、溺尸、尸壳、僵尸村民和僵尸猪灵 | Op2,与副区域难度有关,大于1 | 生物生成时随机增加跟随距离 |
Leader zombie bonus (领头僵尸加成) |
zombie.spawn_reinforcements | 部分僵尸、溺尸、尸壳、僵尸村民和僵尸猪灵 | Op0,0.25-0.75均匀分布随机数 | 领头僵尸召唤增援能力加成 |
generic.max_health | 部分僵尸、溺尸、尸壳、僵尸村民和僵尸猪灵 | Op2,1-4均匀分布随机数 | 领头僵尸的血量加成 | |
Zombie reinforcement caller charge (召唤者增援能力消耗) |
zombie.spawn_reinforcements | 僵尸、溺尸、尸壳、僵尸村民和僵尸猪灵 | Op0,-0.05 | 僵尸召唤增援后的能力消耗 |
Zombie reinforcement callee charge (被召唤者增援能力消耗) |
zombie.spawn_reinforcements | 僵尸、溺尸、尸壳、僵尸村民和僵尸猪灵 | Op0,-0.05 | 被召唤的增援僵尸的能力消耗 |
Baby speed boost (幼体速度加成) |
generic.movement_speed | 僵尸、溺尸、尸壳、僵尸村民和僵尸猪灵的幼年个体 | Op1,0.5 | 幼体生物的速度加成 |
幼年猪灵 | Op1,0.2 | |||
Armor modifier (盔甲修饰符) |
generic.armor | 头盔、胸甲、护腿和靴子 | Op0,由具体盔甲决定 | 盔甲的盔甲值 |
Armor toughness (盔甲韧性修饰符) |
generic.armor_toughness | 头盔、胸甲、护腿和靴子 | Op0,由具体盔甲决定 | 盔甲的盔甲韧性 |
Armor knockback resistance (盔甲击退抗性修饰符) |
generic.knockback_resistance | 头盔、胸甲、护腿和靴子(仅下界合金材料) | Op0,由具体盔甲决定 | 盔甲的击退抗性 |
Tool modifier (工具修饰符) |
generic.attack_damage | 稿、斧、锹、锄和三叉戟 | Op0,由具体工具决定 | 工具的攻击伤害 |
generic.attack_speed | 稿、斧、锹、锄和三叉戟 | Op0,由具体工具决定 | 工具的攻击速度 | |
Weapon modifier (武器修饰符) |
generic.attack_damage | 剑 | Op0,由具体剑决定 | 剑的攻击伤害 |
generic.attack_speed | 剑 | Op0,由具体剑决定 | 剑的攻击速度 |
应用[]
当属性修饰符应用到一个物品或生物时,它可以将拥有者的某项属性进行修正。[2][3]
下面的命令将给予命令执行者一把增加20( × 10)点额外伤害的钻石剑:
/give @s diamond_sword{AttributeModifiers:[{AttributeName:"generic.attack_damage",Name:"generic.attack_damage",Amount:20,Operation:0,UUID:[I;1498693494,1027158888,1898994005,860320107]}]}
下面命令将召唤一个僵尸,当玩家接近它100格时就会被它发现,而不是通常的35格:
/summon zombie ~ ~ ~ {Attributes:[{Name:"generic.follow_range",Base:100.0}]}
使用命令时也可以指定物品在指定槽位才可以发挥修饰作用。下面的命令会给予执行者一把增加20( × 10)点额外伤害的钻石斧,但它只有放于主手时才生效:
/give @s diamond_axe{AttributeModifiers:[{Slot:"mainhand",AttributeName:"generic.attack_damage",Name:"generic.attack_damage",Amount:20,Operation:0,UUID:[I;1498693494,1027158888,1898994005,860320107]}]}
历史[]
Java版 | |||||
---|---|---|---|---|---|
1.6.1 | 13w16a | 加入了属性。 | |||
13w17a | 为僵尸加入了Spawn Reinforcements Chance属性。 | ||||
加入了Zombie reinforcement charge(生成援兵charge)、Random zombie-spawn bonus(跟踪范围)和Leader zombie bonus(双倍援兵charge和最大生命值)。 | |||||
13w18a | 将Zombie reinforcement charge改为了Zombie reinforcement caller charge与Zombie reinforcement caller charge。 | ||||
13w21a | 属性现在可以由NBT决定了。 | ||||
属性现在具有ID和相应的转换值了。 | |||||
modifiers现在会显示在物品上了。 | |||||
加入了Attack Damage属性,且Speed属性变得通用了。 | |||||
加入了potion.moveSpeed、potion.moveSlowdown、potion.damageBoost和potion.weakness修饰符。 | |||||
加入了Sprinting speed boost、Fleeing speed bonus、Attacking speed boost(适用于僵尸猪灵和末影人)、Drinking speed penalty和Baby speed boost修饰符。 | |||||
加入Tool modifier和Weapon modifier属性。 | |||||
13w23b | 加入potion.healthBoost修饰符。 | ||||
1.7.2 | 13w36a | 属性/修饰符可以在没有第三方的情况下使用NBT加入NBT标签give和summon加入到物品或者生物。 | |||
1.9 | 15w34b | 加入了攻击速度属性。 | |||
15w36d | 加入了盔甲属性。 | ||||
15w44b | 加入了幸运值属性。 | ||||
1.9.1-pre1 | 加入了盔甲韧性属性。 | ||||
1.14 | 18w43a | 加入了击退距离属性。 | |||
1.16 | 20w14a | 更改了部分属性的ID。 | |||
物品和实体不再会保留未知的属性。 | |||||
重命名了属性的名字以满足命名空间ID的要求(即小写、由下划线分隔而不是驼峰大小写)。 | |||||
重命名generic.maxHealth 到generic.max_health 。 | |||||
重命名zombie.spawnReinforcements 到zombie.spawn_reinforcements 。 | |||||
重命名horse.jumpStrength 到horse.jump_strength 。 | |||||
重命名generic.followRange 到generic.follow_range 。 | |||||
重命名generic.knockbackResistance 到generic.knockback_resistance 。 | |||||
重命名generic.movementSpeed 到generic.movement_speed 。 | |||||
重命名generic.flyingSpeed 到generic.flying_speed 。 | |||||
重命名generic.attackDamage 到generic.attack_damage 。 | |||||
重命名generic.attackKnockback 到generic.attack_knockback 。 | |||||
重命名generic.attackSpeed 到generic.attack_speed 。 | |||||
重命名generic.armorToughness 到generic.armor_toughness 。 | |||||
20w17a | 加入了/attribute 以更改或读取属性。 | ||||
1.20.2 | 23w31a | 加入了generic.max_absorption 属性。 | |||
Java版(即将到来) | |||||
Combat Test | 1.14.3 - Combat Test | 加入了attackReach属性。 | |||
携带版Alpha | |||||
0.12.1 | build 1 | 加入了属性。 |
参考[]
语言