Code:
void esp (Ped ped)
{
// player esp
if (featurePlayerESP)
{
for (int index = 0; index < 32; index++)
{
Player playerOnline = PLAYER::GET_PLAYER_PED(index);
BOOL bPlayerOnlineExists = ENTITY::DOES_ENTITY_EXIST(playerOnline);
Vector3 playerOnlineCoords = ENTITY::GET_ENTITY_COORDS(playerOnline, FALSE);
Vehicle currentOnlineVeh = PED::GET_VEHICLE_PED_IS_USING(playerOnline);
Vector3 playerCoords = ENTITY::GET_ENTITY_COORDS(ped, FALSE);
if (playerOnline == ped) continue;
char* name = PLAYER::GET_PLAYER_NAME(PLAYER::INT_TO_PLAYERINDEX(index));
int health = ENTITY::GET_ENTITY_HEALTH(playerOnline);
float distance = GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(playerCoords.x, playerCoords.y, playerCoords.z, playerOnlineCoords.x, playerOnlineCoords.y, playerOnlineCoords.z, TRUE);
int armor = PED::GET_PED_ARMOUR(playerOnline);
char text[250];
if (distance < 5000.0f && bPlayerOnlineExists)
{
float xa;
float ya;
BOOL screenCoords = GRAPHICS::_WORLD3D_TO_SCREEN2D(playerOnlineCoords.x, playerOnlineCoords.y, playerOnlineCoords.z, &xa, &ya);
if (ENTITY::HAS_ENTITY_CLEAR_LOS_TO_ENTITY(ped, playerOnline, 17) && bPlayerOnlineExists)
{
sprintf_s(text, "%s ~y~%.02f\n~g~%d ~b~%d", name, distance, health, armor);
UI::SET_TEXT_FONT(0);
UI::SET_TEXT_OUTLINE();
UI::SET_TEXT_SCALE(0.2f, 0.2f);
UI::SET_TEXT_COLOUR(0, 255, 0, 255);
UI::SET_TEXT_WRAP(0.0f, 1.0f);
UI::SET_TEXT_CENTRE(TRUE);
UI::_SET_TEXT_ENTRY("STRING");
UI::_ADD_TEXT_COMPONENT_STRING(text);
}
else
{
sprintf_s(text, "%s\n ~y~%.02f", name, distance);
UI::SET_TEXT_FONT(0);
UI::SET_TEXT_OUTLINE();
UI::SET_TEXT_SCALE(0.12f, 0.12f);
UI::SET_TEXT_COLOUR(255, 0, 0, 75);
UI::SET_TEXT_WRAP(0.0f, 1.0f);
UI::SET_TEXT_CENTRE(TRUE);
UI::_SET_TEXT_ENTRY("STRING");
UI::_ADD_TEXT_COMPONENT_STRING(text);
}
UI::_DRAW_TEXT(xa, ya);
}
}
}
// player esp boxes
if (featurePlayerESPBoxes)
{
for (int index = 0; index < 32; index++)
{
Player playerOnline = PLAYER::GET_PLAYER_PED(index);
BOOL bPlayerOnlineExists = ENTITY::DOES_ENTITY_EXIST(playerOnline);
Vector3 playerOnlineCoords = ENTITY::GET_ENTITY_COORDS(playerOnline, FALSE);
if (playerOnline == ped) continue;
if (ENTITY::HAS_ENTITY_CLEAR_LOS_TO_ENTITY(ped, playerOnline, 17) && bPlayerOnlineExists)
{
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, 0, 255, 0, 255);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, 0, 255, 0, 255);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, 0, 255, 0, 255);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, 0, 255, 0, 255);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, 0, 255, 0, 255);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, 0, 255, 0, 255);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, 0, 255, 0, 255);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, 0, 255, 0, 255);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, 0, 255, 0, 255);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, 0, 255, 0, 255);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, 0, 255, 0, 255);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, 0, 255, 0, 255);
}
else
{
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, 255, 0, 0, 75);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, 255, 0, 0, 75);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, 255, 0, 0, 75);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, 255, 0, 0, 75);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, 255, 0, 0, 75);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, 255, 0, 0, 75);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, 255, 0, 0, 75);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, 255, 0, 0, 75);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, 255, 0, 0, 75);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x + 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, 255, 0, 0, 75);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y - 0.5f, playerOnlineCoords.z + 0.75f, 255, 0, 0, 75);
GRAPHICS::DRAW_LINE(playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z - 0.75f, playerOnlineCoords.x - 0.5f, playerOnlineCoords.y + 0.5f, playerOnlineCoords.z + 0.75f, 255, 0, 0, 75);
}
}
}
if (featurePlayerESPTrace)
{
for (int index = 0; index < 32; index++)
{
Player playerOnline = PLAYER::GET_PLAYER_PED(index);
BOOL bPlayerOnlineExists = ENTITY::DOES_ENTITY_EXIST(playerOnline);
Vector3 playerOnlineCoords = ENTITY::GET_ENTITY_COORDS(playerOnline, FALSE);
if (ENTITY::HAS_ENTITY_CLEAR_LOS_TO_ENTITY(ped, playerOnline, 17) && bPlayerOnlineExists)
{
GRAPHICS::DRAW_LINE(ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER::GET_PLAYER_PED(index), 0.0f, 0.0f, 0.0f).x, ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER::GET_PLAYER_PED(index), 0.0f, 0.0f, 0.0f).y, ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER::GET_PLAYER_PED(index), 0.0f, 0.0f, 0.0f).z, ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(ped, 0.0f, 0.0f, 0.0f).x, ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(ped, 0.0f, 0.0f, 0.0f).y, ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(ped, 0.0f, 0.0f, 0.0f).z, 0, 255, 0, 255);
}
else
{
GRAPHICS::DRAW_LINE(ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER::GET_PLAYER_PED(index), 0.0f, 0.0f, 0.0f).x, ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER::GET_PLAYER_PED(index), 0.0f, 0.0f, 0.0f).y, ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER::GET_PLAYER_PED(index), 0.0f, 0.0f, 0.0f).z, ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(ped, 0.0f, 0.0f, 0.0f).x, ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(ped, 0.0f, 0.0f, 0.0f).y, ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(ped, 0.0f, 0.0f, 0.0f).z, 255, 0, 0, 75);
}
}
}
}