myoldid 发表于 2015-2-2 20:52:19

Unity3D练习之自定义金币购入数量,锁定金币数量及增加HP

本帖最后由 myoldid 于 2015-2-2 20:53 编辑

       看了法总的两集Unity3D教程,讲的很详细,对我们这样没接触过该方法修改的小伙伴来说,很有帮助。昨天下午看完第二集后,用早已瞄上的一款游戏捣鼓了一下,嘿嘿,还成功了。特记录下我的思路,供大家参考。
      游戏是GLU旗下的,他们的游戏都做的很不错,效果逼真,当然要神级装备,费用也高,所以用它下手。
1.该游戏之前已经搞定了内购,但是,前面也说过,要它的神级装备,费用挺高的。买一套神级装备,要上千金币(我感觉那金币样子就是猪鼻子呢?这里暂且叫它金币吧),而每次购入金币才170,要点很多次才能存够神级装备。如图1

图1


2.那能不能按法总视频中所说的直接定义好金币呢?打开.NET Reflector载入dll文件,搜索gold,coin,cash...等等,结果一个需要的都没有。看来程序猿没走寻常路。再想想办法。当把目光移到图1的金币数量上时,眼睛又亮了,170,假如能一次购入大量金币,比如把170改为88888呢,那也不怕价格高啊?
3. 这是搜索170(可以直接搜索10进制,也可以搜索16进制),当然,要在字符串模式下找。很顺利的找到了1个结果如图2,看名字,哇偶,Buycomplete,正是我们想要的,购买完毕。再仔细一看里面的值,哇偶,那一串串数据正是我们想要的,购入金币数量。

图2


4. 按照法总教程中所说的,这里直接将170改为888888,顺便也把现金改一下,然后另存为原名文件(修改之前先备份)。winrar打开apk,放入修改后的dll到原位置,签名,安装。怀着忐忑的心情,戳开游戏。到了支付环节,又激动的戳下170金币,哇偶,金币大大的增加了,嗖的一下增加了888888个,比以前的170大了多少倍我还没算,哈哈,到这里就成功了。图3

图3


5. 现在再把目光移到图2,在170数据那里,有个addhardcurrency,哇,增加硬货币,附近还有个addsoftcurrency,增加软妹币。原来程序猿是用hardcurrency来定义硬币的。那再搜索hardcurrency,这里要按方法名来搜索了。再次找到了Get_hardcurrency方法,进去后,将值直接定义为886688,同样将软妹币也定义一下。如图4.再次保存,放入APK包,签名,安装,再忐忑一下,进入游戏,一看,哇偶,金币和软妹币都是我们定义的值了,哈哈。试着消费一下,哇偶,余额没变,说明这里直接锁定了金币的值,可以任性的消费了。如图5

图4



图5


6.到此为止,修改好了关键的地方。那再试试修改生命值呢。这里搜索hp。出来好几个get_hp,这么多个,对哪个动手呢?这是个难题哦。这里我开始不知道如何下手,直接将几个全改了,激动的进入游戏,在挨了一枪后,哇,生命值直接爆棚了,那把我高兴的。但不对啊,大爷的,敌人怎么干不死??说明我改的把敌人生命值也改了。不行,退回去。这时候就要注意了,再改好前面的金币后,再备份一下,不然又得重头来。
7. 再根据搜索到的get-hp,看他们所属的老板,第一个,player,对啊,是玩家,后面的一个翻译出来怪怪的,什么支柱支撑。不管了,先对第一个动手。这里要特别注意啦,仔细看看hp的数据类型,float类型的。那在定义数据类型的时候,就要选ldc.r4,然后类型是signle,这可不能错,不然软件不允许你修改的。如图6

图6


8. 修改好后,记得检查下有没错误。如图7,没其他提示才对。第一次修改另一款游戏的金币时,就遇到修改好后,打包回去,加载到一半闪退情况,回来一看,有“This item is obfuscated and can not be translated”错误提示,大意就是不能识别转换的数据吧。

图7


9. 好啦,再激动一下。进入游戏后,看到自己的hp和以前一样没啥变化,那先干干敌人,哇偶,一枪干死了。很好。前面说过,发现自己hP爆棚是在挨枪之后出现的(这不废话么,不挨枪怎么知道hp会不会少。),那再挨枪试试,哈哈,又爆棚啦,血量慢慢的,现在可以越快的猎杀敌人啦...图8

图8


总结:这是第一次玩unity3d改数据,多次尝试后成功了。修改的突破口很多,常规的gold,coin,cash,diamond这些找不到的话,可以像这里从购入金币数量入手,也可以从消费那里入手,直接将标价改为负的,那样也该可以实现购买成功并在余额里增加上标价的金币。如果没搞定内购,也可以根据这里找到的关键词再搜索寻找。我也是新人,所以发表了我的看法,一些新的修改思路也许大神们分享啦。这里还得谢谢法总给我们带来的教程,期待法总继续更新...



lies2014 发表于 2015-2-3 00:24:49

谢谢分享经验,学习了!

蝌蚪它大爷 发表于 2015-2-3 09:17:13

谢谢分享~很有用~

justin 发表于 2015-2-3 09:17:17

楼好样的,感谢分享思路。

sndncel 发表于 2015-2-3 10:07:08

写的很详细呀。。。。谢谢分享呀。

xin 发表于 2015-2-3 14:26:14

很好,等于开启了不死模式

zpdiy08 发表于 2015-2-3 22:38:26

感谢分享思路!

楚辞 发表于 2015-2-4 17:53:07

围观,默默支持楼主。

永恒丶 发表于 2015-2-4 21:44:27

好帖,支持了

1058730787 发表于 2015-2-26 09:14:54

都非常重要的
页: [1] 2
查看完整版本: Unity3D练习之自定义金币购入数量,锁定金币数量及增加HP