tool class

Posts 1–15 of 45 · Page 1 of 3
tool class
My pro tools class
it's mine jajaja
i'm so pro
Code:
#include "tools.h"

cTools* tools = NULL;

#ifdef _DEBUG_
void __cdecl cTools::add_log( char *file,  const char *fmt, ... )
{

 	ofile.open( file , ios::app);
 
 	va_list va_alist;
 	char logbuf[256] = {0};
 
 	va_start (va_alist, fmt);
 	vsnprintf(logbuf + strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
 	va_end (va_alist);
 
 	ofile << logbuf << endl;
 
 	ofile.close();

 	return;

}
#endif

void *cTools::DetourCreate( BYTE *src, const BYTE *dst )
{
ASM_STATIC_BYTE
VM_START
ASM_STATIC_BYTE
	int len = 5;
ASM_STATIC_BIT
	BYTE *jmp = (BYTE*)malloc( len+5 );
ASM_STATIC_BIT
	DWORD dwBack;
ASM_STATIC_BYTE
	VirtualProtect( src, len, PAGE_EXECUTE_READWRITE, &dwBack );
ASM_STATIC_BYTE
	memcpy( jmp, src, len );	
ASM_STATIC_BIT
	jmp += len;
ASM_STATIC_BIT
	jmp[0] = 0xE9;
ASM_STATIC_BYTE
	*(DWORD*)( jmp+1 ) = (DWORD)( src+len - jmp ) - 5;
ASM_STATIC_BIT
	src[0] = 0xE9;
ASM_STATIC_BYTE
	*(DWORD*)( src+1 ) = (DWORD)( dst - src ) - 5;
ASM_STATIC_BYTE
	VirtualProtect( src, len, dwBack, &dwBack );
ASM_STATIC_BIT
VM_END
ASM_STATIC_BYTE
	return( jmp-len );
ASM_LOL ASM_LOL ASM_LOL ASM_LOL ASM_LOL ASM_LOL ASM_LOL ASM_LOL ASM_LOL
}

static HWND OldWnd;

char *cTools::GetActiveWindowTitleLowerCase( void )
{
	VM_START

	char szWindow[256];

	HWND TempWnd = GetForegroundWindow();

	if( TempWnd != OldWnd )
	{
		OldWnd = TempWnd;
		GetWindowText( TempWnd, szWindow, sizeof( szWindow ) );
		CloseHandle( TempWnd );
	}

	int iWindowTextLength = strlen( szWindow );

	for( int i = 0; i <= iWindowTextLength; i++ )
		szWindow[i] = tolower( szWindow[i] );

	VM_END

		return szWindow;
}

// void cTools::CreateJump( DWORD dwOrigin, DWORD dwhkFunction )
// {
// 	VM_START
// 
// 	DWORD OldProtect;
// 	VirtualProtect( (LPVOID) dwOrigin, 5, PAGE_EXECUTE_READWRITE, &OldProtect );
// 
// 	if( *(BYTE*)dwOrigin != 0xE9 )
// 	{
// 		*(BYTE*)dwOrigin = 0xE9;
// 		*(DWORD*)( dwOrigin+1 ) = dwhkFunction - ( dwOrigin+5 );
// 	}
// 
// 	VirtualProtect( (LPVOID) dwOrigin, 5, OldProtect, NULL );
// 
// 	VM_END
// }

//DWORD cTools::VirtualTableHook( DWORD* pdwVirtualTable, int iVTableIndex, DWORD dwhkFunction )
//{
//  VM_START
//	DWORD dwOld, dwStor = 0x0;
//	VirtualProtect( &pdwVirtualTable[ iVTableIndex ], 4, PAGE_EXECUTE_READWRITE, &dwOld );
//
//	dwStor = *(DWORD*)&pdwVirtualTable[ iVTableIndex ];
//
//	if( dwhkFunction !=  *(DWORD*)&pdwVirtualTable[ iVTableIndex ] )
//		*(DWORD*)&pdwVirtualTable[ iVTableIndex ] = dwhkFunction;
//	
//	VirtualProtect( &pdwVirtualTable[ iVTableIndex ], 4, dwOld, &dwOld );
//
//  VM_END
//
//	return dwStor;
//}  

void cTools::MemCopy_s( void* pvAddress, const void* pvBuffer, size_t stLen )
{
ASM_STATIC_BIT
VM_START
ASM_STATIC_BIT
	MEMORY_BASIC_INFORMATION mbi;
ASM_STATIC_BYTE
	VirtualQuery( ( void* )pvAddress, &mbi, sizeof( mbi ) );
ASM_STATIC_BYTE
	VirtualProtect( mbi.BaseAddress, mbi.RegionSize, PAGE_EXECUTE_READWRITE, &mbi.Protect );
ASM_STATIC_BIT
	memcpy( ( void* )pvAddress, ( void* )pvBuffer, stLen );
ASM_STATIC_BIT
	VirtualProtect( mbi.BaseAddress, mbi.RegionSize, mbi.Protect, &mbi.Protect );
ASM_STATIC_BYTE
	FlushInstructionCache( GetCurrentProcess( ), ( void* )pvAddress, stLen );
ASM_STATIC_BYTE
VM_END
ASM_STATIC_BYTE
}

void cTools::WriteOpCode( void* pvAddress, void* pvBuffer, int len )
{
ASM_STATIC_BIT
VM_START
ASM_STATIC_BIT
	if( *(BYTE*)pvAddress == *(BYTE*)pvBuffer )
		goto Skip;
ASM_STATIC_BIT
	this->MemCopy_s( pvAddress, pvBuffer, ( size_t )len );
ASM_STATIC_BYTE
Skip:
VM_END
}
// 
// void cTools::HideModule( HINSTANCE hModule )
// {
// 	DWORD dwPEB_LDR_DATA = 0;
// 
// 	_asm
// 	{
// 		pushad;
// 		pushfd;
// 		mov eax, fs:[30h]					// PEB
// 		mov eax, [eax+0Ch]					// PEB->ProcessModuleInfo
// 		mov dwPEB_LDR_DATA, eax				// Save ProcessModuleInfo
// 
// InLoadOrderModuleList:
// 		mov esi, [eax+0Ch]					// ProcessModuleInfo->InLoadOrderModuleList[FORWARD]
// 		mov edx, [eax+10h]					//  ProcessModuleInfo->InLoadOrderModuleList[BACKWARD]
// 
// LoopInLoadOrderModuleList: 
// 		lodsd								//  Load First Module
// 		mov esi, eax		    			//  ESI points to Next Module
// 		mov ecx, [eax+18h]		    		//  LDR_MODULE->BaseAddress
// 		cmp ecx, hModule		    		//  Is it Our Module ?
// 		jne SkipA		    		    	//  If Not, Next Please (@f jumps to nearest Unamed Lable @@:)
// 		mov ebx, [eax]						//  [FORWARD] Module 
// 		mov ecx, [eax+4]    		    	//  [BACKWARD] Module
// 		mov [ecx], ebx						//  Previous Module's [FORWARD] Notation, Points to us, Replace it with, Module++
// 		mov [ebx+4], ecx					//  Next Modules, [BACKWARD] Notation, Points to us, Replace it with, Module--
// 		jmp InMemoryOrderModuleList			//  Hidden, so Move onto Next Set
// SkipA:
// 		cmp edx, esi						//  Reached End of Modules ?
// 		jne LoopInLoadOrderModuleList		//  If Not, Re Loop
// 
// InMemoryOrderModuleList:
// 		mov eax, dwPEB_LDR_DATA				//  PEB->ProcessModuleInfo
// 		mov esi, [eax+14h]					//  ProcessModuleInfo->InMemoryOrderModuleList[START]
// 		mov edx, [eax+18h]					//  ProcessModuleInfo->InMemoryOrderModuleList[FINISH]
// 
// LoopInMemoryOrderModuleList: 
// 		lodsd
// 		mov esi, eax
// 		mov ecx, [eax+10h]
// 		cmp ecx, hModule
// 		jne SkipB
// 		mov ebx, [eax] 
// 		mov ecx, [eax+4]
// 		mov [ecx], ebx
// 		mov [ebx+4], ecx
// 		jmp InInitializationOrderModuleList
// SkipB:
// 		cmp edx, esi
// 		jne LoopInMemoryOrderModuleList
// 
// InInitializationOrderModuleList:
// 		mov eax, dwPEB_LDR_DATA				     //  PEB->ProcessModuleInfo
// 		mov esi, [eax+1Ch]						 //  ProcessModuleInfo->InInitializationOrderModuleList[START]
// 		mov edx, [eax+20h]						 //  ProcessModuleInfo->InInitializationOrderModuleList[FINISH]
// 
// LoopInInitializationOrderModuleList: 
// 		lodsd
// 		mov esi, eax		
// 		mov ecx, [eax+08h]
// 		cmp ecx, hModule		
// 		jne SkipC
// 		mov ebx, [eax] 
// 		mov ecx, [eax+4]
// 		mov [ecx], ebx
// 		mov [ebx+4], ecx
// 		jmp Finished
// SkipC:
// 		cmp edx, esi
// 		jne LoopInInitializationOrderModuleList
// 
// Finished:
// 		popfd;
// 		popad;
// 	}
// }
mmz how can i get a Static Close handle for int i = 0; i <= iWindowTextLength; i++
if HWND TempWnd = GetForegroundWindow();
Thx men
here my menu file too
Code:
#include "menu.h"

cMenu* menu  =  NULL;

char *Speed[5]	    = { "Off", "Legit", "Fast", "Faster", "Super Fast" };
char *RKILL[5]		= { "Off", "Head", "Chest", "Neck", "Pelvis" };
char *Bones[4]		= { "Head", "Chest", "Neck", "Pelvis" };
char *LinesEsp[4]	= { "Off", "Bottom", "Middle", "Top" };
char *AimSpots[2]	= { "Distance", "Crosshair" };
char *Esp[3]	    = { "Off", "Enemy", "All" };
char *FOV[2]		= { "180",	"360" };
char *OnOff[2]		= { "Off", "On" };
char *NA			= "NA";

//char *Speed[5]	    = { "0", "1", "2", "3", "4" };
//char *LinesEsp[4]	= { "0", "1", "2", "3" };
//char *Bones[4]		= { "0", "1", "2", "3" };
//char *AimSpots[2]	= { "1", "2" };
//char *Esp[3]	    = { "0", "1", "2" };
//char *OnOff[2]		= { "0", "1" };
//char *Telekill[3]   = { "0", "1", "2" };
//char *FOV[2]		= { "180",	"360" };

//Make a new Hotkey Method

char *Keys[166] =
{
	"OFF", "LBUTTON", "RBUTTON", "CANCEL", "MBUTTON", "MOUSE3", "MOUSE4", NA, "BACK", "TAB", 
	NA, NA, "CLEAR", "ENTER", NA, NA, "SHIFT", "CONTROL", "ALT", "PAUSE", 
	"CAPITAL", "KANA", NA, "JUNJA", "FINAL", "HANJA", NA, "ESCAPE", "CONVERT", "NOCONVERT", 
	"ACCEPT", "MODECHANGE", "SPACE", "PRIOR", "NEXT", "END", "HOME", "LEFT", "UP", "RIGHT",
	"DOWN", "SELECT", "PRINT", "EXECUTE", "SNAPSHOT", "INSERT", "DELETE", "HELP", "0", "1",
	"2", "3", "4", "5", "6", "7", "8", "9", NA, NA,
	NA, NA, NA, NA, NA, "A", "B", "C", "D", "E", 
	"F", "G", "H", "I", "J", "K", "L", "M", "N", "O", 
	"P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y",
	"Z", "LWIN", "RWIN", "APPS", NA, "SLEEP", "NUMPAD0", "NUMPAD1", "NUMPAD2", "NUMPAD3",
	"NUMPAD4", "NUMPAD5", "NUMPAD6", "NUMPAD7", "NUMPAD8", "NUMPAD9", "MULTIPLY", "ADD", "SEPARATOR", "SUBTRACT", 
	"DECIMAL", "DIVIDE", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", 
	"F9", "F10", "F11", "F12", "F13", "F14", "F15", "F16", "F17", "F18",
	"F19", "F20", "F21", "F22", "F23", "F24", NA, NA, NA, NA,
	NA, NA, NA, NA, "NUMLOCK", "SCROLL", NA, NA, NA, NA,
	NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
	"LSHIFT", "RSHIFT", "LCONTROL", "RCONTROL", "LALT", "RALT"
};


int cMenu::CheckTabs( float x, float y, float w, float h )
{
	if( Cur.x > x && Cur.x < x+w && Cur.y > y && Cur.y < y+h )
	{
		if( GetAsyncKeyState( VK_LBUTTON ) < 0 )
		{
			for( int i2 = 0; i2 < mSet.MaxTabs; i2++ )
			{
				if( i2 != mSet.TotalTabs )
					Tab[i2].OnOff = false;
			}
			return 1;
		}
		return 2;
	}
	return 0;
}

int cMenu::GlobalCheck( int i, float x, float y, float w, float h, int speed, CTimer* timerList )
{
	if( Cur.x > x && Cur.x < x+w && Cur.y > y && Cur.y < y+h  )
	{
		if( GetAsyncKeyState( VK_LBUTTON ) < 0 )
		{
			if( !timerList[i]****nning() )
			{
				timerList[i].Start( (float)speed );
				return 1;
			}
		}
		return 2;
	}
	return 0;
}

// < OPTION > Cycle'r aka ArrowList ?
int cMenu::ArrowList( int i, float x, float y, int max, char** Array, char *Title, int Speed )
{
	int Check1 = GlobalCheck( i, x, y - 1, 18, 18, Speed, AreaCheck ); 
	int Check2 = GlobalCheck(  i, x + 119, y, 18, 18, Speed, AreaCheck );

	if( Arr[i].Value == 0 )
		if( Check1 == 1 )
			Arr[i].Value = max + 1;

	if( Arr[i].Value == max )
		if( Check2 == 1 )
			Arr[i].Value = -1;

	if( Arr[i].Value > 0 )
		if( Check1 == 1 )
			Arr[i].Value -= 1;

	if( Arr[i].Value < max )
		if( Check2 == 1 )
			Arr[i].Value += 1;

	DWORD dwArrowColor1 = 0xFFFFFFFF;
	DWORD dwArrowColor2 = 0xFFFFFFFF;

	if( Check1 == 2 )
		dwArrowColor1 = DarkOutline;
	else if( Check2 == 2 )
		dwArrowColor2 = DarkOutline;

	//////////////////////////////////////////////////////////////////////////
	//Left Button
	//////////////////////////////////////////////////////////////////////////
	d3d->DrawBorder( x, y, 15, 15, LightOutline, DarkOutline );
	engine->RenderString( engine->GetMenuFont(), x + 4, y + 1, main->ToWideString( STRING_DECREASE ), dwArrowColor1 );

	//////////////////////////////////////////////////////////////////////////
	//Right Button
	//////////////////////////////////////////////////////////////////////////
	d3d->DrawBorder( x + 121, y, 15, 15, LightOutline, DarkOutline );
	engine->RenderString( engine->GetMenuFont(), x + 125, y + 1, main->ToWideString( STRING_INCREASE ), dwArrowColor2 );

	//////////////////////////////////////////////////////////////////////////
	//Print Name From Array
	//////////////////////////////////////////////////////////////////////////

	char Final[64];

	//Display List of Chars
	if( Array != NULL )
	{
		if( Title == NULL )
		{
			engine->RenderString( engine->GetMenuFont(), x + 48, y + 2, main->ToWideString( Array[Arr[i].Value] ), White );
		}
		else
		{
			sprintf( Final, STRING_SS, Title, Array[Arr[i].Value] );
			engine->RenderString( engine->GetSmallFont(), x + 21, y + 2, main->ToWideString( Final ), White );
		}
	}
	else //Display INT
	{
		sprintf( Final, STRING_SI, Title, Arr[i].Value );
		engine->RenderString( engine->GetSmallFont(), x + 21, y + 2, main->ToWideString( Final ), White );
	}

	return Arr[i].Value;
}

void cMenu::DrawCheckBox( int i, char *Text, float x, float y )
{
	cBox[i].name = Text;

	int Check = GlobalCheck( i, x, y - 1, 145, 17, 170, ClickCheck );

	if( Check == 1 )
		cBox[i].OnOff =! cBox[i].OnOff;

	if( cBox[i].OnOff )
	{
		d3d->DrawBorder( x, y, 15, 15, DarkOutline, LightOutline );
		d3d->DrawCheck( 0xFFFFFFFF, x + 4, y + 7 );
	}
	else
		d3d->DrawBorder( x, y, 15, 15, LightOutline, DarkOutline );

	DWORD TextColor = White;

	if( Check == 2 )
		TextColor = DarkOutline;

	engine->RenderString( engine->GetSmallFont(), x + 22, y + 2, main->ToWideString( Text ), TextColor );
}

void cMenu::DrawTabButton( char *Text, float w, float h, float x, float y )
{
	Tab[mSet.TotalTabs].name = Text;

	if( CheckTabs( x, y, w, h ) == 1 )
		if( Tab[mSet.TotalTabs].OnOff != true )		
			Tab[mSet.TotalTabs].OnOff = true;	

	if( Tab[mSet.TotalTabs].OnOff )
		d3d->DrawBorderWithFill( x, y, w, h, DarkOutline, LightOutline, LightAvacado );
	else
		d3d->DrawBorderWithFill( x, y, w, h, LightOutline, DarkOutline, LightAvacado );

	float TextX = strlen( Text ) * 2.5f;

	engine->RenderString( engine->GetMenuFont(), ( x + 28 ) - (int)TextX, y + 3, main->ToWideString( Text ), White );

	if( !Tab[mSet.TotalTabs].OnOff )
		if( CheckTabs( x, y, w, h ) == 1 || CheckTabs( x, y, w, h ) == 2 )
			engine->RenderString( engine->GetMenuFont(), ( x + 28 ) - (int)TextX, y + 3, main->ToWideString( Text ), DarkOutline );

	mSet.TotalTabs++;
}

void cMenu::RenderMenu( float x, float y, float w, float h )
{
	if( !d3d->pDevice )
		return;

	if( GetAsyncKeyState( iMenuKey ) &1 )
		mSet.Show = !mSet.Show;

	if( mSet.Show )
	{
		mSet.TotalTabs = 0;

		//////////////////////////////Main Gui Design/////////////////////////////
		//Outline
		d3d->DrawBorder( x - 1, y - 1, w + 1, h + 1, LightOutline, DarkOutline );

		//////////////////////////////////////////////////////////////////////////
		//Outside Border
		d3d->DrawFilledRectangle( x, y, w, h, LightAvacado );

		//////////////////////////////////////////////////////////////////////////
		//Title Text
		//engine->RenderString( engine->GetMenuFont(), ( w / 2 ) - 21, y + 4, main->ToWideString( STRING_MENU_TITLE ), OffYellow );
		engine->RenderString( engine->GetSmallFont(), ( w / 2 ) - 21, y + 4, main->ToWideString( STRING_MENU_TITLE ), 0xFFFFFFFF );

		//////////////////////////////////////////////////////////////////////////
		//Inside Outline
		d3d->DrawBorder( x + 7, y + 21, w - 16, h - 30, DarkOutline, LightOutline );

		//////////////////////////////////////////////////////////////////////////
		//Inside DarkerFill
		d3d->DrawFilledRectangle( x + 8, y + 22, w - 17, h - 31, DarkInsideFill );

		//////////////////////////////////////////////////////////////////////////
		//Option Outline
		d3d->DrawBorder( x + 22, y + 51, w - 46, h - 71, DarkOutline, LightOutline );

		//////////////////////////////////////////////////////////////////////////
		//Option Light Fill
		d3d->DrawFilledRectangle( x + 23, y + 52, w - 47, h - 72, LightAvacado );

		//Unlock Cursor
		//*(int*)ADDR_CURSORCENTER = 0;
		engine->GetLTBase()->RunConsoleCommand( STRING_MENU_CCENTER );
		
		//GetCursor Pos
		GetCursorPos( &Cur );

		//////////////////////////////////////////////////////////////////////////
		////////////////////////////// Tab Handling   ////////////////////////////
		//////////////////////////////////////////////////////////////////////////

		DrawTabButton( STRING_MENU_TAB_AIMBOT,	62, 20, x + 22, y + 26 );
		DrawTabButton( STRING_MENU_TAB_ESP,		62, 20, x + 89, y + 26 );
		DrawTabButton( STRING_MENU_TAB_MEMORY,	62, 20, x + 157, y + 26 );
		DrawTabButton( STRING_MENU_TAB_OTHERS,	62, 20, x + 225, y + 26 );
		DrawTabButton( STRING_MENU_TAB_CONFIG,	63, 20, x + 293, y + 26 );

		float LeftButtonX = x + 40;
		float RightButtonX = LeftButtonX + 160;

		//////////////////////////////////////////////////////////////////////////
		//Aimbot Settings
		if( Tab[0].OnOff )
		{
			//////////////////////////////////////////////////////////////////////////
			//Left Side
			DrawOptionGrouping( LeftButtonX - 11, y + 60, h - 90, STRING_MENU_GROUPING_AIMBOT, -2 );

			DrawCheckBox( 4, STRING_MENU_CBOX_ACTIVATEBOT,  LeftButtonX, y + 70 );
			DrawCheckBox( 1, STRING_MENU_CBOX_AUTOAIM,		LeftButtonX, y + 90 );
			DrawCheckBox( 2, STRING_MENU_CBOX_AUTOFIRE,		LeftButtonX, y + 110 );
			DrawCheckBox( 3, STRING_MENU_CBOX_VISIBLE_ONLY,	LeftButtonX, y + 130 );
			DrawCheckBox( 6, STRING_MENU_CBOX_AIM_AT_TEAM,	LeftButtonX, y + 150 );
			DrawCheckBox( 5, STRING_MENU_CBOX_SPAWN_CHECK,  LeftButtonX, y + 170 );

			//////////////////////////////////////////////////////////////////////////
			//Right Side
			DrawOptionGrouping( RightButtonX - 7, y + 60, h - 90, STRING_MENU_GROUPING_AIMCONFIG, -2 );

			AimBone = ArrowList( 0, RightButtonX + 3, y + 70, 3,  Bones,    STRING_MENU_CBOX_AIMBONE, 170 );
			AimMode = ArrowList( 1, RightButtonX + 3, y + 90, 1,  AimSpots, STRING_MENU_CBOX_AIMMODE, 170 );
			MaxFov  = ArrowList( 2, RightButtonX + 3, y + 110, 1, FOV,	    STRING_MENU_CBOX_MAXFOV,  170 );

			DrawCheckBox( 29, STRING_MENU_CBOX_AUTOSWITCH,	  RightButtonX + 3,	y + 130 );
			DrawCheckBox( 54, STRING_MENU_CBOX_FPSCORRECTION, RightButtonX + 3, y + 150 );
			DrawCheckBox( 56, STRING_MENU_CBOX_PREDICTION,	  RightButtonX + 3, y + 170 );
		}

		//////////////////////////////////////////////////////////////////////////
		//Esp Settings
		if( Tab[1].OnOff )
		{
			//////////////////////////////////////////////////////////////////////////
			//Left Side
			DrawOptionGrouping( LeftButtonX - 11, y + 60, h - 90, STRING_MENU_GROUPING_PLAYER, 4 );

			NameEsp		= ArrowList( 3, LeftButtonX, y + 70,  2, Esp,	   STRING_MENU_CBOX_NAME,	  170 );
			DistanceEsp	= ArrowList( 4, LeftButtonX, y + 90,  2, Esp,	   STRING_MENU_CBOX_DISTANCE, 170 );
			HealthBars	= ArrowList( 5, LeftButtonX, y + 110, 2, Esp,	   STRING_MENU_CBOX_HEALTH,	  170 );
			BoxEsp		= ArrowList( 6, LeftButtonX, y + 130, 2, Esp,	   STRING_MENU_CBOX_BOX,	  170 );
			LineEsp		= ArrowList( 7, LeftButtonX, y + 150, 3, LinesEsp, STRING_MENU_CBOX_LINES,	  170 );

			DrawCheckBox( 27, STRING_MENU_CBOX_VIS_CHECK,	LeftButtonX,  y + 170 );
			DrawCheckBox( 24, STRING_MENU_CBOX_BEHINDYOU,	LeftButtonX,  y + 190 );
			DrawCheckBox( 25, STRING_MENU_CBOX_VISBILEWARN, LeftButtonX,  y + 210 );
			DrawCheckBox( 28, STRING_MENU_CBOX_NPC,		    LeftButtonX,  y + 230 );

			//////////////////////////////////////////////////////////////////////////
			//Right Side
			DrawOptionGrouping( RightButtonX - 7, y + 60, h - 90, STRING_MENU_GROUPING_OBJECT, 4 );

			DrawCheckBox( 18, STRING_MENU_CBOX_EXPLOSIVE_NAME,	RightButtonX + 3, y + 70 );
			DrawCheckBox( 19, STRING_MENU_CBOX_EXP_OWNER,		RightButtonX + 3, y + 90 );
			DrawCheckBox( 20, STRING_MENU_CBOX_EXP_DISTANCE,	RightButtonX + 3, y + 110 );
			DrawCheckBox( 21, STRING_MENU_CBOX_EXP_WARNING,		RightButtonX + 3, y + 130 );
			DrawCheckBox( 22, STRING_MENU_CBOX_PICKUP,			RightButtonX + 3, y + 150 );
			DrawCheckBox( 23, STRING_MENU_CBOX_PICKUP_DISTANCE,	RightButtonX + 3, y + 170 );
		}

		//////////////////////////////////////////////////////////////////////////
		//Memory Settings
		if( Tab[2].OnOff )
		{		
			//////////////////////////////////////////////////////////////////////////
			//Left Side Memory Hacks
			DrawOptionGrouping( LeftButtonX - 11, y + 60, h - 90, STRING_MENU_GROUPING_MEM, 3 );

			DrawCheckBox( 0,  STRING_MENU_CBOX_2DRADAR,		  LeftButtonX, y + 70 );
			DrawCheckBox( 48, STRING_MENU_CBOX_STATS,		  LeftButtonX, y + 90 );
			DrawCheckBox( 58, STRING_MENU_CBOX_DRAWFPS,		  LeftButtonX, y + 110 );
			DrawCheckBox( 50, STRING_MENU_CBOX_UNLIMITEDSTAM, LeftButtonX, y + 130 );
			DrawCheckBox( 45, STRING_MENU_CBOX_CHAMS,		  LeftButtonX, y + 150 );
			DrawCheckBox( 12, STRING_MENU_CBOX_EAGLE,		  LeftButtonX, y + 170 );
			DrawCheckBox( 14, STRING_MENU_CBOX_FLY,			  LeftButtonX, y + 190 );

			//////////////////////////////////////////////////////////////////////////
			//Right Side Rage Hacks
			DrawOptionGrouping( RightButtonX - 7, y + 60, h - 90, STRING_MENU_GROUPING_RAGE, 8 );

			DrawCheckBox( 57, STRING_MENU_CBOX_SUPERBULLETS,  RightButtonX + 3, y + 70 );
			DrawCheckBox( 44, STRING_MENU_CBOX_WEAPONRANGE,	  RightButtonX + 3,	y + 90 );
			DrawCheckBox( 39, STRING_MENU_CBOX_SERVERCRASHER, RightButtonX + 3, y + 110 );
			DrawCheckBox( 42, STRING_MENU_CBOX_SPAMMER,		  RightButtonX + 3, y + 130 );
			DrawCheckBox( 59, STRING_MENU_CBOX_TELEKILL,	  RightButtonX + 3, y + 150 );
			DrawCheckBox( 13, STRING_MENU_CBOX_ADISTANCE,	  RightButtonX + 3, y + 170 );

			iSpeed	    = ArrowList( 11, RightButtonX + 3, y + 190, 4, Speed, STRING_MENU_CBOX_SPEED,  170 );
			iRemoteKill = ArrowList( 12, RightButtonX + 3, y + 210, 1, RKILL, STRING_MENU_ARRR_REMOTEKILL, 170 ); //Limited to 1
		}

		//////////////////////////////////////////////////////////////////////////
		//Other
		if( Tab[3].OnOff )
		{
			//////////////////////////////////////////////////////////////////////////
			//Left Side Removals
			DrawOptionGrouping( LeftButtonX - 11, y + 60, h - 90, STRING_MENU_GROUPING_REMOVALS, -2 );
				
			DrawCheckBox( 30, STRING_MENU_CBOX_AIMCORRECTION, LeftButtonX, y + 70 );
			DrawCheckBox( 31, STRING_MENU_CBOX_SPREAD,		  LeftButtonX, y + 90 );
			DrawCheckBox( 32, STRING_MENU_CBOX_NOFOG,	      LeftButtonX, y + 110 );
			DrawCheckBox( 33, STRING_MENU_CBOX_NOCAMDAM,	  LeftButtonX, y + 130 );
			//DrawCheckBox( 34, STRING_MENU_CBOX_NOSFX,		  LeftButtonX, y + 150 );
			DrawCheckBox( 35, STRING_MENU_CBOX_NOGUN,	      LeftButtonX, y + 150 );
			//DrawCheckBox( 37, no sway seperate,			  LeftButtonX, y + 190 );

			//////////////////////////////////////////////////////////////////////////
			//Left Side MISC
			DrawOptionGrouping( RightButtonX - 7, y + 60, h - 90, STRING_MENU_GROUPING_MISC, 9 );

			DrawCheckBox( 7, STRING_MENU_CBOX_HULK,			RightButtonX + 3, y + 70 );
			DrawCheckBox( 8, STRING_MENU_CBOX_WINDOWED,		RightButtonX + 3, y + 90 );
			DrawCheckBox( 9, STRING_MENU_CBOX_TRACERS,		RightButtonX + 3, y + 110 );
			DrawCheckBox( 10, STRING_MENU_CBOX_FULLBRIGHT,	RightButtonX + 3, y + 130 );
			//DrawCheckBox( 11, STRING_MENU_CBOX_CROSSHAIR,	RightButtonX + 3, y + 150 );
		}

		//////////////////////////////////////////////////////////////////////////
		//Config Settings
		if( Tab[4].OnOff )
		{
			//////////////////////////////////////////////////////////////////////////
			//Left Side
			DrawOptionGrouping( LeftButtonX - 11, y + 60, h - 90, STRING_MENU_GROUPING_CONFIG, 10 );

			iAimKey		= ArrowList( 8, LeftButtonX, y + 70, 165, Keys, STRING_MENU_CBOX_AIMKEY,	  170 );
			iMenuKey	= ArrowList( 9, LeftButtonX, y + 90, 165, Keys, STRING_MENU_CBOX_MENUKEY,	  170 );
			iTeleKey	= ArrowList( 10, LeftButtonX, y + 110, 165, Keys, STRING_MENU_CBOX_TELEKEY,	  170 );
		}

		if( !LockView )
		{
			Pitch = engine->GetPlayerMgr()->Pitch;
			Yaw = engine->GetPlayerMgr()->Yaw;

			LockView = true;
		}

		engine->GetPlayerMgr()->Pitch = Pitch;
		engine->GetPlayerMgr()->Yaw = Yaw;

		d3d->DrawMouse( White, Black );
	}
	else if( !mSet.Show )
		LockView = false;
}

void cMenu::DrawGuiBox( float x, float y, float w, float h, char *Text )
{
	//Outline
	d3d->DrawBorder( x - 1, y - 1, w + 1, h + 1, LightOutline, DarkOutline );

	//Outside Border
	d3d->DrawFilledRectangle( x, y, w, h, LightAvacado );

	//Title Text
	engine->RenderString( engine->GetMenuFont(), x + ( w / 2 ) - strlen( Text ) * 2.5, y + 4, main->ToWideString( Text ), 0xFFFFFFFF );

	//Inside Outline
	d3d->DrawBorder( x + 7, y + 21, w - 16, h - 30, DarkOutline, LightOutline );

	//Inside DarkerFill
	d3d->DrawFilledRectangle( x + 8, y + 22, w - 17, h - 31, DarkInsideFill );
}

void cMenu::DrawOptionGrouping( float x, float y, float h, char *Text, int TextXOffset )
{
	//Left Top Horizontal  
	d3d->DrawFilledRectangle( x, y, 30, 2, DarkInsideFill );

	//Left Vertical
	d3d->DrawFilledRectangle( x, y, 2, h, DarkInsideFill );

	//Right Top Horizontal 
	d3d->DrawFilledRectangle( x + 127, y, 27, 2, DarkInsideFill );

	//Bottom
	d3d->DrawFilledRectangle( x, y + h, 157, 2, DarkInsideFill );

	d3d->DrawFilledRectangle( x + 154, y, 2, h, DarkInsideFill );

	engine->RenderString( engine->GetSmallFont(), ( x + 44 ) + TextXOffset, y - 7, main->ToWideString( Text ), 0xFFFFFFFF );
}
I bet you $10 someone who has this base will start a VIP site by the end of next week.

CA will be the new WarRock; people will start their own VIP site all having the same base.
Quote Originally Posted by Synns View Post
I bet you $10 someone who has this base will start a VIP site by the end of next week.

CA will be the new WarRock; people will start their own VIP site all having the same base.
Need new game

Too many seepluspluses here.
Quote Originally Posted by Crash View Post
Need new game

Too many seepluspluses here.
how about MAT?
Quote Originally Posted by GodHack2 View Post
how about MAT?
wat........
Oh, nice code.

Where are you seeplusplus? Are you in ban country?
Lmfao, crash this isnt urs, give credits.


why the fuck would you claim this as urs?
Quote Originally Posted by flayer669 View Post
Lmfao, crash this isnt urs, give credits.


why the fuck would you claim this as urs?
100% MINE I MADE THIS DEFINITELY MINE MINE MINE MINE NOBODY ELSE MINE.
Quote Originally Posted by Crash View Post
100% MINE I MADE THIS DEFINITELY MINE MINE MINE MINE NOBODY ELSE MINE.
I can confirm this, it really is his.
No it really is, Gellins
Luls........
Posts 1–15 of 45 · Page 1 of 3
This thread is closed for replies.

Tags for this Thread

None

Talk with us