All pastes #512014 Raw Edit

HaloHook

public cpp v1 · immutable
#512014 ·published 2007-05-26 17:54 UTC
rendered paste body
/*  * HaloHook :: VoiDAPI Test Project * ----------------------------------- * Coded by: VoiDeD * * Uses: - VoiDAPI * 	     - WinAPI *        * Time Spent: 10 mins of converting C# code to  *             C++ code, and then 40 mins *			   figuring how to cast pointer types*/#include "voidapi.h"#include <string>using namespace std;#define Menu 0x00718EBC //0x0 = in game#define MapName 0x400001E8#define MouseX 0x402AD4B8#define MouseY 0x402AD4BC#define Vehicle 0x006AC4F0//0x0 = not in vehicle#define HostLocationX 0x6AC4E4#define HostLocationY 0x6AC4E8#define HostLocationZ 0x6AC4EC#define HostScore 0x006B1340v_window* wnd;v_window* haloHwnd;v_control* hookBtn;v_thread* hookThread;v_thread* graphicsThread;v_process* haloProc;bool hooked = false;byte inMenu;v_vector3* curPlayer;v_vector2* mouse;char* mapName = (char*)malloc(13);byte inVehicle;int score = 0;int mode = 0;void exit(v_window* wind){	if (hooked)	{		hookThread->kill();		graphicsThread->kill();	}	wind->destroy();}void hook_Tick(v_thread* thr, void* data){	while (hooked)	{				//check halo		HWND halo = FindWindow(NULL, "Halo");		if (!halo)		{			hooked = false;			graphicsThread->kill();			thr->kill();			wnd->destroy();			return;		}			    //get values	    inMenu = haloProc->read_byte(Menu);	    mapName = haloProc->read_string(MapName, 13);	    	    curPlayer->set_x(*(float*)haloProc->read(HostLocationX, 4));	    curPlayer->set_y(*(float*)haloProc->read(HostLocationY, 4));	    curPlayer->set_z(*(float*)haloProc->read(HostLocationZ, 4));		    mouse->set_x(*(float*)haloProc->read(MouseX, 4));	    mouse->set_y(*(float*)haloProc->read(MouseY, 4));			inVehicle = haloProc->read_byte(Vehicle);				score = *(int*)haloProc->read(HostScore, 4);		if (inMenu == 0x0)		{		    //check key presses		    byte key = HIBYTE(GetKeyState(VK_F1)); // score mode		    if (key)		        mode = 0;						    key = HIBYTE(GetKeyState(VK_ADD)); // +		    if (key)			{				switch (mode)				{					case 0:						int temp = score + 1;						haloProc->write(&temp, HostScore, 4);		                break;				}				thr->sleep(100);			    }		    key = HIBYTE(GetKeyState(VK_SUBTRACT)); // -		    if (key)			{				switch (mode)				{					case 0:						int temp = score - 1;						haloProc->write(&temp, HostScore, 4);		                break;				}				thr->sleep(100);			    }		    key = HIBYTE(GetKeyState(VK_MULTIPLY)); // *		    if (key)		    {				switch (mode)				{					case 0:						int temp = score * 2;						haloProc->write(&temp, HostScore, 4);						break;				}				thr->sleep(100);			}			key = HIBYTE(GetKeyState(VK_DIVIDE));			if (key)			{				switch (mode)				{					case 0:						int temp = score / 2;						haloProc->write(&temp, HostScore, 4);						break;				}				thr->sleep(100);			}		}		thr->sleep(1);	}}void DrawStringInt(v_graphics* gfx, int x, int y, char* text, int value){	string str = text;	str += v_convert::to_string(value);	gfx->draw_string((char*)str.c_str(), new v_point(x, y));}void DrawStringVector3(v_graphics* gfx, int x, int y, char* text, v_vector3* vect){	string str = text;	str += v_convert::to_string(vect->get_x());	str += ", ";	str += v_convert::to_string(vect->get_y());	str += ", ";	str += v_convert::to_string(vect->get_z());	gfx->draw_string((char*)str.c_str(), new v_point(x, y));}void DrawStringVector2(v_graphics* gfx, int x, int y, char* text, v_vector2* vect){	string str = text;	str += v_convert::to_string(mouse->get_x());	str += ", ";	str += v_convert::to_string(mouse->get_y());	gfx->draw_string((char*)str.c_str(), new v_point(x, y));}void graphics_Tick(v_thread* thr, void* data){	v_graphics* gfx = new v_graphics(haloHwnd);	gfx->set_textcolor(new v_color(255, 255, 0));	gfx->set_background(TRANSPARENT, new v_color(255, 255, 0));		while (hooked)	{        if (inMenu != 0x0)		{			gfx->draw_string("HaloHook v0.1C", new v_point(5, 5));			DrawStringInt(gfx, 5, 20, "Menu: ", inMenu);        } 		else		{	            gfx->draw_string("HaloHook v0.1C", new v_point(150, 5));			string str = "Map: ";			str += mapName;			gfx->draw_string((char*)str.c_str(), new v_point(150, 20));            DrawStringVector3(gfx, 150, 35, "Your Coords: ", curPlayer);			DrawStringVector2(gfx, 150, 50, "Mouse Coords: ", mouse);	        DrawStringInt(gfx, 150, 65, "Vehicle: ", inVehicle);	        DrawStringInt(gfx, 150, 80, "Score: ", score);	                    switch (mode) 			{				case 0:					gfx->draw_string("Mode: Score (F-Keys To Change)", new v_point(150, 110));					break;			}        }				thr->sleep(1);	}}void starthook(v_control* ctrl, void* wind){	if (hooked)		return;			haloHwnd = v_window::find_window("Halo", NULL);	if (!haloHwnd)		return;			haloProc = new v_process(haloHwnd);	if (haloProc == NULL)		return;		hooked = true;	curPlayer = new v_vector3(0, 0, 0);	mouse = new v_vector2(0, 0);		hookThread = new v_thread(&hook_Tick, NULL);	graphicsThread = new v_thread(&graphics_Tick, NULL);	hookThread->start();	graphicsThread->start();		hookBtn->set_text("Hooked");	hookBtn->disable();}int main(){	wnd = new v_window("HaloHook", new v_size(300, 225));	wnd->register_event(WM_CLOSE, &exit);	hookBtn = new v_button("Hook", new v_size(89, 23),  new v_point(103, 163), wnd->get_hwnd());	hookBtn->register_event(BN_CLICKED, &starthook);		wnd->add_control(hookBtn);		wnd->show();}