
共情特质
RPG属性库模组,添加了自定义属性以增强游戏体验。主要为RPG、冒险整合包设计。它是未来模组的核心模组/依赖项。
查看大图交感属性
交感属性(Sympathetic Attributes)是适用于 Minecraft 1.21.1 的 RPG 属性框架。它添加了大量战斗、移动、生存、远程、体型和法力属性,并为其他模组、数据包和服务器管理员提供了一种安全的方式,将这些属性应用于玩家、生物和物品。
这些是功能性游戏属性。跳跃高度加成会改变真实的跳跃效果,触及距离会改变方块和实体的交互距离,厚度和长度会改变真实的体型和碰撞箱,穿透属性会参与实际的伤害计算。数值由服务器同步,并且可以在游戏中查看。
交感属性也是交感职业(Sympathetic Jobs)所必需的基础模组。它可以脱离职业独立使用,但理解独立模组的功能很重要:它提供属性、法力系统、命令、物品数据和公共 API。它本身不会随机为普通战利品或合成装备添加加成。这些数值必须来自附加组件(如交感职业)、数据包、管理员命令或使用该 API 的其他模组。
需求
- Minecraft 版本: 1.21.1
- 模组加载器: NeoForge
- 支持的 NeoForge 版本: 21.1.x 系列中的 21.1.235 或更新版本
- Java 版本: 21
- 模组版本: 1.1.1
- 公共 API 版本: 0.3.0
- 必需模组依赖: 除 Minecraft 和 NeoForge 外无其他依赖
请在客户端和服务器端都安装此模组。不要在同一个 mods 文件夹中保留两个不同版本的交感属性。
玩家可以看到的内容
- 按 P 键可打开可重新绑定的交感属性界面。它显示服务器当前的有效数值。
- 在香草饥饿值栏上方会出现一个六段式法力条。它显示当前法力值和回复速度。
- 携带交感属性数据的物品会在其提示文本中说明其加成效果和激活条件。
- 包含英语和土耳其语翻译。
- 界面使用实色、易读的背景,而不是将文本放置在严重模糊的世界视图上。
大多数属性从零开始,因此属性界面会聚焦于当前已被修改的数值。
属性值如何运作
来自不同来源的百分比加成会相加。例如,+25%、+10% 和 -5% 会变成最终的 +30% 加成;它们不会被乘算成更复杂的结果。而平铺属性则直接增加普通点数、方块数或每秒点数。命令接受 25% 或等效的比率 0.25。
保护和穿透在战斗中有安全限制,处决不能超过 50% 的生命值阈值,体型不能低于正常体型的 25% 或高于 400%。
全部 45 种内置属性
以下百分比值描述的是正值的作用。许多属性也接受负值,但其具体的负面效果取决于该属性。每种属性都有安全限制,因此损坏的数据不会产生非有限值或破坏实体。
远程与弹射物
- 拉弓速度(
draw_speed)— 缩短完全拉满弓和同类武器所需的时间。弓的动画和服务器使用相同的计时。 - 箭矢伤害(
arrow_damage)— 增加持有者射出的箭矢造成的伤害。 - 箭矢速度(
arrow_velocity)— 增加弹射物的发射速度。该数值在弹射物发射时被捕获。 - 魔法弹射物伤害(
magic_projectile_damage)— 增加被归类为魔法类的弹射物造成的伤害。 - 魔法弹射物保护(
magic_projectile_protection)— 减少来自魔法弹射物的伤害。
暴击
- 暴击几率(
critical_chance)— 使符合条件的攻击有几率造成暴击。不需要香草版的跳跃暴击条件。 - 暴击伤害(
critical_damage)— 增加暴击造成的额外伤害。默认情况下,普通暴击加成为 50%,此属性会叠加在该加成之上。
元素伤害
- 冰霜伤害(
cold_damage)— 基于主攻击增加冰霜伤害,并在目标身上累积冰冻时间。 - 火焰伤害(
fire_damage)— 基于主攻击增加火焰伤害并点燃目标。
冰霜和火焰作为独立的辅助伤害来源处理。安全机制可防止它们递归地产生更多辅助攻击。
生命值与续航
- 生命偷取(
life_steal)— 按目标实际损失生命值的一定比例治疗攻击者。吸收伤害和过量击杀不会产生额外治疗。 - 最大生命值伤害(
max_health_damage)— 增加等同于攻击者自身最大生命值一定比例的物理伤害。 - 过量治疗(
overheal)— 将超出最大生命值的治疗转化为可追踪的临时吸收心,上限基于最大生命值。 - 受到治疗(
healing_received)— 增加或减少所有正常受到的、在过量治疗处理之前的治疗效果。 - 生命回复(
health_regeneration)— 每秒恢复固定数量的生命值。默认情况下,被动回复在受到伤害后会短暂暂停。 - 最大生命值(
max_health_flat)— 直接增加固定的最大生命值。
通用战斗与实用
- 经验获取(
experience_gained)— 改变从经验球和支持的授予中获得的普通 Minecraft 经验。它不会自动改变交感职业的 XP。 - 饥饿效率(
hunger_efficiency)— 减少行动产生的疲劳度,使饥饿值消耗得更慢。 - 挖掘速度(
mining_speed)— 增加破坏方块的速度。 - 攻击速度加成(
attack_speed_bonus)— 每秒增加固定次数的攻击。 - 攻击伤害(
attack_damage_bonus)— 按有效武器伤害(包括手持物品提供的伤害)的百分比增加近战伤害。 - 攻击速度(
attack_speed_percent)— 按百分比增加有效攻击速度。 - 护甲值(
armor_flat)— 增加固定护甲点数。 - 护甲加成(
armor_percent)— 按百分比增加有效护甲值,即使基础护甲来自装备物品。 - 护甲韧性(
armor_toughness_flat)— 增加固定护甲韧性点数。 - 护甲韧性加成(
armor_toughness_percent)— 按百分比增加有效护甲韧性。 - 幸运(
luck_flat)— 增加 Minecraft 战利品表抽取所使用的固定幸运值。 - 触及距离(
reach)— 同时增加方块交互范围和实体交互/攻击范围。诸如 Better Combat 等读取正常实体交互属性的模组会得到相同的结果。
移动
- 摔落抗性(
fall_resistance)— 增加开始受到摔落伤害前的额外安全摔落距离。 - 游泳速度(
swim_speed)— 改变游泳时的移动速度。 - 移动速度加成(
movement_speed_bonus)— 按百分比改变正常移动速度。 - 步进高度(
step_height)— 增加实体无需跳跃即可迈上的高度。 - 跳跃高度(
jump_height)— 增加真实的跳跃最高点。发射速度同时应用于客户端预测和服务器,额外的跳跃距离会获得相匹配的安全摔落处理。
护甲与附魔穿透
- 护甲穿透(
armor_pierce)— 忽略目标护甲减免的一部分。 - 护甲撕裂 / 韧性穿透(
armor_shred)— 在当前攻击中忽略目标护甲韧性的一部分。 - 保护穿透(
protection_pierce)— 忽略通用保护附魔提供的减免的一部分。 - 弹射物保护穿透(
projectile_protection_pierce)— 忽略弹射物击中时弹射物保护附魔的一部分。它与通用保护穿透结合,并有安全的限制。
法力
- 最大法力(
max_mana)— 设置交感法力池的最大值。基础值为 100。 - 法力回复(
mana_regeneration)— 每秒恢复固定量的法力。 - 法力回复加成(
mana_regeneration_bonus)— 乘以基础法力回复。当基础回复为零时无效。 - 法力伤害(
mana_damage)— 根据当前可用法力的百分比增加魔法伤害。法力池越满,提供的加成越高。
处决
- 处决阈值(
execution_limit)— 当存活目标的生命值百分比低于或等于阈值时,立即处决目标。服务器有 50% 的硬性最大阈值。
体型
- 厚度(
thickness)— 改变身体的宽度和深度,但不改变高度。 - 长度(
length)— 改变身体的高度,但不改变宽度。
体型不仅仅是视觉上的。它会更新碰撞箱、渲染模型和交互范围。长度还会更新眼睛高度,因此第一人称摄像机和交互射线会从正确的位置出发。默认的安全体型缩放范围是正常体型的 25% 到 400%。
诅咒
- 诅咒精通(
curse_proficiency)— 增加被归类为诅咒伤害的造成的伤害。 - 诅咒保护(
curse_protection)— 减少受到的诅咒伤害。
法力系统
每个生物实体都可以使用独立的交感法力池。当前法力值与定义最大法力值和回复速度的属性分开存储和同步。回复每半秒计算一次,仅在数值变化时发送更新,并且当技能需要超过可用法力时,绝不会部分消耗法力。
默认情况下,玩家重生后会恢复全部法力。服务器所有者可以更改此行为。法力在跨维度时会被保留。
这个法力池有意与 Tensura、ManaScore 和其他模组的法力或能量系统分开。安装这些模组不会合并、镜像或替换任何一种资源。附加组件必须明确选择使用哪种法力系统。
实体授予
属性可以应用于任何生物实体。授予可以是永久的或有时限的,可以配置为死亡后保留或消失,并且带有其自身的来源标识。更新或移除一个来源只会影响该来源;它不会清除由其他物品、职业、命令或模组提供的加成。
有时限的授予会被安全存储,并在保存和加载后以正确的剩余行为恢复。数值会检查是否为有效数字,并被限制在所选属性的安全范围内。
携带属性的物品
物品可以携带一个或多个属性授予。每个授予会指明物品必须处于什么位置效果才能生效:
- 主手、副手或任意一只手;
- 头部、胸部、腿部、脚部或任何护甲槽位;
- 任何已装备的位置;
- 快捷栏或完整物品栏;
- 任意 Curios 槽位,或当安装 Curios 时,指定的单个 Curios 槽位。
提示文本会按激活条件对加成进行分组,让玩家清楚效果是需要手持、穿戴还是仅仅携带物品。授予可选地随堆叠数量缩放,最高可达 64 个物品。同一属性的不同来源可以协同工作而不会互相替代。单个物品最多可携带 64 个授予。具有相同属性数据的物品可以正常堆叠;具有真正不同授予的物品则保持分开,以确保不会丢失任何加成。
物品可以通过命令和附加组件获得每个堆叠的数据,或通过数据包的数据映射获得类型级别的数据。交感属性本身附带一个空的物品映射,因此普通物品不会被修改,除非数据包或其他模组有意分配数值。
服务器管理员命令
所有管理命令都需要操作员权限等级 2。
/sympatheticattribute 命令可以:
- 为生物实体添加永久或有时限的属性;
- 移除单个属性、单个来源或所有直接授予;
- 检查有效数值并列出活动的直接授予;
- 获取、设置、增加、消耗或补充法力;
- 添加、移除和列出主手持有物品上的授予。
/sympatheticattributeitemgive 会创建一个带有一种或多种属性授予以及所选激活条件的物品。命令补全包括已注册的属性、操作和支持的激活位置。百分比数值接受诸如 25% 之类的可读形式以及诸如 0.25 的比率。有时限的授予接受便捷的持续时间,例如 40t、10s、5m、1h 和 2d。
配置
服务器配置文件提供了实用的平衡和行为设置,例如基础暴击加成、处决阈值、元素冻结和火焰缩放、受伤后回复暂停、重生时补充法力以及后备物品栏重新扫描间隔。属性界面的按键可以在 Minecraft 的常规控制菜单中更改。
对于整合包作者和附加组件开发者
公共 API 0.3.0 允许附加组件:
- 读取所有内置的逻辑属性定义;
- 在附加组件自身的命名空间下注册额外的逻辑属性;
- 创建、更新和移除精确来源的实体授予;
- 读取和编辑每个堆叠的物品授予;
- 读取并原子性地消耗交感法力;
- 为模组战斗系统提供自定义的攻击者和弹射物分类逻辑。
NeoForge 数据映射可以通过数据包分配物品授予。伤害类型标签控制一次攻击是否可以暴击、处决、生命偷取或产生辅助元素伤害,并允许自定义伤害来源加入正确的类别,而无需硬编码依赖。
API 和保存的数据使用有界列表和稳定的来源 ID。移除一个附加组件或一个物品不会移除恰好使用相同属性的无关修改器。
兼容性
Curios 是可选的。当存在时,携带交感授予的物品可以从 Curios 槽位激活;当不存在时,核心模组正常启动,这些激活条件只是保持不活跃。
触及距离和体型加成使用 Minecraft 标准的方块和实体交互属性,这也允许 Better Combat 读取产生的攻击范围。其他集成更喜欢使用公共伤害标签和附加组件 API,而不是硬加载可选的模组类。
可选模组不会被声明为必需依赖。它们的缺失不会产生不必要的 NeoForge “仅支持” 警告。交感属性可以在仅有 Minecraft 和 NeoForge 的情况下运行。
问题、错误报告和建议
请使用 CurseForge 项目页面上的评论来提出问题、报告错误和给出建议。评论会在那里被阅读和回复。报告问题时,请包含交感属性版本、NeoForge 版本、其他相关模组的简短列表,以及能够重现问题的清晰步骤。崩溃报告或 latest.log 中的相关部分尤其有帮助。
许可证
交感属性根据 保留所有权利 分发。请参阅随附的 LICENSE 文件以获取完整声明。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。