用cheatengine实现街头霸王的无限生命

本文分享了使用cheatengine在《92超级街头霸王》中实现角色无限生命的技巧,通过搜索血量相关内存地址并设置热键,实现在不编写脚本的情况下调整游戏难度。

背景:

92超级街头霸王是80后的回忆,偶尔玩玩,调剂一下心情。winkawaks是玩街霸的一种模拟器,自带搜索作弊码的功能。电脑控制的角色太弱,比如我最喜欢用红人VS警察,感觉太不抗揍,几个民工三连后,已经gameover,于是乎想把对手变成无限生命。首先,用了winkawaks的金手指,不行,对手直接变成无敌模式,游戏不能正常进行。

解决思路:

很自然就想到了cheatengine,步骤如下

  1. 查找血量相关的内存地址。游戏开始时,为了节省搜索时间,先通过搜索精确值 144.为什么是144呢,因为前面通过观察,知道血量初始值是144,而且只有一个字节,理论上,最大可以设置为255,实际上,我在需要的时候,只将血量重置为144.
    在这里插入图片描述
  2. 每打警察一次,血量减少的时候。做一次decrease value搜索,经过大约5次左右搜索后,得到了最终相关的血量地址。
    在这里插入图片描述
  3. 血量修改。血量只有一个字节,再大也不够用。在不编写脚本的情况下面,我采用了一个土方法,实现了我想要的效果。为每一个血量相关的内存地址,添加一个热键,比如我设置了K,每按一次K,对手的血量自动恢复,基本不影响游戏,也不用编写一行代码,简直是兵不血刃。即可以达到无限生命,还有正常的血量减少进度提示。
    在这里插入图片描述
    下图,打到这里,已经为警察加了两次血,警察还是处于头晕状态。还可以将时间调为无限,这样就成了生存模式。因为总是会意外被警察击中,也就是说,只要警察生命无限,自己有限,总会被对方干掉。但最终坚持了多少时间,没法把握,不过用脚本应该可以实现这个功能。
    在这里插入图片描述

问题小结与展望:

问题主要还是在于不够智能,不够自动化。

  1. 这几个血量地址不是固定的,每次重新打开winkawaks模拟器,这个地址都会变化。观察内存地址可以发现,这几个内存地址的相对位置总是固定的,游戏初始后,可以用cheatengine脚本去搜索,应该能搜索得到,这样,免去了每次游戏都要搜索一遍的麻烦。
  2. 血量目前是手动控制,在对手血量不够时,按一个快捷键就回血了。应该设计一个脚本,在后台能够自动监测血量,一旦不够了,就自动回血。
  3. 其实最终的目的,我想可以统计一下游戏中的技术指标,比如在一次游戏中,对手的去血量和自已的去血量。每次游戏中,这些数据能够保留下来,形成一个统计图表。我最关心的是,在一次99秒的时候里面,在狂虐警察的时候,一共废去对方多少的血量。没有工具,只能靠自己记忆,有点不科学。我记得自己最多给警察加了5次学,并且在时间结束前,击败了他。
    这个小工具实现应该并不会难,只是目前没什么精力去干这个
    做了几个视频放在优酷上,有兴趣的可以看看
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值