Últimos temas
» Pack de Rpg maker XP
por KRiZaLiD Ayer a las 7:17 pm

» (ACE) Succubus Academy
por Kuroneko Gore Ayer a las 4:34 am

» Good Lyca Demo
por nazo493 Vie Sep 22, 2017 6:52 am

» [VX ACE] Black Winter - Terror y Suspenso - Descargalo ya!
por lolachan-desuu Jue Sep 21, 2017 6:30 pm

» Hoseki (Versión de Prueba)
por The Ferydra Jue Sep 21, 2017 4:58 am

» Duda mapeado rpg maker xp
por LordIthacar Jue Sep 21, 2017 4:02 am

» La Historia Infinita (DEMO)
por Chioban Miér Sep 20, 2017 7:35 am

» The Legend of Celestia II: A World of Twilight Shadows Demo
por jlopez_96 Dom Sep 17, 2017 6:27 pm

» Pregunta sobre el RPG Maker Fes ¿está permitido hablar o presentar juegos con este nuevo maker?
por Muzgar Sáb Sep 16, 2017 11:21 am

» Rpg Maker VX Ace: Lampara que se apaguen y enciendan.
por Muzgar Jue Sep 14, 2017 10:39 pm

» Pregunta sobre colaboracion en linea
por Tomate Jue Sep 14, 2017 9:23 pm

» [ACE] Nuevas partes para el generador (solo para faces)
por MargarArts Jue Sep 14, 2017 8:08 pm


[XP] Clasificación de ítems

Ver el tema anterior Ver el tema siguiente Ir abajo

[XP] Clasificación de ítems

Mensaje por Alojzy el Vie Mar 07, 2014 3:10 pm

Hola!

Aqui otro script que nos permite clasificar ítems como nosotros queramos!

Screenshot:



Script:

Código:
#======================================================
# Organizar Inventario
# Autor: XRXS
# Traducción: D.A.C.
#======================================================
# Este script permite que puedas organizar el inventario, separando los objetos
# por categorías.
# Para crear tu propio estilo de organización, debes editar el módulo
# XRXS_MP2_Fixed_Variable.
# Puedes definiar el nombre de cada categoría en "KIND_NAMES",
# y en "KIND_KINDS" puedes decidir el tipo de objeto que muestra cada categoría.
#======================================================

#======================================================
# XRXS_MP2_Fixed_Variable
#======================================================
module XRXS_MP2_Fixed_Variable
  #Definición de los nombres de las categorías de objetos del menú.
  KIND_NAMES = ["Objetos", "Armas", "Escudos ", "Yelmos", "Armaduras", "Accesorios"]
  # Tipos de objetos mostrados en cada categoría.
  KIND_KINDS = [0, 1, 3, 4, 5, 6]
  #nil = Todos los objetos.
  #0 = Objetos.
  #1 = Armas.
  #2 = Todos los equipamientos de defensa (Yelmos, escudos, armaduras y accesorios).
  #3 = Escudos.
  #4 = Yelmos.
  #5 = Armaduras.
  #6 = Accesorios.
  #7 = Objetos que no afectan a nadie.
  #8 = Objetos que solo pueden ser usados en la batalla.
  #9 = Objetos que solo pueden ser usados en el menú.
  #10= Objetos que no pueden ser usados.
  #11= Objetos que llaman a 'Eventos comunes'.
  #12= Objetos sin precio (0 monedas de coste).
  #13= Objetos que aumentan los atributos.
  #14= Objetos de curación.
  #15= Objetos con atributos elementales.
 
  # IMPORTANTE:
  # El orden en que defines la función "KIND_KINDS" debe ser el mismo que el
  # definido por "KIND_NAMES" o se producirán errores.
 
end

#======================================================
# Window_Item
#======================================================
class Window_Item < Window_Selectable
  #--------------------------------------------------------------------------
  include XRXS_MP2_Fixed_Variable
  #--------------------------------------------------------------------------
  alias xrxs_mp2_initialize initialize
  alias xrxs_mp2_refresh refresh
  #--------------------------------------------------------------------------
  def initialize
    xrxs_mp2_initialize
    if not $scene.is_a?(Scene_Battle)
      self.y += 64
      self.height -= 64
    end
    @itemkind = KIND_KINDS[0]
    refresh
  end
  #--------------------------------------------------------------------------
  def refresh
    if @itemkind == nil
      xrxs_mp2_refresh
      return
    end
      if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    @item_max = data_sdgs(@itemkind)
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_itemkind_index(itemkind_index)
    @itemkind = KIND_KINDS[itemkind_index]
    refresh
  end
  #--------------------------------------------------------------------------
  def data_sdgs(itemkind)
    @data = []
    if $scene.is_a?(Scene_Battle)
      get_data(0, false)
    elsif itemkind.is_a?(Numeric) or itemkind.nil?
      get_data(itemkind, false)
    elsif itemkind.is_a?(Array)
      for i in 0...itemkind.size
        get_data(itemkind[i], false)
      end
    end
    return @data.size
  end
  #--------------------------------------------------------------------------
  def get_data(itemkind, refresh = false)
    case itemkind
    when nil
      set_own_item_data
      set_own_weapon_data
      set_own_armor_data
    when 0
      set_own_item_data
    when 1
      set_own_weapon_data
    when 2
      set_own_armor_data
    when 3
      set_own_armor_shield_data
    when 4
      set_own_armor_helm_data
    when 5
      set_own_armor_mail_data
    when 6
      set_own_armor_accessory_data
    when 7
      set_own_item_noscope_data
    when 8
      set_own_item_battleonly_data
    when 9
      set_own_item_menuonly_data
    when 10
      set_own_item_unusable_data
    when 11
      set_own_item_commonevent_data
    when 12
      set_own_item_zeroprice_data
    when 13
      set_own_item_parameterup_data
    when 14
      set_own_item_recovers_data
    when 15
      set_own_item_elements_data
    when -3
      last_data = @data.dup
      @data.clear
      set_own_armor_shield_data
      @data = last_data - @data
    when -4
      last_data = @data.dup
      @data.clear
      set_own_armor_helm_data
      @data = last_data - @data
    when -5
      last_data = @data.dup
      @data.clear
      set_own_armor_mail_data
      @data = last_data - @data
    when -6
      last_data = @data.dup
      @data.clear
      set_own_armor_accessory_data
      @data = last_data - @data
    when -7
      last_data = @data.dup
      @data.clear
      set_own_item_noscope_data
      @data = last_data - @data
    when -8
      last_data = @data.dup
      @data.clear
      set_own_item_battleonly_data
      @data = last_data - @data
    when -9
      last_data = @data.dup
      @data.clear
      set_own_item_menuonly_data
      @data = last_data - @data
    when -10
      last_data = @data.dup
      @data.clear
      set_own_item_unusable_data
      @data = last_data - @data
    when -11
      last_data = @data.dup
      @data.clear
      set_own_item_commonevent_data
      @data = last_data - @data
    when -12
      last_data = @data.dup
      @data.clear
      set_own_item_zeroprice_data
      @data = last_data - @data
    when -13
      last_data = @data.dup
      @data.clear
      set_own_item_parameterup_data
      @data = last_data - @data
    when -14
      last_data = @data.dup
      @data.clear
      set_own_item_recovers_data
      @data = last_data - @data
    when -15
      last_data = @data.dup
      @data.clear
      set_own_item_elements_data
      @data = last_data - @data
    else
      if refresh
        xrxs_mp2_refresh
      else
        @data = []
      end
    end
    return
  end
  #--------------------------------------------------------------------------
  def set_own_item_data
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        @data.push($data_items[i])
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_weapon_data
    for i in 1...$data_weapons.size
      if $game_party.weapon_number(i) > 0
        @data.push($data_weapons[i])
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_armor_data
    for i in 1...$data_armors.size
      if $game_party.armor_number(i) > 0
        @data.push($data_armors[i])
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_armor_shield_data
    for i in 1...$data_armors.size
      if $game_party.armor_number(i) > 0
        if $data_armors[i].kind == 0 and !@data.include?($data_armors[i])
          @data.push($data_armors[i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_armor_helm_data
    for i in 1...$data_armors.size
      if $game_party.armor_number(i) > 0
        if $data_armors[i].kind == 1 and !@data.include?($data_armors[i])
          @data.push($data_armors[i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_armor_mail_data
    for i in 1...$data_armors.size
      if $game_party.armor_number(i) > 0
        if $data_armors[i].kind == 2 and !@data.include?($data_armors[i])
          @data.push($data_armors[i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_armor_accessory_data
    for i in 1...$data_armors.size
      if $game_party.armor_number(i) > 0
        if $data_armors[i].kind == 3 and !@data.include?($data_armors[i])
          @data.push($data_armors[i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_item_noscope_data
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        if $data_items[i].scope == 0 and !@data.include?($data_items[i])
          @data.push($data_items[i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_item_battleonly_data
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        if $data_items[i].occasion == 1 and !@data.include?($data_items[i])
          @data.push($data_items[i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_item_menuonly_data
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        if $data_items[i].occasion == 2 and !@data.include?($data_items[i])
          @data.push($data_items[i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_item_unusable_data
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        if $data_items[i].occasion == 3 and !@data.include?($data_items[i])
          @data.push($data_items[i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_item_commonevent_data
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        if $data_items[i].common_event_id > 0 and !@data.include?($data_items[i])
          @data.push($data_items[i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_item_zeroprice_data
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        if $data_items[i].price == 0 and !@data.include?($data_items[i])
          @data.push($data_items[i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_item_parameterup_data
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        if $data_items[i].parameter_type > 0 and !@data.include?($data_items[i])
          @data.push($data_items[i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def set_own_item_recovers_data
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        if ($data_items[i].recover_hp_rate > 0 or
          $data_items[i].recover_hp > 0 or
          $data_items[i].recover_sp_rate > 0 or
          $data_items[i].recover_sp > 0 or
          $data_items[i].minus_state_set.size > 0) and
          !@data.include?($data_items[i])
          @data.push($data_items[i])
        end
      end
    end

  end
  #--------------------------------------------------------------------------
  def set_own_item_elements_data
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        if $data_items[i].element_set.size > 0 and !@data.include?($data_items[i])
          @data.push($data_items[i])
        end
      end
    end
  end
end

#======================================================
# Window_Itemkind
#======================================================
class Window_Itemkind < Window_Selectable
  #--------------------------------------------------------------------------
  include XRXS_MP2_Fixed_Variable
  #--------------------------------------------------------------------------
  def initialize
    super(0, 64, 640, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    @commands = KIND_NAMES
    @item_max = KIND_NAMES.size
    @column_max = KIND_NAMES.size
    @disabled = []
    for i in 0...@item_max
      @disabled[i] = false
    end
    self.active = true
    self.index = 0
    refresh
  end
  #--------------------------------------------------------------------------
  def disable(index)
    @disabled[index] = true
    refresh
  end
  #--------------------------------------------------------------------------
  def disabled?(index)
    return @disabled[index]
  end
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...KIND_NAMES.size
      draw_item(i, (@disabled[i] ? disabled_color : normal_color))
    end
  end
  #--------------------------------------------------------------------------
  def draw_item(index, color)
    self.contents.font.color = color
    x = 304 + (index - KIND_NAMES.size/2.0) * 600/KIND_NAMES.size
    rect = Rect.new(x, 0, 600/KIND_NAMES.size, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index], 1)
  end
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if index != -1
      return unless self.active
      x = 304 + (index - KIND_NAMES.size/2.0) * 600/KIND_NAMES.size
      self.cursor_rect.set(x, 0, 600/KIND_NAMES.size, 32)
      update_help
    end
  end
  #--------------------------------------------------------------------------
  def update_help
    return if @help_window.nil?
    @help_window.set_text(KIND_NAMES[self.index] + " - Seleccione el objeto deseado.")
  end
end

#======================================================
# Scene_Item
#======================================================
class Scene_Item
  #--------------------------------------------------------------------------
  include XRXS_MP2_Fixed_Variable
  #--------------------------------------------------------------------------
  alias xrxs_mp2_update update
  alias xrxs_mp2_update_item update_item
  #--------------------------------------------------------------------------
  def main
    @help_window = Window_Help.new
    @item_window = Window_Item.new
    @kind_window = Window_Itemkind.new
    @item_window.help_window = @help_window
    @kind_window.help_window = @help_window
    for i in 0...KIND_NAMES.size
      @kind_window.disable(i) if @item_window.data_sdgs(KIND_KINDS[i]) == 0
    end
    @target_window = Window_Target.new
    @target_window.visible = false
    @target_window.active = false
    @kind_window.active = true
    @item_window.active = false
    @item_window.index = -1
    @now_itemkind = nil
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @help_window.dispose
    @item_window.dispose
    @target_window.dispose    
    @kind_window.dispose
  end
  #--------------------------------------------------------------------------
  def update
    xrxs_mp2_update
    if @now_itemkind != @kind_window.index
      @item_window.set_itemkind_index(@kind_window.index)
      @now_itemkind = @kind_window.index
    end
    @kind_window.update
    if @kind_window.active
      update_kind
      return
    end
  end
  #--------------------------------------------------------------------------
  def update_item
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @kind_window.active = true
      @item_window.active = false
      @item_window.index = -1
      Input.update
      return
    end
    xrxs_mp2_update_item
  end
  #--------------------------------------------------------------------------
  def update_kind
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(0)
      return
    end
    if Input.trigger?(Input::C)
      if @kind_window.disabled?(@kind_window.index)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      @item_window.active = true
      @item_window.index = 0
      @kind_window.active = false
      return
    end
  end
end

Instrucciones:
- Pegar encima de Main.
- Para definir los nombres de las categorías de objetos del menú, ve a la línea 19 del script y edítala (KIND_NAMES).
- Para escoger qué clase de objetos quieres en dichas categorías, ve a la línea 21 del script y edítala (KIND_KINDS).

Créditos:
- XRXS (Creador)
- D.A.C (Traductor)

Dudas, preguntad!

Eso es todo y un saludo!

_________________
Staff tú tienes que comprender, mi firma se pasa en excesooo:

==========================================================================
 

Nadie sabe que le pasó a esta mujer...
Las leyendas de Magvel dicen que tuvo una explosión cerebral causada por el torso desnudo de Ephraim, otros dicen que El Rey Demonio la tiene poseída, ¿quién sabe?... 
==========================================================================
Soy y me gusta:



avatar
Alojzy
Moderador
Moderador

Masculino
RPG Maker : Ace
Mensajes : 263
Monedas : 423
Reputación : 43
Edad : 26
Localización : Dónde te diga tu corazón *música melancólica*

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

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