mob/proc
LevelCheck()
if(src.Exp>=src.Nexp)
src<<"<I><B><small>You gained a level!"
src.Level+=1
src.MaxHP+=rand(1,5)
src.MaxMP+=rand(1,5)
src.HP=src.MaxHP
src.MP=src.MaxMP
src.Exp=src.Exp-src.Nexp
src.Nexp=src.Level*10
for(var/obj/Skills/O in SkillList)
if(O.LearnedBy==src.Class)
if(O.Learned==1)
return
else if(src.Level>=O.LearnedOn)
src.contents+=new O.type
O.Learned++
src<<"<I><B><small>You learned [O]!"
Problem description:You Repeaditly learn the skill upon Relogging and killing a mob.
Then once you learn the skill it says, Add +1 to O.Learned. Which means every time you learn the skill it pluses one more. Hence it keeps adding to Learned. So it can go to any number above 1, and keep adding to it. Try changing it to: "O.Learned = 1"