Postado Julho 31, 2015 9 anos Este é um post popular. Exemplo de como pegar hp, ai é só usar a criatividade e pegar mana etc usando os endereços corretos. #include <iostream> #include <Windows.h> #include <TlHelp32.h> //Tibia 10.80 DWORD GameModule(LPCSTR moduleName, int pId); template<typename TYPE> TYPE RPM(HANDLE proc, DWORD address, SIZE_T size) { TYPE buffer = TYPE(); ::ReadProcessMemory(proc, (LPCVOID)address, &buffer, size, 0); return buffer; } int main() { std::cout << "Searching Tibia..." << std::endl; HWND hwndTibia = NULL; while (hwndTibia == NULL) { hwndTibia = ::FindWindow("TibiaClient", NULL); Sleep(16); } if (!hwndTibia) return 0; std::cout << "Tibia found." << std::endl; DWORD pid; ::GetWindowThreadProcessId(hwndTibia, &pid); DWORD tibiaAddr = GameModule("Tibia.exe", pid); HANDLE proc = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); while (true) { if (tibiaAddr && proc) { system("cls"); int hp = RPM<int>(proc, (tibiaAddr + 0x6D2030), sizeof(int)); int maxHp = RPM<int>(proc, (tibiaAddr + 0x6D2024), sizeof(int)); std::cout << "HP: " << hp << "/" << maxHp << std::endl; } else { break; } Sleep(16); } ::CloseHandle(proc); return 0; } DWORD GameModule(LPCSTR moduleName, int pId) { HANDLE hSnapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pId); MODULEENTRY32 allinfo; BOOL haveProcess = ::Module32First(hSnapShot, &allinfo); while (haveProcess) { if (!strcmp(moduleName, allinfo.szModule)) { return (DWORD)allinfo.modBaseAddr; } haveProcess = ::Module32Next(hSnapShot, &allinfo); } return 0; } Editado Julho 31, 2015 9 anos por dm0000 (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.