#===============================================================================#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