2:改代码
但是有的物品正常刷不出来/或者只出一个啊!还有限时的物品,这个怎么搞?
实在不能root,怎么办?
这就需要改代码了 – 新版本的游戏使用了il2cpp,逆向工程可谓任务艰巨,但是游戏毕竟比较老,肯定有没用编汇的版本 – 没错,这个版本就是2.2.14.
这里,你需要这几个工具:apktool,dnspy,JRE(Java Runtime Environment),JDK(Java development kit)。安装包下载完成后重命名为apk.apk, 和apktool放到一个文件夹里,点击地址栏输入cmd,按enter,敲代码:apktool d apk.apk
完成后文件夹上方会出现一个apk文件夹-这里面的assets/bin/data/Managed/assembly-csharp.dll就是我们想要的源码了。
dnSpy如何使用这里不多赘述了。楼主就是自己瞎琢磨学的 – 只要记住 – 只要有没obfuscate的assembly-csharp,你让游戏干什么都可以。
这里点出几个重要的节点:assets/localization里有游戏物品的大致ID – dll文件里的重要节点:
SaveSlot.collectedItems //你的目标就是让你没有的物品ID进到这个list里
SaveSlot.collectedItem //想让所有物品无穷多?从这里入手
BattleController.AddItemCollect //琢磨明白游戏是怎么转换simpleItem和item后从这里入手很方便
Global.specialEvent //改特殊活动(圣诞节什么的)
MainController.AddCoin
MainController.AddGem
其他的一些修改,例如无穷好感度什么的,只要找到都可以修改,这里就不赘述了。
改完后保存文件,重新进入上面说到的CMD,按enter, 输入:apktool b apk
等待,进入apk/dist里找焕然一新的安装包。但是这个安装包没有签名,是安装不了的。这时你就需要JRE的keytool和JDK的jarSigner了。把安装包放入JDK安装目录/bin里。
这里需要用管理员权限!你需要新建一个keystore,就是可以多次使用的apk签名文件。创建一次终身无忧

!在JRE的安装目录/bin里地址栏输入cmd,按enter, 键入:keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
,然后输入一个自己记得住的密码。
在JDK安装目录/bin里地址栏输入CMD,键入:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore apk.apk alias_name
按enter, 输入你之前创建的密码,然后潇洒的再按下enter。
签完名后的安装包就是修改过的了。正常的安卓系统就都可以安装了。
鉴于这个游戏几年没有内容更新, 亲测可以存档倒放(新版本存档相对旧一点的版本游戏可以读取), happy modding!