Power Scaling v2.0 UPDATED (Possibly Final)

Bloodmorphed

Dungeon Fanatic
Veteran
Joined
Sep 17, 2012
Messages
1,466
Reaction score
143
First Language
English
Primarily Uses
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
 
Last edited by a moderator:

MisterTorgue

Explosioooooooons!
Veteran
Joined
Nov 4, 2014
Messages
326
Reaction score
54
First Language
Explosions!
Primarily Uses
What happens when your power level reaches over 9000?
 

Bloodmorphed

Dungeon Fanatic
Veteran
Joined
Sep 17, 2012
Messages
1,466
Reaction score
143
First Language
English
Primarily Uses
You make a cliche pun about DBZ thats getting tiring, perhaps? :p
 

Bloodmorphed

Dungeon Fanatic
Veteran
Joined
Sep 17, 2012
Messages
1,466
Reaction score
143
First Language
English
Primarily Uses
UPDATE: Final Version most likely!

-Added per actor basis (the script goes in a little more detail)

-Added Customization for the UI elements.

Enjoy!
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

So looks like the last Star Wars movie sucked. We feared George would kill his own legacy after Episode 1. But look like he handed off to others to put it out of its misery. Does that count as assisted suicide?
Brother made thumbnails for my Lets Plays. He's a swood dude.
Since I'm getting so busy (the fact that I'm often here is due to the fact that this is my procrastination #1 destination), I'm trying a new system where everyday I dedicate 30 minutes to my personal game project. That way it won't fall into the abyss.
In today's seminar:
Presenter: In the past, there was a saying, "One who has tuberculosis is doomed for life." But now-
Everyone: *starts coughing in unision*

Forum statistics

Threads
93,701
Messages
914,772
Members
123,305
Latest member
Marsa16
Top