#==============================================================================
# Unlimit Levels v1 by: cybersam
# date: 14.09.06
#------------------------------------------------------------------------------
# here is a full working scripts for you to this... (i think there is
# already one like this somewhere in the in the community...
# i did one back then when i started in RPG Maker XP
# some other guys did a few other script like this
#==============================================================================
# Must go ABOVE leveling with points to work
#----------------------------------------------------------------------------
# here you can set the max hp,sp,,str,dex,agi and int
#----------------------------------------------------------------------------
$FINAL_LVL = 250
$MAX_HP = 100000
$MAX_SP = 100000
$MAX_STR = 5000
$MAX_DEX = 5000
$MAX_AGI = 5000
$MAX_INT = 5000
class Game_Actor
#--------------------------------------------------------------------------
# setting the levels...
#--------------------------------------------------------------------------
def final_level
# here you can set the max level for your characters based on their ID's...
# i set it so that 3 characters have different levels and the rest
# have max lvl of 9999
#
# this settings is only to show you how to change the max setting for your
# characters... same thing is for the parameters -> hp,sp,str,dex.agi,int
case self.id
when 1
level = 255
when 2
level = 999
when 8
level = 15600
else
level = $MAX_STR
end
return level
end
#--------------------------------------------------------------------------
# setting max hp...
#--------------------------------------------------------------------------
def max_hp
case self.id
when 1
hp = 999
when 2
hp = 9999
when 8
hp = 6540
else
hp = $MAX_HP
end
return hp
end
#--------------------------------------------------------------------------
# setting max sp...
#--------------------------------------------------------------------------
def max_sp
case self.id
when 1
sp = 999
when 2
sp = 9999
when 8
sp = 6540
else
sp = $MAX_SP
end
return sp
end
#--------------------------------------------------------------------------
# setting max str...
#--------------------------------------------------------------------------
def max_str
case self.id
when 1
str = 999
when 2
str = 2560
when 8
str = 1800
else
str = $MAX_STR
end
return str
end
#--------------------------------------------------------------------------
# setting max dex...
#--------------------------------------------------------------------------
def max_dex
case self.id
when 1
dex = 999
when 2
dex = 2560
when 8
dex = 1800
else
dex = $MAX_DEX
end
return dex
end
#--------------------------------------------------------------------------
# setting max agi...
#--------------------------------------------------------------------------
def max_agi
case self.id
when 1
agi = 999
when 2
agi = 2560
when 8
agi = 1800
else
agi = $MAX_AGI
end
return agi
end
#--------------------------------------------------------------------------
# setting max int...
#--------------------------------------------------------------------------
def max_int
case self.id
when 1
int = 999
when 2
int = 2560
when 8
int = 1800
else
int = $MAX_INT
end
return int
end
#--------------------------------------------------------------------------
# Creating the new EXP list
# dont change anything from here on... (only if you know what you're doing)
#--------------------------------------------------------------------------
def make_exp_list
actor = $data_actors[@actor_id]
@exp_list = Array.new(final_level + 2)
@exp_list[1] = 0
pow_i = 2.4 + actor.exp_inflation / 1000.0
for i in 2..final_level + 1
if i > final_level
@exp_list[i] = 0
else
n = actor.exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i)
@exp_list[i] = @exp_list[i-1] + Integer(n)
end
end
end
#--------------------------------------------------------------------------
# setting parameters like hp, sp, str, dex, agi and int
#--------------------------------------------------------------------------
def maxhp
n = [[base_maxhp + @maxhp_plus, 1].max, $MAX_HP].min
for i in @states
n *= $data_states[i].maxhp_rate / 100.0
end
n = [[Integer(n), 1].max, $MAX_HP].min
return n
end
def base_maxhp
maxhp = $data_actors[@actor_id].parameters[0, 1]
maxhp += $data_actors[@actor_id].parameters[0, 2] * @level
return maxhp
end
def base_maxsp
maxsp = $data_actors[@actor_id].parameters[1, 1]
maxsp += $data_actors[@actor_id].parameters[1, 2] * @level
return maxsp
end
def base_str
n = $data_actors[@actor_id].parameters[2, 1]
n += $data_actors[@actor_id].parameters[2, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.str_plus : 0
n += armor1 != nil ? armor1.str_plus : 0
n += armor2 != nil ? armor2.str_plus : 0
n += armor3 != nil ? armor3.str_plus : 0
n += armor4 != nil ? armor4.str_plus : 0
return [[n, 1].max, $MAX_STR].min
end
def base_dex
n = $data_actors[@actor_id].parameters[3, 1]
n += $data_actors[@actor_id].parameters[3, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.dex_plus : 0
n += armor1 != nil ? armor1.dex_plus : 0
n += armor2 != nil ? armor2.dex_plus : 0
n += armor3 != nil ? armor3.dex_plus : 0
n += armor4 != nil ? armor4.dex_plus : 0
return [[n, 1].max, $MAX_DEX].min
end
def base_agi
n = $data_actors[@actor_id].parameters[4, 1]
n += $data_actors[@actor_id].parameters[4, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.agi_plus : 0
n += armor1 != nil ? armor1.agi_plus : 0
n += armor2 != nil ? armor2.agi_plus : 0
n += armor3 != nil ? armor3.agi_plus : 0
n += armor4 != nil ? armor4.agi_plus : 0
return [[n, 1].max, $MAX_AGI].min
end
def base_int
n = $data_actors[@actor_id].parameters[5, 1]
n += $data_actors[@actor_id].parameters[5, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.int_plus : 0
n += armor1 != nil ? armor1.int_plus : 0
n += armor2 != nil ? armor2.int_plus : 0
n += armor3 != nil ? armor3.int_plus : 0
n += armor4 != nil ? armor4.int_plus : 0
return [[n, 1].max, $MAX_INT].min
end
def exp=(exp)
@exp = [exp, 0].max
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
@level += 1
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
end
while @exp < @exp_list[@level]
@level -= 1
end
@hp = [@hp, self.maxhp].min
@sp = [@sp, self.maxsp].min
end
def level=(level)
level = [[level, final_level].min, 1].max
self.exp = @exp_list[level]
end
end
#==============================================================================
# ** Game_Battler
#==============================================================================
class Game_Battler
def maxhp
n = [[base_maxhp + @maxhp_plus, 1].max, $MAX_HP].min
for i in @states
n *= $data_states[i].maxhp_rate / 100.0
end
n = [[Integer(n), 1].max, $MAX_HP].min
return n
end
def maxsp
n = [[base_maxsp + @maxsp_plus, 0].max, $MAX_SP].min
for i in @states
n *= $data_states[i].maxsp_rate / 100.0
end
n = [[Integer(n), 0].max, $MAX_SP].min
return n
end
def str
n = [[base_str + @str_plus, 1].max, $MAX_STR].min
for i in @states
n *= $data_states[i].str_rate / 100.0
end
n = [[Integer(n), 1].max, $MAX_STR].min
return n
end
def dex
n = [[base_dex + @dex_plus, 1].max, $MAX_DEX].min
for i in @states
n *= $data_states[i].dex_rate / 100.0
end
n = [[Integer(n), 1].max, $MAX_DEX].min
return n
end
def agi
n = [[base_agi + @agi_plus, 1].max, $MAX_AGI].min
for i in @states
n *= $data_states[i].agi_rate / 100.0
end
n = [[Integer(n), 1].max, $MAX_AGI].min
return n
end
def int
n = [[base_int + @int_plus, 1].max, $MAX_INT].min
for i in @states
n *= $data_states[i].int_rate / 100.0
end
n = [[Integer(n), 1].max, $MAX_INT].min
return n
end
def maxhp=(maxhp)
@maxhp_plus += maxhp - self.maxhp
@maxhp_plus = [[@maxhp_plus, -$MAX_HP].max, $MAX_HP].min
@hp = [@hp, self.maxhp].min
end
def maxsp=(maxsp)
@maxsp_plus += maxsp - self.maxsp
@maxsp_plus = [[@maxsp_plus, -$MAX_SP].max, $MAX_SP].min
@sp = [@sp, self.maxsp].min
end
def str=(str)
@str_plus += str - self.str
@str_plus = [[@str_plus, -$MAX_STR].max, $MAX_STR].min
end
def dex=(dex)
@dex_plus += dex - self.dex
@dex_plus = [[@dex_plus, -$MAX_DEX].max, $MAX_DEX].min
end
def agi=(agi)
@agi_plus += agi - self.agi
@agi_plus = [[@agi_plus, -$MAX_AGI].max, $MAX_AGI].min
end
def int=(int)
@int_plus += int - self.int
@int_plus = [[@int_plus, -$MAX_INT].max, $MAX_INT].min
end
end