日服 2.5.1

在其他地方已经发过了,这次顺带丢到博客上
我研究过的1w过关有两种方式,其中一种是一开始就是最后一wave,但是因为超过10wave的本从最后一wave载入需要消耗很多的时间,大家都不喜欢,我这里就不写了,直接写另外一个。
效果是1wave打完后直接胜利,原理很简单,就是在1wave结束后把wave改成49(50),自然就跳到胜利了
注意不支持魔神
还有这修改有很大的风险,目前已知的一个问题是宝箱数只会返回1wave拿到的宝箱数,所以比如这次万圣节的成就,宝箱那个成就怎么打都是拿不到的。所以修改请三思而后行,我是不承担任何后果的~
代码很简单

this.nNowWave = this.GetMaxWave() - 1;

修改位置
EnemyManager下的FixedUpdate()函数
QQ截图20151102045049
某些人要的IL代码
QQ截图20151102045211
这次就不赠送修改好的版本了,请自行修改~

【2017-9-29】碧蓝航线音频提取

2017-9-29更新: 今天有人发现hca中文文件名乱码问题,还好vgm是用c#写的能够方便修改代码,扫了遍代码后发现是编码问题,把vgmtutil.dll里的Encoding改成Enc...

阅读全文

BanG Dream修改相关

版本:1.1.0 好久没有写游戏修改的文章了,最主要的原因是没有感兴趣入坑的游戏。这次新出的BanG Dream个人还是挺喜欢的,除了上拉note感觉有点反人类。然后...

阅读全文

超简单的il2cpp游戏修改教程

本文较旧,已不适合参考 锁链战记3.0版本也是换上了il2cpp,所以刚好就用它来写一篇简单的il2cpp修改教程 使用的是日服3.0.1版的锁链战记 首先要使用一款工具...

阅读全文

41 条评论

  1. 想請問一下, 直接跳最後一wave要怎樣修改?

    我試過幾個方法都沒有辦法刷出敵人.. 應該是EnemyList沒有跳到最後一wave.. 是否要修改initHighlyPreciseRandom?

    1. 最近有点事,抱歉这么晚回你
      我测试了一下,原来方法都不能用了,我也没有去研究过其他的方法
      不过我觉得跳最后一wave跟我这里的最终效果应该是一样的

  2. public void FixedUpdate()
    {
    if ((this._mode == eMode.Generate) && this.GenerateEnemy())
    {
    if (this._nNowWave < (BattleDataManager.GetEnemyList().Length – 1))
    {
    this._mode = eMode.Empty;
    }
    else
    {
    this._mode = eMode.Empty;
    }
    this._berserkTime = 30f;
    }
    this._FieldJobType = 0;
    foreach (CharaBehavior behavior in this._battleManager.GetMemberList(eCharaType.ENEMY, true, false, true, false))
    {
    this._FieldJobType |= ((int) 1) << behavior._param.jobType;
    }
    }

    public void FixedUpdate()
    {
    if ((this._mode == eMode.Generate) && this.GenerateEnemy())
    {
    if (this._nNowWave < (BattleDataManager.GetEnemyList().Length – 1))
    {
    this._mode = eMode.Empty;
    }
    else
    {
    this._mode = eMode.Empty;
    }
    this._berserkTime = 30f;
    }
    this._FieldJobType = 0;
    foreach (CharaBehavior behavior in this._battleManager.GetMemberList(eCharaType.ENEMY, true, false, true, false))
    {
    this._FieldJobType |= ((int) 1) << behavior._param.jobType;
    }
    }

    博主,我按照你的修改成功了,但是进入战斗并没有改变什么。。。。不知道是哪里出了问题……能麻烦博主再帮我看看好吗

  3. public void FixedUpdate()
    {
    if ((this._mode == eMode.Generate) && this.GenerateEnemy())
    {
    if (this._nNowWave < (BattleDataManager.GetEnemyList().Length – 1))
    {
    this._mode = eMode.Battle;
    }
    else
    {
    this._mode = eMode.Empty;
    }
    this._berserkTime = 30f;
    }
    this._FieldJobType = 0;
    foreach (CharaBehavior behavior in this._battleManager.GetMemberList(eCharaType.ENEMY, true, false, true, false))
    {
    this._FieldJobType |= ((int) 1) << behavior._param.jobType;
    }
    }

    这是国服的FixedUpdate() : Void的函数……就是把this._mode = eMode.Battle;
    改为
    this._mode = eMode.Empty;

    就好了吗?。。。

      1. 可是这个怎么改啊?……
        不会弄啊 还是用Reflexil吗?直接在C#上改不了 是不是还是得在Reflexil里面改?是第几行啊 找不到battle了……

      1. 啊……是吗?。。。那你能留一个邮箱 我给你发一份dll帮我看一下吗?博主,帮人帮到底吧~~~~ :mrgreen:

          1. 我比较呆萌……只会用你教我的办法在IL里面添加那7到12行……这个需要修改怎么修改啊……还是添加7到12行么?或者是在某一行有个eMode.Battle把它变成eMode.Empty,别的都不用改么?

  4. 是因为台服if ((this.kEMode == eMode.Generate) && this.GenerateEnemy())里面的kEMode
    在国服里是 if ((this._mode == eMode.Generate) && this.GenerateEnemy())里面是_mode
    别的都一样,是不是问题出在这里?
    还有就是国服里面的EnemyManager下的sWarningWork里面并没有nnowwave这一项,台服里面有nowwave,然后再进去就是set_nnowwave了,但是国服没有。还是问题出在这里?

  5. 经过大神孜孜不倦的教导……终于改的和大神你的一摸一样了,但是为什么进战斗的时候会跳出桌面啊?。。。大神遇到过这种问题吗?

      1. 是日服的。完全按照你给的IL格式改的……改完用reflexil保存save as一下 然后进游戏 开始战斗的时候就自己弹出桌面了……

        我是这么改的:08行上添加ldarg.0 09行改成GetMaxWave 10行添加ldc.i4.1 11行添加sub 12行改成set_nNowWave 然后就直接在Assembly-CSharp右键reflexil save as 别的都没有改动 我这样改对吗?是不是还缺少什么步骤……

        或者大神能发一个你的自用版给我吗?我看看是哪里出了问题……

          1. 额,08-12行我添加上去了……但是07行也是ldarg.0,这个怎么添加啊……加到上一行或者下一行感觉都不对啊……

          2. 不行啊大神 如果7行也加上就比你的代码多出了一行了 但是我试了试从8行添加到12行 还是会进战斗闪退……我快疯掉了……哥,你能发个你的自用版给我看下吗?真快崩溃了。。。。

        1. 将图上的7~12插到原来的第6行下面。。。原来的第7行在第13行。。。你改完后可以再用reflector打开看下代码对不对

          1. 大神!能收下小可的膝盖吗? 按照孜孜不倦的教诲,终于改成功了……台服可以用了~~日服没有在玩
            但是现在我贪贪的问一下……国服在第12行并找不到set_nnowwave怎么办?。。。
            不知道这个set_nnowwave的代码是什么意思?在国服有没有向对应的代码呢?

  6. 还有个问题需要麻烦你……是把offset里的23—32都添加进去么? 另外……Operand type选择哪个啊……一个一个试了好久也找不到……

  7. 大神~~~~~~么么哒,教教呗。怎么办?右键Replace all with code之后代码全变了,该改哪里啊?

  8. 我按照你说的办法了……下载注册了reflector+reflexil,也找到EnemyManager下的FixedUpdate()函数
    了,但是完全不会修改啊……怎么把this.nNowWave = this.GetMaxWave() – 1;这一段添加进去啊……右键Replace all with code之后,代码更看不懂了,也不知道该添在哪里,而且我试了试,也仍然添不进去……
    求指教大神,小白做到这一步,真不知道怎么进行下去了……

    1. 使用Create new来修改,OpCode和Operand照着第二张图填,不会的话可以去百度一下,或者自己一个一个试

  9. 好的,我下载一个你说的软件试试吧……reflexil收费了……用ILSPY可以吗?打开之后修改不了啊,怎么才可以修改呢?。。。能麻烦给一个稍微详细些的教程吗?……或者加个QQ或者微信,真抱歉耽误你时间了…………

  10. 我在Assembly-CSharp.il里面找到getmaxwave,但是确实不知道该改哪里。。。。或者是set_Nnowwave,都不知道怎么办才好……

  11. 大神 我是直接用ILDasm吧DLL转成IL在用记事本打开修改的……但是实在不知道该改那一块……能麻烦指教一下吗?。。。。。谢谢大神了,困扰我2个多月了…………

  12. 大神……好人做到底……能指教一些详细些的教程吗?。。。这个一回版困扰了我2个月了……一直做不好。我是用ILDasm吧DLL转成IL再记事本打开,但是根据大神你的代码,实在不知道改哪里啊…………求求大神指点一二,谢谢了!!!

  13. 这个一回版得折磨我了快2个月了……还是做不好……实在不知道这一串关键代码在哪里……我是用ILDasm把DLL转成IL 然后用记事本打开去找大神你的这一段代码……但是不知道改哪里……求求指教了……真的谢谢了!

  14. 大神……还是搞不懂这一串代码……好人做到底……能给个比较详细的教程吗?。。。IL的搞的不是很明白啊……

    1. 最后CALL 提示 reflexil is unable to create this instruction , check coherence between the opcode and the operand

      1. 我明白他说的是什么意思了
        国服和台服日服不一样
        用Method reference找不到set_nnowwave这个 只有_nnowwave这个 而且前面不是红色而是蓝色 选择不了 只能用field reference添加 就会出现reflexil is unable to create this instruction , check coherence between the opcode and the operand

        所以可能是国服修改不了……

欢迎留言

0 + 8 =