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.
FFT Class Bonus system v1.1

0 Members and 1 Guest are viewing this topic.

***
Rep:
Level 90
Skilled Scripter, Shitty Mapper, Decent Writer.
I'm not going to go back through 4-5 pages of threads to revive a dead thread. This topic is to release v1.1 of my Class Bonus System script.

Changes over v1.0
Quoting SECTION 2 of the script notes.
Code: [Select]
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#SECTION 2:Changes made to each version - CMTEV
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#CHANGES IN v1.1
#
#CHANGE #1:
#The method add_ex_class_bonus has been renamed to ex_class_bonus for the simple reason
#that the method used to remove bonuses and such no longer exists, leaving the old name to
#be misleading.
#
#CHANGE #2:
#The method ex_class_bonus has been changed to handle the adding and removing of class bonuses.
#For a full break down of how ex_class_bonus works now, read SECTION 4.
#
#CHANGE #3:
#The method remove_ex_class_bonus was completely removed.
#
#CHANGES IN v1.0
#The original release version. I didn't like the original structure of the script so I released a v1.1
#fixing the issues I had with the script. You should find this script to be a bit easier to use now.

How to use this script
Insert this script above Main and below the rest of the scripts. If you are unsure how to insert a script, read blueXx's instructions on how to insert scripts. Quoting SECTION 3-5 of the script notes to explain how to use this script to the fullest of it's potential. There's almost 200 lines of pure notes going into great detail of how to use this script and how this script works. Please read them.
Code: [Select]
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#SECTION 3:Setting up the class database - SUTCB
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
#You will have to set up the method ex_class_bonus as follows
# Let's say you want to use an equation to return 16% of an actor's attribute.
#You would use the following formula.
#
#((actors stat syntax * 1.0) * 0.16)
#
#List of actor stat syntax:
#Agility:           actor.agi
#Dexterity:        actor.dex
#Max Hp:          actor.maxhp
#Max Sp:           actor.maxsp
#Strength:         actor.str
#Intelligence:     actor.int
#
#Something to note about decimals in RGSS:
#You need the 0. because RGSS does not automatically add the zero to decimals without a zero at the
#front of them. It causes funny things to happen when you forget the zero in your decimals.
#Also, I have setup two default settings for class IDs 1 and 2 as examples for you.
#
#The method add_ex_class_bonus  has been renamed to ex_class bonus and is located at line 317.
#
#The method remove_ex_class_bonus is removed and no longer usable.
#
#
#============================================================
#SECTION 4:Applying and removing bonuses for the purpose of class changing - AARB
#============================================================
#It has been greatly simplified in v1.1 with the removal of the method remove_ex_class_bonus and
#the changes made in add_ex_class_bonus, which has been renamed to ex_class_bonus. To change
#remove class bonuses, use the following in a Call Script
#event command in-game.The all capital parts are what you need to change.
#
#id = $game_party.actors[ACTOR'S ID].id
#$game_ex.ex_class_bonus(CLASS ID, id, false)
#
#Now you're probably wondering what that bit above did if you didn't pay attention above.
#It's quite simple really. You just removed the character's bonuses from their class.
#Now you'll use the Class Change event command to change their class to whatever you want it to
#become. "The new classes bonuses arn't applied! Help!" is probably what you'll do if you don't
#continue reading. =) The bonuses arn't applied when you use the Class Change event command.
#Why do this? Because it gives you the ability to change a player's class through the game or to use
#your own class changer script. You'll have to use the following bit to add the bonuses back. Again,
#change the capital letters.
#
#id = $game_party.actors[ACTOR'S ID].id
#$game_ex.ex_class_bonus(CLASS ID, id, true)
#
#
#I'm sure you're wondering what the capital letters stand for. Quite simple.
#
#CLASS ID - The actor's current class id that is shown in the database.
#I.E.Arshes's class in the default database is Fighter which is 1 while Lancer would be 2 and Warrior
#would be 3.
#
#ACTOR'S ID - The actor's spot in the party determines what this should be.
#I.E. First actor in the party is 0(zero), second actor in the party is 1, third actor in the party is 3 etc.
#
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#SECTION 5:Class bonus changing tutorial - CBCT
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#Now to show you how to setup an event to remove an actor's bonus, change their class, and add the
#bonuses from the new class. We'll use the default database and Arshes(default party) as an example
#by changing his class and bonuses from Fighter to Lancer. Read along while doing this to ensure you
#know how to remove and add bonuses if at any point in the story you want an actor's class and/or
#bonuses to be changed.
#
#STEP 1:
#Use the Call Script event command to remove the bonuses of the Fighter class. Put this inside the
#Call Script window.
#id = $game_party.actors[0].id
#$game_ex.ex_class_bonus(1, id, false)
#
#STEP 2:
#Use the Change Class event command to change Arshes's class to Lancer.
#
#STEP 3:
#Use the Call Script event command to add the bonuses of the Lancer class. Put this inside the
#Call Script window.
#id = $game_party.actors[0].id
#$game_ex.ex_class_bonus(2,id,true)

The purpose of this script
The purpose of this script is to give characters bonuses and/or penalties to their max Hp, max Sp, Strength, Agility, Dexterity, and Intelligence. For a full explanation on how to utilize this script to the greatest of it's potential, read SECTIONS 3-5 of the notes.

Screenshots
Not available for this sort of script.

Demo
Not available for this sort of script.

Compatibility issues
Quoting SECTION 1 of the script notes.
Code: [Select]
#-------()=======================================================>
#SECTION 1:Compability and other issues - CAOI
#-------()=======================================================>
#First things first...BACK UP YOUR PROJECT BEFORE USING THIS SCRIPT!!! This will ensure no work
#is lost if something goes wrong. How do you back up your project? Make a game disk. In the event
#this script DOES cause a major error in your project even AFTER it has been removed from the
#project, then you will have the back up game disk to fall back on. Simply have the game disk
#overwrite your projects directory.
#
#This script corrupts your old save games because it saves new data in the save game files.
#
#This script has 3% chance of being incompatible with SDK but has not been tested with SDK.
#
#This script has a 10% chance of being incompatible with other scripts that alter or otherwise change
#the Game_Actor class. This involves scripts that add new attributes, change existing attributes, or
#otherwise alter character data.
#
#This script has a 5% of being incompatible with other scripts that alter or otherwise change the way
#a project saves or loads data. I have taken a measure to prevent incompatibilities but the chance
#is still there.
#
#CLASSES ALTERED:
#Scene_Title - Creates $game_ex to be used similar to the other class global variables.
#Scene_Save - Stores $game_ex data in the save file of a project.
#Scene_Load - Loads $game_ex data from a save file for continued usage.

The script
Code: [Select]
#============================================================
#------------------------------------------------------------------------------------------------------------------------
#============================================================
#Class name: Game_Ex
#Class version 1.1.0
#Created on 4-22-2007
#Last updated: 5-01-2007
#refer to $game_ex for methods stored within this class.
#
#TABLE OF CONTENTS:
#SECTION 1:Compability and other issues - CAOI
#SECTION 2:Changes made to each version - CMTEV
#SECTION 3:Setting up the class database - SUTCB
#SECTION 4:Applying and removing bonuses - AARB
#SECTION 5:Class bonus changing tutorial - CBCT
#SECTION 6:Method names and their functions - MNATF
#SECTION 7:Final notes concerning the script - FNCTS
#
#To quick jump to a section, use the capital letters by the section name.
#
#-------()=======================================================>
#SECTION 1:Compability and other issues - CAOI
#-------()=======================================================>
#First things first...BACK UP YOUR PROJECT BEFORE USING THIS SCRIPT!!! This will ensure no work
#is lost if something goes wrong. How do you back up your project? Make a game disk. In the event
#this script DOES cause a major error in your project even AFTER it has been removed from the
#project, then you will have the back up game disk to fall back on. Simply have the game disk
#overwrite your projects directory.
#
#This script corrupts your old save games because it saves new data in the save game files.
#
#This script has 3% chance of being incompatible with SDK but has not been tested with SDK.
#
#This script has a 10% chance of being incompatible with other scripts that alter or otherwise change
#the Game_Actor class. This involves scripts that add new attributes, change existing attributes, or
#otherwise alter character data.
#
#This script has a 5% of being incompatible with other scripts that alter or otherwise change the way
#a project saves or loads data. I have taken a measure to prevent incompatibilities but the chance
#is still there.
#
#CLASSES ALTERED:
#Scene_Title - Creates $game_ex to be used similar to the other class global variables.
#Scene_Save - Stores $game_ex data in the save file of a project.
#Scene_Load - Loads $game_ex data from a save file for continued usage.
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#SECTION 2:Changes made to each version - CMTEV
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#CHANGES IN v1.1
#
#CHANGE #1:
#The method add_ex_class_bonus has been renamed to ex_class_bonus for the simple reason
#that the method used to remove bonuses and such no longer exists, leaving the old name to
#be misleading.
#
#CHANGE #2:
#The method ex_class_bonus has been changed to handle the adding and removing of class bonuses.
#For a full break down of how ex_class_bonus works now, read SECTION 4.
#
#CHANGE #3:
#The method remove_ex_class_bonus was completely removed.
#
#CHANGES IN v1.0
#The original release version. I didn't like the original structure of the script so I released a v1.1
#fixing the issues I had with the script. You should find this script to be a bit easier to use now.
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#SECTION 3:Setting up the class database - SUTCB
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
#You will have to set up the method ex_class_bonus as follows
# Let's say you want to use an equation to return 16% of an actor's attribute.
#You would use the following formula.
#
#((actors stat syntax * 1.0) * 0.16)
#
#List of actor stat syntax:
#Agility:           actor.agi
#Dexterity:        actor.dex
#Max Hp:          actor.maxhp
#Max Sp:           actor.maxsp
#Strength:         actor.str
#Intelligence:     actor.int
#
#Something to note about decimals in RGSS:
#You need the 0. because RGSS does not automatically add the zero to decimals without a zero at the
#front of them. It causes funny things to happen when you forget the zero in your decimals.
#Also, I have setup two default settings for class IDs 1 and 2 as examples for you.
#
#The method add_ex_class_bonus  has been renamed to ex_class bonus and is located at line 317.
#
#The method remove_ex_class_bonus is removed and no longer usable.
#
#
#============================================================
#SECTION 4:Applying and removing bonuses for the purpose of class changing - AARB
#============================================================
#It has been greatly simplified in v1.1 with the removal of the method remove_ex_class_bonus and
#the changes made in add_ex_class_bonus, which has been renamed to ex_class_bonus. To change
#remove class bonuses, use the following in a Call Script
#event command in-game.The all capital parts are what you need to change.
#
#id = $game_party.actors[ACTOR'S ID].id
#$game_ex.ex_class_bonus(CLASS ID, id, false)
#
#Now you're probably wondering what that bit above did if you didn't pay attention above.
#It's quite simple really. You just removed the character's bonuses from their class.
#Now you'll use the Class Change event command to change their class to whatever you want it to
#become. "The new classes bonuses arn't applied! Help!" is probably what you'll do if you don't
#continue reading. =) The bonuses arn't applied when you use the Class Change event command.
#Why do this? Because it gives you the ability to change a player's class through the game or to use
#your own class changer script. You'll have to use the following bit to add the bonuses back. Again,
#change the capital letters.
#
#id = $game_party.actors[ACTOR'S ID].id
#$game_ex.ex_class_bonus(CLASS ID, id, true)
#
#
#I'm sure you're wondering what the capital letters stand for. Quite simple.
#
#CLASS ID - The actor's current class id that is shown in the database.
#I.E.Arshes's class in the default database is Fighter which is 1 while Lancer would be 2 and Warrior
#would be 3.
#
#ACTOR'S ID - The actor's spot in the party determines what this should be.
#I.E. First actor in the party is 0(zero), second actor in the party is 1, third actor in the party is 3 etc.
#
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#SECTION 5:Class bonus changing tutorial - CBCT
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#Now to show you how to setup an event to remove an actor's bonus, change their class, and add the
#bonuses from the new class. We'll use the default database and Arshes(default party) as an example
#by changing his class and bonuses from Fighter to Lancer. Read along while doing this to ensure you
#know how to remove and add bonuses if at any point in the story you want an actor's class and/or
#bonuses to be changed.
#
#STEP 1:
#Use the Call Script event command to remove the bonuses of the Fighter class. Put this inside the
#Call Script window.
#id = $game_party.actors[0].id
#$game_ex.ex_class_bonus(1, id, false)
#
#STEP 2:
#Use the Change Class event command to change Arshes's class to Lancer.
#
#STEP 3:
#Use the Call Script event command to add the bonuses of the Lancer class. Put this inside the
#Call Script window.
#id = $game_party.actors[0].id
#$game_ex.ex_class_bonus(2,id,true)
#********************************************************************************
#SECTION 6:Method names and their functions - MNATF
#********************************************************************************
#Alphabetical listing of methods, their fuctions within Game_Ex, and arguments to be passed along
#to said methods.
#
#  add_ex_class_bonus(class_id, actor_id)
#    RENAMED TO ex_class_bonus IN v1.1
#
#  ex_class_bonus(class_id, actor_id, bonus)
#    class_id - The actor's current class id in the database
#    actor_id - Id of the actor who's stats are being modified by Game_Ex.
#    bonus - Set as true if you are applying a set of new "bonuses". Set as false if you're removing the "bonuses".
#    -Shinami-
#    I use $data_actors instead of $game_actors for the class_id argument.
#    Without the use of $data_actors, for unknown reasons I am unable to
#    call the player's class id.  Not exactly efficient but it works.
#   
#    -processing notes-
#    This method functions through the use of a case based on the value of
#    $data_actors[actor's id].class_id passed on as an argument during the calling
#    of the method. Pass off the actor's ID and class ID for proper addition of class
#    bonuses and/or penalties.
#
#  base_class
#    No arguments passed on. Purpose is to store the starting class of each actor.
#    This allows the project team to have the ability to give a character their own
#    unique class that only they can use.
#    -Shinami-
#    This method is still in early developement. May be subject to change.
#    Currently, this method serves no purpose in the original script written by me.
#   
#    -processing notes-
#    The sole purpose of this method is to store the actor's starting class for the reason
#    that in future updates, a class changing scene may be made to handle the changing
#    of each character's class while using their starting class as a "base" class that is unique
#    to that actor alone but still allowing an actor access to other classes as conditions are met.
#    Currently, this method serves no purpose.
#
#  remove_bonus(class_id, actor_id)
#    METHOD WAS REMOVED FOR INEFFICENCIES IN v1.1
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#SECTION 7:Questions and final notes concerning the script - FNCTS
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#More questions will be added as they are asked while others are simply questions I've had numerous
#times with other people's scripts. If you get an error while messing around with this script, read the
#questions here to see if one answers your problem.
#
#Question 1
#What the hell is with the screwy ASCII art crap things around the section names?
#
#Answer
#That's just to denote you're at the start/end of a section. I could have just not included ANY notes
#at all though so just put up with it. Hell, I did! XD =^-^= I'm a sword fanatic though...hence the
#crappy sword thingy at SECTION 1.
#
#Question 2
#I don't understand how to use this script. How do I use it?
#
#Answer
#Just PM me on the forum at http://rmrk.net/index.php/board,25.0.html
#I'm busy with a FFT Class Changing/Skill System at the moment though so I won't be responding
#immediatly. While you wait for my response, you can read the notes while experimenting with the
#script. Seriously though, asking this after someone took the time to note out how everything works
#will piss a few people off but I'm nice and don't bite, unless you have cookies, so ask away. ^_^
#
#Question 3
#I want to learn scripting. Where did you learn?
#
#Answer
#I didn't learn from just one place. Actually, I learned by experimenting with dozens of scripts as well
#as taking script requests to further sharpen my skills. I remember the first CMS I did...horribly done
#when I look back at it but the sense of pride I felt when I completed my first request was enough to
#keep me learning how to script so that I could take more than just CMS requests.
#
#Question 4
#What the hell is a syntax? You lost me there in the questions below!
#
#Answer
#A syntax is something used in any sort of programming language to do special things. Inside the
#RGSS editor, RGSS syntax such as if, and, else, class etc. appear in blue to denote they are syntax.
#
#Question 5
#The script isn't working! It keeps crashing and taking me to a line in ex_class_bonus! I did everything
#right!!! What's wrong?!
#
#Answer
#What you most likely forgot was to put a zero in your decimals. If they're put in like this, .08, it'll
#cause an error. You MUST have a zero before your decimals or the script WILL crash. Like I said
#before, if you forget the zero at the front of your decimals, you'll encounter some strange things.
#
#Question 6
#I get this wierd error that takes me to the start of a "when" syntax thingy! What's wrong?!
#
#Answer
#Quite simple. You might have forgotten an "end" syntax to close off an "if" syntax.
#
#Question 7
#I want to release a modified version of this script with my own changes. Can I do that?
#
#Answer
#Under four conditions I will allow this.
#Condition 1: You CAN NOT charge for this script in any way, fashion, or form! If you see someone
#charging for this script, e-mail me at shinami576@hotmail.com and I WILL put an end to it. Making
#people sign up for your forums to view this script is fine though because lurkers suck.
#Lurker - People who take scripts, graphics, etc. from forums without contributing to a forum's
#community.
#
#Condition 2: You MUST have my permission to post a modified version of this script. I like knowing
#where my works are posted so that I can provide troubleshooting for people who use my scripts. You
#can contact me at shinami576@hotmail.com or malinko576@yahoo.com. My yahoo address is really
#bugged at the moment with tons of junk mail so there is a better chance of you reaching me at my
#hotmail address
#
#Condition 3: You MUST give credit to EVERYONE who has lent a hand in altering this work. People
#get this warm little glow inside that makes them feel good when they see their name in a list of credits.
#
#Condition 4: If you changed anything, you MUST include a full set of notes detailing EVERYTHING you
#changed and how each method inside your version release works. This means having a section
#detailing how to use the script, how the methods work internally, and what role each method's
#arguments play in the script. For a good idea how to do this, look at SECTION 6. You must also
#include a compatibility section that clearly states possible and/or known incompatibilities with the
#script. This helps people that read to keep from screwing up their project.
#
#Question 8
#Why do I need to fulfill those four conditions you just mentioned? They're such a pain in the ass.
#
#Answer
#People won't pay for scripts but people in this world will always try to make a quick buck or two off of
#people who don't know any better. It's called being naive.
#Also, I like knowing where my works are posted so I can provide support for said scripts. It really
#sucks when you find an awesome script on some obscure site but can't find anyone to provide help
#for it when you have questions about it or how to make it work.
#Again, people like seeing their name in a credits list because they worked hard on something you
#used. Also, it's proper etiqute(sp?) to credit people who contributed to your project, just like you see
#tons of names in the credits of a movie. Although in the movies, it's law to credit everyone who did
#had a hand in the making of the movie...or so I think? Regardless, you get my point.
#Finally, I feel it is proper programming etiqute(sp?) to note out EVERY THING in a project, script, or
#program so that others who look at your work can see how you did the things you did and possibly
#learn new things from your programming methods.
#
#
#These are the only questions that I can think of now that'll most likely come up. I'm sure I'll be adding
#to them though! ^_^
#
#===========================================================
#----------------------------------------------------------------------------------------------------------------------
#===========================================================
class Game_Ex
  def initialize
    for i in 1...$data_actors.size
      setup(i)
    end#of "for"
  end#of initialize
 
  def setup(actor_id)
    actor = $data_actors[actor_id]
    @class_id = actor.class_id
    ex_class_bonus(@class_id, actor_id, true)
    base_class
  end#of setup
 
  def base_class
    @base_class = @class_id
    return @base_class
  end#of base_class
 
  def ex_class_bonus(class_id, actor_id, bonus)#(actor's class id, actor's id, true if giving bonuses and false if removing bonuses)
    actor = $game_actors[actor_id]
    case class_id #$data_actors & class_id uses the ID numbering you see in the database.
    when 1#Class ID #1 Default database:Fighter
      ex_class_bonus_hp = ((actor.base_maxhp * 1.0) * 0.2) #20% bonus
      ex_class_bonus_sp = ((actor.base_maxsp * 1.0) * 0.25) #25% penalty
      ex_class_bonus_str = ((actor.base_str * 1.0) * 0.4) #40% bonus
      ex_class_bonus_dex = ((actor.base_dex * 1.0) * 0.3) #30% penalty
      ex_class_bonus_agi = ((actor.base_agi * 1.0) * 0.3) #30% penalty
      ex_class_bonus_int = ((actor.base_int * 1.0) * 0.16) #16% bonus
      if bonus#This is the branch part that adds the "bonuses" from a class
        actor.maxhp += ex_class_bonus_hp#If you subtracted from a stat in the other branch
        actor.maxsp -= ex_class_bonus_sp#then you'll add to that stat in this branch.
        actor.str += ex_class_bonus_str
        actor.dex -= ex_class_bonus_dex
        actor.agi -= ex_class_bonus_agi
        actor.int += ex_class_bonus_int
      elsif bonus == false#This is the branch part that removes the "bonuses" from a class
        actor.maxhp -= ex_class_bonus_hp#If you added to a stat in the other branch
        actor.maxsp += ex_class_bonus_sp#then you'll subtract from that stat in this branch.
        actor.str -= ex_class_bonus_str
        actor.dex += ex_class_bonus_dex
        actor.agi += ex_class_bonus_agi
        actor.int -= ex_class_bonus_int
      end#of "if"
      return
    when 2#Class ID #2 Default database:Lancer
      ex_class_bonus_hp = ((actor.base_maxhp * 1.0) * 0.16) #16% penalty
      ex_class_bonus_sp = ((actor.base_maxsp * 1.0) * 0.33) #33% bonus
      ex_class_bonus_str = ((actor.base_str * 1.0) * 0.3) #30% penalty
      ex_class_bonus_dex = ((actor.base_dex * 1.0) * 0.19) #19% bonus
      ex_class_bonus_agi = ((actor.base_agi * 1.0) * 0.3) #30% bonus
      ex_class_bonus_int = ((actor.base_int * 1.0) * 0.16) #16% bonus
      if bonus
        actor.maxhp -= ex_class_bonus_hp
        actor.maxsp += ex_class_bonus_sp
        actor.str -= ex_class_bonus_str
        actor.dex += ex_class_bonus_dex
        actor.agi += ex_class_bonus_agi
        actor.int += ex_class_bonus_int
      elsif bonus == false
        actor.maxhp += ex_class_bonus_hp
        actor.maxsp -= ex_class_bonus_sp
        actor.str += ex_class_bonus_str
        actor.dex -= ex_class_bonus_dex
        actor.agi -= ex_class_bonus_agi
        actor.int -= ex_class_bonus_int
      end#of "if"
      return
    end#of "case class_id"
  end#of "ex_class_bonus"
end#of class
#===========================================================
#----------------------------------------------------------------------------------------------------------------------
#===========================================================
#Class name: Scene_Title
#Class version 1.0.0
#Last updated: 4-22-2007
#When starting a new game, the Game_Ex class is initialized.
#===========================================================
#----------------------------------------------------------------------------------------------------------------------
#===========================================================
class Scene_Title
  alias command_new_game_with_ex command_new_game
  def command_new_game
    command_new_game_with_ex
    $game_ex = Game_Ex.new
  end#of command_new_game
end#of class
#===========================================================
#----------------------------------------------------------------------------------------------------------------------
#===========================================================
#Class name: Scene_Load
#Class version 1.0.0
#Last updated: 4-22-2007
#When loading the game, the Game_Ex class data is also loaded from inside the save file.
#===========================================================
#----------------------------------------------------------------------------------------------------------------------
#===========================================================
class Scene_Load
  alias read_ex_save_data read_save_data
  def read_save_data(file)
    read_ex_save_data(file)
    $game_ex = Marshal.load(file)
  end#of read_save_data
end#of class
#===========================================================
#----------------------------------------------------------------------------------------------------------------------
#===========================================================
#Class name: Scene_Save
#Class version 1.0.0
#Last updated: 4-22-2007
#When saving the game, the Game_Ex class data is also stored inside the save file.
#===========================================================
#----------------------------------------------------------------------------------------------------------------------
#===========================================================
class Scene_Save
 
  alias write_ex_save_data write_save_data
  def write_save_data(file)
    write_ex_save_data(file)
    Marshal.dump($game_ex, file)
  end#of write_save_data
end#of class

Credits and thanks
  • Shinami-I made the script.
  • Squaresoft-I got the idea from FFT which IS their work.

Final notes
This should be the final release. I've written an extensive set of notes on practically everything concerning this script, how to use it, and a questions section that answers questions for newbe and veteran scripters alike. If your question wasn't answered, post it here and I'll answer back when I get a moment. Now to get cracking on that FFT-like Skill Learning System.
« Last Edit: May 01, 2007, 12:05:31 PM by Shinami »

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Cool, very nice job on this script.

***
Rep:
Level 90
Skilled Scripter, Shitty Mapper, Decent Writer.
Thank you. I can't decide if I should follow up on this with a full blown FFT system(Menu, Shops, Battle, etc.) though.

*****
Rep:
Level 88
Hey, great script!

By the way, I saw in your sig something about the Final Fantasy Tactics battle system. You should do that. Mainly because I haven't seen a RPG made with RM that was Tactics-like.

Anyway, good job!

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Thank you. I can't decide if I should follow up on this with a full blown FFT system(Menu, Shops, Battle, etc.) though.

That's quite a large project. What I would do is I'd make a thread about it and just see how many people would use it, since you don't want to do that much work for nothing. I'd probably use the battle system myself.

*
A Random Custom Title
Rep:
Level 96
wah
Yeah, make a poll. That's pretty important.... Also, FFT Battle systems have been made in the past. The only problem is the AI. :P

***
Rep:
Level 90
Skilled Scripter, Shitty Mapper, Decent Writer.
The only things that would give me trouble are spell attacks/animations, physical attacks/animations, and the enemy AI. I've never done AI and my scripting knowledge of graphics is limited at best despite doing scripting for 2 years(off and on stuff). I could probably make use of the existing animation part of the database for weapon attacks with a basic weapon template so that all one would have to do would be to change the animation from the template to the user's own graphics so they won't have to mess with animations very much outside of custom graphics and importing.

Yeah, make a poll. That's pretty important.... Also, FFT Battle systems have been made in the past. The only problem is the AI. :P
I also recall numerous complaints about heavy lag from said systems as well but yes, AI is hard for me to do. I recall SephirothSpawn saying the AI he made for his Triple Triad script was only about 40 lines or so and yet, it's strong enough to beat experienced players 2 outta 3 times. Note: That last sentence was quoted from memory.

*****
Rep:
Level 88
Yeah, that sounds like a lot of work... I'm still learning scripting so I know it is hard... But I would definatly use the system if you managed to get it to work.

**
Rep:
Level 87
Could this be altered so that instead of your job class giving you the level up, that your weapon class [IE: Sword, Bow, Spear, Axe, ETC] increases/decreases certain stats?

***
Rep:
Level 90
Skilled Scripter, Shitty Mapper, Decent Writer.
In the standard database, weapons and armors can be given the ability to increase/decrease an actor's stats as long as said item is equipped.

**
Rep:
Level 87
I mean additional stat bonuses for level up. IE: Axe +3 Strength - 2 speed at level up. AKA Grandia 1's weapon system.