Introdução
O script faz com que você possa evoluir quantos leveis querer pelo titulo do tópico deve dar para entender
No script tem como você configurar o level máximo que seu personagem pode chegar também o HP e o SP
Aproveitem...
No script tem como você configurar o level máximo que seu personagem pode chegar também o HP e o SP
Aproveitem...
Screens
- Spoiler:
Script
- Spoiler:
- Código:
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Unlimited Levels by Blizzard
# Version: 1.0
# Type: Actor Attribute Modifier
# Date: 10.2.2010
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# This work is protected by the following license:
# #----------------------------------------------------------------------------
# #
# # Creative Commons - Attribution-NonCommercial-ShareAlike 3.0 Unported
# # ( http://creativecommons.org/licenses/by-nc-sa/3.0/ )
# #
# # You are free:
# #
# # to Share - to copy, distribute and transmit the work
# # to Remix - to adapt the work
# #
# # Under the following conditions:
# #
# # Attribution. You must attribute the work in the manner specified by the
# # author or licensor (but not in any way that suggests that they endorse you
# # or your use of the work).
# #
# # Noncommercial. You may not use this work for commercial purposes.
# #
# # Share alike. If you alter, transform, or build upon this work, you may
# # distribute the resulting work only under the same or similar license to
# # this one.
# #
# # - For any reuse or distribution, you must make clear to others the license
# # terms of this work. The best way to do this is with a link to this web
# # page.
# #
# # - Any of the above conditions can be waived if you get permission from the
# # copyright holder.
# #
# # - Nothing in this license impairs or restricts the author's moral rights.
# #
# #----------------------------------------------------------------------------
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# Compatibility:
#
# 99% compatible with SDK v1.x. 95% compatible with SDK v2.x. Can cause
# incompatibility issues with custom leveling systems. WILL corrupt your old
# savegames.
#
#
# Features:
#
# - allows actors to have levels higher than 99
# - automatic calculation of generated stats with minimum error rate
# - easy to use
#
#
# Explanation:
#
# This script will allow actors to have levels higher than 99. It
# automatically calculates the required EXP and the stats using RMXP's
# default method of calculation.
#
#
# Notes:
#
# - It is recommended that you also use a script that allows unlimited
# Max HP, Max SP, Str, Dex, Agi, Int and EXP in combination with this
# script.
# - In case a speed setting other than -10, 0 and 10 is being used, the
# attributes generated by this script can be higher by 1 in some cases for
# some levels due to a computational error in the interpolation function.
#
#
# If you find any bugs, please report them here:
# http://www.chaosproject.co.nr
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#==============================================================================
# module BlizzCFG
#==============================================================================
module BlizzCFG
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Level Database
#
# Use following template to give your actors a custom maximum level:
#
# when ID then LEVEL
#
# ID - ID of the actor in the database
# LEVEL - initial level / final level of that actor
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
def self.initial_level(id)
return case id
### START Initial Level Database
when 1 then 50
when 2 then 105
### END Initial Level Database
else
nil
end
end
def self.final_level(id)
return case id
### START Final Level Database
when 1 then 139
when 2 then 120
### END Final Level Database
else
nil
end
end
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Level Database
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Attribute Database
#
# Use following template to give your actors a custom attribute
# calculation.
#
# when ID then [START, END, SPEED]
#
# ID - ID of the actor in the database
# START - attribute value at starting level
# END - attribute value at final level
# SPEED - inflation speed setting (from -10 to 10)
#
# The SPEED setting is working the same as RMXP's speed setting for stat
# generation. -10 is the slowest curve while 10 is the fastest curve. 0 is
# the normal speed and will generate a linear curve.
# If you have an actor with the same initial and final level, the START
# value will be used.
#
# Any actor not defined here will use the default parameters that can be set
# up with RMXP's database. Keep in mind that actors that can have a level
# over 99 MUST HAVE their parameter behavior defined here or the game will
# crash!
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
def self.maxhp_parameters(id)
return case id
### START Max HP
when 1 then [3000, 9999, 2]
when 2 then [6000, 9999, -1]
### END Max HP
else
nil
end
end
def self.maxsp_parameters(id)
return case id
### START Max SP
when 1 then [3000, 9999, -4]
when 2 then [6000, 9999, 3]
### END Max SP
else
nil
end
end
def self.str_parameters(id)
return case id
### START Str
when 1 then [300, 999, 10]
when 2 then [600, 999, 2]
### END Str
else
nil
end
end
def self.dex_parameters(id)
return case id
### START Dex
when 1 then [300, 999, 3]
when 2 then [600, 999, 6]
### END Dex
else
nil
end
end
def self.agi_parameters(id)
return case id
### START Agi
when 1 then [300, 999, -1]
when 2 then [600, 999, 3]
### END Agi
else
nil
end
end
def self.int_parameters(id)
return case id
### START Int
when 1 then [300, 999, -10]
when 2 then [600, 999, -6]
### END Int
else
nil
end
end
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Attribute Database
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
$unlimited_levels = 1.0
end
#==============================================================================
# Wrapper_Base
#==============================================================================
class Wrapper_Base
def initialize(initial_level, final_level)
@initial_level, @final_level = initial_level, final_level
end
end
#==============================================================================
# Wrapper_ExpList
#==============================================================================
class Wrapper_ExpList < Wrapper_Base
def initialize(initial_level, final_level, inflation, basis)
super(initial_level, final_level)
@data = [0, 0]
pow = 2.4 + inflation / 100.0
(2..(@final_level + 1)).each {|i|
@data[i] = @data[i - 1] + (basis * ((i + 3) ** pow) / (5 ** pow)).to_i}
end
def [](i)
return ((i >= @initial_level && i <= @final_level) ? @data[i] : 0)
end
end
#==============================================================================
# Wrapper_Parameters
#==============================================================================
class Wrapper_Parameters < Wrapper_Base
def initialize(initial_level, final_level, id, parameters)
super(initial_level, final_level)
@id, @parameters = id, parameters
end
def calculate_parameter(min, max, speed, level)
p_range, l_range = max - min, (@final_level - @initial_level).to_f
linear = (min + p_range * ((level - @initial_level) / l_range)).ceil
return linear if speed == 0
if speed < 0
curve = (min + p_range * (((level - @initial_level) / l_range) ** 2)).ceil
else
curve = (max - p_range * (((@final_level - level) / l_range) ** 2)).ceil
end
return ((curve * speed.abs + linear * (10 - speed.abs)) / 10)
end
def [](type, level)
values = case type
when 0 then BlizzCFG.maxhp_parameters(@id)
when 1 then BlizzCFG.maxsp_parameters(@id)
when 2 then BlizzCFG.str_parameters(@id)
when 3 then BlizzCFG.dex_parameters(@id)
when 4 then BlizzCFG.agi_parameters(@id)
when 5 then BlizzCFG.int_parameters(@id)
else
nil
end
return @parameters[type, level] if values == nil
return values[0] if @initial_level == @final_level
return calculate_parameter(values[0], values[1], values[2], level)
end
end
#==============================================================================
# RPG::Actor
#==============================================================================
class RPG::Actor
alias initial_level_unlimited_levels_later initial_level
def initial_level
level = BlizzCFG.initial_level(@id)
return (level != nil ? level : initial_level_unlimited_levels_later)
end
alias final_level_unlimited_levels_later final_level
def final_level
level = BlizzCFG.final_level(@id)
return (level != nil ? level : final_level_unlimited_levels_later)
end
def parameters
return Wrapper_Parameters.new(initial_level, final_level, @id, @parameters)
end
end
#==============================================================================
# Game_Actor
#==============================================================================
class Game_Actor
def make_exp_list
actor = $data_actors[@actor_id]
@exp_list = Wrapper_ExpList.new(actor.initial_level, actor.final_level,
actor.exp_inflation, actor.exp_basis)
end
end
Download da Demo
Download Niveis Ilimitados
Creditos
Blizzard, por fazer o script
Eu, por disponibilizar o script
Eu, por disponibilizar o script