I'm trying to write a plugin where when the player attacks, it will deal damage in a radius around the player, but I haven't had any luck. Here's what I've got:
Code:
public Action:TF2_CalcIsAttackCritical(client, weapon, String:weaponname[], &bool:isCrit)
{
g_fRadius = 600.0;
g_fDamage = 100.0;
decl Float:origin[3];
GetClientAbsOrigin(client, origin);
if(1.00 > GetRandomFloat(0.0, 1.0) && GetClientTeam(client) == BossTeam)
{
isCrit = true;
DamageArea(origin, g_fRadius, g_fDamage, client, client, GetClientTeam(client), DMG_GENERIC, -1, NULL_VECTOR);
}
return Plugin_Continue;
}
stock DamageArea(Float:origin[3], Float:distance = 500.0, Float:damage = 500.0, &attacker, &inflictor, int team = 0, damagetype, int weapon = -1, Float:damageforce[3] = NULL_VECTOR)
{
if (distance <= 0.0 || damage <= 0.0)
return;
float vecOrigin[3];
for (int i = 1; i <= MaxClients; i++)
{
if (!IsClientInGame(i) || !IsPlayerAlive(i) || (team > 0 && team != GetClientTeam(i)) || (attacker > 0 && i == attacker))
continue;
GetClientAbsOrigin(i, vecOrigin);
if (GetVectorDistance(origin, vecOrigin) > distance)
continue;
SDKHooks_TakeDamage(i, inflictor, attacker, damage, damagetype, weapon, damageforce, origin);
}
int entity = -1;
while ((entity = FindEntityByClassname(entity, "*")) != -1)
{
if (!HasEntProp(entity, Prop_Send, "m_vecOrigin") || attacker > 0 && attacker == entity)
continue;
GetEntPropVector(entity, Prop_Send, "m_vecOrigin", vecOrigin);
if (GetVectorDistance(origin, vecOrigin) > distance)
continue;
SDKHooks_TakeDamage(entity, inflictor, attacker, damage, damagetype, weapon, damageforce, origin);
}
}
Would really appreciate all the help I can get, thanks!
__________________