RPG Maker Forums

This script is pretty basic. This will allow you scale your actors power based on the amount of experience the actor has. Right now this is a global thing so every class/actor will scale the same way. I do however plan to eventually do this for separate classes rather then just a global thing.

Features:

-Scaling power based on Experience

-Minor tweak to the UI

-Full Customization

-Each actor can now be edited separately instead of globally done.

Future Features:

-On final version, unless I get a good idea to add to this

Known Compatibility Issues/Bugs:

-None as of yet, but I'm sure there are some out there, specifically ones that edit parameters.

Screenshots:

NEW SCREENSHOTS



OLD SCREENSHOTS!

The reason the HP looks like it is going down it because the max HP is going up after battling and after getting experience!











Script:

Code:
#===============================================================================#Base Script by Dekita, Bloodmorphed finished it with customizable features#Power Level Scaling Script#By: Bloodmorphed and Dekita#v2.0 (possible final!)#   -Made it per actor basis, you can make each one go slow or fast or whatever#    you want!##v1.5#   -Cleaned script up quite a bit#   -Made the UI Customizable#v1.0# Features:#   -No levels (You stay at level 1)#   -Your strength scales to the amount of experience you have gained.#   -Slight UI changing "Level" to Power Level and a equation to calculate it.## Future Features:#   -Per class basis#   -Fully customizable UI settings (maybe)#===============================================================================#===============================================================================module BloodPLSS#===============================================================================#------------------------------------------------------------------------------#  Start of the cusimizable settings#------------------------------------------------------------------------------  Scale_Settings = { #no touchy    :text => "Power Level", #Shows this instead of "Level"       #divides all params by set amount for power level default is 5    :divide => 5,       #This is the positions of the Text, and the numbers in the main menu    :posi_level1 => { x: 0, y: 25},    :posi_power1 => { x: 0, y: 45},    #This is the positions of the Text, and the numbers in the status menu    :posi_level2 => { x: 135, y: 43},    :posi_power2 => { x: 135, y: 63},  }      #-------------------------------------------------------------------------------# This one can get a little confusing the "m:" is the dividing factor,# the "b:" is the base amount of the param you want this will take# a little calculation to get right depending on what you want.##  NOTICE: There are a default of 10 Actors to match the default 10 when you# start a new project. MAKE SURE THESE LINE UP WITH HOW MANY ACTORS YOU HAVE!# Otherwise you will have an error. If you only have 5 actors delete 6-10. ETC# ETC!#-------------------------------------------------------------------------------  ACTORS = {    1 => { #actor 1      0 => {m: 10, b: 100}, #calculate maxhp default is 10,100      1 => {m: 15, b: 100}, #calculate maxmp default is 15,100      2 => {m: 20, b: 10},  #calculate attack default is 20,10      3 => {m: 20, b: 10},  #calculate defense default is 20,10      4 => {m: 20, b: 10},  #calculate magic atk default is 20, 10      5 => {m: 20, b: 10},  #calculate mdef default is 20, 10      6 => {m: 20, b: 10},  #calculate agil default is 20, 10      7 => {m: 20, b: 10},  #calculate luck default is 20, 10    }, #ends actor 1    2 => { #actor 2      0 => {m: 10, b: 100}, #calculate maxhp default is 10,100      1 => {m: 15, b: 100}, #calculate maxmp default is 15,100      2 => {m: 20, b: 10},  #calculate attack default is 20,10      3 => {m: 20, b: 10},  #calculate defense default is 20,10      4 => {m: 20, b: 10},  #calculate magic atk default is 20, 10      5 => {m: 20, b: 10},  #calculate mdef default is 20, 10      6 => {m: 20, b: 10},  #calculate agil default is 20, 10      7 => {m: 20, b: 10},  #calculate luck default is 20, 10    }, #ends actor 2    3 => { #actor 3      0 => {m: 10, b: 100}, #calculate maxhp default is 10,100      1 => {m: 15, b: 100}, #calculate maxmp default is 15,100      2 => {m: 20, b: 10},  #calculate attack default is 20,10      3 => {m: 20, b: 10},  #calculate defense default is 20,10      4 => {m: 20, b: 10},  #calculate magic atk default is 20, 10      5 => {m: 20, b: 10},  #calculate mdef default is 20, 10      6 => {m: 20, b: 10},  #calculate agil default is 20, 10      7 => {m: 20, b: 10},  #calculate luck default is 20, 10    },#ends actor 3    4 => { #actor 4      0 => {m: 10, b: 100}, #calculate maxhp default is 10,100      1 => {m: 15, b: 100}, #calculate maxmp default is 15,100      2 => {m: 20, b: 10},  #calculate attack default is 20,10      3 => {m: 20, b: 10},  #calculate defense default is 20,10      4 => {m: 20, b: 10},  #calculate magic atk default is 20, 10      5 => {m: 20, b: 10},  #calculate mdef default is 20, 10      6 => {m: 20, b: 10},  #calculate agil default is 20, 10      7 => {m: 20, b: 10},  #calculate luck default is 20, 10    }, #ends actor 4    5 => { #actor 5      0 => {m: 10, b: 100}, #calculate maxhp default is 10,100      1 => {m: 15, b: 100}, #calculate maxmp default is 15,100      2 => {m: 20, b: 10},  #calculate attack default is 20,10      3 => {m: 20, b: 10},  #calculate defense default is 20,10      4 => {m: 20, b: 10},  #calculate magic atk default is 20, 10      5 => {m: 20, b: 10},  #calculate mdef default is 20, 10      6 => {m: 20, b: 10},  #calculate agil default is 20, 10      7 => {m: 20, b: 10},  #calculate luck default is 20, 10    }, #ends actor 5    6 => { #actor 6      0 => {m: 10, b: 100}, #calculate maxhp default is 10,100      1 => {m: 15, b: 100}, #calculate maxmp default is 15,100      2 => {m: 20, b: 10},  #calculate attack default is 20,10      3 => {m: 20, b: 10},  #calculate defense default is 20,10      4 => {m: 20, b: 10},  #calculate magic atk default is 20, 10      5 => {m: 20, b: 10},  #calculate mdef default is 20, 10      6 => {m: 20, b: 10},  #calculate agil default is 20, 10      7 => {m: 20, b: 10},  #calculate luck default is 20, 10    }, #ends actor 6    7 => { #actor 7      0 => {m: 10, b: 100}, #calculate maxhp default is 10,100      1 => {m: 15, b: 100}, #calculate maxmp default is 15,100      2 => {m: 20, b: 10},  #calculate attack default is 20,10      3 => {m: 20, b: 10},  #calculate defense default is 20,10      4 => {m: 20, b: 10},  #calculate magic atk default is 20, 10      5 => {m: 20, b: 10},  #calculate mdef default is 20, 10      6 => {m: 20, b: 10},  #calculate agil default is 20, 10      7 => {m: 20, b: 10},  #calculate luck default is 20, 10    }, #ends actor 7    8 => { #actor 8      0 => {m: 10, b: 100}, #calculate maxhp default is 10,100      1 => {m: 15, b: 100}, #calculate maxmp default is 15,100      2 => {m: 20, b: 10},  #calculate attack default is 20,10      3 => {m: 20, b: 10},  #calculate defense default is 20,10      4 => {m: 20, b: 10},  #calculate magic atk default is 20, 10      5 => {m: 20, b: 10},  #calculate mdef default is 20, 10      6 => {m: 20, b: 10},  #calculate agil default is 20, 10      7 => {m: 20, b: 10},  #calculate luck default is 20, 10    }, #ends actor 8    9 => { #actor 9      0 => {m: 10, b: 100}, #calculate maxhp default is 10,100      1 => {m: 15, b: 100}, #calculate maxmp default is 15,100      2 => {m: 20, b: 10},  #calculate attack default is 20,10      3 => {m: 20, b: 10},  #calculate defense default is 20,10      4 => {m: 20, b: 10},  #calculate magic atk default is 20, 10      5 => {m: 20, b: 10},  #calculate mdef default is 20, 10      6 => {m: 20, b: 10},  #calculate agil default is 20, 10      7 => {m: 20, b: 10},  #calculate luck default is 20, 10    },#ends actor 9    10 => { #actor 10      0 => {m: 10, b: 100}, #calculate maxhp default is 10,100      1 => {m: 15, b: 100}, #calculate maxmp default is 15,100      2 => {m: 20, b: 10},  #calculate attack default is 20,10      3 => {m: 20, b: 10},  #calculate defense default is 20,10      4 => {m: 20, b: 10},  #calculate magic atk default is 20, 10      5 => {m: 20, b: 10},  #calculate mdef default is 20, 10      6 => {m: 20, b: 10},  #calculate agil default is 20, 10      7 => {m: 20, b: 10},  #calculate luck default is 20, 10    }, #ends actor 10    } # no touchyend #ends module#===============================================================================# WARNING: If you do not know what you are doing do not touch anything that#is below here.#===============================================================================#===============================================================================class Game_Actor < Game_Battler#===============================================================================  #-----------------------------------------------------------------------------  # This forces to stay at level 1  #-----------------------------------------------------------------------------  def max_level    return 1  end #ends def  #-----------------------------------------------------------------------------  # This is the method of scaling the params based on experience with a base  #-----------------------------------------------------------------------------  def param(param_id)    min = param_min(param_id)    max = param_max(param_id)    bas = param_base(param_id)    pls = param_plus(param_id)    rat = param_rate(param_id)    brt = param_buff_rate(param_id)    mod = BloodPLSS::ACTORS[@actor_id][param_id]    val = bas * rat * brt * (exp / mod[:m]) + mod[:b] + pls    [[val, max].min, min].max.to_i  end #ends def end #ends class#===============================================================================# Starts UI Edits#===============================================================================#===============================================================================class Window_Base < Window#===============================================================================#-------------------------------------------------------------------------------# alias draw_actor_simple_status#-------------------------------------------------------------------------------alias :bloodysimplestatus :draw_actor_simple_statusalias :bloodyiniti :initialize   def initialize(*args)    bloodyiniti(*args)    @bloodyscale = BloodPLSS::Scale_Settings    @bloodyx1 = @bloodyscale[:posi_level1][:x]    @bloodyy1 = @bloodyscale[:posi_level1][:y]    @bloodyx2 = @bloodyscale[:posi_power1][:x]    @bloodyy2 = @bloodyscale[:posi_power1][:y]    @bloodyx3 = @bloodyscale[:posi_level2][:x]    @bloodyy3 = @bloodyscale[:posi_level2][:y]    @bloodyx4 = @bloodyscale[:posi_power2][:x]    @bloodyy4 = @bloodyscale[:posi_power2][:y]  end#-------------------------------------------------------------------------------# Overwrites draw actor level#-------------------------------------------------------------------------------   def draw_actor_level(actor, x, y)    nil  end  #ends def#-------------------------------------------------------------------------------# Draws power level#-------------------------------------------------------------------------------  def draw_power_level(actor, x, y)    change_color(system_color)    draw_text(x, y, 150, line_height, @bloodyscale[:text])  end  #ends def   #-------------------------------------------------------------------------------# def power scaling equation#-------------------------------------------------------------------------------     def draw_actor_power(actor, x, y)    change_color(normal_color)    r = 0    8.times{ |i| r += actor.param(i) }    draw_text(x, y, 150, line_height, (r / @bloodyscale[:divide]).to_i.to_s)  end   #ends def   #-------------------------------------------------------------------------------# simple status ui element updates#-------------------------------------------------------------------------------       def draw_actor_simple_status(actor, x, y)    bloodysimplestatus(actor, x, y)    draw_power_level(actor, x + @bloodyx1, y + @bloodyy1)    draw_actor_power(actor, x + @bloodyx2, y + @bloodyy2)  end #ends defend #ends class#===============================================================================class Window_Status < Window_Selectable#===============================================================================#-------------------------------------------------------------------------------# alias draw_basic_info#-------------------------------------------------------------------------------   alias :bloodydrawbasic :draw_basic_info  alias :bloodinit :initialize #-------------------------------------------------------------------------------# Removes the experience UI Element#-------------------------------------------------------------------------------     def draw_exp_info(x, y)    nil  end #ends def#-------------------------------------------------------------------------------# Below are added/modified UI Elements#-------------------------------------------------------------------------------   def draw_basic_info(x, y)    bloodydrawbasic(x, y)    print draw_power_level(@actor, @bloodyx3, @bloodyy3)    draw_actor_power(@actor, @bloodyx4, @bloodyy4)  end #ends def end #ends class

Latest Threads

Latest Profile Posts

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.
Can someone recommend some fun story-heavy RPGs to me? Coming up with good gameplay is a nightmare! I was thinking of making some gameplay platforming-based, but that doesn't work well in RPG form*. I also was thinking of removing battles, but that would be too much like OneShot. I don't even know how to make good puzzles!
one bad plugin combo later and one of my followers is moonwalking off the screen on his own... I didn't even more yet on the new map lol.

Forum statistics

Threads
106,035
Messages
1,018,450
Members
137,820
Latest member
georg09byron
Top