blog

《植物大战僵尸》PC/Mac版存档修改

Author: ninehills
Labels: blog
Created: 2020-05-03T13:33:35Z
Link and comments: https://github.com/ninehills/blog/issues/78

0x00 为啥想玩这个?

LP:我想玩植物大战僵尸。 我:iOS上只有一个氪金的2代,我给你买原版的。英文可以接受不? LP:你小看我了! 我:那马上好。

Steam上下单《Plants vs. Zombies: Game of the Year》

LP:我不想从第一关开始玩,都玩腻了,我要直接玩无尽模式。 我:我来研究下。

搜了一圈,发现Mac上没有修改器,只好自己去修改存档文件。

主要参考:https://plantsvszombies.fandom.com/wiki/User_file_format

0x01 找到存档文件

wiki上说存档文件在./Application Support/PopCap/PlantsVsZombiesMac/userdata下,但是Steam版本的该路径只有userdata_backup,真正的userdata通过find命令可以找到,在./Application Support/Steam/userdata/124091088/3590/remote/中(其中124091088是你的steam id)。

找到user1.dat即为存档文件(存在多个用户找对应的user${n}.dat, 用户序号可以在users.dat中找到

然后先备份存档文件(所有操作前请先备份)

0x02 HEX工具

在Mac上直接用vim即可,通过vim user1.dat可以打开文件。然后输入:%!xxd可以将其显示为HEX格式,之后便可以进行修改。修改完成后,一定要先:%!xxd -r转换为二进制文件,然后在:wq保存。(注意修改时游戏需要关闭或者使用不同的用户)

image

0x03 修改存档

参考 https://plantsvszombies.fandom.com/wiki/User_file_format 修改存档即可。存档格式:

如果要实现解锁无尽模式,那么需要修改的:

  1. 修改 Adventure Mode的完成次数,改成 >= 2,修改后解锁 Mini-Game 等模式。

image

  1. 修改生存模式各个子模式的完成度,全部设置为完成(大于给定的值,我统一设成0x0b),从而直接解锁最终的无尽模式。

image

最终效果

image

启动游戏

image