The function “Level Up Skill” needs fixed, but excepting that, this works. I don’t know what’s wrong with that function right now, but I need to finish some other work. I will get on it tomorrow. In the mean time, I will send you the project I have so far.
EBCharClasses contains all the availible classes. In the example provided I made three class:
There is also an enum called EBSkills. EBSkills is structured like this:
Black Mage-Ice Attack-8-10
The string is split by the “-” operator. The first part of the string needs to be the exact class name:
The second part of the string is the skill name. In this example, I used spells, but you probably want to make spells a subset, and instead have “Magery” or something like that:
The third part is the skill base, in other words, up until this skill base, it will only cost 1 point to add to this skill:
8 (Up until level 8 in this example.)
The last part is the maximum number of skill points this skill will cost near the max of its skill ceiling. All skills are capped at 100, I didn’t feel like putting in the cap code.
10 (This creates a difficulty curve to level this ability.)
On the base character ThirdPersonCharacter, the current skills are stored as a string array called “AvailibleSkills” the format is as follows:
Skill Byte Index-Number of Points Spent-Number of Points Until Next Level-Current Level
I also added an exp system with leveling that automatically adds points to spend on a curve. Experience will roll over.
So if you need 500 points to reach the next level, and you get 1000, it will give the next level and preserve the left-over points. You can adjust the functions for whatever curve you want.
There is a game hud that displays level, experience, and next level experience.
There is a level hud that will allow you to spend points and level your skills on a curve based upon string settings.
The L key will open this hud, and will freeze your character using a simple state bool. Press the L key again to unfreeze.