# Module Class_params No. touchie this line ok ?# ================================================= ==============================# * Gumps Class Based Bonus Level Script# Version : 1.00# Author: Matt_Sully ( Gump )# * This script WAS created as the result of a request script .# * Special Thanks to " shrimpburgre " for this great & easy idea!# * This script is only gauranteed to be consistent with RPG Maker VX Ace .# ------------------------------------------------- ------------# > This easy to use script Will add your level bonuses to all actors# When They level up , and gain the bonuses They are based on Their class .# > To configure classes, simply modify the included sample data .# > For sample data , I setup bonuses for all 10 classes in default VX ACE .# > Copy / paste sample data class and configures it for new classes , thats# The Quickest way to setup data . <enter> To a new line and paste .# > Always paste new data was new line , do not enter data beyond Any# Boundaries ( specified by 'do not edit beyond this line ' comments )#> Class_id must always be set to the class id Being configured#> Class_id 's are found on the "Classes" tab in your database (the numbers to# The left of Class names )#> Added an optional setting to break the max. limit value for parameters .# ------------------------------------------------- ------------# * LEGAL CRAP#> You May freely use this script in Any free gold trading game .#> You May modify this script as you see fit, and release Those changes# To others as you see fit .# > If you use this script , you must Provide proper credit to the Author.# ------------------------------------------------- ------------# * Default Modified Classes:# Game_Actor#> Aliased Methods: 1#> Overwritten Methods: 0#> New Methods: 2# ------------------------------------------------- ------------# * + Suggestions bug reports# > If you have any ideas That You Would like to see put into an official# Version of this script , PM me your suggestion or post it in one of my threads# At rpgmakerweb gold rpgmakervxace.net# > If you have any bugs to report That need fixing please contact me with# Many have details (Including how you Caused the bug etc. ) as possible. Also include# A copy of your class bonus params script (this script), so I double- check May# That your settings are not broken .# ================================================= ============================== # ------------------------------------------------- ------------ # * System Settings # # ------------------------------------------------- ------------ # * Print Results to Console # > True or false setting # > If true, prints the parameters Gained bonus On Each level up # To your games console #> Default : false # ------------------------------------------------- ------------ Print_Results_To_Console = false # ------------------------------------------------- ------------ # * Print Extra Info to Debug Console # > True or false setting # > If true, Will Be extra info printed to the console for debugging . Some # Checking aussi done to make sour bonus values are ' valid ' and ' usable ' . #> Default : false Print_Extra_Debug_To_Console = false # ------------------------------------------------- ------------ # * Parameters Limit Breaker, Breaker Limit Values # > Break the '999 'max parameter value for actors with this setting . # > If the Limit Breaker is true , Then the max parameter values are set to # The Limit Breaker Value settings . # > If the Limit Breaker is false , Then the max parameter value is normal . #> Parameters = stats . Default max. 999,999 is for HP , MP is 9,999 . default # Max. for other stats : such as strength and defense is 999. #> Default : false, default values = vx ace gains Parameters_Limit_Breaker = false Parameters_Limit_Breaker_Value_HP = 999999 Parameters_Limit_Breaker_Value_MP = 9999 Parameters_Limit_Breaker_Value_STATS = 999 # # # # ------------------------------------------------- ------------ # * Default bonuses # ( If the actors class is not configured for bonuses or the actors # Class is not found etc. Then the default bonuses are used # Default Bonus : +3 Luck # ------------------------------------------------- ------------ MaxHP = 0 MaxMP = 0 attack = 0 defense = 0 magatk = 0 magdef = 0 agility = 0 luck = 3 # DONT TOUCH THIS NEXT LINE ! Class = Hash.new ( [ MaxHP , MaxMP , attack , defense, magatk , magdef , agility , luck ] ) # ------------------------------------------------- ------------ # * Class Bonuses # > The Easiest way to setup new data is to copy / paste already defined # Class data . Copy Soldier data for example ( copy from the " Sample Class : # Soldier " how down to and including" Classes [ class_id ] = values " code # Line , Then paste was new line and edit accordingly for the new class . #> And of course you can modify or remove Any of the included sample classes. #> You must get the ' class_id correct the for each class . if one is not # Ok, It May overwrite the bonuses for Reviews another class . #> All parameter values must be added the for each class if odd Their bonus is 0 # As shown in the sample definitions . # > You NEVER modify the shoulds "Classes [ class_id ] = values" code line , you # Shoulds only be copying and pasting it . Do not modify the array line above it # Either . # ------------------------------------------------- ------------ # Class : Soldier # 3 +1 Attack and Defense per level up class_id = 1 MaxHP = 20 MaxMP = 5 attack = 8 defense = 9 magatk = 1 magdef = 1 Agility = 3 luck = 4 array = [ MaxHP , MaxMP , attack , defense, magatk , magdef , agility , luck ] Classes [ class_id ] = array # Class : Monk # MaxHP +1 , +1 Attack and +2 Agility per level up class_id = 2 MaxHP = 28 MaxMP = 3 attack = 11 defense = 5 magatk = 2 magdef = 2 Agility = 7 luck = 1 array = [ MaxHP , MaxMP , attack , defense, magatk , magdef , agility , luck ] Classes [ class_id ] = array # Class : Paladin # +3 Defense , +1 Magic Defense class_id = 3 MaxHP = 0 MaxMP = 0 attack = 0 defense = 3 magatk = 0 magdef = 1 agility = 0 luck = 0 array = [ MaxHP , MaxMP , attack , defense, magatk , magdef , agility , luck ] Classes [ class_id ] = array # Class : Spellblade # MaxMP +1 , +1 Attack , +1 Agility , +2 Magic Attack class_id = 4 MaxHP = 0 MaxMP = 1 attack = 1 defense = 0 magatk = 2 magdef = 0 agility = 1 luck = 0 array = [ MaxHP , MaxMP , attack , defense, magatk , magdef , agility , luck ] Classes [ class_id ] = array # Class : Samurai # 4 Attack , +1 Agility class_id = 5 MaxHP = 0 MaxMP = 0 attack = 4 defense = 0 magatk = 0 magdef = 0 agility = 1 luck = 0 array = [ MaxHP , MaxMP , attack , defense, magatk , magdef , agility , luck ] Classes [ class_id ] = array # Class : Archer # 5 Agility class_id = 6 MaxHP = 0 MaxMP = 0 attack = 0 defense = 0 magatk = 0 magdef = 0 Agility = 5 luck = 0 array = [ MaxHP , MaxMP , attack , defense, magatk , magdef , agility , luck ] Classes [ class_id ] = array # Class : Thief # +3 Agility , +3 Luck class_id = 7 MaxHP = 0 MaxMP = 0 attack = 0 defense = 0 magatk = 0 magdef = 0 Agility = 3 luck = 3 array = [ MaxHP , MaxMP , attack , defense, magatk , magdef , agility , luck ] Classes [ class_id ] = array # Class : Priestess # 2 MaxMP , +2 Magic Attack, Magic Defense +2 class_id = 8 MaxHP = 0 MaxMP = 2 attack = 0 defense = 0 magatk = 2 magdef = 2 agility = 0 luck = 0 array = [ MaxHP , MaxMP , attack , defense, magatk , magdef , agility , luck ] Classes [ class_id ] = array # Class : Witch # 3 MaxMP , +3 Magic Attack class_id = 9 MaxHP = 0 MaxMP = 3 attack = 0 defense = 0 magatk = 3 magdef = 0 agility = 0 luck = 0 array = [ MaxHP , MaxMP , attack , defense, magatk , magdef , agility , luck ] Classes [ class_id ] = array # Class : Sage # MaxMP +1 , +3 Magic Defense , +1 Agility class_id = 10 MaxHP = 0 MaxMP = 1 attack = 0 defense = 0 magatk = 0 magdef = 3 agility = 1 luck = 0 array = [ MaxHP , MaxMP , attack , defense, magatk , magdef , agility , luck ] Classes [ class_id ] = array end # DO NOT INSERT SETTINGS OR DATA BELOW THIS LINE ! CREATE NEW LINES AND# ENTER DATA THERE .# DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YER DOIN !# ------------------------------------------------- ------# * Changes Game_Actor# ------------------------------------------------- ------class Game_Actor < Game_Battler * # Aliased method Aliases: level_up_add_class_params : level_up def level_up level_up_add_class_params add_bonus_params_for_class end # * New Method def add_bonus_params_for_class cl = self.class_id bonus_params = Class_params :: Classes [ cl ] . dup index = 0 for i in 0 ... bonus_params.size by = bonus_params.shift if by > 0 add_param (index by ) end index + = 1 end print_results ( cl ) if Class_params Print_Results_To_Console :: == true end # * New Method def print_results ( classid ) return if classid == nil | | classid == 0 bonusvals = Class_params :: Classes [ classid ] included = Class_params :: Classes.include ? ( classid ) included = false if included ! = true hp = bonusvals [0 ] = mp bonusvals [1] bonusvals attack = [ 2] = bonusvals defense [3] magatk bonusvals = [ 4] = magdef bonusvals [5] agility bonusvals = [ 6] = bonusvals luck [7] p "Actor : ' # { self.name } " , "Class ID: ' # { } self.class_id " , " Level up Bonus Values for Class " p "Is this class Properly configured for bonuses (true / false) : '# { included } " p " MaxHP + hp } { # ", " # { MaxMP + mp } ", " Attack attack } { + # ", " Defense + # { defense } ", " Magic Attack + # { } magatk ", " Magic Defense + } # { magdef "," Agility agility } { + # "," Luck + # { luck } " return unless Class_params Print_Extra_Debug_To_Console :: == true ; p " " p " " p " Printing Extra debug info (class params bonus on level up script) " p " " p " [ RAW] Bonus values for undefined classes: # { Class_params :: Classes [" undefined "]} " p " " p " Defined Class IDs: # { :: Class_params Classes.keys } " p " " p " Total Amount of Defined Classes: # { :: Class_params Classes.size } " p " " p " Full ' Classes ' Hash : # { } Class_params :: Classes " p " Checking for invalid Definitions by size ..." p " Valid definition size: 8" index = 0 keychain = Class_params :: Classes.keys for i in 0 ... keychain.size key = keychain [index] data = Class_params Classes :: [key] size = data.size p " Class ID ' # { key} ' definition Validation Check: PASS ! " if size == 8 if size ! = 8 p " Class ID ' # { key} ' definition Validation Check: FAIL ! " p " Class ID ' # { key} ' size : # { size} " p " Class ID # {key } data ( params bonus) : # { data} " end; subind = 0, p " Checking Class ID '# {key }' are Integer values? " for i in 0 ... data.size chk = data [ subind ] crc = chk.is_a ? integer p " Param Bonus # { +1} subind Check: PASS ! " if crc == true p " Param Bonus # { +1} subind Check: FAIL ! " if crc == false p " # { Param Bonus subind 1 } Value : # { chk } " if crc == false subind + 1 = end index + = 1 end endend# ------------------------------------------------- ------# * Changes Game_BattlerBase# ------------------------------------------------- ------class Game_BattlerBase # Aliased Method Aliases: param_max_override : param_max def param_max ( param_id ) if Class_params Parameters_Limit_Breaker :: == true return Class_params :: Parameters_Limit_Breaker_Value_HP if param_id == 0 # MHP return if param_id Parameters_Limit_Breaker_Value_MP Class_params :: == # 1 MMP return Class_params :: Parameters_Limit_Breaker_Value_STATS # Other Stats else param_max_override ( param_id ) end endend[/ code]
Otherwise what script I can use the same kind as the ..
But compatible with Yanfly Engine Ace class system ..