My problem? It levels up fine (the first level needs 100 XP, 99 doesn't trigger it, 100 does), and it uses the same variable to remove XP. However, instead of removing 100 XP, it removes 217.
Code: Select all
script 997 ENTER
{
if (level <= 0)
{
GiveInventory ("SFLevel", 1);
delay(1);
}
exp = CheckInventory ("SFXP");
level = CheckInventory ("SFLevel");
newlevel = level+1;
if (level >= 0 && level < 21)
{
addexp = 0;
pastlevel = 0;
multexp = 100;
}
else if (level >= 20 && level < 41)
{
addexp = 2000;
pastlevel = 20;
multexp = 200;
}
requiredexp = addexp+((level-pastlevel)*multexp);
if (exp >= requiredexp)
{
GiveInventory ("SFLevel", 1);
GiveInventory ("SFSkillPoint", 5);
TakeInventory ("SFXP", "requiredexp");
Print(s:"You have reached Level \cj", d:newlevel);
delay(1);
}
delay(35);
Restart;
}