您的位置:首页 > 其它

[发布] QQGame 连连看辅助工具(限制功能版)

2011-11-18 19:12 176 查看
    前几天想起了这个想法,然后最近两天开发了这个工具,就是用于 QQGame 中的连连看的辅助工具。本来是想把全部代码都公开的,但是我在调试程序的时候注意到腾讯在qqgame中宣传卖那些游戏道具。所以我的想法就改变了下,不想影响腾讯卖这些道具来赚钱,所以我把原来完整功能版的版本又加上了一些限制。

    辅助工具实现的功能包括:全自动点击,自动重排(当方块无解时),显示可点击方块提示(相当于官方的指南针功能),模拟单步点击。

    首先进入 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 秒,先行启动,就会赢。所以同为秒杀速度,由于秒杀耗时极短,远小于人能观察出的时间间隔,所以在算法上可能已经很难拼出优势来了。比如从其他方向下手进行改进。当然我也考虑了自动对别人应用各种障碍型道具,但是如果起跑反应慢一点的话,实际上一切都没用,因为你根本不会有应用道具的时间,游戏已经被对方结束了。反正已经够快了,估计暂时就这样了~。~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐