Hefe Fun!
D3DXVECTOR3 *GetScreenCoordFromWorld( IDirect3DDevice9 *pDevice, D3DXVECTOR3 &vScreenCoord, D3DXVECTOR3 vWorldLocation )
{
if( !pDevice )
return NULL;
D3DVIEWPORT9 viewPort;
D3DXVECTOR3 vOrthoLocation;
D3DXMATRIX projection, view, world, identity;
pDevice->GetTransform( D3DTS_VIEW, &view );
pDevice->GetTransform( D3DTS_PROJECTION, &projection );
pDevice->GetViewport ( &viewPort );
D3DXMatrixIdentity( &identity );
D3DXVec3Project( &vScreenCoord, &vWorldLocation, &viewPort, &projection, &view, &identity );
if(vScreenCoord.z < 1)
{
return &vScreenCoord;
}
return NULL;
}
D3DXMATRIX projection, view, world, identity;
float GetDistanceA(CPlayer* Local, CPlayer* Player)
{
float angle[3];
angle[0] = Player->pos1 - Local->pos1;
angle[1] = Player->pos2 - Local->pos2;
angle[2] = Player->pos3 - Local->pos3;
return sqrt(angle[0]*angle[0] + angle[1]*angle[1] + angle[2]*angle[2]);
}
und
#ifdef __ESP
if(EspName||EspHealth||EspIp ||Distance ||EspPing || EspWaepon || usersel /*||EspStatus*/)
{
DWORD PlayerPointer = *(DWORD*)0x00C7D918;
if(PlayerPointer != 0 )
{
for(int i = 0; i < 32; i++)
{
if(!pBase->player || !pBase->local) break;
CPlayer* pPlayer = pBase->player[i];
CPlayerInfo *pInfo = GetPlayerInfo(i);
if(pInfo && pPlayer)
{
CPlayerInfo *pLocalInfo = GetPlayerInfo(pBase->local->index);
D3DXVECTOR3 g_pPlayer(pPlayer->pos1, pPlayer->pos2, pPlayer->pos3),g_vView;
if( GetScreenCoordFromWorld(pDevice, g_vView, g_pPlayer) )
{
DWORD NameColor;
if( pLocalInfo->team == pInfo->team )
NameColor = Green;
else
NameColor = Red;
if(EspName==1)
{
if(EnemyOnly == 1 && pInfo->team == pLocalInfo->team)
{
}
else
{
char naesp[50];
sprintf(naesp, TCH_ESP_NAME,pInfo->name);
menu.DrawText((float)g_vView.x,(float)g_vView.y-90,NameColor,naesp,D3DFONT_BOLD);
}
}
if(EspIp==1)
{
if(EnemyOnly == 1 && pInfo->team == pLocalInfo->team)
{
}
else
{
char ipesp[50];
sprintf(ipesp, TCH_ESP_IP,pInfo->ip);
menu.DrawText((float)g_vView.x/*-25*/,(float)g_vView.y-80,White,ipesp,D3DFONT_ITALIC);
}
}
if(Distance==1)
{
if(EnemyOnly == 1 && pInfo->team == pLocalInfo->team)
{
}
else
{
char distanz[10000];
sprintf(distanz,TCH_ESP_DISTANCE,GetDistanceA(pBas e->local, pPlayer)/10); // %.2f m
menu.DrawText((float)g_vView.x,(float)g_vView.y-70,White,distanz,D3DFONT_ITALIC);
}
}
if(EspPing==1)
{
if(EnemyOnly == 1 && pInfo->team == pLocalInfo->team)
{
}
else
{
char ping[100];
sprintf(ping, TCH_ESP_PING, pInfo->ping);
menu.DrawText((float)g_vView.x,(float)g_vView.y-50,White,ping,D3DFONT_ITALIC);
}
}
if(EspHealth==1)
{
if(EnemyOnly == 1 && pInfo->team == pLocalInfo->team)
{
}
else
{
char Health[100];
sprintf(Health, TCH_ESP_HEALTH , pInfo->health);
menu.DrawHealthBox((float)g_vView.x+32,(float)g_vV iew.y-55 /* 65 */,Grey,Green,(pInfo->health/4),250/*333.333333*/,pDevice);
// menu.DrawText((float)g_vView.x+60,(float)g_vView.y-55,White,Health,D3DFONT_ITALIC);
}
}
if(EspWaepon==1)
{
if(EnemyOnly == 1 && pInfo->team == pLocalInfo->team)
{
}
else
{
char weapon[100];
sprintf(weapon, TCH_ESP_WEAPON );
menu.DrawText((float)g_vView.x,(float)g_vView.y-40,Yellow,ReturnWeapon(pPlayer),D3DFONT_ITALIC);
}
}
if(EspTeam==1)
{
if(EnemyOnly == 1 && pInfo->team == pLocalInfo->team)
{
}
else
{
char team[50];
DWORD teamcol;
if( pInfo->team == 0 )
{
teamcol = Yellow;
sprintf(team,TCH_ESP_TEAM_1);
}
else
{
teamcol = Green;
sprintf(team,TCH_ESP_TEAM_2);
}
menu.DrawText((float)g_vView.x,(float)g_vView.y-30,teamcol,team,D3DFONT_ITALIC);
}
}
if(EspPoints==1)
{
if(EnemyOnly == 1 && pInfo->team == pLocalInfo->team)
{
}
else
{
char points[50];
sprintf(points, TCH_ESP_POINTS,pInfo->points);
menu.DrawText((float)g_vView.x/*-25*/,(float)g_vView.y-20,White,points,D3DFONT_ITALIC);
}
}
}
}
}
}
}
#endif