精通独立游戏,血型,动漫,指弹吉他,篮球,涂鸦,人体音箱,魔术,塔罗牌,那该多好啊。
主页:www.rainssong.com
微博:www.weibo.com/rainssong
知乎:www.zhihu.com/people/rainssong
流氓百科:www.roguewiki.net

© 下雨的声音 | Powered by LOFTER

用AS3修改末日商旅2存档

末日商旅2仅仅一个30m的小游戏,自由度和系统却非常棒。昨天准备调一下金钱快速通关,但是很奇怪CheatEngine用各种办法都搜索不到内存地址,不知道是不是64位Player造成的。于是决定从SharedObject下手。

1.在C:\Users\Rain\AppData\Roaming\Macromedia\Flash Player\#SharedObjects找到相应的存档文件,用Flash SharedObject File Reader打开,发现核心数据是ByteArray。

2.没办法,反编译游戏文件,发现存档关键处理是:

_loc_10 = new ByteArray();

_loc_10.writeObject(_loc_1);

_loc_10.compress("zlib");

return _loc_10;

3.那么处理方法也很简单了:

var so:SharedObject = SharedObject.getLocal("savedData");

var saveBA:ByteArray = so.data.saves[1].save;

saveBA.uncompress();

var save:Object = saveBA.readObject();

save.Caravans[0].money = 99999999;

saveBA.writeObject(save)

saveBA.compress();

so.flush();


2015-06-28更新

准备把之前写的末日商旅2存档修改器加工一下。思路是这样:将sol文件复制到自身SharedObject文件夹,然后用SharedObject.getlocal打开存档,修改存档数据,然后再将文件copy回去。

实际操作中发现,SharedObject文件是不可以改名的。改名之后data将无法阅读。神奇= =

另外,在Air应用开启过程中,不再读取SO文件,所以在玩游戏的时候,修改存档文件是没有意义的。


编辑器地址:https://pan.baidu.com/s/1i3lHllF


 
评论
 
回到顶部