RPG maker VX


Unirse al foro, es rápido y fácil

RPG maker VX
RPG maker VX
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Últimos temas
» Script de menu
por maxi Jue 04 Dic 2014, 1:44 pm

» Ayuda intro animado!!!
por maxi Miér 03 Dic 2014, 9:41 pm

» ayuda con este engin
por maxi Miér 03 Dic 2014, 8:42 am

» Hud de Vida 100% Personalizable - Engine Sencillo! Sin Scripts :)
por davidaikago Jue 20 Nov 2014, 10:58 am

» Ultimate parallax control by:GDS [ace]
por arellano Miér 08 Oct 2014, 8:28 pm

» Script Touhou (animated) Map name (v1.4)
por davidaikago Miér 08 Oct 2014, 2:09 pm

» tutorial puerta nueva
por davidaikago Miér 08 Oct 2014, 9:08 am

» cámara de fotos
por davidaikago Miér 08 Oct 2014, 9:05 am

» Imperial Action System II Demo
por davidaikago Miér 08 Oct 2014, 8:47 am

» VE Batalla animada [ACE]
por FhierusIV Jue 18 Sep 2014, 10:57 am

» Nuevo Reglamento del Foro [Vigente desde Septiembre 2014]
por maxi Miér 17 Sep 2014, 8:37 am

» MOG|Animated Title
por Souta21 Mar 09 Sep 2014, 7:24 pm

» Tutorial Engine - Cambiar Character al Equipar Objeto
por maxi Lun 21 Jul 2014, 10:19 am

» Script de climas
por gambasoxd Sáb 19 Jul 2014, 8:58 am

» Script de contraseña(codigo) para abrir un cofre
por rpgame Jue 03 Jul 2014, 6:03 pm

¿Quién está en línea?
En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Ninguno

[ Ver toda la lista ]


El record de usuarios en línea fue de 117 durante el Mar 09 Ago 2011, 3:39 pm

KGC Categorize item + guia de uso

Ir abajo

KGC Categorize item + guia de uso Empty KGC Categorize item + guia de uso

Mensaje por Arquebuss Sáb 19 Mayo 2012, 1:41 am

Buenos Dias,tardes o noches, compañeros de la comunidad.

Viendo en los discos de respaldo de mi computadora, me encontre con este Script, y por lo visto de que no encontre en el foro mucho Scripts de KGC lo publico, para aquellos que aun trabaan con el RPG mker VX (lamentablemente no funciona en ACE)

Código:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/    ◆            Item Categorization - KGC_CategorizeItem            ◆ VX ◆
#_/    ◇                  Last update : 2008/04/10                            ◇
#_/    ◇                Translated by Mr. Anonymous                          ◇
#_/-----------------------------------------------------------------------------
#_/  Adds a function to the Items screen which allows the player to display
#_/  items by catagory.
#_/  To assign a category to an item, you must add  to the
#_/  notes on the specified item.
#_/  EX. A Potion would be listed as  and a Sword would be
#_/  listed as , provided you use the default terminology.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_

$data_system = load_data("Data/System.rvdata") if $data_system == nil

#==============================================================================#
#                            ★ Customization ★                                #       
#==============================================================================#

module KGC
module CategorizeItem
  #                  ◆ Automatically Catagorize Items ◆
  ENABLE_AUTO_CATEGORIZE = true
 
  #                  ◆ Duplicate Category Entries. ◆
  #  Set to false, items can have multiple categories.
  #  Set to true, items will be classified under the last tag (In the item
  #  database "Notes")
  NOT_ALLOW_DUPLICATE = true

  #                      ◆ Category Identifier ◆
  #  Arrange names in order to identify a category with the category identifier.
  #  These are the default item catagories translated for future reference.
  #  "Goods", "Combat", "Weapons", "Shields", "Helmets", "Armor",
  #  "Accessories", "Valuables", "Special Items", "All Items"
  CATEGORY_IDENTIFIER = [
    "Goods",          # Consumable items (potion)
    "Combat",        # Battle-only items (fire bomb)
    "Weapons",        # Weapons
    "Shields",        # Shields
    "Helmets",        # Head Gear / Helmets
    "Armor",          # Body Gear / Armor
    "Accessories",    # Accessories / Rings, Necklaces, etc
    "Valuables",      # Treasures and the like
    "Special Items",  # AKA Plot Devices. Special keys, etc.
    "All Items",      # All Items
  ]
 
  #                  ◆ Default Catagory Display ◆
  #  Not hard to figure this one out.
  ITEM_DEFAULT_CATEGORY = "Goods"

  #                  ◆ Item Screen Category Name ◆
  #  Shows what current category is selected in the item description window.
  #  Must be arranged in the same order as CATAGORY_IDENTIFIER.
  CATEGORY_NAME = [
    "Pociones",
    "Combate",
    Vocab.weapon,                # Weapons
    Vocab.armor1,                # Shields
    "#{Vocab.armor2}",          # Head Gear
    "#{Vocab.armor3}",          # Body Gear
    Vocab.armor4,                # Accessories
    "Tesoros",
    "Importantesl",
    "Todos",
  ]

  #                      ◆ Descriptive Text ◆
  #  Must be arranged in the same order as CATAGORY_IDENTIFIER
  CATEGORY_DESCRIPTION = [
    #"Viewing #{Vocab.item}.",
    "Ver Pociones Disponibles",
    #"Viewing Combat #{Vocab.item}. For use during battle.",
    "Ver Objetos de Combate(Utilizables solo en Batalla)",
    #"Viewing #{Vocab.weapon}s.",
    "Ver Armas Disponibles",
    #"Viewing #{Vocab.armor1}s.",
    "Ver Escudos Disponibles.",
    #"Viewing #{Vocab.armor2}s.",
    "Ver Cascos y Yelmos Disponibles.",
    #"Viewing #{Vocab.armor3}s.",
    "Ver Armaduras Disponibles.",
    #"Viewing #{Vocab.armor4}.",
    "Ver Accesorios Disponibles",
    #"Viewing Valuables.",
    "Ver Tesoros (Objetos Raros y/o Coleccionables)",
    #"Viewing Special #{Vocab.item}. A.K.A. Plot Devices.",
    "Ver Objetos importantes (Llaves entre otros).",
    #"Viewing All #{Vocab.item}.",
    "Ver todos los objetos Disponibles.",
  ]

  # ◆ Coordinates of item description window. [ x, y ]
  CATEGORY_WINDOW_POSITION  = [1, 48]
  # ◆ Number of rows in the item description window.
  CATEGORY_WINDOW_COLUMNS  = 10
  # ◆ Item description window column line width.
  CATEGORY_WINDOW_COL_WIDTH = 50
  # ◆ item description window column spacer width.
  CATEGORY_WINDOW_COL_SPACE = 1
end
end

#------------------------------------------------------------------------------#

$imported = {} if $imported == nil
$imported["CategorizeItem"] = true

module KGC::CategorizeItem
  #                        ◆ Item Index ◆
  ITEM_DEFAULT_CATEGORY_INDEX = CATEGORY_IDENTIFIER.index(ITEM_DEFAULT_CATEGORY)

  #                    ◆ Reserved Category Index ◆
  #  To be honest I'm not entirely sure what this affects.
  RESERVED_CATEGORY_INDEX = {
    "All Items"    => CATEGORY_IDENTIFIER.index("All Items"),
    "Valuables"  => CATEGORY_IDENTIFIER.index("Valuables"),
    "Weapons"    => CATEGORY_IDENTIFIER.index("Weapons"),
    "Gear"    => CATEGORY_IDENTIFIER.index("Gear"),
    "Shields"      => CATEGORY_IDENTIFIER.index("Shields"),
    "Helmets"  => CATEGORY_IDENTIFIER.index("Helmets"),
    "Armor" => CATEGORY_IDENTIFIER.index("Armor"),
    "Accessories"  => CATEGORY_IDENTIFIER.index("Accessories")
  }
 
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
#  Unless you know what you're doing, it's best not to alter anything beyond  #
#  this point, as this only affects the tags used for "Notes" in database.    #
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
#  Whatever word(s) are after the separator ( | ) in the following lines are
#  what are used to determine what is searched for in the "Notes" section.

  # Regular Expression Definition
  module Regexp
    # Base Item Module
    module BaseItem
      # Category tag string
      CATEGORY = /^<(?:CATEGORY|classification|category?)[ ]*(.*)>/i
    end
  end
end

#==============================================================================
# ■ RPG::BaseItem
#==============================================================================

class RPG::BaseItem
  #--------------------------------------------------------------------------
  # ○ アイテム分類のキャッシュ生成
  #--------------------------------------------------------------------------
  def create_categorize_item_cache
    if @__item_category == nil || !KGC::CategorizeItem::ENABLE_AUTO_CATEGORIZE
      @__item_category = []
    else
      @__item_category.compact!
    end

    self.note.split(/[\r\n]+/).each { |line|
      if line =~ KGC::CategorizeItem::Regexp::BaseItem::CATEGORY
        # カテゴリ
        c = KGC::CategorizeItem::CATEGORY_IDENTIFIER.index($1)
        @__item_category << c if c != nil
      end
    }
    if @__item_category.empty?
      @__item_category << KGC::CategorizeItem::ITEM_DEFAULT_CATEGORY_INDEX
    elsif KGC::CategorizeItem::NOT_ALLOW_DUPLICATE
      # 最後に指定したカテゴリに配置
      @__item_category = [@__item_category.pop]
    end
  end
  #--------------------------------------------------------------------------
  # ○ アイテムのカテゴリ
  #--------------------------------------------------------------------------
  def item_category
    create_categorize_item_cache if @__item_category == nil
    return @__item_category
  end
end

#==================================End Class===================================#

#==============================================================================
# ■ RPG::UsableItem
#==============================================================================

class RPG::UsableItem < RPG::BaseItem
  #--------------------------------------------------------------------------
  # ○ アイテム分類のキャッシュ生成
  #--------------------------------------------------------------------------
  def create_categorize_item_cache
    @__item_category = []
    if self.price == 0
      @__item_category << KGC::CategorizeItem::RESERVED_CATEGORY_INDEX["Valuables"]
    end
    super
  end
end

#==================================End Class===================================#

#==============================================================================
# ■ RPG::Weapon
#==============================================================================

class RPG::Weapon < RPG::BaseItem
  #--------------------------------------------------------------------------
  # ○ アイテム分類のキャッシュ生成
  #--------------------------------------------------------------------------
  def create_categorize_item_cache
    @__item_category = []
    @__item_category << KGC::CategorizeItem::RESERVED_CATEGORY_INDEX["Weapon"]
    super
  end
end

#==================================End Class===================================#

#==============================================================================
# ■ RPG::Armor
#==============================================================================

class RPG::Armor < RPG::BaseItem
  #--------------------------------------------------------------------------
  # ○ アイテム分類のキャッシュ生成
  #--------------------------------------------------------------------------
  def create_categorize_item_cache
    @__item_category = []
    @__item_category << KGC::CategorizeItem::RESERVED_CATEGORY_INDEX["Armor"]
    type = nil
    case self.kind
    when 0
      type = "Shields"
    when 1
      type = "Head Gear"
    when 2
      type = "Body Gear"
    when 3
      type = "Accessories"
    end
    if type != nil
      @__item_category << KGC::CategorizeItem::RESERVED_CATEGORY_INDEX[type]
    end
    super
  end
end

#==================================End Class===================================#

#==============================================================================
# ■ Window_Item
#==============================================================================

class Window_Item < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_reader  :category                # カテゴリ
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #    x      : ウィンドウの X 座標
  #    y      : ウィンドウの Y 座標
  #    width  : ウィンドウの幅
  #    height : ウィンドウの高さ
  #--------------------------------------------------------------------------
  alias initialize_KGC_CategorizeItem initialize
  def initialize(x, y, width, height)
    @category = 0

    initialize_KGC_CategorizeItem(x, y, width, height)
  end
  #--------------------------------------------------------------------------
  # ○ カテゴリ設定
  #--------------------------------------------------------------------------
  def category=(value)
    @category = value
    refresh
  end
  #--------------------------------------------------------------------------
  # ● アイテムをリストに含めるかどうか
  #    item : アイテム
  #--------------------------------------------------------------------------
  alias include_KGC_CategorizeItem? include?
  def include?(item)
    return false if item == nil

    # 「全種」なら無条件で含める
    if @category == KGC::CategorizeItem::RESERVED_CATEGORY_INDEX["All Items"]
      return true
    end

    result = include_KGC_CategorizeItem?(item)

    unless result
      # 使用可能なら追加候補とする
      if $imported["UsableEquipment"] && $game_party.item_can_use?(item)
        result = true
      end
    end
    # 戦闘外ならカテゴリ一致判定
    unless $game_temp.in_battle
      result &= (item.item_category.include?(@category))
    end

    return result
  end
end

#==================================End Class===================================#

#==============================================================================
# □ Window_ItemCategory
#------------------------------------------------------------------------------
#  アイテム画面でカテゴリ選択を行うウィンドウです。
#==============================================================================

class Window_ItemCategory < Window_Command
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    cols = KGC::CategorizeItem::CATEGORY_WINDOW_COLUMNS
    width = KGC::CategorizeItem::CATEGORY_WINDOW_COL_WIDTH * cols + 32
    width += (cols - 1) * KGC::CategorizeItem::CATEGORY_WINDOW_COL_SPACE
    commands = KGC::CategorizeItem::CATEGORY_NAME
    super(width, commands, cols, 0,
      KGC::CategorizeItem::CATEGORY_WINDOW_COL_SPACE)
    self.x = KGC::CategorizeItem::CATEGORY_WINDOW_POSITION[0]
    self.y = KGC::CategorizeItem::CATEGORY_WINDOW_POSITION[1]
    self.z = 1000
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # ● ヘルプテキスト更新
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(KGC::CategorizeItem::CATEGORY_DESCRIPTION[self.index])
  end
end

#==================================End Class===================================#

#==============================================================================
# ■ Scene_Item
#==============================================================================

class Scene_Item < Scene_Base
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  alias start_KGC_CategorizeItem start
  def start
    start_KGC_CategorizeItem

    @category_window = Window_ItemCategory.new
    @category_window.help_window = @help_window
    show_category_window
  end
  #--------------------------------------------------------------------------
  # ● 終了処理
  #--------------------------------------------------------------------------
  alias terminate_KGC_CategorizeItem terminate
  def terminate
    terminate_KGC_CategorizeItem

    @category_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias update_KGC_CategorizeItem update
  def update
    @category_window.update

    update_KGC_CategorizeItem

    if @category_window.active
      update_category_selection
    end
  end
  #--------------------------------------------------------------------------
  # ○ カテゴリ選択の更新
  #--------------------------------------------------------------------------
  def update_category_selection
    unless @category_activated
      @category_activated = true
      return
    end

    # 選択カテゴリー変更
    if @last_category_index != @category_window.index
      @item_window.category = @category_window.index
      @item_window.refresh
      @last_category_index = @category_window.index
    end

    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      Sound.play_decision
      hide_category_window
    end
  end
  #--------------------------------------------------------------------------
  # ● アイテム選択の更新
  #--------------------------------------------------------------------------
  alias update_item_selection_KGC_CategorizeItem update_item_selection
  def update_item_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      show_category_window
      return
    end

    update_item_selection_KGC_CategorizeItem
  end
  #--------------------------------------------------------------------------
  # ○ カテゴリウィンドウの表示
  #--------------------------------------------------------------------------
  def show_category_window
    @category_window.open
    @category_window.active = true
    @item_window.active = false
  end
  #--------------------------------------------------------------------------
  # ○ カテゴリウィンドウの非表示
  #--------------------------------------------------------------------------
  def hide_category_window
    @category_activated = false
    @category_window.close
    @category_window.active = false
    @item_window.active = true
    # アイテムウィンドウのインデックスを調整
    if @item_window.index >= @item_window.item_max
      @item_window.index = [@item_window.item_max - 1, 0].max
    end
  end
end

#==================================End Class===================================#

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/  The original untranslated version of this script can be found here:
# http://f44.aaa.livedoor.jp/~ytomy/tkool/rpgtech/php/tech.php?tool=VX&cat=tech_vx/item&tech=categorize_item
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
El Script va antes del main y esta puesto en español, asi que no sufriran por cambiarle nombres.
Les dejo una imagen ilustrativa para que vean como ven los comentarios en la base de daos, para el buen funcionamiento del Script.

[Tienes que estar registrado y conectado para ver esa imagen]
[Tienes que estar registrado y conectado para ver este vínculo]

NOTA:Tengo problemas para meter la imagen, asi que les dejo el link por cualquier cosa

[Tienes que estar registrado y conectado para ver esa imagen]


Última edición por Arquebuss el Sáb 19 Mayo 2012, 1:44 am, editado 2 veces (Razón : Problemas en la insercion de imagen)
Arquebuss
Arquebuss
130
130

Masculino

Edad 30

Cantidad de envíos 151

Maker Cash 222

Reputación 39


Extras
Sobre mí::

Volver arriba Ir abajo

Volver arriba

- Temas similares

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