Originally Posted by
eXaLtIc™
Hey codedemon where in your D3d base do you put the hacks in.
Oh and where can i put the ltcclient i cant find it kuz when i inject this it dc's me.?
[php]
//================================================== ================
//CodeDemon's D3D Menu Base v1
//
//Credits: MarkoJ, Blubsi, Crash, IcySeal, mmbob, void, Blood, ac1d_bUrn,
//Gellin, Alkatraz, Hans211, Whit.
//
//This base is mostly ment for educational purposes since it was
//mainly coded for me to get better however, it can be used for D3D9 game hacks.
//Expect updates for this base in the future!
//================================================== ================
#include "DemonMenuClass.h"
oReset pReset;
oEndScene pEndScene;
DemonMenu dMenu;
LPDIRECT3DDEVICE9 g_pDevice = 0;
int xFontOffSet = 15;
int hackopt1;
int MenuHeight = 10;
int show=1;
int b = 0;
//================================================== ================
//Hack Vars
int hack1 = 0;
int hack2 = 0;
int hack3 = 0;
int hack4 = 0;
int hack5 = 0;
//================================================== ================
void DemonMenu::CreateItem(int index, char * title, int *hack, int hackmaxval,int hacktype)
{
hackcount++;
HACKITEM[hackcount].index = index;
HACKITEM[hackcount].hack = hack;
HACKITEM[hackcount].hackmaxval = hackmaxval;
HACKITEM[hackcount].hacktype = hacktype;
PrintText(title, xFontOffSet, index*15,HACKITEM[hackcount].HCOLOR,pFont); //If you want to move the menu opts down do something like this (index*15)+20 and to move it left or right just add/subtract from font offset.
}
void DemonMenu::BuildMenu(char * menuname, int x, int y, int h, int w, DWORD TITLECOL, DWORD BACKCOLOR, DWORD BORDERCOLOR, LPDIRECT3DDEVICE9 pDevice)
{
if(GetAsyncKeyState(VK_INSERT)&1)show=(!show);
if(!show) {
DrawBox(0,0, w, 20, BACKCOLOR, BORDERCOLOR, pDevice);
PrintText(menuname, 5, 2, TITLECOL, pFont);
return;
}
DrawBox(x,y, w, h, BACKCOLOR, BORDERCOLOR, pDevice);
PrintText(menuname, x+10, y+2, TITLECOL, pFont);
CreateItem(1,"Hack 1", &hack1);
CreateItem(2,"Hack 2", &hack2);
CreateItem(3,"Hack 3", &hack3);
CreateItem(4,"Hack 4", &hack4);
CreateItem(5,"Hack 5", &hack5);
RenderMenu();
}
void DemonMenu::RenderMenu()
{
if(GetAsyncKeyState(VK_DOWN)&1)
selector++;
if(GetAsyncKeyState(VK_UP)&1)
if(selector > 1)
selector--;
if (GetAsyncKeyState(VK_RIGHT)<0){
for(int i=0;i < (hackcount+1);i++){
if(selector == HACKITEM[i].index){
if(*HACKITEM[i].hack < HACKITEM[i].hackmaxval)
*HACKITEM[i].hack += 1;
//else
//*HACKITEM[i].hack = HACKITEM[i].hackmaxval;
// Sleep(200);
}
}
}
if (GetAsyncKeyState(VK_LEFT)<0){
for(int i=0;i < (hackcount+1);i++){
if(selector == HACKITEM[i].index){
*HACKITEM[i].hack = 0;
Sleep(200);
}
}
}
for(int i=0;i < (hackcount+1);i++){
if(selector == HACKITEM[i].index)
HACKITEM[i].HCOLOR = GREEN;
else
HACKITEM[i].HCOLOR = RED;
}
for(int i=1; i<(hackcount+1); i++){
if(HACKITEM[i].hacktype == 0){
if(*HACKITEM[i].hack == 1) //to move the opts down do something like this (HACKITEM[i].index*15)+20
PrintText("On", xFontOffSet+100, HACKITEM[i].index*15,YELLOW,pFont);
else
PrintText("Off", xFontOffSet+100, HACKITEM[i].index*15,RED,pFont);
}
}
/*for(int i=1; i<(hackcount+1); i++){
if(HACKITEM[i].hackmaxval >1 && HACKITEM[i].hacktype == 1){
sprintf_s(hackrval, "%i", *HACKITEM[i].hack);
PrintText(hackrval, xFontOffSet+100, HACKITEM[i].index*15,RED,pFont);
}
}*/ // Just something I was messing around with.
//==============================================
//==============================================
if(selector < 1)
selector = 1;
if(selector > hackcount)
selector = 1;
hackcount = 0;
}
void TestThread()
{
if( hack2 == 1)
PrintText("Made by eXaLtIc™", 30, 200, GREEN, dMenu.pFont);
else
PrintText("Made by eXaLtIc™", 30, 200, RED, dMenu.pFont);
}
void ReFont(LPDIRECT3DDEVICE9 pDevice) // Credits for the ReFont function go to mmbob
{
if (g_pDevice != pDevice)
{
g_pDevice = pDevice;
try
{
if (dMenu.pFont != 0)
dMenu.pFont->Release();
} catch (...) {}
dMenu.pFont = 0;
D3DXCreateFontA(pDevice, 14, 0, FW_BOLD, 0, 0, DEFAULT_CHARSET, OUT_TT_ONLY_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial", &dMenu.pFont );
}
}
HRESULT WINAPI Reset(IDirect3DDevice9* pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters )
{
dMenu.pFont->OnLostDevice();
HRESULT hRet = pReset(pDevice, pPresentationParameters);
dMenu.pFont->OnResetDevice();
return hRet;
}
HRESULT WINAPI EndScene(LPDIRECT3DDEVICE9 pDevice)
{
ReFont(pDevice);
dMenu.BuildMenu("eXaLtIc™'s Menu Hack v1.0",0,0,180,200,RED,BLACK,GREEN,pDevice);
TestThread();
return pEndScene(pDevice);
}
int D3Dinit(void) //Just a hook I used for testing, got it from Marko I believe.
{
DWORD hD3D, adr, *vtbl;
// wait for the d3dx dll
hD3D=0;
do {
hD3D = (DWORD)GetModuleHandle("d3d9.dll");
Sleep(10);
} while(!hD3D);
adr = FindPattern(hD3D, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x 00\x00\x89\x86", "xx????xx????xx");
if (adr) {
memcpy(&vtbl,(void *)(adr+2),4);
pReset = (oReset) DetourFunction((PBYTE)vtbl[16] , (PBYTE)Reset ,5);
pEndScene = (oEndScene) DetourFunction((PBYTE)vtbl[42], (PBYTE)EndScene,5);
}
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
MessageBoxA(0, "eXaLtIc™", "Injected", 0);
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)D3Dinit, NULL, NULL, NULL);
}
if( dwReason == DLL_PROCESS_DETACH)
{
dMenu.pFont->Release();
}
return TRUE;
}
[/PHP]