Below is the best method for tracking the level of a given ability:

Code:
//Better tracking of current level for increased performance!
public OnSkillLevelChanged(client,race,skill,newskilllevel)
{
    if(race==thisRaceID)
    {
        if(skill==SKILL_RELM) //1
        {
            skill_level_relm[client]=newskilllevel;
        }
        else if(skill==SKILL_SPEAR) //2
        {
            skill_level_spear[client]=newskilllevel;
        }
        else if(skill==SKILL_IMMU) //3
        {
            skill_level_immu[client]=newskilllevel;
        }
        else if(skill==SKILL_HELM) //4
        {
            skill_level_helm[client]=newskilllevel;
        }
        else if(skill==ULT_GAZE) //5
        {
            skill_level_gaze[client]=newskilllevel;
        }
    }
}
I would use a switch if I could but the variables are not constant (compiler throws error). Optimizing this function is very important as it is called at the start of every round, when ever a player changes races and when ever a players skill level changes.