¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Últimos temas
» Tutorial Interactivo [Uso de interruptores]
por Ledai Hoy a las 16:58

» Necesito Script
por Elian84 Hoy a las 04:44

» Holaaa a tod@s!!!
por chronoMxx Hoy a las 03:41

» [AYUDA]Hootshot de moghunter
por Rudy_kinneas Hoy a las 01:06

» El poder oculto (Segunda entrega)
por alex1633 Ayer a las 23:18

» Hola mucho gusto
por Hk Diamond Ayer a las 13:49

» SoraDeathss se presenta!
por chronoMxx Ayer a las 07:50

» {AYUDA}Blizz-ABS Script
por chronoMxx Ayer a las 06:45

» las cosas como son...
por Bleuw Ayer a las 04:18

» Busco artistas graficos para proyecto serio
por Rudy_kinneas 2016-12-02, 20:52

Afiliados
Estadísticas
Tenemos 3381 miembros registrados.
El último usuario registrado es Hk Diamond.

Nuestros miembros han publicado un total de 79767 mensajes en 11247 argumentos.
Navega con Google Chrome
[DESCARGA]

[RMXP] Script Items por categorias.

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMXP] Script Items por categorias.

Mensaje por Maximiko el 2011-04-11, 23:11

Descripción
Bueno aqui os traigo otra script que a mi parecer para los juegos de Rol puede hacerle falta a mucha gente.
Sirve para clasificar los objetos que vas consiguiendo por diferentes tipos: Consumibles, armas, armaduras, accesorios. (Facilmente modificable en el script)

Imágenes
Spoiler:


Demo
Descargar Demo (Megaupload)
Descargar Demo (Mediafire)
Descargar Demo (Rapidshare)

Script
Código:
#==============================================================================
# ** Catergorized Items Menu
#------------------------------------------------------------------------------
# * Created by: albertfish
# * Version: 1.1
# * Last edited: September 13, 2009
#------------------------------------------------------------------------------
#  Version History:
#    Version 1.1: September 13, 2009
#      - The variable for recent items is no longer global
#      - Some code removed
#      - Changed it so when you are in items window and you hit escape
#        it goes back to the category window.
#      - You can also select a category with enter now.
#    Version 1.0: September 13, 2009
#      - Initial release
#------------------------------------------------------------------------------
#  Description:
#    This is a complete redesign of the default items menu that sorts items
#    into categories for better organization.
#------------------------------------------------------------------------------
#  Features:
#    - Includes 10 different categories to sort items
#    - Easy to set up items to be sorted
#    - Easy to customize appearance
#    - Easy to customize which categories are active
#    - Extremely customizeable which allows you to set it up the way
#      you want it set up.
#------------------------------------------------------------------------------
#  Item Setup Instructions:
#    This script sorts items automatically based on certain aspects of the
#    item. To set up items to be sorted into correct categories follow this
#    guide.
#
#  Objetos consumibles  - Poner la pestaña en el objeto que se consuma.
#                      - Must have Occasion flag set to anything other than
#                        never.
#    Armas            - Todos los objetos en Armamento en la database
#
#    Armaduras        - Debe estar en la pestaña armaduras
#                      - Clasificarla como armadura
#    Equipo Cascos    - Debe estar en la pestaña armaduras
#                      - Clasificarla como casco
#    Equipo escudos    - Debe estar en la pestaña armaduras
#                      - Clasificarla como escudo
#    Accesorios        - Debe estar en la pestaña armaduras
#                      - Clasificarla como accesorio
#    Materias primas  - Debe estar no consumibles
#                      - Poner la opción no consumible
#    Objetos de quest  - Debe estar en usos infinitos
#    Todos los objetos - Todas las anteriores
# SI TENEIS ALGUNA DUDA IR MIRANDO LOS OBJETOS EN LA DATABASE ES MUY FACIL
#------------------------------------------------------------------------------
#  Instrucciones de instalación:
# Poner esta script por encima de la script Main y abajo de las scripts por defecto
#==============================================================================

#==============================================================================
# ** CIM_Config
#------------------------------------------------------------------------------
#  This module contains the configuration data of the menu.
#------------------------------------------------------------------------------
#  Begin Editable Area.
#==============================================================================

module CIM_Config
  # If this value is true the category icons will be displayed in a
  # separate window. If you set it to false, the icons will be displayed
  # in the category title bar.
  # Default value: true
  CATEGORIES_WINDOW = true
 
  # This value determines if there is a recent items category.
  # Default value: true
  RECENT_ITEMS = true
 
  # This value determines if there is a consumable items category.
  # Default value: true
  CONSUME_ITEMS = true
 
  # This value determines if there is equipment categories.
  # Default value: true
  EQUIPMENT = true
 
  # This value determines if the equipment is displayed as a single
  # category.
  # Default value: false
  SINGLE_EQUIPMENT_CATEGORY = false
 
  # This value determines if there is a raw materials category.
  # Default value: true
  RAW_MATERIALS = true
 
  # This value determines if there is a quest items category.
  # Default value: true
  QUEST_ITEMS = true
 
  # This value determines if there is a all items category.
  # Default value: true
  ALL_ITEMS = true
 
  # This values determines where the all items category will be.
  # 1 is the very first position, 2 the second, and so on.
  # Warning! If this number is larger than the number of categories
  # then it will cause an error.
  # For example, if there are 5 categories and the number is set to 7
  # an error will occur.
  # Default Value: 2
  ALL_ITEMS_POSITION = 2
 
  # This value determines if the unhighlighted category icons are translucent
  # or opaque.
  # Default value: true
  UNSELECTED_TRANSLUCENT = true
 
  # This value determines if there is a selection cursor for the category
  # window.
  # Default Value: true
  CATEGORY_CURSOR = true
 
  # This is where you set the category title alignment.
  #  0 = Left
  #  1 = Center
  #  2 = Right
  # Default value: 1
  TITLE_ALIGNMENT = 1
 
  # This is where you set how the icon in the help window is displayed.
  #  0 = Not displayd
  #  1 = Normal Size
  #  2 = Double Size
  # Default value: 2
  ICON_DISPLAY = 2
 
  # Set the menu item icons. These must be size 24px by 24px.
  # The icons must be placed in the icons folder in the games directory
  # and the file name of the icons must be placed between the quotation
  # marks. 
  I_RECENT = "032-Item01" 
  I_CONSUME = "021-Potion01" 
  I_WEAPONS = "001-Weapon01" 
  I_BODY = "013-Body01" 
  I_HEAD = "010-Head01" 
  I_ARM = "009-Shield01" 
  I_ACCESSORY = "017-Accessory02" 
  I_RAW = "043-Item12"
  I_QUEST = "035-Item04"
  I_ALL = "034-Item03"
  # This next one is used when you group the different equipment into
  # one category.
  I_EQUIPMENT = "009-Shield01"
 
  # Set the menu item text. This is the text that will display at the bottom
  # informing the player what each category is.
  T_RECENT = "Objetos recientes" 
  T_CONSUME = "Pocion" 
  T_WEAPONS = "Armas" 
  T_BODY = "Armadura Equipo" 
  T_HEAD = "Casco Equipo" 
  T_ARM = "Escudos" 
  T_ACCESSORY = "Accesorios" 
  T_RAW = "Material" 
  T_QUEST = "Objetos quest" 
  T_ALL = "Todos objetos" 
  # This next one is used when you group the different equipment into
  # one category.
  T_EQUIPMENT = "Equipo" 

  #============================================================================
  #  End Editable Area.
  #----------------------------------------------------------------------------
  #  Warning! Do not edit beyond this point unless you know what you are doing!
  #============================================================================
  ITEMS_MENU_ICONS = []
  ITEMS_MENU_TEXT = []
  ITEM_ID = []
 
  # Add recent items category
  if RECENT_ITEMS
    ITEMS_MENU_TEXT.push(T_RECENT)
    ITEMS_MENU_ICONS.push(I_RECENT)
    ITEM_ID.push("Recent")
  end
  # Add consumable items category
  if CONSUME_ITEMS
    ITEMS_MENU_TEXT.push(T_CONSUME)
    ITEMS_MENU_ICONS.push(I_CONSUME)
    ITEM_ID.push("Consume")
  end
  # Add equipment category(s)
  if SINGLE_EQUIPMENT_CATEGORY && EQUIPMENT
    ITEMS_MENU_TEXT.push(T_EQUIPMENT)
    ITEMS_MENU_ICONS.push(I_EQUIPMENT)
    ITEM_ID.push("Equip")
  elsif EQUIPMENT
    ITEMS_MENU_TEXT.push(T_WEAPONS)
    ITEMS_MENU_ICONS.push(I_WEAPONS)
    ITEM_ID.push("Weapon")
    ITEMS_MENU_TEXT.push(T_BODY)
    ITEMS_MENU_ICONS.push(I_BODY)
    ITEM_ID.push("Body")
    ITEMS_MENU_TEXT.push(T_HEAD)
    ITEMS_MENU_ICONS.push(I_HEAD)
    ITEM_ID.push("Head")
    ITEMS_MENU_TEXT.push(T_ARM)
    ITEMS_MENU_ICONS.push(I_ARM)
    ITEM_ID.push("Arm")
    ITEMS_MENU_TEXT.push(T_ACCESSORY)
    ITEMS_MENU_ICONS.push(I_ACCESSORY)
    ITEM_ID.push("Accessory")
  end
  # Add raw materials category
  if RAW_MATERIALS
    ITEMS_MENU_TEXT.push(T_RAW)
    ITEMS_MENU_ICONS.push(I_RAW)
    ITEM_ID.push("Raw")
  end
  # Add quest items category
  if QUEST_ITEMS
    ITEMS_MENU_TEXT.push(T_QUEST)
    ITEMS_MENU_ICONS.push(I_QUEST)
    ITEM_ID.push("Quest")
  end
  # Add all items category
  if QUEST_ITEMS
    ITEMS_MENU_TEXT.insert(ALL_ITEMS_POSITION - 1, T_ALL)
    ITEMS_MENU_ICONS.insert(ALL_ITEMS_POSITION - 1, I_ALL)
    ITEM_ID.insert(ALL_ITEMS_POSITION - 1, "All")
  end
end

#==============================================================================
# ** Window_Blank
#------------------------------------------------------------------------------
#  This window deals with blank window backgrounds.
#==============================================================================

class Window_Blank < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    x        : window x coordinate
  #    y        : window y coordinate
  #    width    : window width
  #    height  : window height
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super(x, y, width, height)
  end
end

#==============================================================================
# ** Window_Category
#------------------------------------------------------------------------------
#  This window deals with item category command choices.
#==============================================================================

class Window_Category < Window_Selectable
  #--------------------------------------------------------------------------
  # * include the CMS_Config module
  #--------------------------------------------------------------------------
  include CIM_Config
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    width    : window width
  #    commands : command text string array
  #--------------------------------------------------------------------------
  def initialize(width, commands)
    # Compute window height from command quantity
    cw = 32 + ITEMS_MENU_TEXT.size * 32
    super(640 - cw, 0, cw, 64)
    @column_max = ITEMS_MENU_TEXT.size
    @item_max = ITEMS_MENU_TEXT.size
    @commands = commands
    @select = 0
    self.contents = Bitmap.new(cw - 32, height - 32)
    refresh
    self.index = 0
    self.opacity = 0 unless CATEGORIES_WINDOW
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #    index : item number
  #    color : text color
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = Rect.new(0, 0, 24, 24)
    bitmap = RPG::Cache.icon(ITEMS_MENU_ICONS[index])
    self.contents.blt(4 + 32 * index, 4, bitmap, rect) unless UNSELECTED_TRANSLUCENT && index != @select
    self.contents.blt(4 + 32 * index, 4, bitmap, rect, 160) if UNSELECTED_TRANSLUCENT && index != @select
  end
  #--------------------------------------------------------------------------
  # * Disable Item
  #    index : item number
  #--------------------------------------------------------------------------
  def disable_item(index)
    draw_item(index)
  end
  #--------------------------------------------------------------------------
  # * Update Cursor Rectangle
  #--------------------------------------------------------------------------
  def update_cursor_rect
    @select = @index
    # If cursor position is less than 0
    if @index < 0 || !CATEGORY_CURSOR
      self.cursor_rect.empty
      return
    end
    # Update cursor rectangle
    self.cursor_rect.set(@index*32, 0, 32, 32)
  end
  #--------------------------------------------------------------------------
  # * Help Text Update
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(ITEMS_MENU_TEXT[self.index])
  end
end

#==============================================================================
# ** Window_ItemTop
#------------------------------------------------------------------------------
#  This window shows top bar with the title "Items" on it.
#==============================================================================

class Window_ItemTop < Window_Base 
  #--------------------------------------------------------------------------
  # * include the CMS_Config module
  #--------------------------------------------------------------------------
  include CIM_Config
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    cw = 32 + ITEMS_MENU_TEXT.size * 32
    super(0, 0, 640 - cw, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    @text = ITEMS_MENU_TEXT[0]
    @width = 640 - cw
    update
    self.opacity = 0 unless CATEGORIES_WINDOW
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    self.contents.clear
    self.contents.draw_text(0, 0, @width - 32, 32, @text, TITLE_ALIGNMENT)
  end
  def set_text(text)
    @text = text
  end
end

#==============================================================================
# ** Window_ItemHelp
#------------------------------------------------------------------------------
#  This window shows skill and item explanations along with actor status.
#==============================================================================

class Window_ItemHelp < Window_Base
  #--------------------------------------------------------------------------
  # * include the CMS_Config module
  #--------------------------------------------------------------------------
  include CIM_Config
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 640, 128)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
  end
  #--------------------------------------------------------------------------
  # * Set Text
  #  text  : text string displayed in window
  #  align : alignment (0..flush left, 1..center, 2..flush right)
  #--------------------------------------------------------------------------
  def set_text(text, item, align = 0)
    # If at least one part of text and alignment differ from last time
    if text != @text or align != @align
      # Redraw text
      self.contents.clear
      # Redraw icon
      if item
        bitmap = RPG::Cache.icon(item.icon_name)
        width = bitmap.width
        height = bitmap.height
        src_rect = Rect.new(0, 0, width, height)
        dest_rect = Rect.new(0, 24, width * 2, height * 2)
        self.contents.stretch_blt(dest_rect, bitmap, src_rect) if ICON_DISPLAY == 2
        self.contents.blt(0, 36, bitmap, src_rect)if ICON_DISPLAY == 1
      else
        width = 0
      end
      self.contents.font.color = normal_color
      self.contents.draw_text(4 + width * ICON_DISPLAY, 32, self.width - 40, 32, text, align)
      @text = text
      @align = align
      @actor = nil
    end
    self.visible = true
  end
  #--------------------------------------------------------------------------
  # * Set Display
  #  text  : text string displayed in window
  #  align : alignment (0..flush left, 1..center, 2..flush right)
  #--------------------------------------------------------------------------
  def set_display(text, icon, align = 0)
    # If at least one part of text and alignment differ from last time
    if text != @text or align != @align
      # Redraw text
      self.contents.clear
      # Redraw icon
      if icon
        bitmap = RPG::Cache.icon(icon)
        width = bitmap.width
        height = bitmap.height
        src_rect = Rect.new(0, 0, width, height)
        dest_rect = Rect.new(0, 24, width * 2, height * 2)
        self.contents.stretch_blt(dest_rect, bitmap, src_rect)
      else
        width = 0
      end
      self.contents.font.color = normal_color
      self.contents.draw_text(4 + width * 2, 32, self.width - 40, 32, text, align)
      @text = text
      @align = align
      @actor = nil
    end
    self.visible = true
  end
  #--------------------------------------------------------------------------
  # * Set Actor
  #    actor : status displaying actor
  #--------------------------------------------------------------------------
  def set_actor(actor)
    if actor != @actor
      self.contents.clear
      draw_actor_name(actor, 4, 0)
      draw_actor_state(actor, 140, 0)
      draw_actor_hp(actor, 284, 0)
      draw_actor_sp(actor, 460, 0)
      @actor = actor
      @text = nil
      self.visible = true
    end
  end
  #--------------------------------------------------------------------------
  # * Set Enemy
  #    enemy : name and status displaying enemy
  #--------------------------------------------------------------------------
  def set_enemy(enemy)
    text = enemy.name
    state_text = make_battler_state_text(enemy, 112, false)
    if state_text != ""
      text += "  " + state_text
    end
    set_text(text, 1, 1)
  end
end

#==============================================================================
# ** Window_Item
#------------------------------------------------------------------------------
#  This window displays items in possession on the item and battle screens.
#==============================================================================

class Window_ItemMenu < Window_Selectable
  #--------------------------------------------------------------------------
  # * include the CMS_Config module
  #--------------------------------------------------------------------------
  include CIM_Config
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 64, 640, 352)
    @column_max = 2
    @category = ITEM_ID[0]
    refresh
    self.index = -1
    @category_select = true
    # If in battle, move window to center of screen
    # and make it semi-transparent
    if $game_temp.in_battle
      self.y = 64
      self.height = 256
      self.back_opacity = 160
    end
  end
  #--------------------------------------------------------------------------
  # * Get Item
  #--------------------------------------------------------------------------
  def item
    case @category
    when "Recent"
      if @items_max > 20
        return @recent[self.index + (@items_max - 20)]
      else
        return @recent[self.index]
      end
    when "Consume"
      return @consumable[self.index]
    when "Weapon"
      return @weapon[self.index]
    when "Body"
      return @body[self.index]
    when "Head"
      return @head[self.index]
    when "Arm"
      return @arm[self.index]
    when "Accessory"
      return @accessory[self.index]
    when "Raw"
      return @raw[self.index]
    when "Quest"
      return @quest[self.index]
    when "Equip"
      return @equipment[self.index]
    when "All"
      return @all[self.index]
    end
  end
  #--------------------------------------------------------------------------
  # * Set Category
  #--------------------------------------------------------------------------
  def category(index)
    @category = ITEM_ID[index]
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
   
    @recent = []
    @consumable = []
    @weapon = []
    @body = []
    @head = []
    @arm = []
    @accessory = []
    @raw = []
    @quest = []
    @equipment = []
    @all = []
    # Add item
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        # Add recent items
        if $game_party.recent_items.size < 20
          for u in 0...$game_party.recent_items.size
            if $data_items[i].id == $game_party.recent_items[u].id && $game_party.recent_items[u].is_a?(RPG::Item)
              @recent[($game_party.recent_items.size - 1) - u] = ($data_items[i])
            end
          end
        else
          for u in $game_party.recent_items.size-20...$game_party.recent_items.size
            if $data_items[i].id == $game_party.recent_items[u].id && $game_party.recent_items[u].is_a?(RPG::Item)
              @recent[21 - (u - ($game_party.recent_items.size-20))] = ($data_items[i])
            end
          end
        end
       
        # Add consumable, raw and quest items
        if $data_items[i].consumable
          if $data_items[i].occasion == 3
            @raw.push($data_items[i])
          else
            @consumable.push($data_items[i])
          end
        else
          @quest.push($data_items[i])
        end
        @all.push($data_items[i])
      end
    end
   
    # Also add weapons and armors if outside of battle
    unless $game_temp.in_battle
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0
          # Add recent items
          if $game_party.recent_items.size < 20
            for u in 0...$game_party.recent_items.size
              if $data_weapons[i].id == $game_party.recent_items[u].id && $game_party.recent_items[u].is_a?(RPG::Weapon)
                @recent[($game_party.recent_items.size - 1) - u] = ($data_weapons[i])
              end
            end
          else
            for u in $game_party.recent_items.size-20...$game_party.recent_items.size
              if $data_weapons[i].id == $game_party.recent_items[u].id && $game_party.recent_items[u].is_a?(RPG::Weapon)
                @recent[21 - (u - ($game_party.recent_items.size-20))] = ($data_weapons[i])
              end
            end
          end
         
          # Add weapons
          @weapon.push($data_weapons[i])
          @equipment.push($data_weapons[i])
          @all.push($data_weapons[i])
        end
      end
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0
          # Add recent armors
          if $game_party.recent_items.size < 20
            for u in 0...$game_party.recent_items.size
              if $data_armors[i].id == $game_party.recent_items[u].id && $game_party.recent_items[u].is_a?(RPG::Armor)
                @recent[($game_party.recent_items.size - 1) - u] = ($data_armors[i])
              end
            end
          else
            for u in $game_party.recent_items.size-20...$game_party.recent_items.size
              if $data_armors[i].id == $game_party.recent_items[u].id && $game_party.recent_items[u].is_a?(RPG::Armor)
                @recent[21 - (u - ($game_party.recent_items.size-20))] = ($data_armors[i])
              end
            end
          end
         
          # Add armors
          if $data_armors[i].kind == 2 # Body Armor
            @body.push($data_armors[i])
          elsif $data_armors[i].kind == 1 # Head Armor
            @head.push($data_armors[i])
          elsif $data_armors[i].kind == 0 # Arm Armor
            @arm.push($data_armors[i])
          elsif $data_armors[i].kind == 3 # Accessories
            @accessory.push($data_armors[i])
          end
          @equipment.push($data_armors[i])
          @all.push($data_armors[i])
        end
      end
    end
   
    # Repaint
    if @category == "Recent"
      @item_max = @recent.size
    elsif @category == "Consume"
      @item_max = @consumable.size
    elsif @category == "Weapon"
      @item_max = @weapon.size
    elsif @category == "Body"
      @item_max = @body.size
    elsif @category == "Head"
      @item_max = @head.size
    elsif @category == "Arm"
      @item_max = @arm.size
    elsif @category == "Accessory"
      @item_max = @accessory.size
    elsif @category == "Raw"
      @item_max = @raw.size
    elsif @category == "Quest"
      @item_max = @quest.size
    elsif @category == "Equip"
      @item_max = @equipment.size
    elsif @category == "All"
      @item_max = @all.size
    end
    @items_max = @item_max
    if @item_max == 0
      self.contents.dispose if self.contents != nil
      self.contents = Bitmap.new(width - 32, height - 32)
    end
      if @item_max > 20 && @category == "Recent"
        self.contents = Bitmap.new(width - 32, height - 32)
        for i in @recent.size-20...@recent.size
          draw_item(i)
        end
        @items_max = @item_max
        @item_max = 20
      elsif @item_max > 0
        self.contents = Bitmap.new(width - 32, row_max * 32)
        for i in 0...@item_max
          draw_item(i)
        end
      end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #    index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    case @category
    when "Recent"
      item = @recent[index]
    when "Consume"
      item = @consumable[index]
    when "Weapon"
      item = @weapon[index]
    when "Body"
      item = @body[index]
    when "Head"
      item = @head[index]
    when "Arm"
      item = @arm[index]
    when "Accessory"
      item = @accessory[index]
    when "Raw"
      item = @raw[index]
    when "Quest"
      item = @quest[index]
    when "Equip"
      item = @equipment[index]
    when "All"
      item = @all[index]
    end
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    if item.is_a?(RPG::Item) and
      $game_party.item_can_use?(item.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % 2 * (288 + 32)
    if @item_max > 20 && @category == "Recent"
      y = (index - (@item_max - 20)) / 2 * 32
    else
      y = index / 2 * 32
    end
    if item != nil
      rect = Rect.new(x, y, self.width / @column_max - 32, 32)
      self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
      bitmap = RPG::Cache.icon(item.icon_name)
      opacity = self.contents.font.color == normal_color ? 255 : 128
      self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
      self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
      self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
      self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
    end
  end
  #--------------------------------------------------------------------------
  # * Help Text Update
  #--------------------------------------------------------------------------
  def update_help
    if @index >= 0
      @help_window.set_text(self.item == nil ? "" : self.item.description, self.item)
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    if self.active and @item_max >= 0 and @index >= 0
      if Input.trigger?(Input::UP) && @index <= 1
        @index = -1
      end
    end
    super
  end
  def cat_select(tf)
    @category_select = tf
  end
  #--------------------------------------------------------------------------
  # * Update Cursor Rectangle
  #--------------------------------------------------------------------------
  def update_cursor_rect
    # If cursor position is less than 0
    if @index < 0 || @category_select
      self.cursor_rect.empty
      return
    end
    # Get current row
    row = @index / @column_max
    # If current row is before top row
    if row < self.top_row
      # Scroll so that current row becomes top row
      self.top_row = row
    end
    # If current row is more to back than back row
    if row > self.top_row + (self.page_row_max - 1)
      # Scroll so that current row becomes back row
      self.top_row = row - (self.page_row_max - 1)
    end
    # Calculate cursor width
    cursor_width = self.width / @column_max - 32
    # Calculate cursor coordinates
    x = @index % @column_max * (cursor_width + 32)
    y = @index / @column_max * 32 - self.oy
    # Update cursor rectangle
    self.cursor_rect.set(x, y, cursor_width, 32)
  end
  #--------------------------------------------------------------------------
  # * Draw Items after use
  #--------------------------------------------------------------------------
  def draw_items(index)
    if @category == "Recent" && @recent.size > 20
      draw_item(index + (@item_max - 20))
    else
      draw_item(index)
    end
  end
end

#==============================================================================
# ** Scene_Item
#------------------------------------------------------------------------------
#  This class performs item screen processing.
#==============================================================================

class Scene_Item
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Make help window, item window
    @top_window = Window_Blank.new(0, 0, 640, 64) unless CIM_Config::CATEGORIES_WINDOW
    @help_window = Window_ItemHelp.new
    @itemtop_window = Window_ItemTop.new
    @help_windowback = Window_Blank.new(0, 416, 640, 64)
    @help_window.y = 384
    @item_window = Window_ItemMenu.new
    @item_window.active = false
    # Associate help window
    @item_window.help_window = @help_window
    # Make target window (set to active)
    @category_window = Window_Category.new(320, [])
    @category_window.active = true
    @category_window.help_window = @itemtop_window
    # Make target window (set to invisible / inactive)
    @target_window = Window_Target.new
    @target_window.visible = false
    @target_window.active = false
    @item_window.refresh
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @help_window.dispose
    @item_window.dispose
    @target_window.dispose
    @help_windowback.dispose
    @category_window.dispose
    @itemtop_window.dispose
    @top_window.dispose unless CIM_Config::CATEGORIES_WINDOW
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update windows
    @help_window.update
    @item_window.update
    @target_window.update
    @help_windowback.update
    @category_window.update
    @category_window.refresh
    @itemtop_window.update
    @top_window.update unless CIM_Config::CATEGORIES_WINDOW
    # If item window is active: call update_item
    if @item_window.active
      update_item
      return
    end
    # If target window is active: call update_target
    if @target_window.active
      update_target
      return
    end
    # If target window is active: call update_target
    if @category_window.active
      @help_window.set_display ("", "")
      update_category
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when item window is active)
  #--------------------------------------------------------------------------
  def update_item
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Set category window active
      @item_window.active = false
      @item_window.cat_select(true)
      @category_window.active = true
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Get currently selected data on the item window
      @item = @item_window.item
      # If not a use item
      unless @item.is_a?(RPG::Item)
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # If it can't be used
      unless $game_party.item_can_use?(@item.id)
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      # If effect scope is an ally
      if @item.scope >= 3
        # Activate target window
        @item_window.active = false
        @target_window.x = (@item_window.index + 1) % 2 * 304
        @target_window.visible = true
        @target_window.active = true
        # Set cursor position to effect scope (single / all)
        if @item.scope == 4 || @item.scope == 6
          @target_window.index = -1
        else
          @target_window.index = 0
        end
      # If effect scope is other than an ally
      else
        # If command event ID is valid
        if @item.common_event_id > 0
          # Command event call reservation
          $game_temp.common_event_id = @item.common_event_id
          # Play item use SE
          $game_system.se_play(@item.menu_se)
          # If consumable
          if @item.consumable
            # Decrease used items by 1
            $game_party.lose_item(@item.id, 1)
            # Draw item window item
            @item_window.draw_item(@item_window.index)
          end
          # Switch to map screen
          $scene = Scene_Map.new
          return
        end
      end
      return
    end
    # If UP button was pressed
    if Input.trigger?(Input::UP) && @item_window.index == -1
      # Set category window active
      @item_window.active = false
      @item_window.cat_select(true)
      @category_window.active = true
      # Play cursor SE
      $game_system.se_play($data_system.cursor_se)
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when target window is active)
  #--------------------------------------------------------------------------
  def update_target
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # If unable to use because items ran out
      unless $game_party.item_can_use?(@item.id)
        # Remake item window contents
        @item_window.refresh
      end
      # Erase target window
      @item_window.active = true
      @target_window.visible = false
      @target_window.active = false
      @item_window.refresh
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If items are used up
      if $game_party.item_number(@item.id) == 0
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # If target is all
      if @target_window.index == -1
        # Apply item effects to entire party
        used = false
        for i in $game_party.actors
          used |= i.item_effect(@item)
        end
      end
      # If single target
      if @target_window.index >= 0
        # Apply item use effects to target actor
        target = $game_party.actors[@target_window.index]
        used = target.item_effect(@item)
      end
      # If an item was used
      if used
        # Play item use SE
        $game_system.se_play(@item.menu_se)
        # If consumable
        if @item.consumable
          # Decrease used items by 1
          $game_party.lose_item(@item.id, 1)
          # Redraw item window item
          @item_window.draw_items(@item_window.index)
        end
        # Remake target window contents
        @target_window.refresh
        # If all party members are dead
        if $game_party.all_dead?
          # Switch to game over screen
          $scene = Scene_Gameover.new
          return
        end
        # If common event ID is valid
        if @item.common_event_id > 0
          # Common event call reservation
          $game_temp.common_event_id = @item.common_event_id
          # Switch to map screen
          $scene = Scene_Map.new
          return
        end
      end
      # If item wasn't used
      unless used
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when category window is active)
  #--------------------------------------------------------------------------
  def update_category
    @item_window.category(@category_window.index)
    @item_window.cat_select(true)
    if Input.repeat? (Input::RIGHT) || Input.repeat? (Input::LEFT)
    @item_window.refresh
    end
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to menu screen
      $scene = Scene_Menu.new(0)
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Get currently selected data on the item window
      @item = @category_window.index
      # Set item window active
      @item_window.active = true
      @item_window.index = 0
      @category_window.active = false
      @item_window.cat_select(false)
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      return
    end
    # If DOWN button was pressed
    if Input.trigger?(Input::DOWN)
      # Set item window active
      @item_window.active = true
      @item_window.index = 0
      @category_window.active = false
      @item_window.cat_select(false)
      # Play cursor SE
      $game_system.se_play($data_system.cursor_se)
      return
    end
  end
end

#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
#  This class handles the party. It includes information on amount of gold
#  and items. Refer to "$game_party" for the instance of this class.
#==============================================================================

class Game_Party
  attr_reader    :recent_items
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias af_cim_init_gp initialize
  def initialize
    af_cim_init_gp
    @recent_items = []
  end
  #--------------------------------------------------------------------------
  # * Gain Items (or lose)
  #    item_id : item ID
  #    n      : quantity
  #--------------------------------------------------------------------------
  def gain_item(item_id, n)
    # Update quantity data in the hash.
    if item_id > 0
      @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
      gain_recent_item(item_id) if n >= 0
    end
  end
  #--------------------------------------------------------------------------
  # * Gain Weapons (or lose)
  #    weapon_id : weapon ID
  #    n        : quantity
  #--------------------------------------------------------------------------
  def gain_weapon(weapon_id, n)
    # Update quantity data in the hash.
    if weapon_id > 0
      @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
      gain_recent_weapon(weapon_id) if n >= 0
    end
  end
  #--------------------------------------------------------------------------
  # * Gain Armor (or lose)
  #    armor_id : armor ID
  #    n        : quantity
  #--------------------------------------------------------------------------
  def gain_armor(armor_id, n)
    # Update quantity data in the hash.
    if armor_id > 0
      @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
      gain_recent_armor(armor_id) if n >= 0
    end
  end
  #--------------------------------------------------------------------------
  # * Lose Items
  #    item_id : item ID
  #    n      : quantity
  #--------------------------------------------------------------------------
  def lose_item(item_id, n)
    # Reverse the numerical value and call it gain_item
    gain_item(item_id, -n)
    for i in 0...@recent_items.size
      if $game_party.item_number(@recent_items[i].id) == 0 && @recent_items[i].is_a?(RPG::Item) && @recent_items[i].id == item_id
        @recent_items.delete_at(i)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Lose Weapons
  #    weapon_id : weapon ID
  #    n        : quantity
  #--------------------------------------------------------------------------
  def lose_weapon(weapon_id, n)
    # Reverse the numerical value and call it gain_weapon
    gain_weapon(weapon_id, -n)
    for i in 0...@recent_items.size
      if $game_party.item_number(@recent_items[i].id) == 0 && @recent_items[i].is_a?(RPG::Weapon) && @recent_items[i].id == weapon_id
        @recent_items.delete_at(i)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Lose Armor
  #    armor_id : armor ID
  #    n        : quantity
  #--------------------------------------------------------------------------
  def lose_armor(armor_id, n)
    # Reverse the numerical value and call it gain_armor
    gain_armor(armor_id, -n)
    if $game_party.item_number(armor_id) <= 0
    for i in 0...@recent_items.size
      if $game_party.item_number(@recent_items[i].id) == 0 && @recent_items[i].is_a?(RPG::Armor) && @recent_items[i].id == armor_id
        @recent_items.delete_at(i)
      end
    end
    end
  end
  #--------------------------------------------------------------------------
  # * Gain Recent Items
  #    item_id  : item ID
  #--------------------------------------------------------------------------
  def gain_recent_item(item_id)
    for i in 0...@recent_items.size
      if @recent_items[i].id == $data_items[item_id].id && @recent_items[i].is_a?(RPG::Item)
        @recent_items.delete_at(i)
      end
    end
    @recent_items.push($data_items[item_id])
    if @recent_items.size > 40
      @recent_items.delete_at(0)
    end
  end
  #--------------------------------------------------------------------------
  # * Gain Recent Weapons
  #    weapon_id : weapon ID
  #--------------------------------------------------------------------------
  def gain_recent_weapon(weapon_id)
    for i in 0...@recent_items.size
      if @recent_items[i].id == $data_weapons[weapon_id].id && @recent_items[i].is_a?(RPG::Weapon)
        @recent_items.delete_at(i)
      end
    end
    @recent_items.push($data_weapons[weapon_id])
    if @recent_items.size > 40
      @recent_items.delete_at(0)
    end
  end
  #--------------------------------------------------------------------------
  # * Gain Recent Armor
  #    armor_id  : armor ID
  #--------------------------------------------------------------------------
  def gain_recent_armor(armor_id)
    for i in 0...@recent_items.size
      if @recent_items[i].id == $data_armors[armor_id].id && @recent_items[i].is_a?(RPG::Armor)
        @recent_items.delete_at(i)
      end
    end
    @recent_items.push($data_armors[armor_id])
    if @recent_items.size > 40
      @recent_items.delete_at(0)
    end
  end
  #--------------------------------------------------------------------------
  # * Gain Items (or lose)
  #    item_id : item ID
  #    n      : quantity
  #--------------------------------------------------------------------------
  def equip_item(item_id, n)
    # Update quantity data in the hash.
    if item_id > 0
      @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
    end
  end
  #--------------------------------------------------------------------------
  # * Gain Weapons (or lose)
  #    weapon_id : weapon ID
  #    n        : quantity
  #--------------------------------------------------------------------------
  def equip_weapon(weapon_id, n)
    # Update quantity data in the hash.
    if weapon_id > 0
      @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
    end
  end
  #--------------------------------------------------------------------------
  # * Gain Armor (or lose)
  #    armor_id : armor ID
  #    n        : quantity
  #--------------------------------------------------------------------------
  def equip_armor(armor_id, n)
    # Update quantity data in the hash.
    if armor_id > 0
      @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
    end
  end
end

#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles the actor. It's used within the Game_Actors class
#  ($game_actors) and refers to the Game_Party class ($game_party).
#==============================================================================
class Game_Actor
  #--------------------------------------------------------------------------
  # * Change Equipment
  #    equip_type : type of equipment
  #    id    : weapon or armor ID (If 0, remove equipment)
  #--------------------------------------------------------------------------
  def equip(equip_type, id)
    case equip_type
    when 0  # Weapon
      if id == 0 or $game_party.weapon_number(id) > 0
        $game_party.equip_weapon(@weapon_id, 1)
        @weapon_id = id
        $game_party.lose_weapon(id, 1)
      end
    when 1  # Shield
      if id == 0 or $game_party.armor_number(id) > 0
        update_auto_state($data_armors[@armor1_id], $data_armors[id])
        $game_party.equip_armor(@armor1_id, 1)
        @armor1_id = id
        $game_party.lose_armor(id, 1)
      end
    when 2  # Head
      if id == 0 or $game_party.armor_number(id) > 0
        update_auto_state($data_armors[@armor2_id], $data_armors[id])
        $game_party.equip_armor(@armor2_id, 1)
        @armor2_id = id
        $game_party.lose_armor(id, 1)
      end
    when 3  # Body
      if id == 0 or $game_party.armor_number(id) > 0
        update_auto_state($data_armors[@armor3_id], $data_armors[id])
        $game_party.equip_armor(@armor3_id, 1)
        @armor3_id = id
        $game_party.lose_armor(id, 1)
      end
    when 4  # Accessory
      if id == 0 or $game_party.armor_number(id) > 0
        update_auto_state($data_armors[@armor4_id], $data_armors[id])
        $game_party.equip_armor(@armor4_id, 1)
        @armor4_id = id
        $game_party.lose_armor(id, 1)
      end
    end
  end
end

Creditos
Script creado por Albertfish

PD: He traducido un poco el script para mas fácil el entendimiento. ¡SALUDOS!
Si teneis problemas con algunos objetos mirar los que vienen por default y más o menos. Smile

Maximiko
Novato
Novato

0/3

Créditos 88

Gracias : 2

Volver arriba Ir abajo

Re: [RMXP] Script Items por categorias.

Mensaje por takr105 el 2011-04-21, 14:24

hola maximiko,
como se podrian quitar las categorias de recientes i de todos los objetos, sin que el script dejase de funcionar?¿
perdon por la pregunta tonta, pero esque n tango ni idea de scripts

takr105
Iniciado
Iniciado

0/3

Créditos 25

Gracias : 2

Volver arriba Ir abajo

Re: [RMXP] Script Items por categorias.

Mensaje por ljury el 2011-04-21, 14:36

takr, donde dice "Begin Editable Area."

hay unas variables que estan en true

# This value determines if there is a recent items category.
# Default value: true
RECENT_ITEMS = true

# This value determines if there is a consumable items category.
# Default value: true
CONSUME_ITEMS = true

# This value determines if there is equipment categories.
# Default value: true
EQUIPMENT = true

de ahi para abajo... fijate lo que dicen las lineas con
#

"# This value determines if there is a recent items category."
osea que si tu cambias
RECENT_ITEMS = true
por
RECENT_ITEMS = false

la categoria de los "recent_items" desaparecera, y asi con todas las opciones que salen alli en la parte "editable"

ljury
Soñador
Soñador

0/3

Créditos 226

Gracias : 6

Volver arriba Ir abajo

Re: [RMXP] Script Items por categorias.

Mensaje por takr105 el 2011-04-21, 15:58

muxas gracias ljury,

e canviado el true por el false i me deparece el recent items, pero he hecho lo mismo con el de all items i me sigue saliendo. que puedo hacer?¿

takr105
Iniciado
Iniciado

0/3

Créditos 25

Gracias : 2

Volver arriba Ir abajo

Re: [RMXP] Script Items por categorias.

Mensaje por Cambrid-1997 el 2011-04-21, 17:07

e observado el script detenidamente y está muy bién. Espero que sigas buscando scripts o crees uno.

Cambrid-1997
Iniciado
Iniciado

0/3

Créditos 30

Gracias : 2

Volver arriba Ir abajo

Re: [RMXP] Script Items por categorias.

Mensaje por takr105 el 2011-04-24, 15:58

hay alguna forma de eliminar tambien el all items?¿

takr105
Iniciado
Iniciado

0/3

Créditos 25

Gracias : 2

Volver arriba Ir abajo

Re: [RMXP] Script Items por categorias.

Mensaje por Mukadelheid el 2011-04-24, 17:39

En la linea numero "225" encontraras esto :

Código:
if QUEST_ITEMS

Solo cámbialo por esto :

Código:
  if ALL_ITEMS

y listo , ahora desaparecerá si cambias las opciones.

Mukadelheid
Principiante
Principiante

0/3

Créditos 331

Gracias : 28

Volver arriba Ir abajo

Re: [RMXP] Script Items por categorias.

Mensaje por takr105 el 2011-04-25, 10:13

muchas gracias Mukadelheid,

e hecho lo que me dijiste y ya esta solyucionado el problema, muchas gracias.

takr105
Iniciado
Iniciado

0/3

Créditos 25

Gracias : 2

Volver arriba Ir abajo

Re: [RMXP] Script Items por categorias.

Mensaje por Lithering-Games el 2015-05-08, 04:06

Perdón por el necro, pero hay alguna forma de hacerlo compatible con XAS. Si usas este menú no puedes equiparte los objetos.

Lithering-Games
Soñador
Soñador

0/3

Créditos 411

Gracias : 20

http://lithering.es.tl/

Volver arriba Ir abajo

Re: [RMXP] Script Items por categorias.

Mensaje por Contenido patrocinado Hoy a las 20:21


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Scripts

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