外观
统一 Attr 属性体系
统一 Attr 属性体系以相同的属性 ID 和计算语义连接角色、物品配置及脚本 API,前后端使用同一组 ID。它与旧极品、元素体系分别管理,可共同生效。
属性从哪里来
| 来源 | 配置或操作入口 | 保存与生效方式 |
|---|---|---|
| 角色永久加成 | SetPermAttr 等角色 API | 随角色保存,修改后显式刷新 |
| 角色临时加成 | SetTempAttr 等角色 API | 按期限生效,修改后显式刷新,到期自动重算 |
| DB 物品模板 Attr 属性 | 物品表 ItemExtAbil | 同模板共用,穿戴时参与角色计算 |
| 单件物品 Attr 属性 | GN_ItemAttr_*,命名空间 attr | 随具体物品保存,穿戴时参与角色计算 |
角色加成、模板属性和单件属性分别保存。装备贡献由穿戴计算管理,不写入角色永久或临时加成。最终角色数值还会经过原有属性计算流程。
模板与单件物品
DB 模板属性用于同类装备的固定配置;单件属性用于附魔、重铸等针对具体物品的修改。两组属性使用相同 ID,但互不覆盖。例如模板攻击上限 +30、单件攻击上限 +20,穿戴时两项都参与计算。
模板 Attr 属性也不会替代物品表原有的 DC、MaxDC 等基础列,而是在其基础上叠加。
配套客户端可分别查询模板和单件属性。两组可以分行显示,也可以由版本 Lua 合并展示;具体排版由版本自行定制。
Attr 属性 ID
角色 API 的 AttrId、DB 配置中的 ID 和物品 attr 命名空间的 Key 使用下表中的同一编号。它与旧 AddPlayerAbil 状态号不同。
基础属性
| ID | 属性 | ID | 属性 |
|---|---|---|---|
| 1 | 生命上限 | 2 | 魔法上限 |
| 3 | 攻击下限 | 4 | 攻击上限 |
| 5 | 魔法下限 | 6 | 魔法上限 |
| 7 | 道术下限 | 8 | 道术上限 |
| 9 | 防御下限 | 10 | 防御上限 |
| 11 | 魔防下限 | 12 | 魔防上限 |
| 13 | 准确 | 14 | 敏捷 |
| 15 | 魔法躲避 | 16 | 毒物躲避 |
| 17 | 中毒恢复 | 18 | 体力恢复 |
| 19 | 魔法恢复 | 20 | 攻击速度 |
战斗属性
以下属性使用万分比,100 表示 1%,5000 表示 50%。输入为有符号 Int32 加成,各项加成合成后再限制有效范围。
| ID | 属性 | 说明 |
|---|---|---|
| 100 | 伤害增幅 | 5000 为增伤 50%,-2000 为降伤 20%;与旧伤害倍率独立乘算 |
| 101 | 通用减伤 | 降低受到的伤害 |
| 102 | 暴击概率 | 提高或降低暴击触发概率 |
| 103 | 暴击伤害加成 | 增加暴击倍率;默认 2 倍时,5000 提升至 2.5 倍 |
| 106 | 格挡概率 | 与格挡减伤比例配合使用 |
| 107 | 格挡减伤比例 | 格挡触发时减免的伤害比例 |
| 108 | 吸血比例 | 按实际扣血计算回血,旧装备物理吸血独立生效 |
| 110 | 反伤概率 | 与反伤比例配合使用 |
| 111 | 反伤比例 | 反伤触发时返还的伤害比例 |
| 112 | 反伤抵抗 | 按百分点抵消对方反伤比例,例如 30% 反伤抵消 10% 后为 20% |
概率、减伤、吸血、反伤及反伤抵抗的有效范围为 0–100%。伤害增幅最低 -100%;暴击伤害加成与已有倍率合成后最低为 1 倍。
Attr 属性无需开启旧插件,可与已启用的旧属性共同生效。格挡、反伤均需同时具备有效概率和效果比例。切割不受伤害倍率和暴击放大。表中未列出的编号不支持使用。
分类增伤与减伤
| ID | 属性 | ID | 属性 |
|---|---|---|---|
| 113 | 对人增伤 | 114 | 受人减伤 |
| 115 | 对怪增伤 | 116 | 受怪减伤 |
| 117 | 对战士增伤 | 118 | 受战士减伤 |
| 119 | 对法师增伤 | 120 | 受法师减伤 |
| 121 | 对道士增伤 | 122 | 受道士减伤 |
以上均为有符号万分比贡献。对人项和对应职业项在同一侧相加,攻击方增伤倍率与受击方减伤倍率相乘。例如对人增伤20%、对法师增伤10%,目标针对来源的减伤合计30%,分类倍率为1.3×0.7。
负减伤表示增加承伤;分类减伤达到100%时,适用的普通伤害为0。正倍率的小额伤害保留至少1点。固定脚本伤害、独立切割及反伤不参与这一调整。英雄按自身职业计入人物,召唤怪按怪物计入,不继承主人属性。此处“受战士减伤”减少来自战士的适用伤害,不仅抵消对方额外增伤。
配置与 API 入口
- 物品数据库:模板 Attr 属性格式、填写示例与重载方式。
- 角色 Attr 属性:永久与临时加成的读写、期限和刷新。
- 单件物品 Attr 属性:通过物品对象查询与赋值。
- 按装备位置访问 Attr 属性:操作主号或英雄已穿戴的物品。
修改已穿戴物品的单件属性后,需要显式刷新对应人物能力;连续修改多项时可最后统一刷新。