#include <sourcemod>
#include <vip_core>
#define VIP_CROSSHAIR "Crosshair"
enum ITEM_INDEX_SCOPE_WEAPON
{
AWP = 9,
G3SG1 = 11,
SCAR = 38,
SSG = 40
}
public void OnPluginStart()
{
CreateTimer(0.1, Timer_Hud, _, TIMER_REPEAT);
if(VIP_IsVIPLoaded())
{
VIP_OnVIPLoaded();
}
}
public void VIP_OnVIPLoaded()
{
VIP_RegisterFeature(VIP_CROSSHAIR, BOOL);
}
public Action Timer_Hud(Handle timer, any data)
{
for (int i = 1; i <= MaxClients; i++)
{
if (IsClientInGame(i) && VIP_IsClientVIP(i) && VIP_IsClientFeatureUse(i, VIP_CROSSHAIR))
{
if (IsPlayerAlive(i))
{
int currentWeapon = GetEntPropEnt(i, Prop_Send, "m_hActiveWeapon");
if (currentWeapon == -1)
{
SetHudTextParams(-1.0, -1.0, 0.15, 255, 255, 255, 1, 0, 0.0, 0.0, 0.0);
ShowHudText(i, 2, "");
continue;
}
ITEM_INDEX_SCOPE_WEAPON itemIndex = view_as<ITEM_INDEX_SCOPE_WEAPON>(GetEntProp(currentWeapon, Prop_Send, "m_iItemDefinitionIndex"));
if (!IsScopeWeapon(itemIndex))
{
SetHudTextParams(-1.0, -1.0, 0.15, 255, 255, 255, 1, 0, 0.0, 0.0, 0.0);
ShowHudText(i, 2, "");
continue;
}
int fov = GetEntProp(i, Prop_Data, "m_iFOV");
if (fov > 0 && fov < GetEntProp(i, Prop_Data, "m_iDefaultFOV"))
{
SetHudTextParams(-1.0, -1.0, 0.15, 255, 255, 255, 1, 0, 0.0, 0.0, 0.0);
ShowHudText(i, 2, "");
continue;
}
SetHudTextParams(-1.0, -1.0, 0.15, 255, 255, 255, 1, 0, 0.0, 0.0, 0.0);
ShowHudText(i, 2, "+");
}
}
}
}
public bool IsScopeWeapon(ITEM_INDEX_SCOPE_WEAPON itemIndex)
{
if(itemIndex == AWP ||
itemIndex == G3SG1 ||
itemIndex == SCAR ||
itemIndex == SSG)
return true;
return false;
}