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" );
The programing is correct.