Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement

Disambig gray  关于命令,请见“命令/attribute”。

属性(Attributes)生物的增益/减益特性系统。属性也存在修饰符(Modifiers),用于调整属性的强度。

属性[]

主条目:命令/attribute

每个独立的属性都控制着生物的一些能力,例如攻击伤害和速度等。一个属性都有它们对应的名称Name)、基值Base)和值域,有时属性也带会有一些修饰符Modifiers)用于修饰基值。当属性没有被特殊定义时,属性将以默认值Default Value)作为基值计算。

修饰符[]

主条目:命令/attribute

修饰符会修饰一个属性的基值。在使用某项属性时,系统会使用这项属性的基值与所有这项属性的修饰符进行计算,得出最终属性值,但修饰后的最终属性值不能仍然越过该属性最大值/最小值的限制。就像属性一样,修饰符也具有名称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+Op1Op2

应用[]

当属性修饰符应用到一个物品或生物时,它可以将拥有者的某项属性进行修正。[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.113w16a加入了属性。
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.213w36a属性/修饰符可以在没有第三方的情况下使用NBT加入NBT标签give和summon加入到物品或者生物。
1.915w34b加入了攻击速度属性。
15w36d加入了盔甲属性。
15w44b加入了幸运值属性。
1.9.1-pre1加入了盔甲韧性属性。
1.1418w43a加入了击退距离属性。
1.1620w14a更改了部分属性的ID。
物品和实体不再会保留未知的属性。
重命名了属性的名字以满足命名空间ID的要求(即小写、由下划线分隔而不是驼峰大小写)。
重命名generic.maxHealthgeneric.max_health
重命名zombie.spawnReinforcementszombie.spawn_reinforcements
重命名horse.jumpStrengthhorse.jump_strength
重命名generic.followRangegeneric.follow_range
重命名generic.knockbackResistancegeneric.knockback_resistance
重命名generic.movementSpeedgeneric.movement_speed
重命名generic.flyingSpeedgeneric.flying_speed
重命名generic.attackDamagegeneric.attack_damage
重命名generic.attackKnockbackgeneric.attack_knockback
重命名generic.attackSpeedgeneric.attack_speed
重命名generic.armorToughnessgeneric.armor_toughness
20w17a加入了/attribute以更改或读取属性。
1.20.223w31a加入了generic.max_absorption属性。
Java版(即将到来)
Combat Test1.14.3 - Combat Test加入了attackReach属性。
携带版Alpha
0.12.1build 1加入了属性。

参考[]

游戏内容

语言

Advertisement