神明恋爱放送中:对战玩法与伤害规则
核对日期:2026-11-04。来源为已导出的游戏 APK ARM64 IL2CPP 客户端代码、公开资源表与中文教程;不修改游戏或账号。适用范围为这份本地资源快照,不代表后续版本永远一致。
实战如何理解
战斗围绕行动条、速度、战技与终结技冷却展开。行动条通常每经过一个内部时间单位增加「速度 × 时间」,达到 1(100%)可以行动。剩余等待时间通常为 (1 − 当前行动条) / 速度;行动条超过 1 时客户端另有优先排序分支。开局行动条有随机初值,不能只按面板速度断言每次先后顺序。
「行动值提升 20%」使行动条直接增加 0.2,与增加 20% 速度不同。持续拉条、限制拉条、控制、嘲讽、潜影以及终结技冷却都会影响输出窗口。升星 Lv.3 解锁的被动可能改变这些条件,单次技能面板伤害无法代替整轮战斗模拟。
四属性克制顺序:蓝澈 → 红璇 → 绿琉 → 黄曜 → 蓝澈。箭头表示前者克制后者。
- 顺属性:伤害 ×1.1,暴击判定率增加 15 个百分点。
- 逆属性:敌方闪避判定率增加 50 个百分点;伤害属性系数本身是 1。
- 同属性和克制环的对角属性为中立。
- 客户端还保留光暗互克代码,当前具名图鉴没有光暗羁绊,因此界面只列实际收录的四属性。
已确认的伤害主公式
对一个目标的一次普通技能伤害主段,先计算:
攻击项 = 战中攻击 × 技能攻击倍率 + 技能固定项
防御余量 P1 = max(0, 1 − 穿透 × max(0, 1 − 抗穿透))
有效防御 = 战中防御 × 技能防御系数 × P1 × P2 × P3
主段 = 攻击项 × 1.871 × 技能 Power × 技能条件倍率 × 属性系数
× 命中结果倍率 / (1 + 有效防御 / 2000)
结果 = 主段 × max(0, 1 + 来源增减伤合计)
× (1 − 目标减伤合计 + 目标额外承伤合计)客户端有三类穿透余量独立乘入防御。计算器支持普通穿透 P1,其他特殊防御系数、P2/P3 与特殊伤害上限没有自动模拟;本工具将特殊防御系数和 P2/P3 设为 1。
「公式固定项」只是与攻击项相加,随后仍经过 1.871、防御等系数,不能把它理解为无视防御的真实伤害。
例如烟光迷离 80 级未升星、未计粉丝团,攻击 4350;终结技倍率 1.8,Power=1。对防御 2500 的满血中立目标,无其他状态:
普通伤害 = 4350 × 1.8 × 1.871 / (1 + 2500 / 2000)
= 6511.08
暴击 = 6511.08 × 1.3 = 8464.404
强击 = 6511.08 × 1.15 = 7487.742
闪避 = 6511.08 × 0.75 = 4883.31这些是浮点公式估算,未实机校准最终跳字的整数取整规则。主公式没有发现每次随机 ±5% 一类伤害浮动,计算器没有人为加入随机区间。
命中判定与期望
按顺序:闪避 → 暴击 → 强击 → 普通。命中结果互斥;暴击不会再乘强击。
d = clamp(敌方闪避 + 逆属性50% − 我方命中修正, 0, 1)
c = clamp(我方暴击 + 顺属性15% − 敌方抗暴, 0, 1)
b = 25%
P(闪避) = d
P(暴击) = (1−d)c
P(强击) = (1−d)(1−c)b
P(普通) = (1−d)(1−c)(1−b)
期望伤害 = Σ 各结果伤害 × 实际概率强击基础判定率和顺属性强击判定率在当前表中均为 25%,客户端对后者采用替换而非相加。暴击伤害字段直接作为倍数:130% 就是 ×1.3,不是 ×2.3。技能或被动可能覆盖必定闪避、命中、暴击、强击或禁止暴击/强击;界面允许手动指定简单特殊规则,未把全角色被动自动套入。
技能条件和状态
烟光迷离终结技的条件字段为:
ConditionAttack: {Who:"SelectTarget", Rate:0.0022, Property:"LastHPRate"}
LastHPRate = (最大生命 − 当前生命) / 最大生命 × 100
条件倍率 = 1 + 0.0022 × 已损生命百分数所以敌方剩余 50% 生命时,条件倍率为 1.11;剩余 1% 时为 1.2178。注意 NowHPRate 通常取 0—1,而这里 LastHPRate 返回 0—100,二者单位不同。
当前自动解析范围严格限于简单、无额外条件的 LastHPRate、ValueOne、DebuffCount 条件增伤与普通穿透。动态条件、嵌套 ValueConvert、其他成员属性等不会猜测执行,页面给出提示。技能 JSON 仅做数据解析,不用 eval 执行。
部分常见状态的资源值:
| 状态 | 当前配置 | 计算位置 |
|---|---|---|
| 攻击提升 / 下降 | +20% / −20% | 攻击终值比例 |
| 防御提升 / 下降 | +20% / −20% | 防御终值比例 |
| 暴击伤害提升 | +50 个百分点 | 130% 变为 180% |
| 潜影 | 全体攻击减伤 50% | 目标减伤区;单体受击不可直接照用 |
| 锁定 | 闪避 −30 个百分点,承伤 +10% | 分别影响闪避与目标承伤区 |
| 中毒 / 剧毒 | 回合触发最大生命 5% / 10% | 独立事件,未计入技能主段 |
同类效果可能按组归并,不能从这张表推断所有状态都可无限叠加。进阶输入的增减伤应填已经汇总好的值。技能附加的状态也不能不区分触发时机而提前用于本次伤害。
普通状态抵抗检定通过率:min(90%, max(0, 1 + 效果命中 − 效果抵抗))。默认存在 10% 的内建抵抗;客户端支持忽略内建抵抗等例外。此处只指抵抗检定,还要满足技能本身施加概率、免疫、闪避相关限制及其他条件,不能直接当最终状态命中率。效果命中也不等于普通攻击的 HitRate。
护盾和无敌可在计算器中设定为静态目标条件。生命损失先逐结果扣护盾,再以当前生命封顶,最后求期望;「期望伤害减一次护盾」与此并不等价。穿盾、伤害转移、锁血、无视无敌等特殊事件未自动模拟。
与角色数值有关的限制
等级表 × 角色系数 × 升星累计比例,之后加粉丝团全局平值。当前没有装备功能。烟光迷离 80 级原始攻击 4350,17 次粉丝团奖励为 +68,对应已观察的攻击 4418;满星基础生命 41000,计入同样粉丝团平值则推算 41425。
共奏心音 3 级存在已观察面板与资源表算差异,低等级曲线未完全校准。计算器允许直接用实机面板覆盖攻击、暴击和敌方防御。改变等级/星级/奖励次数会重新带入表算。
代码核对记录
研究输出保存在 reports/combat-research/,ARM64 库和公开 metadata 位于 tools/combat-research/。方法符号由 Il2CppDumper 6.7.46 导出,使用 Capstone 只读反汇编。地址为当前 ARM64 库 RVA。
研究输入 SHA256:
libil2cpp.so: A106B010913B480DBB38ACF936C7870D1017C875C0C0F2369E87A3C0DE7F5B9B
global-metadata.dat: 6745B4133AF230BC131CA1C852BC0F7AADB206A4A84D601AF5E7D05C318FD49D| 方法 / 字段 | RVA / 证据 | 结论 |
|---|---|---|
| BattleCalculator.CalculateSkillDamage | 0x232EEEC,关键运算 0x232F1E4—0x232F234 | 攻击、倍率、Power、1.871、防御分母及乘区 |
| BattleCalculator.CalculateHitType | 0x232B49C | 先闪避,再暴击,再强击;互斥 |
| BattleCalculator.GetConquerAttackRate | 0x232ACD0 | 顺属性1.1,否则1 |
| RoleStaticData.IsConquer | 0x234BE68 | Ice>Fire>Earth>Ground>Ice |
| BattleCalculator.GetPenetrateRate | 0x232A7E4,末段 0x232A960 | P1 与抗穿透关系 |
| GetSkillConditionAttack 闭包 b__1 | 0x2330148 | 每个条件组乘 (1+组值) |
| SkillFunctionInfo.GetSkillConditionAttack | 0x2385870 | 同组条件值累加,再交上层处理 |
| SkillValueConvert.GetValue | 0x23B4CFC,LastHPRate 分支 0x23B5580 | 已损生命比例 ×100 |
| BattleCalculator.ProcessSourceDamageRate | 0x232C954,运算 0x232CBA4 | 来源增伤区 |
| BattleCalculator.ProcessHurtReduction | 0x232C2C8,运算 0x232C5D8 | 目标减伤/承伤区 |
| BattleCalculator.IsEffectResist | 0x232FA8C,运算 0x232FB70—0x232FBDC | 普通抵抗通过率与90%上限 |
| BattleRoleTimeInfo.GetLeftTimeToEnd | 0x233D59C | 剩余行动时间 |
| BattleRoleTimeInfo.InitTime / ProcessTimePass / AddTime | 0x233D63C / 0x233D6AC / 0x233D6DC | 随机初始条、速度累积与直接拉条 |
| PublicVariable.json | AttackPowerRate, BattleAttackDefenceConstant 等 | 1.871 / 2000 / 1.1 / 0.75 / 1.15 / 25% |
| CHS.json 教程 __8、__9、__10 | 四属性教程与蓝澈克制红璇 | 与代码属性环交叉核对 |
使用与验证
打开图鉴顶部“伤害计算”,或在羁绊详情点击“带入伤害计算 / 计算此技能”。结果在修改后自动更新,可导出 JSON 记录。
计算核心:combat.js;界面:calculator.js、calculator.css;数值测试:tests/combat.test.cjs。覆盖已知烟光迷离例子、互斥概率、属性环、穿透抗穿透、增减伤、失血条件、未解析条件提示、护盾、无敌与非法值;原有数据测试同时保留。
