So in order to create races where the leveling can be dynamic I need to replace multiple global variables in the current system which was designed to get rid of the need for massive global arrays which can get issues like out of bound errors. The goal is to create an actual method which will return the current value just like an array would except that the method statement computes the correct value automatically dependent on the min and max values for that ability, the number of levels for that ability and the users current level.

I will show what our deceleration looks like now which is then computed in the method.

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))