代码解析
约 518 字大约 2 分钟
2025-12-17
可以使用本鼠鼠开发的存档解析工具分析完成度 存档解析
完整完成度字段
附上从游戏Assembly.dll中解析出的完整的完成度字段👇
public void CountGameCompletion()
{
this.completionPercentage = 0f;
this.CountCharms();
this.completionPercentage += (float)this.charmsOwned;
if (this.killedFalseKnight)
{
this.completionPercentage += 1f;
}
if (this.hornet1Defeated)
{
this.completionPercentage += 1f;
}
if (this.hornetOutskirtsDefeated)
{
this.completionPercentage += 1f;
}
if (this.killedMantisLord)
{
this.completionPercentage += 1f;
}
if (this.killedMageLord)
{
this.completionPercentage += 1f;
}
if (this.killedDungDefender)
{
this.completionPercentage += 1f;
}
if (this.killedBlackKnight)
{
this.completionPercentage += 1f;
}
if (this.killedInfectedKnight)
{
this.completionPercentage += 1f;
}
if (this.killedMimicSpider)
{
this.completionPercentage += 1f;
}
if (this.killedMegaJellyfish)
{
this.completionPercentage += 1f;
}
if (this.killedTraitorLord)
{
this.completionPercentage += 1f;
}
if (this.killedJarCollector)
{
this.completionPercentage += 1f;
}
if (this.killedBigFly)
{
this.completionPercentage += 1f;
}
if (this.killedMawlek)
{
this.completionPercentage += 1f;
}
if (this.killedHiveKnight)
{
this.completionPercentage += 1f;
}
if (this.colosseumBronzeCompleted)
{
this.completionPercentage += 1f;
}
if (this.colosseumSilverCompleted)
{
this.completionPercentage += 1f;
}
if (this.colosseumGoldCompleted)
{
this.completionPercentage += 1f;
}
if (this.killedGhostAladar)
{
this.completionPercentage += 1f;
}
if (this.killedGhostHu)
{
this.completionPercentage += 1f;
}
if (this.killedGhostXero)
{
this.completionPercentage += 1f;
}
if (this.killedGhostMarkoth)
{
this.completionPercentage += 1f;
}
if (this.killedGhostNoEyes)
{
this.completionPercentage += 1f;
}
if (this.killedGhostMarmu)
{
this.completionPercentage += 1f;
}
if (this.killedGhostGalien)
{
this.completionPercentage += 1f;
}
this.completionPercentage += (float)this.fireballLevel;
this.completionPercentage += (float)this.quakeLevel;
this.completionPercentage += (float)this.screamLevel;
if (this.hasCyclone)
{
this.completionPercentage += 1f;
}
if (this.hasDashSlash)
{
this.completionPercentage += 1f;
}
if (this.hasUpwardSlash)
{
this.completionPercentage += 1f;
}
if (this.hasDash)
{
this.completionPercentage += 2f;
}
if (this.hasWalljump)
{
this.completionPercentage += 2f;
}
if (this.hasDoubleJump)
{
this.completionPercentage += 2f;
}
if (this.hasAcidArmour)
{
this.completionPercentage += 2f;
}
if (this.hasSuperDash)
{
this.completionPercentage += 2f;
}
if (this.hasShadowDash)
{
this.completionPercentage += 2f;
}
if (this.hasKingsBrand)
{
this.completionPercentage += 2f;
}
if (this.lurienDefeated)
{
this.completionPercentage += 1f;
}
if (this.hegemolDefeated)
{
this.completionPercentage += 1f;
}
if (this.monomonDefeated)
{
this.completionPercentage += 1f;
}
if (this.hasDreamNail)
{
this.completionPercentage += 1f;
}
if (this.dreamNailUpgraded)
{
this.completionPercentage += 1f;
}
if (this.mothDeparted)
{
this.completionPercentage += 1f;
}
this.completionPercentage += (float)this.nailSmithUpgrades;
this.completionPercentage += (float)(this.maxHealthBase - 5);
int mpreserveMax = this.MPReserveMax;
if (mpreserveMax != 33)
{
if (mpreserveMax != 66)
{
if (mpreserveMax == 99)
{
this.completionPercentage += 3f;
}
}
else
{
this.completionPercentage += 2f;
}
}
else
{
this.completionPercentage += 1f;
}
if (this.killedGrimm)
{
this.completionPercentage += 1f;
}
if (this.killedNightmareGrimm || this.destroyedNightmareLantern)
{
this.completionPercentage += 1f;
}
if (this.hasGodfinder)
{
this.completionPercentage += 1f;
}
if (this.bossDoorStateTier1.completed)
{
this.completionPercentage += 1f;
}
if (this.bossDoorStateTier2.completed)
{
this.completionPercentage += 1f;
}
if (this.bossDoorStateTier3.completed)
{
this.completionPercentage += 1f;
}
if (this.bossDoorStateTier4.completed)
{
this.completionPercentage += 1f;
}
}字段分析
1. 面具碎片
面具完成度是根据最大生命值减去初始生命值得到的
this.completionPercentage += (float)(this.maxHealthBase - 5);因此在解析游戏存档时,可以获取playerData.maxHealthBase - 5的值作为面具完成度
2. 容器碎片
容器完成度则是根据灵魂储备量的最大值得到的
int mpreserveMax = this.MPReserveMax;
if (mpreserveMax != 33)
{
if (mpreserveMax != 66)
{
if (mpreserveMax == 99)
{
this.completionPercentage += 3f;
}
}
else
{
this.completionPercentage += 2f;
}
}
else
{
this.completionPercentage += 1f;
}那么容器完成度就可以通过playerData.MPReserveMax / 33 的值来获取
3. 格林剧团
这个很好理解,击败格林团长可以获得 1 完成度
后续可以选择打败梦魇之王格林,或是摧毁梦魇之灯达成放逐格林剧团获得 1 完成度
if (this.killedGrimm)
{
this.completionPercentage += 1f;
}
if (this.killedNightmareGrimm || this.destroyedNightmareLantern)
{
this.completionPercentage += 1f;
}