泰拉瑞亚游戏存档路径修改
泰拉瑞亚(Terraria) 是一款非常受欢迎的2D沙盒游戏,甚至有不少玩家称之为 2D MineCraft。我久闻这款游戏的大名,所以早在半年前就从 Steam 上入了正版。但是非常遗憾的是,泰拉瑞亚的PC版没有合适的引导教程,导致入门有些门槛。比如说新手一进去不知道干什么,不知道如何使用道具、怎么砍树、怎么造房子,然后就在第一个夜晚到来的时候不停地被僵尸和眼球虐死。我自己本身也尝试了好几次,都没有摸索出合适的玩法,都没能入门玩起来,所以这款游戏就这么被我搁置了。 直到上个月,我无意中看到一个同事正在玩泰拉瑞亚的手机版,然后就下载了一个一起玩。令人意外的是手机版对于新手友好多了。手机版的开始菜单专门有一个教程栏目,点进去可以在一个教程地图上按照提示学习游戏的操作。除此之外游戏还特别针对移动版进行了优化,对一些在 PC 上比较复杂的操作在移动平台上进行了简化,大大降低了游戏的入门难度。还有一点令人惊讶的是,泰拉瑞亚的 Android 版和 iOS 版可以无缝局域网联机,甚至包括 iOS 盗版的。经过几天时间跟三四个同事一起联机摸索,我总算是入门了泰拉瑞亚。 长时间用手机玩泰拉瑞亚其实是一件挺累人的事,特别是挖矿和造房子。所以一段时间后,我又拉了几个同事一起玩 PC 版。一开始他们几个人玩的是汉化版的,我玩的是 Steam 英文版,这两个版本居然也是可以无缝局域网联机的,真是太棒了。由于游戏里的道具非常多,英文名字比较复杂,我拿到有些道具之后,不得不查词典,才能跟同事说我拿到的是什么。所以为了方便跟同事沟通,我后来也玩了汉化版的。 这里我碰到一个问题,就是 Steam 版和汉化版的游戏存档都存在 我的文档\My Games\Terraria\ 这个目录下,所以有些时候会发生冲突,造成游戏无法正常启动。所以我就想能不能把汉化版的存档目录修改一下,改成客户端所在目录,这样就方便多了。 先从客户端文件下手吧,把 Terraria.exe 扔到 PEiD 里查一下壳,发现这个东西没有加壳,是 C# 写的 .NET 程序。 既然知道是 .NET 程序,那我们就可以用 .NET Reflector 或者 ILSpy 来反编译分析。我以前没有尝试修改过 .NET 程序,这次也是新手上路。上述两个工具我都尝试过,但是在改完代码后保存可执行文件都或多或少出了一点问题。然后我找到了一个叫 JustDecompile 的反编译工具。这个工具跟大名鼎鼎的 Fiddler 是同一个公司出的,完全免费。下载安装 JustDecompile 后运行,打开 Plugins 菜单,安装 Assembly Editor 插件。这个插件其实就是 Refexlil,在上面两个工具里也可以使用这个插件,非常强大。 我们用 JustDecompile 打开 Terraria.exe, 然后点击 Open->Load Framewrok->Load .NET 4.6 Assemblies->x86 导入 x86 的 ....