[XP] Legacy Class Change

Started by legacyblade, August 26, 2008, 06:23:45 pm

Previous topic - Next topic

legacyblade

You have to set up some configurations in there :P Download and look through the demo's script, or read the script comments, to figure out how. I can't really explain it any better than I did in my demo, but if you still have questions after playing it and looking through my configuration, just ask and I'll clarify.

CursedSoldier

 :( Every time i try to open the demo link it gives me the 404

legacyblade

March 27, 2010, 10:53:01 pm #82 Last Edit: March 27, 2010, 10:54:18 pm by Professor Legacyblade
Oh. I could have sworn I fixed that link. Let me fix it, sorry for the inconvenience.

--
fixed, you can download the demo now. Sorry about that.

CursedSoldier


Sacred Nym

First, aboslutely awesome script. Reminds me of FF5.


Now, while this script is so great, the fact that Classes level up directly with the Actor, is an issue, as already previously stated. The main reason for this being that changing class at any point in the game other than right at the start becomes far more trouble than it's worth. The simplest solution would be to give classes their own experience scale. I'd help with this, but I know far too little about RGSS to be of any use.


While I think that should take priority, the other thing I wanted to bring up was a feature request. I was wondering if it would be possible to add a "skill unlock" type feature.

For example: A cleric becomes able to use Heal at class level 5, but only as a cleric. When said cleric reaches class level 10, he/she becomes able to use the same Heal spell, but now as any class. Would that be possible?
Quote昨日の自分に「さようなら」
Say "Goodbye" to who you were yesterday.

legacyblade

I disagree on the leveling up thing. Maybe it's just because I'm a big D&D fan  (in D&D no matter what your class level is, you level up according to your overall level). Most RPGs that allow class changing that I've ever played do this, so I am going to leave it the same way I want. I'm going to change how stats increase though. (rather than following the actor's curve, I'll have a curve for each class. So you'll get more strength per level as a fighter than as a cleric)

About the unlocking skills, it'd take a bit of effort, but I'll try implementing it. It sounds like a good feature, though I'll have to make it optional as it wouldn't mesh well with any AP system.

Thanks for the suggestions, I really appreciate it.

Sacred Nym

Quote from: legacyblade on April 17, 2010, 10:39:03 pm
I disagree on the leveling up thing. Maybe it's just because I'm a big D&D fan  (in D&D no matter what your class level is, you level up according to your overall level).

Ah, D&D. I forgot about that one. I remember playing around with the system (or a variation of it) in Neverwinter Nights. The main part that worries me about the system is that it makes it really easy for the player to royally screw themselves. I lost count of how many times I had to enter debug mode and retake my levels because one experiment in leveling made the next part of the game nearly impossible, on EASY mode. I can see this working in the tabletop game since balancing can be done and redone as you progress, but it's not that simple in a video game.

That said, it may have just been poor experience due to that being my first WRPG since... I can't remember. :V

QuoteMost RPGs that allow class changing that I've ever played do this

Not arguing, but can you give some examples, if only to sate my curiosity? :P

QuoteI'm going to change how stats increase though. (rather than following the actor's curve, I'll have a curve for each class. So you'll get more strength per level as a fighter than as a cleric)

Ah. Good. That was another complaint I had, but it's also rather easily fixed with outside systems.

QuoteAbout the unlocking skills, it'd take a bit of effort, but I'll try implementing it. It sounds like a good feature, though I'll have to make it optional as it wouldn't mesh well with any AP system.

Oh of course it should be optional. Versatility is never a bad thing.
Quote昨日の自分に「さようなら」
Say "Goodbye" to who you were yesterday.

legacyblade

Quote from: Sacred Nym on April 18, 2010, 01:47:46 pm
Ah, D&D. I forgot about that one. I remember playing around with the system (or a variation of it) in Neverwinter Nights. The main part that worries me about the system is that it makes it really easy for the player to royally screw themselves. I lost count of how many times I had to enter debug mode and retake my levels because one experiment in leveling made the next part of the game nearly impossible, on EASY mode. I can see this working in the tabletop game since balancing can be done and redone as you progress, but it's not that simple in a video game.


That's part of the fun, the game doesn't "talk down to you". If you want to take 1 level in every class in the game at a time (by the time you're level twenty, you only have level 2 abilities in 10 different classes or something) you can do it. That being said, I've never actually seen a player who's that stupid. I mean, no one complains that you can replace all your pokemon's moves with crappy ones.

That said, it may have just been poor experience due to that being my first WRPG since... I can't remember. :V

Quote from: Sacred Nym on April 18, 2010, 01:47:46 pm
QuoteMost RPGs that allow class changing that I've ever played do this

Not arguing, but can you give some examples, if only to sate my curiosity? :P


Off the top of my head, Final Fantasy Tactics Advanced (1 and 2), Star Wars Knights of the Old Republic (though sorta a bad example for my point, seeing as how most abilities are tied to your overal, rather than your class, level, and you only change your class once), Dokapon Kingdom (mario party meets final fantasy), and every tabletop RPG I've ever played with classes and levels. That goes for games based on the tabletop RPGs. I know there are more, I'm just having trouble thinking of examples.

QuoteOh of course it should be optional. Versatility is never a bad thing.


Glad we agree on that. I am a firm believer in making everything optional in my scripts (within reason).

Lakieth

April 25, 2010, 11:25:41 pm #88 Last Edit: April 25, 2010, 11:35:10 pm by Lakieth
I cant find out how to post a pic and i keep getting this error when i try to switch classes i can bring up my class change menu and every ting but cant switch classes
Spoiler: ShowHide

legacyblade

That means you've set up your config improperly. Please post your configuration.

Lakieth

April 26, 2010, 03:38:30 pm #90 Last Edit: April 26, 2010, 04:17:51 pm by Lakieth
KK i changed my config but still get same error

Heres descript
Spoiler: ShowHide

#Description for Swordsmen
      when 1 then return ['Swordsmen wield swords, and some even use axes']
       
      #Description for Apprentice
      when 2 then return ['These are the children of magic']
     
      #Description for pick pocket
      when 3 then return ['low cheap these are the words that describe them.']
       
      #Description for Alcolyte
      when 4 then return ['pupile of the holy gods']
       
          #Description for Ranger
      when 5 then return ['Rangers are archers and gunners.']
     
        #Description for Knight
      when 6 then return ['Very precise Warrior with much defense']
       
      #Description for Warrior
      when 7 then return ['A brute with no skill all strength']
       
      #Description for monk
      when 8 then return ['Basic martial artists.']
     
      #Description for Mage
      when 9 then return ['Awesome person of death with all elements']
       
      #Description for Summoner
      when 10 then return ['These people summon Demons to their service']
     
      #Description for Assasin
      when 11 then return ['Assasins, the true bad*** (it\'s even part of their name!)']
     
      #Description for Thief 
      when 12 then return ['The thief, they burn your town AND steal your stuff.','Actually sounds kinda fun!']
     
      #Description for Sniper 
      when 13 then return ['Snipers are SO annoying in first person shooters!','thought they can\'t hit you if you\'re hyped up on caffine!']
       
      #Description for Paladin
      when 14 then return ['Oh holy knight, your sword is brightly shining!']
     
      #Description for Sniper
      when 15 then return ['Snipers are SO annoying in first person shooters! thought they cant hit you if youre hyped up on caffine!']
             
      #Description for Hunter 
      when 16 then return ['Archerers duh']
     
     
      end

Herers config
Spoiler: ShowHide

      # if you want a default class description for those not defined, replace the
      # below array with a description like those above.
    return ['']
  end

# This is where you set the requirement for each class. Use the following format
#
# when class_id then return [0,class1's required level,class2's required level,...]
#
# where class_id is the ID of the class that you want to have a requirement,
# 0 is a dummy entry, and"class1's required level, etc. are how many levels needed
# in that class to unlock the class
#
# REMEMBER TO SET THIS UP FOR YOUR OWN PROJECT! IF YOU HAVE MORE ENTRIES IN THE
# ARRAY THAN CLASSES IN THE DATABASE (and the dummy 0 at the beginning, of course)\
# YOU WILL GET AN ERROR!

  def self.class_requirements(class_id)
    case class_id
       
      #to make a class have no requirements (unlocked by default), just don't
      #define requirements for it.
       when 1 then return  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
      when 2 then return  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] 
     
      when 3 then return  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
      when 4 then return  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
      when 5 then return  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
      #Requirement for Knight: 10 Swordsmen
      when 6 then return  [10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
      #Requirement for Warrior
      when 7 then return [10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
      #Requirement for Monk
      when 8 then return [10,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0]
     
      #Requirement for Mage
      when 9 then return [0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
      #Requirement for Summoner
      when 10 then return [0,10,0,5,0,0,0,0,0,0,0,0,0,0,0,0]

      #Requirement for Assassin
      when 11 then return [0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0]
       
      #Requirement for Thief 
      when 12 then return [0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
      #Requirement for Cleric
      when 13 then return [0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0]
       
      #Requirement for Paladin
      when 14 then return [7,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0]

      #Requirement for Sniper
      when 15 then return [0,0,8,0,7,0,0,0,0,0,0,0,0,0,0,0]
     
      #Requirement for Hunter
      when 16 then return [0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0]
       
      end
     
    return


  •   end

legacyblade

Did you make all those classes in your database? If that's not it, I can see right off the bat what your problem is.

when 6 then return  [10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]



I really need to change the config works. Now that I have a little more knowledge of scripting, it'd be just a couple lines that I'd need to change. But what you need is this


when 6 then return  [0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]


I mentioned in the script that there needs to be a dummy 0 element at the beginning. Currently, it's saying you need 10 levels in the class with the ID of 0. But the classes in the database start at 1. So it's looking for something that doesn't exist, thus the nil error. Adding a 0, to the begining of all those configs should fix your problem. I'll change that in the next version.

legacyblade

April 26, 2010, 09:05:18 pm #92 Last Edit: April 26, 2010, 09:35:28 pm by legacyblade
Wow, that was even easier than I thought it'd be. Let me update the demo and upload it. You'll have to change the way you configure the classes slightly

what once was

when 6 then return  [10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]


will become

when 6 then result =  [10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]


and it'll work :D

-edit

version 1.68 is out. Note the change in the configuration as noted above.

Lakieth

Hey im getting the same error i think ill post a pic in a sec but when i put my config in your demo i dont get error is that weird?? :???: :???: :plz: Help me

Lakieth

Here is the pic its a different error and only happens when i change your descript to mine wich is the same as my last post to the dot cause of copy and pasteing Also the line that its talking bout is the very lastone


Spoiler: ShowHide

legacyblade

Post your configuration. I'll check it out. I'm not getting that error on my end.

Lakieth

Its something with my description i think cause if i have your descriptions in mine then its fine but if have my description then i get the error so ill post that too



Spoiler: ShowHide
#Description for Swordsmen
      when 1 then return ['Swordsmen wield swords, and some even use axes']
       
      #Description for Apprentice
      when 2 then return ['These are the children of magic']
     
      #Description for pick pocket
      when 3 then return ['low cheap these are the words that describe them.']
       
      #Description for Alcolyte
      when 4 then return ['pupile of the holy gods']
       
          #Description for Ranger
      when 5 then return ['Rangers are archers and gunners.']
     
        #Description for Knight
      when 6 then return ['Very precise Warrior with much defense']
       
      #Description for Warrior
      when 7 then return ['A brute with no skill all strength']
       
      #Description for monk
      when 8 then return ['Basic martial artists.']
     
      #Description for Mage
      when 9 then return ['Awesome person of death with all elements']
       
      #Description for Summoner
      when 10 then return ['These people summon Demons to their service']
     
      #Description for Assasin
      when 11 then return ['Assasins, the true bad*** (it\'s even part of their name!)']
     
      #Description for Thief 
      when 12 then return ['The thief, they burn your town AND steal your stuff.','Actually sounds kinda fun!']
     
      #Description for Sniper 
      when 13 then return ['Snipers are SO annoying in first person shooters!','thought they can\'t hit you if you\'re hyped up on caffine!']
       
      #Description for Paladin
      when 14 then return ['Oh holy knight, your sword is brightly shining!']
     
      #Description for Sniper
      when 15 then return ['Snipers are SO annoying in first person shooters! thought they cant hit you if youre hyped up on caffine!']
             
      #Description for Hunter 
      when 16 then return ['Archerers duh'
]


Spoiler: ShowHide




  #Requirement for Knight     
      when 6 then result =  [15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
      #Requirement for Warrior
      when 7 then result = [15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
      #Requirement for Monk
      when 8 then result = [5,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0]
       
      #Requirement for Mage
      when 9 then result = [0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
      #Requirement for Summoner
      when 10 then result = [0,7,0,8,0,0,0,0,0,0,0,0,0,0,0,0]

      #Requirement for Assassin
      when 11 then result = [0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0]
       
      #Requirement for Thief 
      when 12 then result = [0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
      #Requirement for Cleric
      when 13 then result = [0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0]
       
      #Requirement for Paladin
      when 14 then result = [10,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0]

      #Requirement for Sniper
      when 15 then result = [0,0,9,0,6,0,0,0,0,0,0,0,0,0,0,0,]
     
      #Requirement for Hunter
      when 16 then result = [0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0]

legacyblade

#Requirement for Sniper
      when 15 then result = [0,0,9,0,6,0,0,0,0,0,0,0,0,0,0,0,]


You have an extra comma at the end. It should be

#Requirement for Sniper
      when 15 then result = [0,0,9,0,6,0,0,0,0,0,0,0,0,0,0,0]


(that's nothing to do with my script, that's just how Ruby works)

Lakieth

Im really sorry but i changed that and still got wrong error like i said before it works when i put my config in yours but if i put my descriptions then it fails

legacyblade

   #Description for Hunter  
      when 16 then return ['Archerers duh'
]


should be


   #Description for Hunter 
      when 16 then return ['Archerers duh']


If you're only getting the error when you have your configuration, that means it's something wrong with your config, not the script :P