Making ESP Working On All OS

Posts 1–3 of 3 · Page 1 of 1
Making ESP Working On All OS
1th Step loop all players and draw text on player positions :
HRESULT DoEsp(LPDIRECT3DDEVICE9 pDevice)
{
for(int player_ = 0; player_ < 32; player_++)
{
if(!g_pBase->player || !g_pBase->local) break;
CPlayerInfo* player_info = GetPlayerInfoByIndex(player_);
CPlayerInfo* local_info = GetPlayerInfoByIndex(g_pBase->local->index);
CPlayer* pPlayer = g_pBase->player[player_];

if(player_info && pPlayer)
{

float fPlayer[3] = {0};

fPlayer[0] = pPlayer->read_coordinate.x;
fPlayer[1] = pPlayer->read_coordinate.y + 35;
fPlayer[2] = pPlayer->read_coordinate.z;

int x = 0, y = 0, z = 0;
DWORD EspColor;

if(WorldToScreen(pDevice, fPlayer, x, y))
{
if(player_info->m_Health > 0 && player_ != g_pBase->local->index)
{
if(cVars.Esp.Name) {y += 13;g_pFont->DrawTextA(x,y,EspColor,player_info->m_IngameNick,D3DFONT_CENTERED);}
}
}
}
}
return D3D_OK;
}
Our worldtoscreen

D3DVIEWPORT9 vp;

bool WorldToScreen(LPDIRECT3DDEVICE9 pDevice, float* fPlayer, int &x, int &y)
{
if( !pDevice )
return NULL;
D3DXVECTOR3 vWorldLocation(fPlayer[0],fPlayer[1],fPlayer[2]);
D3DXMatrixIdentity( &oIdentity );
D3DXVECTOR3 vScreenCoord;
D3DDISPLAYMODE pViewInfo;
pDevice->GetDisplayMode(NULL,&pViewInfo);
vp.X = 0;
vp.Y = 0;
vp.Height = pViewInfo.Height;
vp.Width = pViewInfo.Width;
vp.MinZ = 0;
vp.MaxZ = 1;
D3DXVec3Project( &vScreenCoord, &vWorldLocation, &vp, &oProjection, &oView, &oIdentity);
if(vScreenCoord.z < 1)
{
x = (int)vScreenCoord.x;
y = (int)vScreenCoord.y;
return true;
}
return false;
}

Now let's hook settransform

typedef HRESULT (WINAPI* SetTransform_t)(LPDIRECT3DDEVICE9 pDevice, D3DTRANSFORMSTATETYPE dwState, D3DMATRIX* pMatrix);
SetTransform_t pSetTransform;

HRESULT WINAPI nSetTransform(LPDIRECT3DDEVICE9 pDevice, D3DTRANSFORMSTATETYPE dwState, D3DMATRIX* pMatrix)
{
if (dwState == D3DTS_VIEW) oView = *pMatrix;
if (dwState == D3DTS_PROJECTION) oProjection = *pMatrix;
if (dwState == D3DTS_WORLD) oWorld = *pMatrix;

return pSetTransform(pDevice,dwState, pMatrix);
}

pSetTransform = (SetTransform_t)g_pMisc->DetourE9((DWORD)vTable[44], (DWORD)&nSetTransform, 5 );
Fix missing definitions by youself!

Credits :
xCyniu
hmm lol

use this ...

Code:
D3DXVECTOR3 * GetScreenCoordFromWorld( IDirect3DDevice9 *pDevice, D3DXVECTOR3 &vScreenCoord, D3DXVECTOR3 vWorldLocation )
{
	if( !pDevice ) return NULL;
 
	D3DVIEWPORT9 viewPort;
	D3DXVECTOR3 vOrthoLocation;
	pDevice->GetViewport( &viewPort );
	D3DXMatrixIdentity( &hacks.identity );


    D3DXVec3Project( &vScreenCoord, &vWorldLocation, &viewPort, &hacks.dxProjection, &hacks.dxView, &hacks.identity);

	if(vScreenCoord.z < 1)
	{
		return &vScreenCoord;
	}
	return NULL;
}
Credits Warlord
Quote Originally Posted by Legendary_Tomasz View Post
1th Step loop all players and draw text on player positions :


Our worldtoscreen



Now let's hook settransform



Fix missing definitions by youself!

Credits :
xCyniu

idk but all the post u make are of someone else's code
Posts 1–3 of 3 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us