attribute 指令
/attribute <目标实体> <属性名称> get [<倍率>]/attribute <目标实体> <属性名称> base get [<倍率>]/attribute <目标实体> <属性名称> base reset/attribute <目标实体> <属性名称> base set <数值>/attribute <目标实体> <属性名称> modifier add <自定义名称> <数值> <add_value|add_multiplied_total|add_multiplied_base>/attribute <目标实体> <属性名称> modifier remove <自定义名称>/attribute <目标实体> <属性名称> modifier value get <自定义名称> [<倍率>]查询或增添、修改、删除实体的属性。
| 参数 | 说明 |
|---|---|
<目标实体> | 玩家名称、目标选择器(@a、@e、@p、@r、@s)或者UUID |
<属性名称> | 实体的属性,比如生命值、护甲值等 |
get | 获取属性的总值(最终值) |
base get | 获取属性的基值 |
base reset | 重置属性的基值为默认值 |
base set | 更改属性的基值 |
modifier | 进行参与属性最终值运算的自定义参数修饰符操作 |
modifier add | 添加参与该属性最终值运算的自定义参数修饰符 |
modifier remove | 移除参与该属性最终值运算的自定义参数修饰符 |
modifier value get | 获取参与该属性最终值运算的自定义参数修饰符的值 |
add_value | 指定该自定义参数修饰符的值将用于增量操作(详见下文关于属性最终值的运算) |
add_multiplied_base | 指定该自定义参数修饰符的值将用于倍率操作(详见下文关于属性最终值的运算) |
add_multiplied_total | 指定该自定义参数修饰符的值将用于最终倍乘操作(详见下文关于属性最终值的运算) |
属性最终值的运算
Section titled “属性最终值的运算”在计算属性最终值的运算中,自定义参数修饰符将按照以下计算公式进行计算:
( 属性的基值 + 所有选择 add_value 的自定义参数修饰符的值的总和 ) × ( 1 + 所有选择 add_multiplied_base 的自定义参数修饰符的值的总和) × (1 + 选择 add_multiplied_total 的自定义参数修饰符1的值) × (1 + 选择 add_multiplied_total 的自定义参数修饰符2的值) × ... × (1 + 选择 add_multiplied_total 的自定义参数修饰符n的值)
示例:假如玩家Steve的最大生命值max_health基值为默认值20,通过以下指令为max_health添加了以下6个自定义参数修饰符:
/attribute Steve max_health modifier add a 2 add_value/attribute Steve max_health modifier add b 5 add_value/attribute Steve max_health modifier add c 2 add_multiplied_base/attribute Steve max_health modifier add d 3 add_multiplied_base/attribute Steve max_health modifier add e 1 add_multiplied_total/attribute Steve max_health modifier add f 2 add_multiplied_total则玩家Steve最终的最大生命值为(20 + a + b) × (1 + c + d) × (1 + e) × (1 + f) = 972
为了方便演示,上述自定义参数均使用整数,实际可以设置双精度浮点数(小数)。
属性名称一览表
Section titled “属性名称一览表”| 属性名称 | 属性ID | 说明 |
|---|---|---|
护甲值 | minecraft:armor | 护甲值与盔甲韧性共同作用,减少生物受到的伤害 |
盔甲韧性 | minecraft:armor_toughness | 护甲值与盔甲韧性共同作用,减少生物受到的伤害 |
攻击伤害 | minecraft:attack_damage | 生物的近战攻击伤害 |
击退 | minecraft:attack_knockback | 生物的攻击造成的击退强度的增量 |
攻击速度 | minecraft:attack_speed | 玩家的攻击速度 |
方块破坏速度 | minecraft:block_break_speed | 玩家破坏方块的速度乘数 |
方块交互距离 | minecraft:block_interaction_range | 玩家可以与方块交互的距离 |
着火时间 | minecraft:burning_time | 设置生物剩余着火时间效果的乘数 |
镜头距离 | minecraft:camera_distance | 设置第三人称视角下摄像机与玩家或被旁观实体的距离 |
实体交互距离 | minecraft:entity_interaction_range | 玩家可以与实体交互的距离 |
爆炸击退抗性 | minecraft:explosion_knockback_resistance | 生物对爆炸击退的抵抗强度 |
摔落伤害倍数 | minecraft:fall_damage_multiplier | 生物受到的摔落伤害的乘数 |
飞行速度 | minecraft:flying_speed | 生物的飞行移动的速度 |
生物跟随距离 | minecraft:follow_range | 生物AI可追踪和寻路的最大范围 |
重力 | minecraft:gravity | 生物在垂直方向上持续受到的向下加速的加速度 |
跳跃力度 | minecraft:jump_strength | 生物进行跳跃时获得的垂直速度 |
击退抗性 | minecraft:knockback_resistance | 生物对击退的抵抗强度 |
幸运值 | minecraft:luck | 高幸运值使玩家获得更好的战利品 |
最大伤害吸收值 | minecraft:max_absorption | 生物的最大伤害吸收值 |
最大生命值 | minecraft:max_health | 生物的最大生命值 |
挖掘效率 | minecraft:mining_efficiency | 玩家的挖掘速度增量 |
移动效率 | minecraft:movement_efficiency | 生物对脚下方块影响移动效果的抵抗 |
速度 | minecraft:movement_speed | 生物的地面移动速度 |
额外氧气 | minecraft:oxygen_bonus | 生物抵抗氧气下降的能力 |
安全摔落高度 | minecraft:safe_fall_distance | 生物不受摔落伤害的高度 |
尺寸 | minecraft:scale | 生物的尺寸乘数 |
僵尸增援 | minecraft:spawn_reinforcements | 僵尸生成僵尸增援的能力 |
潜行速度 | minecraft:sneaking_speed | 玩家的潜行时的速度乘数 |
最大行走高度 | minecraft:step_height | 生物不需要跳跃就可以走上的最大高度 |
水下挖掘速度 | minecraft:submerged_mining_speed | 玩家浸没在水中时的挖掘速度乘数 |
横扫伤害比率 | minecraft:sweeping_damage_ratio | 玩家的横扫伤害与近战伤害的比例 |
生物引诱范围 | minecraft:tempt_range | 生物能被玩家引诱的最大距离 |
水中移动效率 | minecraft:water_movement_efficiency | 生物对水影响移动效果的抵抗 |
路径点传输距离 | minecraft:waypoint_transmit_range | 设置玩家路径点传输距离,用于定位栏 |
路径点接收距离 | minecraft:waypoint_receive_range | 设置玩家路径点接收距离,用于定位栏 |
# 将自己的最大生命值基值设置为30/attribute @s max_health base set 30
# 将自己的最大生命值基值重置成默认值/attribute @s max_health base reset
# 给已生成的所有猪的重力值添加一个名为反重力的自定义参数修饰符/attribute @e[type=minecraft:pig] minecraft:gravity modifier add antigravity -0.16 add_value
# 将已生成的所有猪的重力值中名为反重力的自定义参数修饰符移除/attribute @e[type=minecraft:pig] minecraft:gravity modifier remove antigravity- 需要权限等级 2