chefrpg吧 关注:145贴子:638
  • 17回复贴,共1

提升等级上限(变相提升技能点和四维属性值)——dnspy反编译

只看楼主收藏回复

(前沿吐槽:气死我了,制作组提高等级上限结果把代码给改动了,之前的教程已经无用了,现在刚好有时间整这玩意,刚摸索出来大致方向,已在游戏内测试过,能超过50级上限,且重置技能点的时候也不会报错,四维属性值显示无问题)
工具:dnspy反编译工具
修改文件路径:steam\steamapps\common\Chef RPG\Chef RPG_Data\Managed里的Assembly-CSharp.dll
缺点:每次游戏更新都得重改
步骤:(尽量按以下步骤走)——需要修改两个条目
1. 用工具打开文件
2. 工具正下方搜索skillmanager,下滑至InitializeSkillPanel,双击,界面如下图

3. 右上大框中点击第20行的位置,右键鼠标,选择——编辑方法,修改 -10, 1, 50为 -10, 1, 111
然后点击分窗口右下的编译即可
(原本是50级上限,改后为111级,等级计算是四维相加再减去10,技能点和重置后技能点总数是角色等级+2,点满技能树所需为113技能点,所以111级足够全解锁了)
4. 左侧条目中找到PlayerStatsManager,双击打开下级条目中的GainExp,如下图所示

5. 右上大框中右键鼠标,选择——编辑方法,依次修改文本中以下8行代码
exp *= (20f - (float)PlayerStatsManager.EnduranceLevel) / 20f;
改为 exp *= (31f - (float)PlayerStatsManager.EnduranceLevel) / 20f;
if (PlayerStatsManager.EnduranceLevel == 15)
改为 if (PlayerStatsManager.EnduranceLevel == 26)
exp *= (20f - (float)PlayerStatsManager.GatheringLevel) / 20f;
改为 exp *= (60f - (float)PlayerStatsManager.GatheringLevel) / 20f;
if (PlayerStatsManager.GatheringLevel == 15)
改为 if (PlayerStatsManager.GatheringLevel == 50)
exp *= (20f - (float)PlayerStatsManager.CookingLevel) / 20f;
改为 exp *= (30f - (float)PlayerStatsManager.CookingLevel) / 20f;
if (PlayerStatsManager.CookingLevel == 15)
改为 if (PlayerStatsManager.CookingLevel == 25)
exp *= (20f - (float)PlayerStatsManager.SocialLevel) / 20f;
改为 exp *= (30f - (float)PlayerStatsManager.SocialLevel) / 20f;
if (PlayerStatsManager.SocialLevel == 15)
改为 if (PlayerStatsManager.SocialLevel == 20)
6. 完成第5步后点击编译,回到主界面之后点击全部保存即可
(第5步可自行改动,条件确保满足以下即可:)
1. 每行exp *= 中前一个数字减去后面的数字20要,大于>,对应的 Level== 后面的数字(不满足这个条件的话可能对应的四维属性升不了级,就导致拿不到技能点)
2. 四行 Level== 代码后面的数字之后要等于121(前面已经提到过,等级上限要111级才能有113点技能点来解锁全技能,四维属性之和减去10就是等级上限,所以需要111+10=121点四维)
——题外话:PlayerStatsManager下级条目中,可以修改每种方式获得的经验数
而且,不管做什么都能加Endurance耐力,经验增加是对应方式(抓鱼对应采集,做菜对应烹饪)给予对应属性经验的1/3。。。。。。
——再次吐槽:啊哈,老der,你拦不住我修改全技能树的!!!


IP属地:广东1楼2024-09-26 20:28回复
    想修改SupplyChain每日供应数的话,可以找我前一个贴里面看看。。虽然技能点直接修改的教程已经废了。。。


    IP属地:广东2楼2024-09-26 20:33
    回复
      这次的有点复杂,而且更新频率太快了,今天又TM更新了,他已经快1天更新(修复上次更新)一次了


      IP属地:江西3楼2024-09-27 00:09
      收起回复
        更正一下,第5步中自行改动所需要满足的条件有误,具体为:
        exp *= 后的第一个数字减去 | Level==后你所设置的数字 | 得出的结果要大于0即可。。
        (这行代码的作用是调整获得经验倍数,原本是exp *= (20f - (float)PlayerStatsManager.EnduranceLevel) / 20f; 这样的具体效果是 经验获得量倍率为(20 ➖对应属性的点数)除以20 ,比如耐力3点的话,当前获得exp倍率为17/20,保证exp获得倍率大于0即可获得经验,虽然数字低了的话,会导致高等级时升级速度变慢。预估)


        IP属地:广东5楼2024-09-27 14:47
        收起回复
          厉害了楼主,试试


          IP属地:安徽6楼2024-09-27 19:57
          回复
            用模拟器打不开


            IP属地:广东来自Android客户端8楼2024-10-06 23:32
            收起回复
              没有-10 1 50诶


              IP属地:江西来自Android客户端9楼2024-10-07 12:48
              收起回复