20261017

ai真是太好用了。

f:\Games\CPP2IL\diffable_cs\DiffableCs\Assembly-CSharp\TSKBattleCalculationManager.cs#L220-220 ,ghidra中解析出来是这样 c:\Users\MR\AppData\Roaming\Trae CN\User\workspaceStorage\27af8ecb3076795b1841f0786ba82e9d\long-text\home\mvbaik9b-52mf\__ulonglon....txt 。我想知道你能还原得到GetBaseExGaugeRate的值后又做了什么数学运算吗?

我这样问,它还真的很简单就得出了:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
int exGaugeRate = data.GetBaseExGaugeRate();

// --- 累计 6 类技能效果的加成值 ---
int bonus = 0;
foreach (var s in data.GetSkillEffect(SkillType.ExRateUp))           bonus += s.SkillValue1;    // +0x34
foreach (var s in data.GetSkillEffect(SkillType.ExRateDown))         bonus -= s.SkillValue1;    // -0x34
foreach (var s in data.GetSkillEffect(SkillType.ExRateUpAllyCount))  bonus += s.SkillEffectValue; // +0x70
foreach (var s in data.GetSkillEffect(SkillType.ExRateUpAttrOut))    bonus += s.SkillEffectValue; // +0x70
foreach (var s in data.GetSkillEffect(SkillType.ExRateUpSkillCount)) bonus += s.SkillEffectValue; // +0x70
foreach (var s in data.GetSkillEffect(SkillType.ExRateUpSpecific))   bonus += s.SkillValue1;    // +0x34

// --- 上限裁剪 ---
bonus = Math.Min(bonus, 300);

// --- 与基础值合成 ---
int total = Math.Max(0, exGaugeRate + bonus);

// --- 最终公式 ---
int result = (int)(baseValue * (1.0f + (total - 50.0f) / 150.0f));

baseValue=40对应return Math.ceil((100 + this.exUp) / 3.75)。

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 Stack 由 Jimmy 设计