2024年4月12日发(作者:)
前几天想编写一个QQ斗地主的外挂,在网上找资料,发现这方面的资料太少,为了
方便一些vb初学者,我也把自己摸索出来的一些经验写出来共享吧。
我先以斗地主的记牌器为例,说说原理吧。
1、寻找可用的数据
想写一个斗地主的记牌器,首先就要得到每个人出的牌,在这里有不少人使用了图形
法,也就是分析屏幕上的图形,得到牌面的数字。但是我认为有点累,而且还和屏幕的分
辨率有关系,比较烦琐。所以我采用内存法。
我们可以使用《金山游侠》在内存中找到这样几个数据:
桌右第一张出牌数字4B827D
桌左第一张出牌数字4B8FFD
中位的第一张出牌数字4B893D
桌左剩下几张牌4B8FE8
中位剩下几张牌4B8928
桌右剩下几张牌4B8268
叫了多少分4B7D4C
可能有些初学者看不懂上面的这些数据,我来解释一下。
对照上面列出来的数据,“中位的第一张出牌数字4B893D”就是指在内存地址
4B893D这个位置上存储的是坐在中间位置上的玩家所出的牌面的数字。
在牌面数字的前一个内存地址,也就是4B893D-1这个位置上存储的是牌的花色。
打开内存编辑器可以分析到4B893D+8这个位置上是下一张出牌的牌面数字,这个规
律告诉我们什么呢这个我留给学习的人自己想。
“中位剩下几张牌4B8928”就是指在内存地址4B893D这个位置上存储的是坐在中
间位置的玩家剩下几张牌。
在这里我还要做一个说明
其中牌的表示是1黑桃2红桃3梅花4方块 1-F表示A-王
1梅花2方块3红桃4黑桃
2、确定思路
由上面的数据,我们就可以准确的知道每一个玩家所出的牌面及花色了。现在我讲讲
思路。
首先我们要随时监控这几个内存地址,如果发现哪一个玩家的所剩下的牌的数字变小
了,那么我们就需要读取那个玩家所出牌的花色及牌面数据。至于出了多少张牌,那自然
发布评论