The programing is correct.Code:public OnWar3EventPostHurt( victim, attacker, damage ) { decl String:weapon[64]; GetEventString(W3GetVar(SmEvent),"weapon",weapon,63); if( !W3HasImmunity(victim,Immunity_Skills) && !StrEqual(weapon,"raiden_thundrbolt",false) && !StrEqual(weapon,"Raidens_Rath",false) && !StrEqual(weapon,"explode",false) && ValidPlayer( victim, true ) && ValidPlayer( attacker, true ) && GetClientTeam( victim ) != GetClientTeam( attacker ) ) { if( War3_GetRace( attacker ) == thisRaceID ) { //Thunderbolt new skill_dmg2 = War3_GetSkillLevel( attacker, thisRaceID, SKILL_DMG2 ); if( !StrEqual(weapon,"hegrenade",false) && !Hexed( attacker, false ) && skill_dmg2 > 0 && Math_GetRandomFloat( 0.0, 1.0 ) <= 0.25 ) { War3_DealDamage( victim, RoundToFloor( damage * DMG2Multiplier[skill_dmg2] ), attacker, DMG_BULLET, "raiden_thundrbolt" );