#include <vip_core>
#include <sdkhooks>
#define IMMUNITY "ZeusImmunity"
public void OnPluginStart()
{
if(VIP_IsVIPLoaded())
{
VIP_OnVIPLoaded();
}
}
public void VIP_OnVIPLoaded()
{
VIP_RegisterFeature(IMMUNITY, BOOL);
}
public void OnClientPutInServer(int client)
{
if(!IsFakeClient(client)) SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon, float damageForce[3], float damagePosition[3], int damagecustom)
{
if(attacker <= 0 || attacker > MaxClients) return Plugin_Continue;
int iTaser = GetEntPropEnt(attacker, Prop_Send, "m_hActiveWeapon");
if(IsValidEntity(iTaser))
{
char sWeapon[24];
GetEntityClassname(iTaser, sWeapon, sizeof(sWeapon));
if(!strcmp(sWeapon, "weapon_taser"))
{
if(VIP_IsClientFeatureUse(victim, IMMUNITY))
{
damage = 0.0;
return Plugin_Changed;
}
}
}
return Plugin_Continue;
}
public void OnPluginEnd()
{
if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "VIP_UnregisterFeature") == FeatureStatus_Available)
{
VIP_UnregisterFeature(IMMUNITY);
}
}