Quote
Originally posted by Glenn:
I'm fairly sure you can't, as the engine probably doesn't support it.
That's what I'm afraid of. I really wish that we would have some more freedom over the things we can do with the engine. /me sighs.
Quote
There are a lot of potential issues with changing classes that were probably simpler not to deal with in the engine, unfortunately.
I realize that you aren't saying "You can't change &&Job;, nor should you be able to" but I'm going to go through your own thought processes in an attempt to say, "Yes, we should be able to." So this isn't meant as a debunking or anything of the type aimed at you directly(not that I think you would think this, but others might).
Quote
What if the character has items equipped that the new class can't use?
My first thought is: make the player unequip all his equipment! This would take care of all equipment problems.
Also, if &&Job; is not changed and you merely use a global to keep track of skills, level tables, etc, then you will also need to add checks to every item you make to check against your global instead of checking against &&Job;(like they do by default). Otherwise if you change the global for your class, they will still be relegated to use the equipment of their default &&Job; and not their new class.
Quote
What if the new class uses a different experience table?
Then the player will use the new experience table. Just like if you do an Attribute Wizard to auto-set a player's level. You can set a player's level to 10 from 0, when he has no experience points. If you do this then the player will have to earn enough exp to get to level 11 before he levels up again(which will be a lot). I would assume(haven't tested) that if a level 10 guy was set to level 0 but exp was not reset then the next exp point he earns he will level right up to level 10. The same would hold true for a class change. The engine, one would assume, would start looking at the new class exp table. And if the player was way over the experience for his level then the next exp point he earns he would level up to what his level should be(or perhaps a class change within the attribute wizard would auto level him?). And if he didn't have enough exp for the level of his new class he would simply have to earn enough before he levelled. But &&NextLevelNeeded; seems to be calculated on the fly(it changes if you manually adjust &&Experience;), so the engine should be able to handle it.
Quote
Does the player forget all the spells that his new class can't cast?
Nope. But he won't be able to cast them. The engine deals with this fine currently. In PoG, I can manually change a player from conjurer to ranger, add a ranger spell, then switch him back to conjurer. If I open up the spell book it will display all the skills. Granted, you will need to place a conditional in the spells to see if the player is of the class that should be able to cast the spells. But the engine will keep track of what the player knows.
Quote
What if he switches back later on?
Again, no problems. He already keeps the skills he had so now he can use them.
Quote
Obviously an engine could deal with all these possibilities, but I'm guessing that Dee & Co. probably didn't.
I really fail to see how difficult this would be. Granted, I also don't have a copy of Coldstone's source code in front of me.
But I also don't see how this is any different than anything else within Coldstone. If you change &&Job; and don't do something such as unequip the player, bad things can happen. Just like if you put in a picture of the wrong format then bad things will happen. I like choices and being able to manipulate/change things. And a "variable" like class should be changeable, in my humble opinion.
Quote
As to workarounds, it seems to me like your current method (a global "playerIsClassX", if I understand aright) should be workable. You would just need to override all existing class-related events (such as level-up events) so that they all include a conditional check of "playerIsClassX is 0" or the like. I don't think you could change the skill table itself though - so the player's stuck with whatever rate of level advancement he's already got.
Yes, a workaround is possible. Frankly it is a lot more work than I wanted to do(though I've already done part of it...grumble). Especially since you can change just about every other bloomin' thing about the character. I guess my biggest complaint here is that if I can set an attribute, I should be able to change that attribute. We can create classes and put the character into that class. But once they are set to that class we can't change it. And that bites.
Quote
Hope this helps.
Despite my complaints/protests, you have helped quite a bit. You gave me some ideas about the working around this limitation that I hadn't thought of already, so I should be able to still do what I want to do. Just with a whole truck load of additional work than I had at first anticipated.
------------------
(url="http://"http://stark.evula.net/pogwalkthrough.htm")PoG Walkthrough and Compendium(/url) | (url="http://"http://www.ambrosiasw.com/cgi-bin/vftp/dl-redirect.pl/PoG_Dev_Tools_Source.sit?path=coldstone/resources&file;=PoG_Dev_Tools_Source.sit")PoG Dev Tools(/url)
(url="http://"http://stark.evula.net")Stark.evula.net(/url) now on (url="http://"http://www.evula.net")EVula.net(/url)