Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte no desenvolvimento de jogos


    Classificar Inventario

    avatar
    samuel6406
    Banido
    Banido

    Mensagens : 49
    Créditos : 11

     Classificar Inventario Empty Classificar Inventario

    Mensagem por samuel6406 Qui Jun 14, 2012 6:16 pm

    [Classificar Inventario]


    Não sei se já tem aqui nal aldeia mais eu acho que nao tem então decidi postar (:
    Introdução

    Script que organizaa o inventario.

    Características

    Classifica o Inventario em até 15 classes

    Screenshots
     Classificar Inventario Classinv

    Como usar

    Cole acima do main

    Instruções para configurar no começo do script.

    Demo

    Não necessita.

    Script
    Código:
    #===============================================================================
    # Organizar Inventário
    # por XRXS
    #===============================================================================
    # Este script permite que você organize o inventário, separando os
    # itens por categorias.
    # Para criar seu próprio estilo de organização você deve ir até o
    # modulo XRXS_MP2_Fixed_Variable.
    # Você define o nome de cada categoria em "KIND_NAMES",
    # e em "KIND_KINDS" você define o tipo de item que cada categoria mostra.
    #===============================================================================

    #==============================================================================
    # XRXS_MP2_Fixed_Variable
    #==============================================================================
    module XRXS_MP2_Fixed_Variable
      #Definição dos nomes dos comandos de menu.
      KIND_NAMES = ["Itens", "Armas", "Escudos ", "Elmos","Armaduras", "Acessórios"]
      # Tipos de itens exibidos em cada função
      KIND_KINDS = [0, 1, 3, 4, 5, 6]
      #nil = todos os itens (inv
      #0 = Itens
      #1 = Armas
      #2 = Equipamentos de Defesa de todos os tipos
      #3 = Escudos
      #4 = Elmos
      #5 = Armaduras
      #6 = Acessórios
      #7 = Itens que não afetam nenhum alvo
      #8 = Itens que só podem ser usados em batalha
      #9 = Itens que só podem ser usados no menu
      #10= Itens que não podem ser usados
      #11= Itens que ao ser usados chamam eventos comuns
      #12= Itens de preço zero
      #13= Itens de aumento de atributo
      #14= Itens de cura
      #15= Itens com elemento
     
      # IMPORTANTE:
      # A ordem que você define em "KIND_KINDS" deve ser a mesma ordem
      # do tipo do item que vc definiu em "KIND_NAMES"
      # então se o 3º tipo você definiu como "Acessórios" por exemplo.
      # o 3º Valor em "KIND_KINDS" deve ser 6.
     
    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] + " - Selecione o item desejado.")
      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


    Créditos e Agradecimentos
    Feito por XRXS

      Data/hora atual: Seg Out 25, 2021 12:49 pm