【dnspy修改dll】TunesPiano 免广告领奖励教程
1-通过查看lib可知这是一个unity且是mono打包的游戏。2-那么就知道了要反编译/assets/bin/Data/Managed/Assembly-CSharp.dll进行破解
3-将/assets/bin/Data/下的managed文件夹拷贝到电脑
4-打开dnspy,并将整个managed文件夹放进程序集资源管理器
5-广告嘛,不就是ads、showads、showvideo等等这类关键词嘛,我都试过来了,追到了showads方法,所以搜索showads。这里会出现两个方法。打开adsrxmanaged下的showads,至于为什么打开这个看下一步
6-打开之后看看我们看到了啥?start、fail、success!这不就是我们要的代码吗?可是怎么改呢?
7-我们想想广告领取奖励流程,首先有广告,然后点击观看广告,看完广告领取奖励。可是这样的话看广告中途退出游戏怎么算呢?这样就又有一层判断,判断你广告成功看完还是错误没看完。
8-我们看看代码,首先进来先new了个对象,然后判断这个对象,如果isready不为真则返回false。我们点开这个isready看看发现初始值就是false,那这个判断不就直接返回false了。也就是说广告没有准备好就不会执行下一步操作。那么我们修改这里的false没有意义,可删可保留。而且修改false为true还是会播放广告,应该是另一个showads控制着。
9-然后是一些变量复制,等会就是要改这里,着重讲一下改什么,为什么改
10-最后调用一个show方法,顾名思义,这个show肯定就是让我们看广告的,可以通过删除来确认。把这个show删了之后点广告确实是没了,但点了广告一直转圈也不给奖励啊,这哪成啊。
11-现在确认一下情报,改的不是开头判断也不是结尾show,开头判断可删可不删,为了不看广告show是必须得删。然后那个failedrewardvideo变量肯定不需要可删可不删(因为本身就是null),还有一个startrewardvideo变量一个为null一个赋值,为null的可以删除。那么就剩下这些了,如图。
12-那怎么改那个success变量呢?看一下那个show方法,方法里有两个参数,分别引用——onCallCloseRewardVideo和OnCallShowRewardAds
13-先不管这俩参数是干啥的,分别打开看看,当我看到第一个也就是onCallCloseRewardVideo我就已经有了眉目了。
14-看上图画箭头的地方,如果完成奖励视频succ变量等于start变量否则failed变量等于start。我们再看看此时start变量的值是多少。
15-这下知道怎么改了吧,那个start可删可不删
16-接下来保存,然后把修改后的dll覆盖到游戏里签名安装,看看能不能免广告领奖励
注意:
1-提示广告还没准备好说明还没加载到广告,等有广告再点可免广告得奖励。
2-有广告后钻石那里点一下免费按钮可免广告得钻石,但是此时你再点会无效,这里你重复点进钻石界面即可重复钻石+1。
3-有广告后点free按钮即可免广告解锁,但此时你再点其他的会无效,需点一下钻石那边的免费按钮再回来点歌曲的free即可解决
竟然现在还有mono后端的unity游戏,现在看到的基本上都是il2cpp了 感谢楼主的教程 感谢楼主的分享 这个教程好, 通俗易懂 感谢分享,这个教程不错,学习学习。 这个教程可以啊,感谢楼主的分享! 感谢楼主的分享 il2cpp的怎么免广告? 厉害了!我也试着去操作一下看看。谢谢楼主