内容简介:C/C++游戏外挂基础06 QQ连连看自动消除与秒杀
上一篇文章,我们已经能实现单消了。相信很多朋友可以搞定秒杀了
秒杀无法就是一直调用单消,直到完成为止,那么,我们怎么知道要调用多少次了,方法有很多,我们可以用CE找到棋子的数量,如果没了 就不用调用单消了,今天我们用个更简单的办法,看看我们更新后的 ReadGameData函数,
bool CKyodaiPluginDlg::ReadGameData()
{
HWND hGameWnd = GetGameHwnd();
ZeroMemory(m_szGameData, 11 * 19);
if (!hGameWnd)
{
return false;
}
DWORD dwPid = false;
GetWindowThreadProcessId(hGameWnd, &dwPid);
HANDLE hGameProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPid);
if (!hGameProcess)
{
MessageBox(L"打开进程失败");
return false;
}
if (!ReadProcessMemory(hGameProcess, (LPVOID)0x00199F68, m_szGameData, sizeof(m_szGameData), NULL))
{
return false;
}
for (int i = 0; i < 11; i++)
{
for (int j = 0; j < 19; j++)
{
if (m_szGameData[i][j] != 0)
{
return true;
}
}
}
return false;
}
只要读到一个不是0的就返回true 表示还要继续数据
//秒杀全部
void CKyodaiPluginDlg::OnBnClickedBtnseckill()
{
while (ReadGameData())
{
ClearOne();
}
}
至于自动单消的功能,你在定时器 或者线程里面 调用单消,然后根据速度 来sleep一定的时间即可
DWORD WINAPI ThreadProc(_In_ LPVOID lpParameter)
{
CKyodaiPluginDlg *pWnd = (CKyodaiPluginDlg*)lpParameter;
while (1)
{
Sleep(5000 – pWnd->m_sliderSpeed.GetPos() * 100);
pWnd->ClearOne();
}
return 0;
}
void CKyodaiPluginDlg::OnBnClickedCheckremove()
{
if (m_checkRemove.GetCheck())
{
m_hThread = CreateThread(NULL, 0, ThreadProc, this, 0, NULL);
}
else
{
TerminateThread(m_hThread, 0);
}
}
源码下载地址:
链接: http://pan.baidu.com/s/1slsAJrZ 密码: 4h53
以上所述就是小编给大家介绍的《C/C++游戏外挂基础06 QQ连连看自动消除与秒杀》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。