Join Date: May 2011
Posts: 419
User-Rating:
|
<TlHelp32.h> includieren vergessen ?
Ja das mit dem auslesen geht einfacher Es gibt in CSS auch eine bool für den selben zweck. 1 = man steht auf dem boden, 0 = man steht nicht auf dem boden. Noclip sollte helfen den Wert Per CheatEngine zu finden. So solltest du 4 Pointer Finden, zwei in der server.dll und zwei in der client.dll, erstere 2 fallen weg da diese nur auf selbst erstellen Ingame-LAN-Servern funktionieren, und unter den restlichen 2 kannste dir dann eine aussuchen, ich nehm meistens die erste.
Dann einfach per ReadProzessMemory auslesen und den Tastendruck an CS:S senden: (Projekt auf "Multibyte-Zeichensatz verwenden" einstellen nicht vergessen !)
CPP Code: #include <Windows.h> #include <iostream> #include <TlHelp32.h> using namespace std; DWORD GetModuleBase(const DWORD dwProcessId, const char *szModuleName) { #ifdef _GMBE_CHECK_PARAMS_ if (!dwProcessID) || (!szModuleName) return 0; #endif HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId); if (!hSnap) return 0; MODULEENTRY32 me; me.dwSize = sizeof(MODULEENTRY32); DWORD dwReturn = 0; if (Module32First(hSnap, &me)) { while (Module32Next(hSnap, &me)) { if (lstrcmpi(me.szModule, szModuleName) == 0) { dwReturn = (DWORD)me.modBaseAddr; break; } } } CloseHandle(hSnap); return dwReturn; } int main() { HWND Fenster = NULL; cout << "Counter-Strike Source wird gesucht.."; while(Fenster == NULL) { Fenster = FindWindow(0, "Counter-Strike Source"); cout << "."; Sleep(1000); } cout << "gefunden!" << endl; cout << "Warte 15 Sekunden, da CS:S eine weile braucht um alle Module zu laden..." << endl; Sleep(15000); DWORD ProzessID; GetWindowThreadProcessId(Fenster, &ProzessID); HANDLE HandleProzess = NULL; HandleProzess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProzessID); int IsOnGround_Adress = GetModuleBase(ProzessID , "client.dll") + 0x7C021C; bool IsOnGround = 0; DWORD Puffer = NULL; cout << "IsOnGround_Adress = " << hex << IsOnGround_Adress << endl; while(1) { Sleep(1); ReadProcessMemory(HandleProzess,(void*)(IsOnGround_Adress),&IsOnGround,sizeof(IsOnGround),&Puffer); if(IsOnGround == 1 && GetKeyState(VK_SPACE) < 0) { SendMessage(Fenster, WM_KEYDOWN, VK_SPACE, 0x390000); Sleep(10); SendMessage(Fenster, WM_KEYUP, VK_SPACE, 0x390000); } if(FindWindow(0, "Counter-Strike Source") != Fenster) break; } cout << "Counter-Strike Source wurde beendet!" << endl; cout << "Druecke eine Beliebige Taste um das Fenster zu schliessen" << endl; cin.get(); return 0; }
mfg
__________________
Da unten ist ein Like-Button, benutze ihn doch
|