void CZXWG::ShowMyBagMsg( void )
{
DWORD dwZXBaseAddr = 0x009403E4; //0x00920724;
DWORD dwBaseAddr; // 存放人物基地址
// ---------------------------------------------------------
DWORD dwBB_Addr; // 揹包基址
DWORD dwBB_GeShu; // 揹包格數
DWORD dwBB_FirstAddr; // 揹包首地址
DWORD dwBB_TempAddr;
DWORD dwBB_WPID; // 揹包物品ID
DWORD dwBB_WPSL; // 揹包物品數量
DWORD dwBB_WPLX; // 揹包物品類型
DWORD dwBB_WPSLMax; // 揹包物品最大數量
WCHAR wcBB_WPName[128]; // 揹包物品名稱(寬字符)
CHAR szBB_WPName[32]; // 揹包物品名稱
DWORD dwBB_WPPY1; // 物品名稱偏移1
DWORD dwBB_WPPY2; // 物品名稱偏移2
// ---------------------------------------------------------
HWND hWndGame = ::FindWindow(NULL, "Element Client");
DWORD dwGameProcessID;
::GetWindowThreadProcessId(hWndGame, &dwGameProcessID);
HANDLE hGameProcess=::OpenProcess(PROCESS_ALL_ACCESS, 0, dwGameProcessID);
// ----人物基址---------------------------------------------
ReadProcessMemory(hGameProcess, (LPCVOID)dwZXBaseAddr, &dwBaseAddr, 4, 0); // 一級基址
ReadProcessMemory(hGameProcess, (LPCVOID)(dwBaseAddr + 0x28), &dwBaseAddr, 4, 0); // 人物基址
// ----物品信息---------------------------------------------
ReadProcessMemory(hGameProcess, (LPCVOID)(dwBaseAddr + 0x880), &dwBB_Addr, 4, 0); // 揹包地址
ReadProcessMemory(hGameProcess, (LPCVOID)(dwBB_Addr + 0x10), &dwBB_GeShu, 4, 0); // 揹包格數
ReadProcessMemory(hGameProcess, (LPCVOID)(dwBB_Addr + 0x0C), &dwBB_FirstAddr, 4, 0); // 揹包首地址
CString strTemp; // 顯示
for( DWORD i = 0; i < dwBB_GeShu; i++ )
{
ReadProcessMemory(hGameProcess, (LPCVOID)(dwBB_FirstAddr + 4 * i), &dwBB_TempAddr, 4, 0); // 讀取揹包物品偏移
ReadProcessMemory(hGameProcess, (LPCVOID)(dwBB_TempAddr + 0x08), &dwBB_WPID, 4, 0); // 讀取揹包物品ID
ReadProcessMemory(hGameProcess, (LPCVOID)(dwBB_TempAddr + 0x04), &dwBB_WPLX, 4, 0); // 讀取揹包物品類型
ReadProcessMemory(hGameProcess, (LPCVOID)(dwBB_TempAddr + 0x14), &dwBB_WPSL, 4, 0); // 讀取揹包物品數量
ReadProcessMemory(hGameProcess, (LPCVOID)(dwBB_TempAddr + 0x18), &dwBB_WPSLMax, 4, 0); // 讀取揹包物品最大數量
if( dwBB_WPLX < 7) // 物品類型<7 : 藥物,材料...
{
dwBB_WPPY1 = 0x68; // 物品名稱偏移1
dwBB_WPPY2 = 0x0C; // 物品名稱偏移2
}
else if( dwBB_WPLX < 15 ) // 7<=物品類型<15 : 仙符...
{
dwBB_WPPY1 = 0x60; // 物品名稱偏移1
dwBB_WPPY2 = 0x04; // 物品名稱偏移2
}
else if( dwBB_WPLX < 20 ) // 15<=物品類型<20 : 配方...
{
dwBB_WPPY1 = 0x60; // 物品名稱偏移1
dwBB_WPPY2 = 0x0C; // 物品名稱偏移2
}
else // 20<=物品類型 : 坐騎...
{
dwBB_WPPY1 = 0x60; // 物品名稱偏移1
dwBB_WPPY2 = 0x04; // 物品名稱偏移2
}
memset(wcBB_WPName, 0, sizeof(wcBB_WPName)); // 清0
ReadProcessMemory(hGameProcess, (LPCVOID)(dwBB_TempAddr + dwBB_WPPY1), &dwBB_TempAddr, 4, 0); // 讀取揹包物品名稱偏移
ReadProcessMemory(hGameProcess, (LPCVOID)(dwBB_TempAddr + dwBB_WPPY2), wcBB_WPName, 32, 0); // 讀取物品名稱(寬字符)
WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, (LPCWSTR)wcBB_WPName, -1, szBB_WPName, sizeof(szBB_WPName), NULL, NULL);
strTemp.Format("揹包信息:[第%d格/共%d格] : %s [類型:%d, ID:%d, 數量:%d/%d]",
i+1, dwBB_GeShu, szBB_WPName, dwBB_WPLX, dwBB_WPID, dwBB_WPSL, dwBB_WPSLMax);
AfxMessageBox(strTemp);
}
::CloseHandle(hGameProcess);
}
'本文轉摘自:【外掛海】 更多精彩內容和詳細出處請參考:http://wghai.com/html/65/n-265.html