[发布] QQGame 连连看辅助工具(限制功能版)
2011-11-18 19:12
176 查看
前几天想起了这个想法,然后最近两天开发了这个工具,就是用于 QQGame 中的连连看的辅助工具。本来是想把全部代码都公开的,但是我在调试程序的时候注意到腾讯在qqgame中宣传卖那些游戏道具。所以我的想法就改变了下,不想影响腾讯卖这些道具来赚钱,所以我把原来完整功能版的版本又加上了一些限制。
辅助工具实现的功能包括:全自动点击,自动重排(当方块无解时),显示可点击方块提示(相当于官方的指南针功能),模拟单步点击。
首先进入 QQGame,连连看,开始游戏后如下图所示:
list_funcs
其中,提示可点击方块时,没有直接用窗口 DC 或者屏幕 DC,我用的是 SetWindowRgn 方法(如果用 LayeredWindow 的 COLOR_KEY 会有闪烁,所以改为用 Window RGN)。
最后,暂时发布工具的可执行文件,该工具是采用VS2005 + WIN32 Platform SDK开发,完全绿色的。但它在关闭的时候会在自身所在文件夹下面防止一个 INI 配置文件,实际上我在程序里已经写好了所有默认值,但把 INI 文件放在程序所在位置,也是为了让用户知道那些地方可以配置。但有一项我写死在代码里面了,就是方块样本集合位图的行容量固定为 8,这样的目的是我可以对除法和取余(MOD)用位操作来实现。
下载链接:http://files.cnblogs.com/hoodlum1980/LLKHelper.rar
相同性质文章:《快速“美女找茬”(辅助工具)》
【补充说明】 by hoodlum1980 @ 2011-11-20
我发现有些人在肆无忌惮的使用“秒杀”级别的疑似外挂。所以也促使我进行改进。主要是加了系统全局性热键,程序自身的快捷键(因为按键的反应速度要比鼠标点击快),在比拼秒杀速度的时候取消开启线程,而是合并到 UI 线程一次性完成。改进搜索解的循环方式,从每次复位改为轮转式。最终我发现实际上成了反应速度的比拼。假使秒杀耗时是 0.1 秒(具体到底多少可能也无法精确测量),那么如果谁反应速度稍微快 0.1 秒,先行启动,就会赢。所以同为秒杀速度,由于秒杀耗时极短,远小于人能观察出的时间间隔,所以在算法上可能已经很难拼出优势来了。比如从其他方向下手进行改进。当然我也考虑了自动对别人应用各种障碍型道具,但是如果起跑反应慢一点的话,实际上一切都没用,因为你根本不会有应用道具的时间,游戏已经被对方结束了。反正已经够快了,估计暂时就这样了~。~
辅助工具实现的功能包括:全自动点击,自动重排(当方块无解时),显示可点击方块提示(相当于官方的指南针功能),模拟单步点击。
首先进入 QQGame,连连看,开始游戏后如下图所示:
list_funcs
//释放某一个链表,最后把表头置为NULL void FreeList(PCELLPOS* ppHead) { PCELLPOS pTmp = NULL; PCELLPOS pNode = *ppHead; while(pNode != NULL) { pTmp = pNode->pNext; free(pNode); pNode = pTmp; } (*ppHead) = NULL; } //把一个新节点挂接到指定链表上,如果链表为空,则会被创建! void AddNodeToList(PCELLPOS* ppHead, int row, int col) { PCELLPOS pNewNode = (PCELLPOS)malloc(sizeof(CELLPOS)); pNewNode->row = row; pNewNode->col = col; pNewNode->pForward = NULL; pNewNode->pNext = NULL; if(*ppHead == NULL) { *ppHead = pNewNode; return; } else { //找到tail节点,然后挂接上去! PCELLPOS pCur = *ppHead; while(pCur->pNext != NULL) pCur = pCur->pNext; pNewNode->pForward = pCur; pCur->pNext = pNewNode; } } //从链表中把指定的节点除去,如果是最后一个节点,则会导致该链表被置为 NULL void RemoveNodeFromList(PCELLPOS* ppHead, PCELLPOS pNode) { //是表头吗 if(pNode == *ppHead) { *ppHead = pNode->pNext; } // [Forward] <--> [X] <--> [Next] // [Forward] <-----------> [Next] if(pNode->pForward != NULL) pNode->pForward->pNext = pNode->pNext; if(pNode->pNext != NULL) pNode->pNext->pForward = pNode->pForward; free(pNode); }
其中,提示可点击方块时,没有直接用窗口 DC 或者屏幕 DC,我用的是 SetWindowRgn 方法(如果用 LayeredWindow 的 COLOR_KEY 会有闪烁,所以改为用 Window RGN)。
最后,暂时发布工具的可执行文件,该工具是采用VS2005 + WIN32 Platform SDK开发,完全绿色的。但它在关闭的时候会在自身所在文件夹下面防止一个 INI 配置文件,实际上我在程序里已经写好了所有默认值,但把 INI 文件放在程序所在位置,也是为了让用户知道那些地方可以配置。但有一项我写死在代码里面了,就是方块样本集合位图的行容量固定为 8,这样的目的是我可以对除法和取余(MOD)用位操作来实现。
下载链接:http://files.cnblogs.com/hoodlum1980/LLKHelper.rar
相同性质文章:《快速“美女找茬”(辅助工具)》
【补充说明】 by hoodlum1980 @ 2011-11-20
我发现有些人在肆无忌惮的使用“秒杀”级别的疑似外挂。所以也促使我进行改进。主要是加了系统全局性热键,程序自身的快捷键(因为按键的反应速度要比鼠标点击快),在比拼秒杀速度的时候取消开启线程,而是合并到 UI 线程一次性完成。改进搜索解的循环方式,从每次复位改为轮转式。最终我发现实际上成了反应速度的比拼。假使秒杀耗时是 0.1 秒(具体到底多少可能也无法精确测量),那么如果谁反应速度稍微快 0.1 秒,先行启动,就会赢。所以同为秒杀速度,由于秒杀耗时极短,远小于人能观察出的时间间隔,所以在算法上可能已经很难拼出优势来了。比如从其他方向下手进行改进。当然我也考虑了自动对别人应用各种障碍型道具,但是如果起跑反应慢一点的话,实际上一切都没用,因为你根本不会有应用道具的时间,游戏已经被对方结束了。反正已经够快了,估计暂时就这样了~。~
相关文章推荐
- 新功能、新工具:Granite Data Service 1.1.0发布
- 发布了一款基于RCP的编程聊天辅助工具 测试版
- 开发辅助工具Kalman Studio2.0发布,内置基于T4的代码生成器
- 新功能、新工具:Granite Data Service 1.1.0发布
- 代码审查工具Collaborator v10版本发布,新增强大的缺陷和错误跟踪功能
- 世界级版本控制工具Vault v10.0发布,多项功能改进|附下载
- WayOs帐号获取保存工具增加提交的功能,WayOs扩展WAN口工具1.6发布增加网卡和VLAN混合组网功能
- YUVviewerForHEVC 开发辅助工具 LCU查看器发布&&YUVviewerForHEVC 开发辅助工具 LCU查看器发布 --New Edit
- ASP.NET MVC脚手架辅助工具——MvcScaffoldTool v2.0版本发布,支持Area自动映射
- 独家:程序员必备Java API和类搜索辅助工具发布
- 图像扫描工具包VintaSoftTwain.NET SDK v10.1发布,简化图像采集功能
- 【软件发布】临摹帖(zDrawHelp) V1.1(画像素图的辅助工具)
- Python开发工具PyCharm v2016.2发布,新增线程暂停功能,可定制IDE外观|附下载
- 内网端口映射工具之80端口映射和全端口映射及辅助发布网站应用
- 功能强大的Xcode辅助工具Faux Pas:帮你找到各种隐形的bug
- 独家:程序员必备Java API和类搜索辅助工具发布
- 【软件发布】zDrawHelp V1.0(画像素图的辅助工具)
- 【软件发布】临摹帖(zDrawHelp) V1.1(画像素图的辅助工具)
- Sofia-SIP辅助文档七 - Sofia SIP用户代理库 - "su" - 操作系统功能和工具