Power Scaling v2.0 UPDATED (Possibly Final)
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
Spoiler
http://i.imgur.com/4XjHTag.png
http://i.imgur.com/9JgYUMZ.png
OLD SCREENSHOTS!
SpoilerThe reason the HP looks like it is going down it because the max HP is going up after battling and after getting experience!
http://i.imgur.com/d6NXnw7.png
http://i.imgur.com/0F1CZ2r.png
http://i.imgur.com/Lv81F0e.png
http://i.imgur.com/J1Hc0Y6.png
http://i.imgur.com/yH9fizF.png
http://i.imgur.com/AJBvlRv.png
Script:
Spoiler 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] val = bas * rat * brt * (exp / mod[:m]) + mod[:b] + pls [.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
本贴来自国际rpgmaker官方论坛作者:Bloodmorphed处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/power-scaling-v2-0-updated-possibly-final.34777/
页:
[1]