An rpg experience system...
by Isaac Barbosa · in Torque Game Builder · 07/16/2007 (11:57 am) · 4 replies
Hello,
I have been searching for this in the forums but I didn't found anything.
I want to ask if somebody has a clear idea on how to implement an experience system for an RPG character.
So player starts game with 0 experience and as soon him does certain things he got experience point and when those points reach certain level he is able to level up its magic power, for example.
for now I have this code working for this effect, but I'm sure it is not the best approach:
where $Elevel(n) is the actual experience level; Thanks for the help
I have been searching for this in the forums but I didn't found anything.
I want to ask if somebody has a clear idea on how to implement an experience system for an RPG character.
So player starts game with 0 experience and as soon him does certain things he got experience point and when those points reach certain level he is able to level up its magic power, for example.
for now I have this code working for this effect, but I'm sure it is not the best approach:
if($Elevel1 $= true && $Elevel2 $= false && PlayerOneProfile.CurrentExperience >= $NextExperienceLevel)
{
$upgradeAvailable--;
$CurrentMagicLevel++;
$NextExperienceLevel = 200;
$Elevel1 = false;
$Elevel2 = true;
NextExperienceLevel.text = "Level Up at:" SPC $NextExperienceLevel;
CurrentMagicLevel.text = "Magic Level:" SPC $CurrentMagicLevel;
}
else if($Elevel2 $= true && $Elevel3 $= false && PlayerOneProfile.CurrentExperience >= $NextExperienceLevel)
{
$upgradeAvailable--;
$CurrentMagicLevel++;
$Elevel2 = false;
$Elevel3 = true;
$NextExperienceLevel = 300;
NextExperienceLevel.text = "Level Up at:" SPC $NextExperienceLevel;
CurrentMagicLevel.text = "Magic Level:" SPC $CurrentMagicLevel;
}
else if($Elevel3 $= true && $Elevel4 $= false && PlayerOneProfile.CurrentExperience >= $NextExperienceLevel)
{
$upgradeAvailable--;
$CurrentMagicLevel++;
$Elevel3 = false;
$Elevel4 = true;
$NextExperienceLevel = 400;
NextExperienceLevel.text = "Level Up at:" SPC $NextExperienceLevel;
CurrentMagicLevel.text = "Magic Level:" SPC $CurrentMagicLevel;
}where $Elevel(n) is the actual experience level; Thanks for the help
#2
$ExpNeeded[2] = 200;
$ExpNeeded[3] = 300;
$ExpNeeded[4] = 400;
$MaxLevel = 4;
Then you can replace the $Elevel1 / $Elevel2 / etc flags with a single $Elevel variable, which holds your current level. And the if statement becomes:
07/17/2007 (2:45 pm)
Since the effects of gaining a level seem to be consistent (magic level up, upgrade available down), you could generalize this to a single statement, with just the $NextExperienceLevel amount stored separately. First you'd need a definition for levels, something like:$ExpNeeded[2] = 200;
$ExpNeeded[3] = 300;
$ExpNeeded[4] = 400;
$MaxLevel = 4;
Then you can replace the $Elevel1 / $Elevel2 / etc flags with a single $Elevel variable, which holds your current level. And the if statement becomes:
if($Elevel < $MaxLevel)
{
%xpNeeded = $ExpNeeded[$Elevel + 1];
if(PlayerOneProfile.CurrentExperience >= %xpNeeded)
{
$upgradeAvailable --;
$CurrentMagicLevel++;
$Elevel++;
CurrentMagicLevel.text = "Magic Level:" SPC $CurrentMagicLevel;
if($Elevel < $MaxLevel)
{
%nextLevel = $ExpNeeded[$Elevel + 1];
NextExperienceLevel.text = "Level Up at:" SPC %nextLevel;
}
else
{
NextExperienceLevel.text = "Max Level Reached";
}
}
}
#4
Level
2 = 200
3 = 300
4 = 400
etc.
You could also just calculate it based on (Lvl+1)*100 == experience needed for next level.
08/15/2007 (1:35 pm)
If you are going to make the level a factor in the caculation of experience such as Level
2 = 200
3 = 300
4 = 400
etc.
You could also just calculate it based on (Lvl+1)*100 == experience needed for next level.
Torque Owner Isaac Barbosa
IQ Games
Thanks!