So before we had this:
Global Vars
Code:
new Float:IronBaseChance = 0.05;
new Float:IronChanceMult = 0.01;
In program:
Code:
if(Math_GetRandomFloat(0.0,1.0)<=IronBaseChance + (skill_level*IronChanceMult))
Now we have this:

Global Function
Code:
public Float:IronChance(currentLevel)
{
    return AbilityValue(0.05, 0.25, RaceLevels, currentLevel);
}
In Program
Code:
if(Math_GetRandomFloat(0.0,1.0)<=IronChance(skill_level))