¡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 [RPG Maker XP] Arma Nivel el Lun Sep 03, 2012 1:11 am

Razor

avatar
Autor: Northro
Versión: 1.0
Descripción: Las armas y armaduras requieren un nivel para usarse. Al estilo Fire Emblem.


Características



  • Plug 'n' Play
  • Fácil uso


Instrucciones



  • Coloque el script arriba de Main y abajo de cualquier otro script que modifique armas/herramientas.


Script



Código:

#===============================================================================
# Creado por: Northro
# Para: RPG Maker XP
# Nombre del Script: Level Item
# Versión del Script: 1.0
# Descripción: Las armas y armaduras requieren un nivel para usarse.
#===============================================================================

#===============================================================================
# Instrucciones: Pegar arriba del script "Main".
#===============================================================================

#===============================================================================
# Modulo "Lvl_Itm"
#===============================================================================

module Lvl_Itm
#-------------------------------------------------------------------------------
# * El nivel del arma.
#
#  A = Id del arma.
#  B = Nivel del arma
#
#  WEAPON_LEVEL = {A => B}
#-------------------------------------------------------------------------------
  WEAPON_LEVEL = {
  2 => 2
  }
#-------------------------------------------------------------------------------
# * El nivel de las armaduras.
#
#  A = Id del arma.
#  B = Nivel del arma
#
#  ARMOR_LEVEL = {A => B}
#-------------------------------------------------------------------------------
  ARMOR_LEVEL = {
  2 => 2
  }
end

#===============================================================================
# Clase "Scene_Map"
#===============================================================================

class Scene_Map
  alias level_item_scene_map_update update
  def update
    for actor in 0..$game_party.actors.size - 1
      weapon_level($game_party.actors[actor])
      armor_level($game_party.actors[actor])
    end
    level_item_scene_map_update
  end
  def weapon_level(actor)
    if Lvl_Itm::WEAPON_LEVEL.include?(actor.weapon_id)
      item_level = Lvl_Itm::WEAPON_LEVEL[actor.weapon_id]
      actor.equip(0, 0) if actor.level < item_level
    end
  end
  def armor_level(actor)
    armors = [actor.armor1_id, actor.armor2_id, actor.armor3_id, actor.armor4_id]
    for armor in armors
      if Lvl_Itm::ARMOR_LEVEL.include?(armor)
        item_level = Lvl_Itm::ARMOR_LEVEL[armor]
        armor_kind = $data_armors[armor].kind
        actor.equip(armor_kind + 1, 0) if actor.level < item_level
      end
    end
  end
end

#===============================================================================
# Clase "Scene_Equip"
#===============================================================================

class Scene_Equip
  alias level_item_scene_equip_main main
  def main
    @actor = $game_party.actors[@actor_index]
    if Lvl_Itm::WEAPON_LEVEL.include?(@actor.weapon_id)
      item_level = Lvl_Itm::WEAPON_LEVEL[@actor.weapon_id]
      @actor.equip(0, 0) if @actor.level < item_level
    end
    armors = [@actor.armor1_id, @actor.armor2_id, @actor.armor3_id, @actor.armor4_id]
    for armor in armors
      if Lvl_Itm::ARMOR_LEVEL.include?(armor)
        item_level = Lvl_Itm::ARMOR_LEVEL[armor]
        armor_kind = $data_armors[armor].kind
        @actor.equip(armor_kind + 1, 0) if @actor.level < item_level
      end
    end
    level_item_scene_equip_main
  end
  def update_item
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @right_window.active = true
      @item_window.active = false
      @item_window.index = -1
      return
    end
    if Input.trigger?(Input::C)
      item = @item_window.item
      case item
      when RPG::Weapon
        if Lvl_Itm::WEAPON_LEVEL.include?(item.id)
          item_level = Lvl_Itm::WEAPON_LEVEL[item.id]
          if @actor.level >= item_level
            $game_system.se_play($data_system.equip_se)
            @actor.equip(@right_window.index, item == nil ? 0 : item.id)
            @right_window.active = true
            @item_window.active = false
            @item_window.index = -1
            @right_window.refresh
            @item_window.refresh
            return
          else
            $game_system.se_play($data_system.buzzer_se)
            return
          end
        else
          $game_system.se_play($data_system.equip_se)
          @actor.equip(@right_window.index, item == nil ? 0 : item.id)
          @right_window.active = true
          @item_window.active = false
          @item_window.index = -1
          @right_window.refresh
          @item_window.refresh
          return
        end
        return
      when RPG::Armor
        if Lvl_Itm::ARMOR_LEVEL.include?(item.id)
          item_level = Lvl_Itm::ARMOR_LEVEL[item.id]
          if @actor.level >= item_level
            $game_system.se_play($data_system.equip_se)
            @actor.equip(@right_window.index, item == nil ? 0 : item.id)
            @right_window.active = true
            @item_window.active = false
            @item_window.index = -1
            @right_window.refresh
            @item_window.refresh
            return
          else
            $game_system.se_play($data_system.buzzer_se)
            return
          end
        else
          $game_system.se_play($data_system.equip_se)
          @actor.equip(@right_window.index, item == nil ? 0 : item.id)
          @right_window.active = true
          @item_window.active = false
          @item_window.index = -1
          @right_window.refresh
          @item_window.refresh
          return
        end
        return
      end
    end
  end
end

Un Saludo
Out.-





Todos mis aportes por Mediafire tienen contraseña, esa es: www.universomaker.net
Esto es para evitar plagio, asegúrense de copiar y pegar la contraseña.

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.