升级成长与经验公式核查
以本项目1.11.24(618)APK为准,2026年10月23日静态核查。
结果
维护版625起:局内魔王和怪兽的升级需求固定为
trunc(float32(40×全局需求系数)),不随等级上涨。下文的等级+40是来源基线公式,供研究对照;成长规则保持。
普通怪兽与堕落勇者每次升级抽取一项成长结果,记录在个体的dictLevelUp,属性重算时累加对应次数乘Value。因此不是每级生命/攻/防都固定增加。相同角色、相同等级可以拥有不同的成长分配。固定抽签池下,长期平均增量可以按权重计算,但不是个体保证。HPGrow/AtkGrow/DefGrow在这一普通怪兽分支用于星级差/强化计算,不能直接当作每级成长;魔王另有按等级乘Grow的分支。
默认成长池为生命+5(权重1000)、攻击+1(500)、防御+0.5(400)、学习技能(100)。技能列表计数超过2时选择排除学习技能的池。阅读相应书籍可分别解锁生命+10/+15/+25,攻击+2/+3/+4,防御+1/+1.5/+2.5;各档只增选中的属性。实际面板增量还会受属性倍率、技能和局内加成影响。
普通怪兽/堕落勇者的升级经验共用GC.CalcNeedExpMonster:
需要经验 = 向零截断(float32((当前等级 + 40) × 全局需求系数))
虽然函数签名有byGrade,当前原生实现没有使用该参数,没有读取角色ID。相同等级、同一局全局系数下,不因角色或星数不同而改变门槛。系数为1时,L=1/10/100分别需41/50/140经验。全局需求修正可以改变所有这些角色的门槛,经验获得加成和经验需求系数须分开。
原生依据
- GC.LevelUpPlayerMonster:0x85a304,扣经验后等级+1,再按技能数量选抽签池并累加dictLevelUp。
- GC.get_eRandomLevelUpKey / NoSkill:0x85a7a4 / 0x85a9cc,按当前池的Rate加权抽签。
- GC.RefreshLevelUpList:0x88ddc0,默认加入键0/4/8/12,书籍键0~8分别解锁攻击、防御、生命更高档位。
- GC.CalcBaseStat:0x862e84,普通怪兽从dictLevelUp计数乘LevelUpData.fValue累加HP/ATK/DEF;Grow乘等级仅位于isMW分支。
- GC.CalcNeedExpMonster:0x851ad0,L+40,乘GC.fMonNeedExpBonus(静态字段偏移0x5c8),转整数返回。
- LevelUp表16行,基础常用池与书籍解锁池以原生列表初始化为准,不能把表中所有档位都假定为默认可抽。
反汇编证据在analysis/imported-20261023/il2cpp/experience-probes.txt、levelup-rules-probe.txt、levelup-pool-probe.txt及stat-probes.txt。未读取存档,未启动游戏,未修改玩法。