I want to release since I am getting bored of this game.
My esp is not great but some people don't have so here you go.
Features:
Code:
Boxes, Nametags, Distance, Lines, Warning
First of all Credits:
[highlight=c++]
Nubzgetkillz - Putting all of this together
Fatboy88 - Making this possible with classes <--Being Amazing Coder
GodHack2 - Resizing boxes code <-- Being Helpful Coder
Mahertamin - FindDistance Function and Support <--Beastly Cf coder
Gellin - Overall Good but helps aswell
Dumped files - Where I found the addies
OllyDBG - Making it possible to find addies
MattyPatty - Being my inspiration <-- HEHE
Kotentopf - Being there to help when i am annoying <--NICE HACK!
Solify - Idk He is why I started HaCkInG
Freedompeace - Helped me <-- Amazing Viet Coder *VIET PRIDE*
Mmbob - Idea for warning <-- Good coder Helps me when I ask
DrunkenCheetah - StructBuilder that Fatboy88 used? lol
Whit - A true nigga <-- His penis size!
EVERYONE ELSE!
[/highlight]
test ok? ok):
Code:
3781BD4C . 38BA8000 DD 0080BA38
3781BD50 . 0C528337 DD CShell.3783520C
3781BD54 . C4248337 DD CShell.378324C4
3781BD58 B8237137 DD CShell.377123B8
3781BD5C 8C297137 DD CShell.3771298C ; ASCII "ILocaleManager.Default"
3715E742 |. E8 69F6FFFF CALL CShell.3715DDB0
3715E747 |. 85C0 TEST EAX,EAX
3715E749 |. 74 12 JE SHORT CShell.3715E75D
3715E74B |. 8378 24 10 CMP DWORD PTR DS:[EAX+24],10
3715E74F |. 72 06 JB SHORT CShell.3715E757
3715E751 |. 8B40 10 MOV EAX,DWORD PTR DS:[EAX+10]
3715E754 |. C2 0400 RETN 4
3715E757 |> 83C0 10 ADD EAX,10
3715E75A |. C2 0400 RETN 4
3715E75D |> B8 BC337137 MOV EAX,CShell.377133BC ; ASCII "a player"
3715E770 8B41 08 MOV EAX,DWORD PTR DS:[ECX+8]
3715E773 6A 00 PUSH 0
3715E775 50 PUSH EAX
3715E776 E8 35F6FFFF CALL CShell.3715DDB0
Lime: ClientInfoMgr
Cyan: GetPlayerByIndex
Red: GetLocalPlayer
Classes:
[highlight=c++]
class PointerTo;
class PlayerInfo;
class _Object;
class PointerTo
{
public:
char pad[4];
PlayerInfo * first;
__int32 index;
};
class PlayerInfo
{
public:
__int32 Unknown0; //0000
__int32 index; //0004
__int32 Unknown2; //0008
__int32 Unknown3; //000C
char Name[12]; //0010
char unknown5[12];
_Object* obj; //0028
char unknown7[68];
__int32 Team; //0x0070
__int32 idk; // xD
__int8 IsDead; //0078
//__int8 Health; //0x008C
char unknowna[3];
char unknown6[424];
char unknownb[20];
char unknown8[4];
char unknown9[36];
PlayerInfo* pPrev;
PlayerInfo* pNext;
};
class _Object
{
public:
char Pad[4];
D3DXVECTOR3 origin;
};
[/highlight]
Globals:
[highlight=c++]
int ScreenCenterX = GetSystemMetrics( 0 ) / 2-1;//Gets screen X resolution then cutting it in half to get the center.
int ScreenCenterY = GetSystemMetrics( 1 ) / 2-1;//Gets screen Y resolution then cutting it in half to get the center.
LPD3DXLINE g_pLine;
typedef PlayerInfo* (__thiscall *lpGetPlayerByIndex)(unsigned long ulThis,int index, int unk);
lpGetPlayerByIndex GetPlayerByIndex; //0x3715DD10
typedef PlayerInfo* (__thiscall *lpGetLocalPlayer)(unsigned long ulThis);
lpGetLocalPlayer GetLocalPlayer;
[/highlight]
Don't forget to add in your Endscene or Present or whatever you are hooking:
[highlight=c++]
if( !g_pLine )
D3DXCreateLine( pDevice, &g_pLine );
[/highlight]
Some Functions you will need:
FillRGB and DrawBorder(credits to whoever created those):
[highlight=c++]
void FillRGB( int x, int y, int w, int h, D3DCOLOR color, IDirect3DDevice9* pDevice )
{
D3DRECT rec = { x, y, x + w, y + h };
pDevice->Clear( 1, &rec, D3DCLEAR_TARGET, color, 0, 0 );
}
void DrawBorder( int x, int y, int w, int h, int px, D3DCOLOR BorderColor, IDirect3DDevice9* pDevice )
{
FillRGB( x, (y + h - px), w, px, BorderColor, pDevice );
FillRGB( x, y, px, h, BorderColor, pDevice );
FillRGB( x, y, w, px, BorderColor, pDevice );
FillRGB( (x + w - px), y, px, h, BorderColor, pDevice );
}
[/highlight]
World2Screen(Credits to whoever create that):
[highlight=c++]
bool WorldToScreen(LPDIRECT3DDEVICE9 pDevice, PlayerInfo* pPlayer, D3DXVECTOR3* Pos)
{
D3DXVECTOR3 vWorld(pPlayer->obj->origin.x ,pPlayer->obj->origin.y, pPlayer->obj->origin.z);
D3DVIEWPORT9 viewPort = {0};
D3DXMATRIX projection, view, world;
pDevice->GetTransform(D3DTS_VIEW, &view);
pDevice->GetTransform(D3DTS_PROJECTION, &projection);
pDevice->GetTransform(D3DTS_WORLD, &world);
pDevice->GetViewport(&viewPort);
D3DXVec3Project(Pos, &vWorld, &viewPort, &projection, &view, &world);
if(Pos->z < 1)
{
return true;
}
return false;
}
[/highlight]
Add DrawPrim yourselves if you want.
DrawLine(Credits to whoever):
[highlight=c++]
//DrawLine(XPosStart,YPosStart,XPosFinish,YPosFinish ,Width,Color);
void DrawLine ( long Xa, long Ya, long Xb, long Yb, DWORD dwWidth, D3DCOLOR Color )
{
D3DXVECTOR2 vLine[ 2 ]; // Two points
g_pLine->SetAntialias( 0 ); // To smooth edges
g_pLine->SetWidth( dwWidth ); // Width of the line
g_pLine->Begin();
vLine[ 0 ][ 0 ] = Xa; // Set points into array
vLine[ 0 ][ 1 ] = Ya;
vLine[ 1 ][ 0 ] = Xb;
vLine[ 1 ][ 1 ] = Yb;
g_pLine->Draw( vLine, 2, Color ); // Draw with Line, number of lines, and color
g_pLine->End(); // finish
}
[/highlight]
FindDistance(Credits Mahertamin):
[highlight=c++]
float FindDistance(D3DXVECTOR3 my,D3DXVECTOR3 other,PlayerInfo* pPlayer,PlayerInfo* pLocal)
{
return sqrt((pLocal->obj->origin.x-pPlayer->obj->origin.x)*(pLocal->obj->origin.x-pPlayer->obj->origin.x) + (pLocal->obj->origin.y-pPlayer->obj->origin.y)*(pLocal->obj->origin.y-pPlayer->obj->origin.y) + (pLocal->obj->origin.z-pPlayer->obj->origin.z)*(pLocal->obj->origin.z-pPlayer->obj->origin.z));
}
[/highlight]
You may have to change stuff in there
Here is my Warning Esp(Not great but cool and simple):
[highlight=c++]
if( warning ){
GetPlayerByIndex = (lpGetPlayerByIndex)(0x3715DDB0);
unsigned long ulThis = *(unsigned long*)(0x3781B388);
GetLocalPlayer = (lpGetLocalPlayer)(0x3715E770);
for ( int i = 0; i < 16; i++ ){
PlayerInfo* pPlayer = GetPlayerByIndex( ulThis,i,0);
PlayerInfo* pLocal = GetLocalPlayer(ulThis);
if(pPlayer != 0 && pPlayer->obj != 0 && pPlayer->IsDead ==0){
D3DXVECTOR3 Position;
if(WorldToScreen(pDevice, pPlayer, &Position)){
if (pPlayer->Team != pLocal->Team){
if(warning) {
if((FindDistance(pLocal->obj->origin,pPlayer->obj->origin,pPlayer,pLocal)/100)<= 10) {
Directx.PrintText("SHIT IS ABOUT TO HIT THE FAN!",596,396,White,Directx.pFont2);
Directx.PrintText("GO KILL THAT BASTARD! HE IS CLOSE!",596,436,White,Directx.pFont2);
Directx.PrintText("SHIT IS ABOUT TO HIT THE FAN!",598,398,Black,Directx.pFont2);
Directx.PrintText("GO KILL THAT BASTARD! HE IS CLOSE!",598,438,Black,Directx.pFont2);
Directx.PrintText("SHIT IS ABOUT TO HIT THE FAN!",600,400,Red,Directx.pFont2);
Directx.PrintText("GO KILL THAT BASTARD! HE IS CLOSE!",600,440,Red,Directx.pFont2);
}
}
}
}
}
}
}
[/highlight]
Hehe change some stuff in there or it will pop up RED
ESP All of it in 1:
[highlight=c++]
if( esp ){
GetPlayerByIndex = (lpGetPlayerByIndex)(0x3715DDB0);
unsigned long ulThis = *(unsigned long*)(0x3781BD50);
GetLocalPlayer = (lpGetLocalPlayer)(0x3715E770);
char *szFormat = new char[ 256 ];
for ( int i = 0; i < 16; i++ ){
PlayerInfo* pPlayer = GetPlayerByIndex( ulThis,i,0);
PlayerInfo* pLocal = GetLocalPlayer(ulThis);
if(pPlayer != 0 && pPlayer->obj != 0 && pPlayer->IsDead ==0){
sprintf(szFormat,"%s",pPlayer->Name);
D3DXVECTOR3 xDistance = pPlayer->obj->origin - pLocal->obj->origin;
D3DXVECTOR3 MyDistance = pLocal->obj->origin - pPlayer->obj->origin;
float xaDistance = D3DXVec3Length(&xDistance );
float MyaDistance = D3DXVec3Length(&MyDistance );
D3DXVECTOR3 Position;
if(WorldToScreen(pDevice, pPlayer, &Position)){
if (pPlayer->Team != pLocal->Team){
// 0: (off)
// 1: Name only
// 2: Box only
// 3: Distance only
// 4: Name and Distance
// 5: Name and Box
// 6: Distance and Box
// 7: Line only
// 8: All
if(esp == 1 || esp == 4 || esp == 5 || esp == 8) {
Directx.PrintText(szFormat, Position.x, Position.y, Yellow, Directx.pFont);
}
if(esp == 2 || esp == 5 || esp == 6 || esp == 8) {
DrawBorder(Position.x-(10000/MyaDistance), Position.y- (35000/MyaDistance),50000/MyaDistance/6*2,50000/MyaDistance/3*2,2,Red,pDevice);
}
if(esp == 3 || esp == 4 || esp == 6 || esp == 8) {
Directx.DrawString(Position.x+1,Position.y+20,Cyan ,Directx.pFont,"D[%0.0f M]",((FindDistance(pLocal->obj->origin,pPlayer->obj->origin,pPlayer,pLocal))/100));
}
if(esp == 7 || esp == 8) {
DrawLine(ScreenCenterX,ScreenCenterY,Position.x,Po sition.y,1,Red);
}
}
}
}
}
}
[/highlight]
You may notice that The addies are different. I was just testing.
When you all add this to your bases post pics!
If I missed anything tell me!
Pictures of What this is(Before I addded lines and made warning 3d):
>>Picture 1<<
>>Picture 2<<
THANKS BYE!