内容简介: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连连看自动消除与秒杀》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Rework
Jason Fried、David Heinemeier Hansson / Crown Business / 2010-3-9 / USD 22.00
"Jason Fried and David Hansson follow their own advice in REWORK, laying bare the surprising philosophies at the core of 37signals' success and inspiring us to put them into practice. There's no jarg......一起来看看 《Rework》 这本书的介绍吧!