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.