Ice Cream Jonsey wrote:- A character can have a maximum of 32,000 experience points.
- A character gains levels based on tables for their class. A class is something like Commando, Magician, Mechanic, etc.
It sounds like you have plenty of room there. But, the question is, why do you need to do this? Do the attributes for a player class constitute separate attribute-type values for the class such that if you change enough of one attribute alone it changes the condition of the class or does it require more than one attribute to change, and if so, is the change cumulative for all of them or certain groups of attributes together are what determines what the change is? I'm not sure if I am clear but let me give an example.
In Free Pascal / Delphi, you can have an element on a form which is a button you can click on to do something, and you can also have an image; a picture, an icon, whatever. Image class objects don't have a click event but they do have a mousedown and a mouseup event. The mousedown event, if you enable it, fires when the user presses down on one of the buttons of the mouse - left, scroll wheel, or right - within the image. The mouseup event fires when the user releases that mouse button, whether the release is inside or outside of the image.
The mouseup event tells you which button was released and the x,y position relative to the top left corner of the image where the mouse is when the button is released. If either is negative or above the size of the image in that direction, it's out of range and outside the image, and in that case you can do nothing. But if you use the values when in range to do something when the mouse button used is the left button (as opposed to the scroll wheel button or the right button) and the left button release is within the image, well, you've just converted the element from an image into an image
button.
Putting in code in the mouseup event of an image to act if the left mouse button release is within the image changes the class of the object from an image to an image button even if it's not in the button class explicitly.
So in your case, do raising or lowering certain properties of the character then change its class, and if so, what properties? If there is a property 'magic,' and 90-100 means a wizard, at what point is it not a wizard, e.g. if a warrior gets some potion and raises his magic from 10 to 90 is he now a wizard, or is he simply a warrior with high magic ability? I would think that certainly, if he reaches 90 he changes from class warrior to class wizard. But what about a wizard whose magic drops to 89, does this degrade a wizard to, say, sorcerer or mage or whatever the next level below wizard is, or does it just mean his magic is unreliabkle vis a vis Aunt Harriet in the TV show
Bewitched?
If advancing above or dropping below a specific attribute automatically changes you to a new class is the case, then you'd need some sort of table to say that certain values automatically put someone in a particular class.
Otherwise you'd need some sort of code algorithm to say that, e.g. if you're above this attribute that puts you in one class, or if you're above attribute "a" to this amount and attribute "b" to this amount makes you this class, otherwise you're that class. Or it could be that all the attributes represent a certain value and the combined total determines your class.
What do you think? Does this help clarify your thoughts as to what you want to try to accomplish?