Dimedrol1536
17.08.2011, 22:27
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
На скринах видно мою проблему.
Menu.cpp#include "Stdafx.h"
#include "Menu.h"
#include "detours.h"
#include <windows.h>
BOOL CarregaFonte = false;
typedef HRESULT(WINAPI* BeginScene_)(LPDIRECT3DDEVICE9 pDevice);
BeginScene_ pBeginScene;
typedef HRESULT ( WINAPI* Reset_t )( LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters );
Reset_t pReset;
HRESULT WINAPI nBeginScene(LPDIRECT3DDEVICE9 pDevice)
{
_asm NOP;
HRESULT hRet = pBeginScene(pDevice);
if(!CarregaFonte) {
CarregaFonte=true;
D3DXCreateFont( pDevice, 14, 0, FW_NORMAL, 0, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[0]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 0, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[1]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 0, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[2]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[3]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[4]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[5]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[6]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[7]);
D3DXCreateFont( pDevice, 12, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[8]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[9]);
D3DXCreateFont( pDevice, 8, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[10]);
D3DXCreateFont( pDevice, 38, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[11]);
D3DXCreateFont( pDevice, 16, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[12]);
}
BaseJanela.BaseX = 10;
BaseJanela.BaseY = 150;
BaseJanela.BaseW = 150;
BaseJanela.BaseH = (30 * MENU_ITEM_MAX);
if(GetAsyncKeyState(VK_HOME)&1)
{
BaseJanela.Mostrar = !BaseJanela.Mostrar;
}
if(BaseJanela.Mostrar)
{
if(GetAsyncKeyState(VK_LEFT)&1)
{
setadireita = true;
}
else
setadireita = false;
if(GetAsyncKeyState(VK_RIGHT)&1)
{
setaesquerda = true;
}
else
setaesquerda = false;
MenuEspaco = BaseJanela.BaseH / MENU_ITEM_MAX;
if(GetAsyncKeyState(VK_DOWN)&1){MenuSelecionado +=1;}
if(GetAsyncKeyState(VK_UP)&1){MenuSelecionado -=1;}
if(setadireita && MenuSelecionado == 1){Item1 -=1;}
if(setaesquerda && MenuSelecionado == 1){Item1 +=1;}
if(setadireita && MenuSelecionado == 2){Item2 -=1;}
if(setaesquerda && MenuSelecionado == 2){Item2 +=1;}
if(setadireita && MenuSelecionado == 3){Item3 -=1;}
if(setaesquerda && MenuSelecionado == 3){Item3 +=1;}
if(setadireita && MenuSelecionado == 4){Item4 -=1;}
if(setaesquerda && MenuSelecionado == 4){Item4 +=1;}
if(setadireita && MenuSelecionado == 5){Item5 -=1;}
if(setaesquerda && MenuSelecionado == 5){Item5 +=1;}
if(setadireita && MenuSelecionado == 6){Item6 -=1;}
if(setaesquerda && MenuSelecionado == 6){Item6 +=1;}
if(setadireita && MenuSelecionado == 7){Item7 -=1;}
if(setaesquerda && MenuSelecionado == 7){Item7 +=1;}
if(MenuSelecionado > MENU_ITEM_MAX){MenuSelecionado = MENU_ITEM_MIN;}
if(MenuSelecionado < MENU_ITEM_MIN){MenuSelecionado = MENU_ITEM_MAX;}
if(Item1 > ITEM1_MAX)
Item1 = ITEM1_MIN;
if(Item1 < ITEM1_MIN)
Item1 = ITEM1_MAX;
if(Item2 > ITEM2_MAX)
Item2 = ITEM2_MIN;
if(Item2 < ITEM2_MIN)
Item2 = ITEM2_MAX;
if(Item3 > ITEM3_MAX)
Item3 = ITEM3_MIN;
if(Item3 < ITEM3_MIN)
Item3 = ITEM3_MAX;
if(Item4 > ITEM4_MAX)
Item4 = ITEM4_MIN;
if(Item4 < ITEM4_MIN)
Item4 = ITEM4_MAX;
if(Item5 > ITEM5_MAX)
Item5 = ITEM5_MIN;
if(Item5 < ITEM5_MIN)
Item5 = ITEM5_MAX;
if(Item6 > ITEM6_MAX)
Item6 = ITEM6_MIN;
if(Item6 < ITEM6_MIN)
Item6 = ITEM6_MAX;
if(Item7 > ITEM7_MAX)
Item7 = ITEM7_MIN;
if(Item7 < ITEM7_MIN)
Item7 = ITEM7_MAX;
Menu(pDevice,"Menu Universal ",BaseJanela.BaseX,BaseJanela.BaseY-50,210,300,0x44FFFFFF,0x44FFFFFF,0xFF848484,"V0.5");
Botao(pDevice,BaseJanela.BaseX + 8,BaseJanela.BaseY-MenuEspaco + (MenuSelecionado * MenuEspaco) ,4,20,0xFF2E2E2E,0xFF2E2E2E,0xFFFF0000,"");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 0),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Names ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 1),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Distance ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 2),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Heath ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 3),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Objects ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 4),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Weapon ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 5),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Box ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 6),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Barrel ESP");
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 0) , 0xFFFF9900, Fonte[12],"%d", Item1);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 1) , 0xFFFF9900, Fonte[12],"%d", Item2);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 2) , 0xFFFF9900, Fonte[12],"%d", Item3);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 3) , 0xFFFF9900, Fonte[12],"%d", Item4);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 4) , 0xFFFF9900, Fonte[12],"%d", Item5);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 5) , 0xFFFF9900, Fonte[12],"%d", Item6);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 6) , 0xFFFF9900, Fonte[12],"%d", Item7);
}
if(Item1==1)
//ON
if(Item1==0)
//OFF
//#define ITEM2_MAX 1 add ++
//if(Item==2) etc.....
return hRet;
}
HRESULT WINAPI nReset( LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters )
{
_asm NOP;
if( Fonte[12] )
Fonte[12]->OnLostDevice();
HRESULT hRet = pReset(pDevice, pPresentationParameters);
if(hRet == D3D_OK) {
if( Fonte[12] )
Fonte[12]->OnLostDevice();
}
return hRet;
}
int InicializarD3D(void)
{
DWORD D3DBase, ResultadoD3DBase, *vTable;
D3DBase=0;do {
D3DBase = (DWORD)GetModuleHandle("d3d9.dll");
Sleep(10);
}
while(!D3DBase);
ResultadoD3DBase = ProcurePattern(D3DBase, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x 89\x86", "xx????xx????xx");
if (ResultadoD3DBase) {
memcpy(&vTable,(void *)(ResultadoD3DBase+2),4);
pBeginScene = (BeginScene_)DetourFunction((PBYTE)vTable[42],(PBYTE)nBeginScene);
pReset = (Reset_t)DetourFunction((PBYTE)vTable[16],(PBYTE)nReset);
}
return 0;
}
BOOL WINAPI DllMain (HMODULE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
{
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE) InicializarD3D, NULL, NULL, NULL);
}
break;
}
return TRUE;
}
Menu.h#include "stdafx.h"
#include <d3dx9.h>
#include <vector>
#pragma comment(lib,"d3dx9.lib")
ID3DXFont * Fonte[13];
ID3DXFont * fonte;
int MenuSelecionado = 1;
bool setadireita;
bool setaesquerda;
#define MENU_ITEM_MAX 7
#define MENU_ITEM_MIN 1
#define ITEM1_MAX 1
#define ITEM1_MIN 0
#define ITEM2_MAX 1
#define ITEM2_MIN 0
#define ITEM3_MAX 1
#define ITEM3_MIN 0
#define ITEM4_MAX 1
#define ITEM4_MIN 0
#define ITEM5_MAX 1
#define ITEM5_MIN 0
#define ITEM6_MAX 1
#define ITEM6_MIN 0
#define ITEM7_MAX 1
#define ITEM7_MIN 0
int Item1 = 0;
int Item2 = 0;
int Item3 = 0;
int Item4 = 0;
int Item5 = 0;
int Item6 = 0;
int Item7 = 0;
struct Janela{
int BaseX;
int BaseY;
int BaseW;
int BaseH;
bool Mostrar;
} BaseJanela;
int MenuEspaco = 25;
void GravaTexto(int X, int Y, D3DCOLOR Cor, ID3DXFont *fonte, const char* sNome,...)
{
char sTexto[1024] = "";
va_list ap;
if( !sNome || *sNome == '\0' )
return;
va_start( ap, sNome );
_vsnprintf_s( sTexto, 1024, 1023, sNome, ap );
va_end( ap );
RECT Posicao = { X, Y, X+500, Y+50 };
fonte->DrawText( NULL, sTexto, -1, &Posicao, DT_LEFT | DT_WORDBREAK, Cor);
}
void DrawRect(IDirect3DDevice9* Unidade, int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor)
{
D3DRECT BarRect = { baseX, baseY, baseX + baseW, baseY + baseH };
Unidade->Clear(1, &BarRect, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, Cor, 0, 0);
}
void Base(IDirect3DDevice9* Unidade,int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor, D3DCOLOR Cor1, D3DCOLOR Cor2)
{
DrawRect(Unidade,baseX+1, baseY+1, baseW+1, baseH+1, Cor);
DrawRect(Unidade,baseX, baseY-1, baseW+1 , baseH, Cor1);
DrawRect(Unidade,baseX+1, baseY, baseW , baseH , Cor2);
}
void Menu(IDirect3DDevice9* Unidade,char *sTitulo, int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor, D3DCOLOR Cor1, D3DCOLOR Cor2,const char* sVersao,...)
{
DrawRect(Unidade,baseX+1, baseY+1, baseW+1, baseH+1, Cor);
DrawRect(Unidade,baseX, baseY-1, baseW+1 , baseH, Cor1);
DrawRect(Unidade,baseX+1, baseY, baseW , baseH , Cor2);
GravaTexto(baseX +5 ,baseY + 2 , 0x77FFFFFF, Fonte[12], sTitulo);
GravaTexto(baseX +5 ,baseY + baseH - 20 , 0x55FFFFFF, Fonte[12], sVersao);
Base(Unidade,baseX+5,baseY+30,baseW-10,baseH-60,0x44FFFFFF,0x44FFFFFF,0xFF2E2E2E);
}
void Botao(IDirect3DDevice9* Unidade,int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor, D3DCOLOR Cor1, D3DCOLOR Cor2,const char* sNome,...)
{
DrawRect(Unidade, baseX+1, baseY+1, baseW+1, baseH+1, Cor);
DrawRect(Unidade, baseX, baseY-1, baseW+1 , baseH, Cor1);
DrawRect(Unidade, baseX, baseY, baseW , baseH , Cor2);
GravaTexto(baseX + 10, baseY + 4, 0xFFFFFF00, Fonte[12], sNome);
}
bool Compare(const BYTE* pData, const BYTE* bMaskara, const char* szMaskara){
for(;*szMaskara;++szMaskara,++pData,++bMaskara)
if(*szMaskara=='x' && *pData!=*bMaskara )
return false;
return (*szMaskara) == NULL;
}
DWORD ProcurePattern(DWORD dValor,DWORD dLer,BYTE *bMaskara,char * szMaskara)
{
for(DWORD i=0; i < dLer; i++)
if( Compare( (BYTE*)( dValor+i ),bMaskara,szMaskara) )
return (DWORD)(dValor+i);
return 0;
}
Уже незнаю что делать.
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
На скринах видно мою проблему.
Menu.cpp#include "Stdafx.h"
#include "Menu.h"
#include "detours.h"
#include <windows.h>
BOOL CarregaFonte = false;
typedef HRESULT(WINAPI* BeginScene_)(LPDIRECT3DDEVICE9 pDevice);
BeginScene_ pBeginScene;
typedef HRESULT ( WINAPI* Reset_t )( LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters );
Reset_t pReset;
HRESULT WINAPI nBeginScene(LPDIRECT3DDEVICE9 pDevice)
{
_asm NOP;
HRESULT hRet = pBeginScene(pDevice);
if(!CarregaFonte) {
CarregaFonte=true;
D3DXCreateFont( pDevice, 14, 0, FW_NORMAL, 0, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[0]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 0, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[1]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 0, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[2]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[3]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[4]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[5]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[6]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[7]);
D3DXCreateFont( pDevice, 12, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[8]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[9]);
D3DXCreateFont( pDevice, 8, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[10]);
D3DXCreateFont( pDevice, 38, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[11]);
D3DXCreateFont( pDevice, 16, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[12]);
}
BaseJanela.BaseX = 10;
BaseJanela.BaseY = 150;
BaseJanela.BaseW = 150;
BaseJanela.BaseH = (30 * MENU_ITEM_MAX);
if(GetAsyncKeyState(VK_HOME)&1)
{
BaseJanela.Mostrar = !BaseJanela.Mostrar;
}
if(BaseJanela.Mostrar)
{
if(GetAsyncKeyState(VK_LEFT)&1)
{
setadireita = true;
}
else
setadireita = false;
if(GetAsyncKeyState(VK_RIGHT)&1)
{
setaesquerda = true;
}
else
setaesquerda = false;
MenuEspaco = BaseJanela.BaseH / MENU_ITEM_MAX;
if(GetAsyncKeyState(VK_DOWN)&1){MenuSelecionado +=1;}
if(GetAsyncKeyState(VK_UP)&1){MenuSelecionado -=1;}
if(setadireita && MenuSelecionado == 1){Item1 -=1;}
if(setaesquerda && MenuSelecionado == 1){Item1 +=1;}
if(setadireita && MenuSelecionado == 2){Item2 -=1;}
if(setaesquerda && MenuSelecionado == 2){Item2 +=1;}
if(setadireita && MenuSelecionado == 3){Item3 -=1;}
if(setaesquerda && MenuSelecionado == 3){Item3 +=1;}
if(setadireita && MenuSelecionado == 4){Item4 -=1;}
if(setaesquerda && MenuSelecionado == 4){Item4 +=1;}
if(setadireita && MenuSelecionado == 5){Item5 -=1;}
if(setaesquerda && MenuSelecionado == 5){Item5 +=1;}
if(setadireita && MenuSelecionado == 6){Item6 -=1;}
if(setaesquerda && MenuSelecionado == 6){Item6 +=1;}
if(setadireita && MenuSelecionado == 7){Item7 -=1;}
if(setaesquerda && MenuSelecionado == 7){Item7 +=1;}
if(MenuSelecionado > MENU_ITEM_MAX){MenuSelecionado = MENU_ITEM_MIN;}
if(MenuSelecionado < MENU_ITEM_MIN){MenuSelecionado = MENU_ITEM_MAX;}
if(Item1 > ITEM1_MAX)
Item1 = ITEM1_MIN;
if(Item1 < ITEM1_MIN)
Item1 = ITEM1_MAX;
if(Item2 > ITEM2_MAX)
Item2 = ITEM2_MIN;
if(Item2 < ITEM2_MIN)
Item2 = ITEM2_MAX;
if(Item3 > ITEM3_MAX)
Item3 = ITEM3_MIN;
if(Item3 < ITEM3_MIN)
Item3 = ITEM3_MAX;
if(Item4 > ITEM4_MAX)
Item4 = ITEM4_MIN;
if(Item4 < ITEM4_MIN)
Item4 = ITEM4_MAX;
if(Item5 > ITEM5_MAX)
Item5 = ITEM5_MIN;
if(Item5 < ITEM5_MIN)
Item5 = ITEM5_MAX;
if(Item6 > ITEM6_MAX)
Item6 = ITEM6_MIN;
if(Item6 < ITEM6_MIN)
Item6 = ITEM6_MAX;
if(Item7 > ITEM7_MAX)
Item7 = ITEM7_MIN;
if(Item7 < ITEM7_MIN)
Item7 = ITEM7_MAX;
Menu(pDevice,"Menu Universal ",BaseJanela.BaseX,BaseJanela.BaseY-50,210,300,0x44FFFFFF,0x44FFFFFF,0xFF848484,"V0.5");
Botao(pDevice,BaseJanela.BaseX + 8,BaseJanela.BaseY-MenuEspaco + (MenuSelecionado * MenuEspaco) ,4,20,0xFF2E2E2E,0xFF2E2E2E,0xFFFF0000,"");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 0),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Names ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 1),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Distance ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 2),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Heath ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 3),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Objects ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 4),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Weapon ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 5),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Box ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 6),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Barrel ESP");
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 0) , 0xFFFF9900, Fonte[12],"%d", Item1);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 1) , 0xFFFF9900, Fonte[12],"%d", Item2);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 2) , 0xFFFF9900, Fonte[12],"%d", Item3);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 3) , 0xFFFF9900, Fonte[12],"%d", Item4);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 4) , 0xFFFF9900, Fonte[12],"%d", Item5);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 5) , 0xFFFF9900, Fonte[12],"%d", Item6);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 6) , 0xFFFF9900, Fonte[12],"%d", Item7);
}
if(Item1==1)
//ON
if(Item1==0)
//OFF
//#define ITEM2_MAX 1 add ++
//if(Item==2) etc.....
return hRet;
}
HRESULT WINAPI nReset( LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters )
{
_asm NOP;
if( Fonte[12] )
Fonte[12]->OnLostDevice();
HRESULT hRet = pReset(pDevice, pPresentationParameters);
if(hRet == D3D_OK) {
if( Fonte[12] )
Fonte[12]->OnLostDevice();
}
return hRet;
}
int InicializarD3D(void)
{
DWORD D3DBase, ResultadoD3DBase, *vTable;
D3DBase=0;do {
D3DBase = (DWORD)GetModuleHandle("d3d9.dll");
Sleep(10);
}
while(!D3DBase);
ResultadoD3DBase = ProcurePattern(D3DBase, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x 89\x86", "xx????xx????xx");
if (ResultadoD3DBase) {
memcpy(&vTable,(void *)(ResultadoD3DBase+2),4);
pBeginScene = (BeginScene_)DetourFunction((PBYTE)vTable[42],(PBYTE)nBeginScene);
pReset = (Reset_t)DetourFunction((PBYTE)vTable[16],(PBYTE)nReset);
}
return 0;
}
BOOL WINAPI DllMain (HMODULE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
{
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE) InicializarD3D, NULL, NULL, NULL);
}
break;
}
return TRUE;
}
Menu.h#include "stdafx.h"
#include <d3dx9.h>
#include <vector>
#pragma comment(lib,"d3dx9.lib")
ID3DXFont * Fonte[13];
ID3DXFont * fonte;
int MenuSelecionado = 1;
bool setadireita;
bool setaesquerda;
#define MENU_ITEM_MAX 7
#define MENU_ITEM_MIN 1
#define ITEM1_MAX 1
#define ITEM1_MIN 0
#define ITEM2_MAX 1
#define ITEM2_MIN 0
#define ITEM3_MAX 1
#define ITEM3_MIN 0
#define ITEM4_MAX 1
#define ITEM4_MIN 0
#define ITEM5_MAX 1
#define ITEM5_MIN 0
#define ITEM6_MAX 1
#define ITEM6_MIN 0
#define ITEM7_MAX 1
#define ITEM7_MIN 0
int Item1 = 0;
int Item2 = 0;
int Item3 = 0;
int Item4 = 0;
int Item5 = 0;
int Item6 = 0;
int Item7 = 0;
struct Janela{
int BaseX;
int BaseY;
int BaseW;
int BaseH;
bool Mostrar;
} BaseJanela;
int MenuEspaco = 25;
void GravaTexto(int X, int Y, D3DCOLOR Cor, ID3DXFont *fonte, const char* sNome,...)
{
char sTexto[1024] = "";
va_list ap;
if( !sNome || *sNome == '\0' )
return;
va_start( ap, sNome );
_vsnprintf_s( sTexto, 1024, 1023, sNome, ap );
va_end( ap );
RECT Posicao = { X, Y, X+500, Y+50 };
fonte->DrawText( NULL, sTexto, -1, &Posicao, DT_LEFT | DT_WORDBREAK, Cor);
}
void DrawRect(IDirect3DDevice9* Unidade, int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor)
{
D3DRECT BarRect = { baseX, baseY, baseX + baseW, baseY + baseH };
Unidade->Clear(1, &BarRect, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, Cor, 0, 0);
}
void Base(IDirect3DDevice9* Unidade,int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor, D3DCOLOR Cor1, D3DCOLOR Cor2)
{
DrawRect(Unidade,baseX+1, baseY+1, baseW+1, baseH+1, Cor);
DrawRect(Unidade,baseX, baseY-1, baseW+1 , baseH, Cor1);
DrawRect(Unidade,baseX+1, baseY, baseW , baseH , Cor2);
}
void Menu(IDirect3DDevice9* Unidade,char *sTitulo, int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor, D3DCOLOR Cor1, D3DCOLOR Cor2,const char* sVersao,...)
{
DrawRect(Unidade,baseX+1, baseY+1, baseW+1, baseH+1, Cor);
DrawRect(Unidade,baseX, baseY-1, baseW+1 , baseH, Cor1);
DrawRect(Unidade,baseX+1, baseY, baseW , baseH , Cor2);
GravaTexto(baseX +5 ,baseY + 2 , 0x77FFFFFF, Fonte[12], sTitulo);
GravaTexto(baseX +5 ,baseY + baseH - 20 , 0x55FFFFFF, Fonte[12], sVersao);
Base(Unidade,baseX+5,baseY+30,baseW-10,baseH-60,0x44FFFFFF,0x44FFFFFF,0xFF2E2E2E);
}
void Botao(IDirect3DDevice9* Unidade,int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor, D3DCOLOR Cor1, D3DCOLOR Cor2,const char* sNome,...)
{
DrawRect(Unidade, baseX+1, baseY+1, baseW+1, baseH+1, Cor);
DrawRect(Unidade, baseX, baseY-1, baseW+1 , baseH, Cor1);
DrawRect(Unidade, baseX, baseY, baseW , baseH , Cor2);
GravaTexto(baseX + 10, baseY + 4, 0xFFFFFF00, Fonte[12], sNome);
}
bool Compare(const BYTE* pData, const BYTE* bMaskara, const char* szMaskara){
for(;*szMaskara;++szMaskara,++pData,++bMaskara)
if(*szMaskara=='x' && *pData!=*bMaskara )
return false;
return (*szMaskara) == NULL;
}
DWORD ProcurePattern(DWORD dValor,DWORD dLer,BYTE *bMaskara,char * szMaskara)
{
for(DWORD i=0; i < dLer; i++)
if( Compare( (BYTE*)( dValor+i ),bMaskara,szMaskara) )
return (DWORD)(dValor+i);
return 0;
}
Уже незнаю что делать.