今天跟大家伙儿聊聊我最近折腾的“反TP”的事儿,说白,就是防止游戏里那种强制把你传送到某个地方的机制。
事情是这么开始的,我最近在玩一个单机游戏,体验还不错,就是老有那种强制传送,好好的探索过程被打断,烦都烦死。我就寻思着,能不能自己搞点什么,把它给屏蔽。
我上网搜一大堆资料,关键词就是“反tp”、“游戏 防传送”之类的,找到不少相关的讨论和帖子,看到有人提到用指令来搞,还有人说可以修改游戏文件。
然后,我开始尝试用指令。我玩的那个游戏支持控制台指令,我就想看看能不能找到什么指令可以直接禁用传送。结果试半天,要么指令不存在,要么就是指令不起作用。看来游戏开发者早就防着这一手。
指令这条路走不通,我就想着能不能从游戏文件入手。我把游戏目录翻个底朝天,看到一些看起来像是配置文件的东西。我就用文本编辑器打开,一个一个地看,希望能找到跟传送相关的参数。
功夫不负有心人,还真让我找到一些东西!在某个配置文件里,我看到几个跟传送相关的数值,我试着把这些数值改成0,然后保存文件,重新启动游戏。
结果,游戏是能进,但是一加载存档就崩溃。看来直接修改配置文件是不行的,游戏肯定有校验机制。
既然直接改不行,那就得想点别的办法。我开始研究游戏的运行机制,用一些工具监控游戏的内存,看看在发生传送的时候,内存里会发生什么变化。
经过一番折腾,我发现游戏在传送的时候,会修改一个特定的内存地址,这个地址里存的就是玩家的坐标。只要能阻止游戏修改这个地址,就能阻止传送的发生。
知道原理,就好办。我用一个内存修改工具,找到那个坐标地址,然后把它锁定住。这样,游戏就没法修改我的坐标。
再次进入游戏,我故意触发传送事件。结果,我原地没动!哈哈,成功!虽然游戏里还是显示传送动画,但是我的角色就是站在原地,纹丝不动。
不过这样搞也有个问题,就是一些正常的传送也失效。比如,我想要快速旅行到某个地方,也去不。
为解决这个问题,我又写一个小脚本,这个脚本可以让我手动控制坐标地址的锁定和解锁。这样,我就可以在需要正常传送的时候,解锁坐标地址,传送完再锁定回去。
这回“反TP”的经历还是挺有意思的。虽然过程有点曲折,但是还是成功。以后再玩游戏,再也不怕被强制传送。
3
希望我的这回经历能对大家有所帮助。如果你们也遇到类似的问题,不妨试试我的方法。不同的游戏可能情况不一样,需要具体问题具体分析。
还没有评论,来说两句吧...