А как?
И ещё как уменьшить получки гранат и повреждения от флешки:
//=======================================================================
// VARIABLES
//=======================================================================
new thisRaceID;
new SKILL_HE, ULT_LAUNCHER, SKILL_FLASH, SKILL_REGEN;
new g_CollisionOffset;
// Enhanced HE
#define MDL_FRAG "models/weapons/w_eq_fraggrenade_thrown.mdl"
#define SND_FRAG "weapons/hegrenade/explode5.wav"
new MiniNadeDamage = 20; // How much damage
new MiniNadeRadius = 150; // Radius of the explosion
// Grenade Launcher
#define SOUND_EXPLOSION "weapons/explode3.wav"
#define SOUND_NADELAUNCHER "weapons/grenade_launcher1.wav"
#define MDL_NADELAUNCHER "models/Items/ar2_grenade.mdl"
new Float:GRENADE_SPEED = 2000.0;
new Float:LauncherCooldown[5]={0.0, 30.0, 25.0, 20.0, 15.0};
// Enhanced Flash
new g_iMagnitude[MAXPLAYERS]; // How "intense" the flash on a player is (max 255)
new bool:g_bFlashed[MAXPLAYERS]; // Is this player flashed?
new Float:FlashDamage[5]={0.0, 12.0, 9.0, 6.0, 3.0}; // How much damage (flash intensity / value)
Вот в этом и вот:
//=======================================================================
// ENHANCED FLASH
//=======================================================================
/* Called when a player is blinded by a flashbang */
public Event_PlayerBlind(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
/* Get the flash magnitude (max is 255) */
new Float:magnitude = GetEntPropFloat(client, Prop_Send, "m_flFlashMaxAlpha");
g_iMagnitude[client] = RoundToCeil(magnitude);
/* Mark the player as being flashed */
g_bFlashed[client] = true;
}
/* Called when a flashbang has detonated (after the players have already been blinded) */
public Event_FlashbangDetonate(Handle:event, const String:name[], bool:dontBroadcast)
{
// Thrower
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if(War3_GetRace(client) == thisRaceID)
{
new skill = War3_GetSkillLevel(client, thisRaceID, SKILL_FLASH);
if(skill > 0)
{
for (new i = 1; i <= MaxClients; i++)
{
if (g_bFlashed == true)
{
if (ValidPlayer(i, true) && GetClientTeam(i) != GetClientTeam(client))
{
new damage = RoundToFloor(g_iMagnitude / FlashDamage[skill]);
War3_DealDamage(i, damage, client, _, "enhanced flash", W3DMGORIGIN_SKILL, W3DMGTYPE_PHYSICAL);
}
g_bFlashed = false;
}
}
}
}
}