RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
[YERD] Subclass Selection System

0 Members and 1 Guest are viewing this topic.

*
Rep:
Level 84
Subclass Selection System
Last Update: 2009.05.10
By: Yanfly Engine ReDux
 
Introduction
There's been a lot of scripts where class changing is possible, but I've yet to see anything about a subclass system. Although this script allows changing primary classes, its main focus is the subclass system. There are many rules you may set for your subclass system. You can enable or disable equipment sharing amongst classes. You can choose how subclasses affect your base stats or not at all. You can determine how skills can be learned via subclass, etc.

CLASS SYSTEM
Classes are now split between primary and secondary classes. You can set many different rules for each class here inside the script. Secondary classes will expand the skill pool and equipment pool an actor has. With the class system, actors can also get a change in their base stats depending on which class they have equipped at the time. They can also get different amounts of boosts for their stats upon leveling up. The possibilities are vast.

JP SYSTEM
There is a new stat for each actor called JP. This new stat can be earned through various ways. It can be earned in battle, from items, attacking, using skills and items, and guarding. All of that can be modified. What JP does is allow your actors to learn new skills through a JP purchase system. These skills are unlocked when JP is spent on them and an actor will permanently have the skill at their disposal.

UNLOCK SYSTEM
Classes are unlocked via directly class changing, items, or learning specific skills. Scripted events can also directly unlock classes for actors if that's what floats your boat. There is no direct tier system implemented with this script since there is too many different ways people would love to have their classes unlock and whatnot.

Update History
  • 2009.05.07 - Lag reduced. Ironed out crash bugs for incorrectly inputted class data.
  • 2009.05.05 - Finished demo. Fix up remaining bugs.
  • 2009.04.30 - Finished script. Started on demo.
  • 2009.04.29 - Started script.

Screenshots

 
Script
Click here to view the main script.
Click here to view the Victory Aftermath Expansion Page.
Click here to view FAQ.

Demo
There is a demo available to see how this script runs.


Click here to grab the demo.
 
Instructions
Since this is a big script, I’ve included a number of screenshots to explain everything (hopefully).

---------



Since I know not everybody is going to want these options to appear immediately (or some of them to appear at all), I've binded four switches to the appearance of these options. Enable them by going into the event editor and turning the switches to true. The options will then be provided for the player.

ALLOW_CHANGE_PRIMARY_SWITCH, ALLOW_CHANGE_SUBCLASS_SWITCH, ENABLE_CLASS_CHANGE_SWITCH, ENABLE_LEARN_SKILLS_SWITCH
Should you like to change the switch ID's, adjust those four entries there within the module to meet your demands

ALLOW_EQUIP
If true, actors can wear equipment allowed by their subclasses.

---------



Let's start with the Class Change menu. Here, the player can change their primary class (so long as ALLOW_CHANGE_PRIMARY_SWITCH is true) and their subclass (so long as ALLOW_CHANGE_SUBCLASS_SWITCH is true). "Learn" is a shortcut to go to the skill learning menu and "Finish" is as it means, ends the class changing process and goes back to the main menu. On this screen, it displays what the player can change their primary and subclass into, the stat difference after making the change, and each class's JP totals.

If desired, the string data can be changed in the script's module through MENU_CLASS_CHANGE_TITLE, PRIM, SUB, LEARN, and DONE. Icons can be swapped out for different ID's as well. Just modify their ID's as you see within the ICONS array.

---------



You may restrict particular actors to a certain set of classes. No matter what classes the actor unlocks, the actor will not be able to extend the classes it can change to past the set. This can allow you to keep magic-centered characters to stay magic-centered characters. The actors will still have to unlock each and every class inside the hashes.

ACTOR_RESTRICTED_CLASSES
This hash allows you to adjust which actors will have access to which classes and only those classes.

---------



Considering some class combinations can provide extremely long names that will end up getting smushed when viewed, there is the ability to swap out the combination name into something else. Note that the class combination results aren't backwards compatible. For instance, a Knight/Magician becomes a "Magic Knight" while a Magician/Knight becomes a "Spell Sword." You can edit these to however you'd like them and even make up more unique names. Single name classes generally don't have unique names to accompany them.

---------



If an actor is a specific class, they can get additional stat bonuses for leveling up with that class. This can be enabled for both the primary class and subclass within the module.  Look for the CLASS_STAT_BONUS_SET and CLASS_STAT_BONUS_RAN to adjust the stat increases for each class. Or you can enable one or the other, or neither at all. The extra bonuses the actors receive can be adjusted within the table above. These stats can be a set increase or a random increase (found on the table below the set increase). Determine what's suitable and fitting for your classes when leveling up.

---------



In addition to setting increases with your classes, you can have your primary class and subclasses affect base stats. They will affect the actor's base stats by a percentage, which will be determined by whatever you input within the CLASS_STAT_RATE table. You can also enable whether or not you'd like for both primary and subclasses to affect stats, only one of them, or neither of them at all.

---------



Let's go into the "Learn Skill" menu. Here, actors can spend JP they've earned for their respective classes to learn new skills for themselves. Learned skills are never forgotten, but they won't be available for use unless either the primary class or subclass pertaining to that skill is equipped. This means a Knight/Magician can't use Grappler skills until the actor switches to the Grappler class for their primary class or subclass.

USE_JP_SYSTEM
If you wish to drop the JP system altogether, set that option in the module to true.

MAX_JP_EARNED
This will determine what's the maximum JP in a class that an actor can store.

---------



To determine what skills each class can use, you must first adjust the CLASS_SKILL_ALLOW arrays. Input the skill ID's into the respective arrays for each class ID. These skills will become limited to only those classes unless they exist in other classes. However, if you place the skills into class ID 0, those skills will become common skills and usable regardless of what class the actors have equipped.

---------



Some skills can be applied to being primary-class only or subclass-only. These skills will only become available if the class is equipped as a primary-class or subclass (depending on which skills you allot to the proper hashes). They will be indicated by a different icon instead of the usual card icon.

PRIMARY_ONLY_SKILLS
This hash adjusts which skills will be available to which class if the class is equipped as a primary class.

SUBCLASS_ONLY_SKILLS
This hash adjusts which skills will be available to which class if the class is equipped as a subclass.

PRIMARY_ONLY_ICON
Sets the icon displayed for primary-only skills.

SUBCLASS_ONLY_ICON
Sets the icon displayed for subclass-only skills

---------



Also, the before-mentioend arrays determine which skills will appear within the "Learn Skill" menu command so long as those skills have a JP cost. You can set the skill's required JP cost within the skill's notebox by using the <jp cost x> tag. If you don't want a skill to be unlockable through spending JP, just don't give the skill a JP cost and it won't appear on the list. However, those un-JP-learnable skills will still count towards the class's mastery percentage.

---------



With the <require skill x> tag in a skill's notebox, that skill will require skill x to be learned before the skill itself can be learned. This can be used as a tier system to prevent learning higher level spells before learning lower level spells. When a skill requires knowledge of another skill, the JP cost will be replaced with "Requires" followed by the icon of the skill it requires. If you wish for a skill to require multiple spells to be known before it can be learned, just input more <require skill x> tags.

<require skill x> This tag will prevent the skill from being learned until skill x is learned.

---------



On another note, you can make some skills to require the actor to reach a certain level before a particular skill can be learned. If the actor has not yet reached the required level, the JP cost will be replaced by the level it requires the actor to be. Use the <require level x> tag in the skill's notebox to designate what level is required for the actor to be before the skill can be unlocked using JP.

<require level x> The actor must be at least level x before it can learn the skill.

---------



For those wondering about how actors will earn JP, there's a number of ways. The actors can perform normal attacks, perform skills, guard, or use items. All of these can be enabled or disabled and each of them can have different amounts of JP adjusted. JP earned in battle will only be applied to the actor's primary class and the actor's subclass. However, there is a percentile split between the primary class and subclass JP earnings.

By default, the primary class will earn 100% of the JP earned through battle. This can be adjusted through EARN_JP_MULTIPLIER_PRIMARY.

By default, the subclass will earn only 50% of the JP earned through battle. This can be adjusted through EARN_JP_MULTIPLIER_SUBCLASS.

---------



In addition to actions giving JP, you can adjust the rate at which monsters give JP upon defeat by changing ENEMIES_DEFAULT. If you would like certain enemies to give a different amount of JP than the rest, simply put in the <enemy jp x> tag into the respective enemy's notebox and they'll provide that amount instead of the default. To make some enemies not give off any JP at all, put in the <enemy jp 0> tag to prevent them from doing so.

---------



Those who use Display Victory Aftermath can have an extra page tacked on to display JP earnings. In addition to the extra page, there's a whole new set of quotes you can let your actors say. You can find that extra page add-on here. Let those creativity juices continue flowing

---------



By placing <bonus jp per x> or <bonus jp set x> into your states' noteboxes, actors under the effects will receive a boost to their JP earnings. <bonus jp per x> will adjust the percentage rate the JP is earned at while <bonus jp set x> will give a direct and static boost to each JP boost.

<bonus jp per x> x is the percentage rate at which JP gain becomes.

<bonus jp set x> x is the set amount added each time JP is gained.

---------



And finally, last but not least, if you wish to not give your players access to the class changing menu, but would still like for them to have their primary and subclasses changable, you can do so through the usage of items. There's five new tags for items and they function as follows:

<set primary x> This will set the target actor's primary class to class ID x. It will also unlock that class for the actor.
<set subclass x> This will set the target actor's subclass to the class ID x. It will also unlock that class for the actor.
<unlock class x> This will just plain flat out unlock class ID x for the target actor. Insert multiple of these to have one item unlock more classes.
<lock class x> This will remove a the unlocked class ID x from the target actor. Insert multiple of these to have one item lock multiple classes.

<gain jp x> This will grant the target actor x JP. The same rules apply. JP is given to the primary class and subclass (with their multipliers).

And that's all there is regarding item effects.

---------

And that's all~ This script's been made for several purposes. Main reason was to provide ease with class-switching and the other was to provide more replayability within RPG Maker VX games (something that's rarely ever in it). The third reason was for people to put more thought into their own game's mechanics should they use this script. As this script requires a rather huge range of things to be done before it's adaptable for any RPG Maker game, creators will need to understand their own game even further. This, I believe, is the first step to making an enjoyable game for their players to smile at.

If you have questions, read the FAQ first before asking them.

Compatibility
- Works with KGC Help Extension, Equip Extension, Custom Menu Command
- Works with Yanfly Victory Aftermath
- Does NOT work with KGC Skill CP System
Please report any compatibility issues and I'll try my best to fix them.

Terms and Conditions
Just give credit where due.
 
Credits and Thanks
- My Beta Testers: Ruka, Jiu, Shadow, Trance, Akira, Kerigis
- Final Fantasy Tactics for influence.
 
Originally Found Here: Here
« Last Edit: May 10, 2009, 04:59:26 PM by Yanfly »
Side-battle systems are the lens flare of RPG Maker.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Best Member2012 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best RPG Maker User (Scripting)2011 Best Use of Avatar and Signature Space2010 Most Mature Member2010 Favourite Staff Member
This is a great script. Nice job Yanfly. You have great ideas for scripts and you work so fast. It's really great.

******
Revolution is not a bed of roses.
Rep:
Level 91
Project of the Month winner for July 2009
Don't use VX, but I have to say, this is a great idea and you've implemented it well. Also, I like how you presented it.

*
Rep:
Level 84
Awww, thanks for the compliments. =D
I'm glad you guys like it.

In any case, I've updated the script to reduce potential lag and ironed out crashes if users were to input class data incorrectly.
Quick linkie: http://www.pockethouse.com/rpgvx/scripts/subclassselectionsystem.txt
Side-battle systems are the lens flare of RPG Maker.

*
Rep:
Level 84
Upgrade Pack 1 is here!

---------



Some skills can be applied to being primary-class only or subclass-only. These skills will only become available if the class is equipped as a primary-class or subclass (depending on which skills you allot to the proper hashes). They will be indicated by a different icon instead of the usual card icon.

PRIMARY_ONLY_SKILLS
This hash adjusts which skills will be available to which class if the class is equipped as a primary class.

SUBCLASS_ONLY_SKILLS
This hash adjusts which skills will be available to which class if the class is equipped as a subclass.

PRIMARY_ONLY_ICON
Sets the icon displayed for primary-only skills.

SUBCLASS_ONLY_ICON
Sets the icon displayed for subclass-only skills

---------



With the <require skill x> tag in a skill's notebox, that skill will require skill x to be learned before the skill itself can be learned. This can be used as a tier system to prevent learning higher level spells before learning lower level spells. When a skill requires knowledge of another skill, the JP cost will be replaced with "Requires" followed by the icon of the skill it requires. If you wish for a skill to require multiple spells to be known before it can be learned, just input more <require skill x> tags.

<require skill x> This tag will prevent the skill from being learned until skill x is learned.

---------



On another note, you can make some skills to require the actor to reach a certain level before a particular skill can be learned. If the actor has not yet reached the required level, the JP cost will be replaced by the level it requires the actor to be. Use the <require level x> tag in the skill's notebox to designate what level is required for the actor to be before the skill can be unlocked using JP.

<require level x> The actor must be at least level x before it can learn the skill.

---------



You may restrict particular actors to a certain set of classes. No matter what classes the actor unlocks, the actor will not be able to extend the classes it can change to past the set. This can allow you to keep magic-centered characters to stay magic-centered characters. The actors will still have to unlock each and every class inside the hashes.

ACTOR_RESTRICTED_CLASSES
This hash allows you to adjust which actors will have access to which classes and only those classes.

---------



By placing <bonus jp per x> or <bonus jp set x> into your states' noteboxes, actors under the effects will receive a boost to their JP earnings. <bonus jp per x> will adjust the percentage rate the JP is earned at while <bonus jp set x> will give a direct and static boost to each JP boost.

<bonus jp per x> x is the percentage rate at which JP gain becomes.

<bonus jp set x> x is the set amount added each time JP is gained.

---------

http://www.pockethouse.com/rpgvx/scripts/subclassselectionsystem.txt
Side-battle systems are the lens flare of RPG Maker.

***
Rep:
Level 84
---> LOL <---
I understand this may be necro posting and I am sorry - but how would you call this script from out side the menu assuming it not in the menu and could you use script calls to say "at this time bla will have this class" or "you defeated X, bla is now has class Y"

« Last Edit: January 07, 2011, 03:16:49 AM by Adrien. »

**
Rep:
Level 84
Have an event call the scene:
 $scene = Scene_Class_Change.new
 $scene = Scene_Learn_Skill.new
I did not see anything to force the character to have a specific subclass however. Seems everything is unlocked through notes.

*
Rep: +0/-0Level 73
RMRK Junior
Umm, I can't download it, links are dead, can anyone tell me how to get them, looks awesome!

*
Rep: +0/-0Level 68
RMRK Junior
Very great ! Congrat's !

***
Rep:
Level 69
RESIDENT ADONKADONK
THIS IS THE BEST SCRIPT EVER!
Anyways, Yanfly, is that link update more updated than 2009.06.28?
Cause if so I will download it! Also, would I have to go through and configure it all over again? :(
It took me a couple of hours to get everything set up.
EDIT: After looking at your post, I have the updated version! :3.
Your the best Yanfly.
EDIT 2: Aww fudge, I am part of a HUGE necropost :(
« Last Edit: June 26, 2011, 11:57:06 AM by Adon »

I'm back.

**
Rep: +0/-0Level 64
Twin Raven Studios
Please forgive my Necro Posting but I recently saw this and a friend suggested I add it to my game, However, I can't find a way to download it at all :(
<a rel="license" href="http://creativecommons.org/licenses/by-nd/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nd/3.0/us/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nd/3.0/us/">Creative Commons Attribution-NoDerivs 3.0 United States License</a>.

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Most Missed Member2014 Zero to Hero2014 Best IRC Quote2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
Pockethouse went down, and Yanfly is only hosting the Y6 engine scripts, so people usually just go to this thread to find the old Yanfly scripts.

It might not be there, so you may have to do a bit of searching.
it's like a metaphor or something i don't know