#include "Base.h"
#include "Menu.h"
//Menu Position
int menux = 20;
int menuy = 200;
//Hack Variables
int test1 = 0;
int test2 = 0;
int test3 = 0;
int test4 = 0;
int test5 = 0;
int test6 = 0;
//Menu Groups
int misc = 0;
int removals = 0;
int visual = 0;
void cMenu::RenderMenu(void)
{
AddItem(" [ Visuals ]", Opt_Folder, &visual, 2, MENUFOLDER);
if(visual){
AddItem("nxchams" , Opt_on_off , &test1 , 2, MENUITEM);//
AddItem("Wireframe" , Opt_on_off , &test2 , 2 , MENUITEM);//
}
AddItem(" [ Removals ]", Opt_Folder, &removals, 2, MENUFOLDER);
if (removals) {
AddItem("Removal One" , Opt_on_off , &test3 , 2, MENUITEM);//
AddItem("Removal Two" , Opt_on_off , &test4 , 2, MENUITEM);//
}
AddItem(" [ Misc ]", Opt_Folder, &misc, 2, MENUFOLDER);
if(misc){
AddItem("OPK" , Opt_on_off , &test5 , 2, MENUITEM);//
AddItem("Remote TK" , Opt_on_off , &test6 , 2, MENUITEM);//
}
}
void __cdecl cBase::PushToConsole(const char* szCommand )
{
DWORD dwCShell = (DWORD)GetModuleHandleA("CShell.dll");
if( dwCShell != NULL )
{
DWORD *LTClient = ( DWORD* )( 0x377E7810 );
void* CONoff = ( void* )*( DWORD* )( *LTClient + 0x208 );
__asm
{
push szCommand;
call CONoff;
add esp, 4;
}
}
}
void cBase::Update(void)
{
while(1)
{
if("nxchams" > 0 )
{
this->PushToConsole("SkelModelStencil 1" );
} else {
this->PushToConsole("SkelModelStencil 0" );
}
Sleep(100);
}
}
void cBase::RenderFrame(LPDIRECT3DDEVICE9 pDevice)
{
if(Directx.pFont == NULL)
D3DXCreateFontA(pDevice, 15, 0, FW_BOLD, 0, 0, DEFAULT_CHARSET, OUT_TT_ONLY_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial Black", &Directx.pFont );
if (Mmax==0) Menu.RenderMenu();
if(Mvisible){
//Do You Gui/Drawbox Here
}
Menu.MenuShow(menux,menuy,Directx.pFont);
Menu.MenuNav();
}
DWORD cBase::GetPointer(int index)
{
DWORD* devicePtr = ***(DWORD****)0x909EF8;
if( devicePtr == NULL )
return 0;
return devicePtr[index];
}
bool cBase::IsGameReadyForHook(void)
{
if( GetModuleHandle( "d3d9.dll" ) != NULL
&& GetModuleHandle( "ClientFX.fxd" ) != NULL
&& GetModuleHandle( "CShell.dll" ) != NULL )
return true;
return false;
}
DWORD WINAPI dwMainThread(LPVOID)
{
while ( !Base.IsGameReadyForHook() )
Sleep(iWaitTime);
Directx.Hook();
Base.Update();
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
#ifdef LOG
DeleteFile(LogPath);
#endif
CreateThread(NULL, NULL, dwMainThread, NULL, NULL, NULL);
}
return TRUE;
}