Main Menu
  • Welcome to The RPG Maker Resource Kit.

[RESOLVED] a Call Script

Started by IAMFORTE, June 23, 2009, 08:14:49 PM

0 Members and 1 Guest are viewing this topic.

IAMFORTE

Alright, i am using this script
[spoiler]

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

[/spoiler]

and i was wondering if it was possible to create a call script that can directly modify the max level set in the above script....
an example would be like this
Level max is first set to 30
then the player changes class
level max set to 125
the player changes classes again and
level max is set to 250

to change the level a call script must be used in game

Grafikal

You'll need a break limit script for at least some of that. I also don't even see how that script edits the levels of characters in the least.

IAMFORTE

ahh, I"m so sorry that was only a part of it... i guess i missed some of it ill fix it

modern algebra

No, you can't modify it with call script, because of the way it returns the final level :/ Basically, it calculates the final level everytime the method is called, it doesn't save it.

However, this little scriptlet should fix it up for you.


class Game_Actor
  attr_writer   :cs_max_level
  alias cybsm_ma_finl_lvl_save_6yt5 final_level
  def final_level (*args)
    @cs_max_level = cybsm_ma_finl_lvl_save_6yt5 (*args) if @cs_max_level == nil
    return @cs_max_level
  end
end


Just put it in its own slot in the editor, somewhere below that script but still above Main.

I scripted it blind, so there might be a mistake. To change the max level, just use the code:

$game_actors[actor_id].cs_max_level = new_max_level

so:

$game_actors[1].cs_max_level = 500

would change the max level of Actor 1 (Aluxes by default) to 500


Also, use code tags in the future to avoid corrupting your code.

IAMFORTE