评分权重自定义

March 24, 2026 · View on GitHub

方法一:预设方法(推荐)

基础步骤

  1. 源码目录:普通用户为ZZZ-plugin/dist,开发者为ZZZ-plugin/src

  2. 复制模板文件:源码目录/model/damage/character/模板/score.js

  3. 进入角色数据文件夹:源码目录/model/damage/character/角色名(若角色文件夹 不存在,自行创建即可)

  4. 粘贴文件,并将粘贴的模板文件重命名为score_user.js

  5. 打开score_user.js,根据需要调整权重数值

  6. 保存并重启

示例图(“冰属性伤害加成”可简写为“属性伤害加成”):

进阶操作

将崽底层日志模式切换为debug模式并重启,可在控制台查看评分计算详细过程;且会自动监听现有评分计算文件实时热更新。可按需开启

在函数体中,可根据玩家角色数据动态选用不同的权重方案。示例(原爱丽丝直伤流规则):

/** @type {import('#interface').scoreFunction} */
export default function (avatar) {
  const { CRITRate, CRITDMG, AnomalyProficiency } = avatar.initial_properties
  // (暴击率 * 2 + 爆伤 >= 200%) 且 (异常精通 < 300) 时转为直伤流规则
  if (CRITRate * 2 + CRITDMG >= 2 && AnomalyProficiency < 300) {
    return ['直伤流', {
      "生命值百分比": 0,
      "攻击力百分比": 0.75,
      "防御力百分比": 0,
      "冲击力": 0,
      "暴击率": 1,
      "暴击伤害": 1,
      "穿透率": 1,
      "穿透值": 0.25,
      "能量自动回复": 0,
      "异常精通": 0.5,
      "异常掌控": 0,
      "属性伤害加成": 1
    }]
  }
}
  • 函数参数:ZZZAvatarInfo(角色数据)

  • 函数返回值:

    • 元组:[评分规则名, 权重数据]
    • 类型:[string, { [词条名: string]: number }]
    • 若返回其他类型,会自动回退默认评分规则
    • 自定义权重会以默认权重为基础值,即自定义权重中未指定的词条会取默认权重中的数据

方法二:直接修改默认权重

注意:直接修改插件所属文件,将会导致后续该文件更新冲突。若你不清楚如何解决冲突,请使用方法一

默认权重使用权重模板规则编写,详见预设权重规则

打开插件默认词条权重文件直接修改相应数据保存即可,重启生效

文件路径:ZZZ-plugin/resources/map/EquipScore.json


后文将讲解本插件评分计算流程、计算规则。有能力者可直接查看源码

评分计算规则

引言

在原神和星铁的评分计算中,由于副词条每次强化的提升数值并不固定,评分计算往往需要考虑具体提升数据,常见的计算方式为副词条提升数值 × 单位数值得分 × 词条权重。但在绝区零中,副词条每次强化提升值相同且与初始值一致,因此无需考虑具体提升数值,只需考虑强化次数和权重即可,也更适用于固定总分的方式计算评分,计算中心思路即为总分 × (实际有效词条数 / 理论上限有效词条数)

基本概念

  1. 词条类型:

  2. 权重:不同词条对角色的重要性数值,决定该词条在评分中的占比,有效值0~1,一般为0.1或0.25的整数倍

  3. 有效词条数:根据副词条强化次数和对应权重折算的词条数之和,后文出现的词条数皆指有效词条数

评分计算流程

  1. 确定角色采用的权重规则
  2. 计算等级系数品质系数
  3. 计算实际有效词条数理论最大词条数
  4. 根据驱动盘位置,结合上述参数计算最终得分

具体计算规则

1. 权重规则确定

2. 系数计算

等级系数

等级系数 = 0.25 + 驱动盘等级 × 0.05

品质系数

  • S级:1
  • A级:2/3
  • B级:1/3

3. 有效词条数计算

实际词条数

$ 实际词条数 = Σ((副词条强化次数 + 1) \times 权重) $

理论最大词条数

  1. 筛选出与实际主词条不同权重>0的副词条

  2. 取权重最高的前4个副词条

  3. 计算方式:

$ 理论最大词条数 = 6 \times 词条最高权重 + 其余3个词条权重之和 $

最高权重词条最多可强化5次,共6次贡献;其余3个各计1次基础值

4. 最终得分计算

单个驱动盘总分定义为55

  • 1-3号位驱动盘:副词条占55分

  • 4-6号位驱动盘:主词条占12分,副词条占43分

1-3号位

  • 实际词条数=0: $ 得分 = 12 \times 等级系数 \times 品质系数 $

  • 实际词条数>0: $ 得分 = 55 \times (实际词条数 / 理论最大词条数) \times 等级系数 \times 品质系数 $

此情况最终得分会与12 × 等级系数 × 品质系数取最大值

4-6号位

  1. 主词条得分:

$ 主词条得分 = 12 \times (当前主词条权重 / 最优主词条权重) $

若无最优主词条,主词条得分固定为12

  1. 副词条得分:

$ 副词条得分 = 43 \times (实际词条数 / 理论最大词条数) $

  1. 最终得分:
得分 = (主词条得分 + 副词条得分) × 等级系数 × 品质系数

预设权重规则

  • 强攻:默认包含"主C·双爆"
  • 击破:默认包含"冲击·双爆"、"冲击·攻击"、"冲击·异常"
  • 异常:默认包含"主C·异常"、"辅助·异常"
  • 支援/防护:默认包含"辅助·双爆"、"辅助·异常"
  • 命破:默认包含"命破·双爆"
规则名称适用条件(初始属性)核心词条权重
主C·双爆攻击力>2400
双爆总和≥2.2
异常属性较低
暴击率=1
暴击伤害=1
攻击力%=0.75
主C·异常攻击力>2400
双爆总和<2
异常属性较高
异常精通=1
异常掌控=1
攻击力%=0.75
命破·双爆通用暴击率=1
暴击伤害=1
生命值%=0.5
攻击力%=0.25
辅助·双爆双爆总和≥1.5
异常属性较低
暴击率=1
暴击伤害=1
能量回复=1
辅助·攻击双爆总和≥1.5攻击力%=1
暴击率=1
暴击伤害=0.75
辅助·异常双爆总和<2
异常属性较高
异常精通=1
异常掌控=1
能量回复=1
攻击力%=0.75
冲击·双爆双爆总和≥1.5
异常属性较低
冲击力=1
暴击率=1
暴击伤害=1
攻击力%=0.75
冲击·攻击攻击力>2000
双爆总和≥1
异常属性较低
冲击力=1
攻击力%=1
暴击率=1
暴击伤害=0.75
冲击·异常双爆总和<2
异常属性较高
异常精通=1
异常掌控=1
冲击力=1
攻击力%=0.75

所有规则中,穿透率权重均为1(命破除外),穿透值权重均为0.25(命破除外),属性伤害加成权重均为1

完整权重详见此文件

选择第一个符合适用条件的规则,若皆不符合则选择第一个有效规则

驱动盘评级规则

单个驱动盘得分评级

评级得分区间说明
C[0, 12]基础兜底级,无有效词条或词条质量极差
B(12, 20)过渡级,仅有少量低权重有效词条
A[20, 28)合格级,具备基础有效词条,可满足日常需求
S[28, 32)良好级,有效词条占比适中,适配角色基础需求
SS[32, 36)优秀级,有效词条占比较高,接近优质配置
SSS[36, 40)顶尖级,有效词条占比极高,大幅提升角色战力
ACE[40, 48)毕业级,词条配置近乎完美,为角色核心毕业装备
MAX[48, 55]满分级,理论最优配置,词条质量与占比均近上限

全套驱动盘总分评级

评级总分区间说明
C[0, 80)基础兜底级,整体词条配置极差,无有效战力提升
B[80, 120)过渡级,仅部分驱动盘具备合格词条,暂用过渡
A[120, 160)合格级,整体词条配置达标,可满足常规副本需求
S[160, 180)良好级,多数驱动盘为优质配置,具备较强战力
SS[180, 200)优秀级,整体词条配置精良,可应对高难度副本
SSS[200, 220)顶尖级,近乎毕业配置,角色战力达到峰值区间
ACE[220, 280)毕业级,全驱动盘近乎满配,为理论最优毕业套装
MAX[280, 330]满分级,全驱动盘均近个体上限,战力实现理论最大化

鸣谢

感谢银狐对评分计算规则的指导建议

点此查看评分计算规则源码,如有任何对评分计算的想法建议,欢迎与我联系:ucpr251@gmail.com