属性
发表时间: 2025-11-14 14:44:49
最后更新: 2025-11-14 14:44:49(4小时前)
本文标签: 生物机制
介绍
-
属性(Attributes)是生物在游戏中的增益或减益特性系统。
-
这些属性的效果可通过修饰符(Modifiers)进行调整,从而影响属性的强度。
-
每一个独立的属性都对应生物的特定能力,例如攻击力和移动速度等。
-
所有属性的数值都是以双精度浮点数形式表示。
-
修饰符可以改变属性的基础值,类似于属性本身,它们也拥有命名空间ID(id)。
-
修饰符的ID或名称并不直接反映其具体效果,而是受限于属性类型(type)、运算方式(operation)以及修饰值(amount)的影响。
-
修饰值的极限可达到双精度浮点数的最大限制。
-
然而,无论总的修饰值如何,经过修饰计算后的属性值始终会被限制在该属性的有效范围内。
属性
- 属性在游戏中具有若干基本特性。
- 值域定义了属性计算值的可接受范围,超出此范围的值会被调节至值域的最低或最高限度。
- 每种属性的类型决定了效果的优劣,并且会影响其修饰符在提示框中的颜色:增强正面属性的修饰符为蓝色,而减弱正面属性的修饰符则为红色。
- 负面属性的增强修饰符同样为红色,降低负面属性的修饰符则呈现为蓝色,而中性属性的修饰符颜色则为灰色。
- 每种属性适用于特定的生物,而在无法适用的生物身上则不会存在。
- 每个属性的初始值为该属性实例的默认基值。
- 在每一种生物身上,所有属性都包含以下数据:基值(Base)是指该属性在应用修饰符之前的数值。
- 修饰符(Modifiers)旨在影响属性,进而改变其计算值。
- 生物的属性最终以计算值的形式来发挥作用。
已知属性项
| 属性名称 | 属性ID | 类型 | 描述 |
|---|---|---|---|
| 护甲值 | armor | 正面 | 护甲值与盔甲韧性共同作用,减少生物受到的伤害 |
| 盔甲韧性 | armor_toughness | 正面 | 护甲值与盔甲韧性共同作用,减少生物受到的伤害 |
| 攻击伤害 | attack_damage | 正面 | 生物的近战攻击伤害 |
| 击退 | attack_knockback | 正面 | 生物的攻击造成的击退强度的增量 |
| 攻击速度 | attack_speed | 正面 | 玩家的攻击速度 |
| 方块破坏速度 | block_break_speed | 正面 | 玩家破坏方块的速度乘数 |
| 方块交互距离 | block_interaction_range | 正面 | 玩家可以与方块交互的距离 |
| 着火时间 | burning_time | 负面 | 设置生物剩余着火时间效果的乘数 |
| 镜头距离 | camera_distance | 中性 | 设置第三人称视角下摄像机与玩家或被旁观实体的距离 |
| 实体交互距离 | entity_interaction_range | 正面 | 玩家可以与实体交互的距离 |
| 爆炸击退抗性 | explosion_knockback_resistance | 正面 | 生物对爆炸击退的抵抗强度 |
| 摔落伤害倍数 | fall_damage_multiplier | 负面 | 生物受到的摔落伤害的乘数 |
| 飞行速度 | flying_speed | 正面 | 生物的飞行移动的速度 |
| 生物跟随距离 | follow_range | 正面 | 生物AI可追踪和寻路的最大范围 |
| 重力 | gravity | 中性 | 生物在垂直方向上持续受到的向下加速的加速度 |
| 跳跃力度 | jump_strength | 正面 | 生物进行跳跃时获得的垂直速度 |
| 击退抗性 | knockback_resistance | 正面 | 生物对击退的抵抗强度 |
| 幸运值 | luck | 正面 | 高幸运值使玩家获得更好的战利品 |
| 最大伤害吸收值 | max_absorption | 正面 | 生物的最大伤害吸收值 |
| 最大生命值 | max_health | 正面 | 生物的最大生命值 |
| 挖掘效率 | mining_efficiency | 正面 | 玩家的挖掘速度增量 |
| 移动效率 | movement_efficiency | 正面 | 生物对脚下方块影响移动效果的抵抗 |
| 速度 | movement_speed | 正面 | 生物的地面移动速度 |
| 额外氧气 | oxygen_bonus | 正面 | 生物抵抗氧气下降的能力 |
| 安全摔落高度 | safe_fall_distance | 正面 | 生物不受摔落伤害的高度 |
| 尺寸 | scale | 中性 | 生物的尺寸乘数 |
| 僵尸增援 | spawn_reinforcements | 正面 | 僵尸生成僵尸增援的能力 |
| 潜行速度 | sneaking_speed | 正面 | 玩家的潜行时的速度乘数 |
| 最大行走高度 | step_height | 正面 | 生物不需要跳跃就可以走上的最大高度 |
| 水下挖掘速度 | submerged_mining_speed | 正面 | 玩家浸没在水中时的挖掘速度乘数 |
| 横扫伤害比率 | sweeping_damage_ratio | 正面 | 玩家的横扫伤害与近战伤害的比例 |
| 生物引诱范围 | tempt_range | 正面 | 生物能被玩家引诱的最大距离 |
| 水中移动效率 | water_movement_efficiency | 正面 | 生物对水影响移动效果的抵抗 |
| 路径点传输距离 | waypoint_transmit_range | 中性 | 设置玩家路径点传输距离,用于定位栏 |
| 路径点接收距离 | waypoint_receive_range | 中性 | 设置玩家路径点接收距离,用于定位栏 |
修饰符
一、 来源
- 除命令外,生物会受物品(包括其上的魔咒)、状态效果、所处位置和实体数据的影响添加或移除属性修饰符。
- 属性修饰符的来源为物品时,此物品必须置于指定生物槽位中。
- 如果物品有耐久度,则剩余耐久度为0时,修饰符也不会生效。
- 如果两个修饰符具有相同的ID且作用于同一个属性,那么后加入的修饰符会替代先加入的修饰符生效,而不会将它们相叠加。
二、 持久化
-
在《我的世界》中,并非所有的修饰符都会在生物的数据存档中长久保留。
-
可持久化的修饰符能够通过命令例如/data进行查询,而那些不可持久化的修饰符则不可以通过除了/attribute之外的其他命令获得。
-
尽管修饰符的持久化状态不同,它们对计算属性值的影响是相同的。
-
当生物的数据被持久化保存到文件时,内存中存在的不可持久化修饰符将不会被记录。
-
所有与魔法咒语相关的属性效果修饰符以及物品的修饰符都被归类为不可持久化修饰符,而所有的状态效果修饰符则被视为可持久化修饰符。
三、 行为
-
在应用某种属性时,系统会基于该属性的基值与所有相关的修饰符进行运算,最终得出计算结果。
-
通常情况下,提示框会展示物品所能够赋予的各种修饰符信息。
-
这些修饰符包含了物品堆叠组件中attribute_modifiers所指定的ID修饰符、魔咒属性效果所带来的修饰符,以及状态效果所给予的修饰符。
-
修饰值在提示框中通常会保留两位小数。
-
如果修饰符的值为零,提示框将不会显示该修饰值。
-
针对attribute_modifiers组件中ID为base_attack_damage或base_attack_speed的修饰符,尽管其数值为零,这些修饰符依然会在提示框中显示为深绿色并忽略类型的影响。
-
与非基础修饰符相比,这类基础修饰符向右偏移一个空白,并且不会出现“+”号,负号则会正常显示。
-
对于base_attack_damage,其显示值是物品的修饰值与attack_damage属性的基值之和。
-
同理,base_attack_speed的显示值则是物品的修饰值与attack_speed属性的基值之和。
-
如果修饰值被解析为Infinity或-Infinity,这些值在提示框中将分别显示为“∞”或“-∞”。
四、 运算模式
- 属性修饰符的运算模式(Operation)决定了它修改基值的方式。
- 游戏按照固定顺序执行以下三种操作:
- 增量操作(add_value,Op0)
-
- 属性基值加上指定增量值。
- 设该操作运算后的值为Result0,则Result0=base+∑Op0i,其中base代表被该操作修饰前的属性基值,Op0i代表第i个参与运算的Op0修饰符的值。
- 例:给定增量操作{amount:2,operation:'add_value'}和{amount:4,operation:'add_value'},它们一同修饰基值为3的某个属性,则修饰过程为3+(2+4)=9。
- 倍率操作(add_multiplied_base,Op1)
-
- 对增量操作完成后的值进行加倍。
- 设该操作运算后的值为Result1,则Result1=Result0×(1+∑Op1i),其中Op1i代表第i个参与运算的Op1修饰符的值。
- 例:在上一例的基础上又给定倍率操作{amount:3,operation:'add_multiplied_base'}和{amount:6,operation:'add_multiplied_base'},则修饰过程为9×(1+3+6)=90。
- 最终倍乘操作(add_multiplied_total,Op2)
-
- 对倍率操作完成后的值进行连续加倍。
- 设该操作运算后的值为Result2,则Result2=Result1×∏(1+Op2i),其中Op2i代表第i个参与运算的Op2修饰符的值。
- 例:在上一例的基础上又给定最终倍乘操作{amount:2,operation:'add_multiplied_total'}和{amount:4,operation:'add_multiplied_total'},则修饰过程为90×(1+2)×(1+4)=1350。
- 总公式:(base+∑Op0i)×(1+∑Op1j)×∏(1+Op2k),其中base代表属性基值,Op0i,Op1j,Op2k分别代表参与运算的第i个Op0修饰符的值、第j个参与运算的Op1修饰符的值、第k个参与运算的Op2修饰符的值。
应用
- 当属性修饰符应用到一个物品或生物时,它可以将拥有者的某项属性进行修正。[2][3]
- 下面的命令会给予命令执行者一个属性修饰符,以使其变大:/attribute @s minecraft:scale modifier add scale_bonus 0.25 add_value
- 下面的命令将给予命令执行者一把在主手中增加20(
× 10)点额外伤害的钻石剑: - /give @s diamond_sword[attribute_modifiers=[{type:"attack_damage", id:"minecraft:base_attack_damage", slot:"mainhand", amount:20, operation:"add_value"}]]
- 下面的命令将召唤一个僵尸,当玩家接近它100格时就会被它发现,而不是通常的35格:
- /summon zombie ~ ~ ~ {attributes:[{id:"follow_range",base:100.0d}]}
语言
字体
平视显示器
第三人称视角
聊天
弹窗
教学提示
提示框
动作栏
定位栏
Boss栏
灵动视效
记分板
截图
进度
统计信息
队伍
成就
判定箱
东南规则
爆炸
多人游戏
药水效果
游戏事件
世界
难度
极限模式
游戏规则
维度
种子(世界生成)
灾厄巡逻队
袭击
僵尸围城
方块基本属性
挖掘
Java版材料
基岩版材料
含水
方块更新
红石电路
氧化
作物机制
含雪
稀有度
工具材料
盔甲材料
物品耐久
魔咒
光效
槽位
物品冷却
掉落物
箱子战利品(结构索引)
钓鱼
药水酿造
附魔(物品修饰)
铁砧机制
物品修复
锻造
伤害
伤害类型
着火
摔落
骑乘
朝向
重力
跳跃
走上方块
属性
生物AI
寻路
评论( {{ count }})条
{{ item.user_detail["nick_name"] }}
{{ item.user_detail["title"] }}
暂无内容