#pragma semicolon 1
#include <sdktools>
#include <csgo_colors>
new Float:g_fUpdateTime;
public OnPluginStart()
{
decl Handle:hCvar;
hCvar = CreateConVar("sm_aimname_update_time", "1.0", "Время обновления Hint'a", 0, true, 0.0, true, 1.0);
HookConVarChange(hCvar, OnUpdateTimeChange);
g_fUpdateTime = GetConVarFloat(hCvar);
CloseHandle(hCvar);
CreateTimer(g_fUpdateTime, Nick_Timer, _, TIMER_REPEAT);
}
public OnUpdateTimeChange(Handle:hCvar, const String:oldValue[], const String:newValue[]) g_fUpdateTime = GetConVarFloat(hCvar);
public Action Nick_Timer(Handle timer)
{
for(new i = 1; i <= MaxClients; i++)
{
if (IsClientInGame(i))
{
new target = TraceClientViewEntity(i);
if (target > 0 && target <= MaxClients && IsClientInGame(target) && IsPlayerAlive(target))
{
new targetteam = GetClientTeam(target);
new iteam = GetClientTeam(i);
if(iteam != targetteam)
{
CGOPrintHintText(i, "{{#FF0000==Вы смотрите на противника}}.\n {{#FF0000==Это}} {{#F7FF00==%N}}.", target);
}
else if (iteam == targetteam)
{
CGOPrintHintText(i, "{{#00FF04==Вы смотрите на союзника}}.\n {{#00FF04==Это}} {{#00D5FF==%N}}.", target);
}
}
}
}
return Plugin_Continue;
}
stock TraceClientViewEntity(client)
{
new Float:m_vecOrigin[3];
new Float:m_angRotation[3];
GetClientEyePosition(client, m_vecOrigin);
GetClientEyeAngles(client, m_angRotation);
new Handle:tr = TR_TraceRayFilterEx(m_vecOrigin, m_angRotation, MASK_VISIBLE, RayType_Infinite, TRDontHitSelf, client);
new pEntity = -1;
if (TR_DidHit(tr))
{
pEntity = TR_GetEntityIndex(tr);
CloseHandle(tr);
return pEntity;
}
if(tr != INVALID_HANDLE)
{
CloseHandle(tr);
}
return -1;
}
public bool:TRDontHitSelf(entity, mask, any:data)
{
return (1 <= entity <= MaxClients && entity != data);
}