¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [XP] Unlimited Levels el Sáb Mar 24, 2012 5:21 am

youkai

avatar
Les traigo un nuevo script, lo que esta vez se trata de uno para modificar las caracteristicas de los actores, permitiendo ponerle a los actores el lvl y los atributos como quieras.
Una vez mas, es un script del cual traduje lo fundamental y/o lo mas dificil de entender.(no es facil esta faena, por que todos seran en ingles??[bueno, yo tengo hasta en aleman lol]).
Código:
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Unlimited Levels by Blizzard
# Version: 1.0
# Type: Modificador de los Atributos del Actor
# Date: 10.2.2010
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# 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.
#
#
# Características:
#
#  - permite tener al actor un nivel superior al 99
#  - automatic calculation of generated stats with minimum error rate
#  - facil de usar
#
#
# Explicacion:
#
#  Permite al actor tener un nivel superior al 99.
#  calcula automaticamente los stats y la EXP mediante el metodo
#  de calculo por defecto del RMXP.
#
#
# Notas:
#
#  - Se recomienda usar scripts que permitan tener infinito
#    HP Max, SP Max, Fuerza, Agi, Des, Int y EXP en combinacion con este script.
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

#==============================================================================
# module BlizzCFG
#==============================================================================

module BlizzCFG

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#  Base de Datos de Niveles
#
#  Usa la siguiente plantilla para darle el rango de niveles a tu actor
#
#    when ID then NIVEL
#
#  ID    - ID del actor en la base de datos
#  NIVEL - nivel inicial/final del 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 
 
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# FIN
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# Base de Datos de Atributos
#
#  Usa la siguiente plantilla para calcular los atributos del actor
#
#
#    when ID then [START, END, SPEED]
#
#  ID    - ID del actor en la base de datos
#  START - valor del atributo en el nivel inicial
#  END  - vaor del atributo en el nivel final
#  SPEED - grado de crecimiento (from -10 to 10)

#  SPEED funciona igual que el calculo de stats del RMXP.
#  -10 es la curva mas lenta mientras que 10 es la curva mas rapida. 0 es
#  la velocidad normal, por lo que genera una curva lineal
#  Si tienes un actor con el mismo nivel inicial y final, el valor de START
#  sera el usado.

#  Cualquier otro actor no especificado aqui usara los parametros por defecto
#  puestos en la base de datos del RMXP. Recuerda que los actores que puedan tener
#  niveles sobre 99 TIENEN que tener el comportamiento de sus parametros bien definidos
#  aqui para evitar errores!
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
  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 
 
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# FIN DE LA CONFIGURACION
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
  $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
Espero que les sea de bastante utilidad y que lo disfruten, cualquier cosa que no entiendan o algun error que les de, lo dejan en un comentario si quieren.
Saludos,
¥oukai

#2 Re: [XP] Unlimited Levels el Vie Jun 01, 2012 12:55 pm

Eagle

avatar
Genial!Ahora toca hacer dissidia y quitar billones de puntos de vida o ser nivel 325

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.