Sistema de banco compatível com NP4.0

    Compartilhe

    Daniel Carvalho
    Ocasional
    Ocasional

    Mensagens : 203
    Créditos : 19

    Sistema de banco compatível com NP4.0

    Mensagem por Daniel Carvalho em Qui Set 20, 2012 5:51 pm


    Estou precisando de um sistema de banco, para o netplay master v4
    eu já peguei vários sistemas de banco, testei todos da aldeia rpg, da MRM etc..
    mais todos tem 1 defeito, uma falha e talz..

    intão se alguém tiver, um que pelo menos guarde só items, ou items e ouros, vai me ajudar muito (:




    _________________
    Se vocês riem de mim por eu ser diferente, eu rio de vocês por serem todos iguais.
    Bob Marley

    Samuka_Maker
    Aldeia Friend
    Aldeia Friend

    Medalhas :
    Mensagens : 1204
    Créditos : 122

    Re: Sistema de banco compatível com NP4.0

    Mensagem por Samuka_Maker em Qui Set 20, 2012 5:57 pm

    sim cara eu fiz um
    Código:
    #Script De Deposito
    #Com este script você poderar depositar e retirar itens
    #usando um evento
    #E só criar um evento e colocar a opção chamar script
    ##$scene = Scene_Depository.new#
    #Creditos:Autor: KGC
    #Editor: Samuka_Maker
    #Msn: smkpsb@hotmail.com
    ################################################################
    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

    #_/  ?Espace de Stockage - KGC_Depository ? Translated by Ojiro -

    #_/----------------------------------------------------------------------------

    #_/ Espace de stockage pour objets et monaie.

    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

     

     

    class Window_DepositoryCommand < Window_Selectable

      # ?Nom des commandes de l'espace de stockage

      DEPOSITORY_COMMAND = [

        "Depositar itens",  # Guardar  itens

        "Sacar itens"  # Retirar itens

      ]

      # ?Définitions des commandes

      DEPOSITORY_HELP = [


        "Guardar um objeto",          # Guardar um objeto

        "retirar um objeto"  # Retirar um objeto

      ]

    end

     


    class Scene_Depository


      DEPOSIT_ITEM = "Depositar?"

      WDEPOSIT_ITEM = "Retirar?"

    end

     

    #???????????????????????????????????????

     

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

    # ? Appel de l'espace de stockage

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

    def call_depository

      $game_player.straighten

      # Affiche l'espace de stockage

      $scene = Scene_Depository.new

    end

     

    #???????????????????????????????????????

     

    #==============================================================================

    # ¦ Game_Party

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

    #  Récupère les informations sur la monnaie et les objets possédés dans

    # $game_party

    #==============================================================================

     

    class Game_Party

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

      # ? Initialisation

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

      alias initialize_KGC_Depository initialize

      def initialize

        # Exécute le processus d'origine

        initialize_KGC_Depository

     


        @deposit_item = []

        @deposit_weapon = []

        @deposit_armor = []

      end


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

      # ? Récupère l'information sur les objets

      #    id : ID

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

      def deposit_item_number(id)

        @deposit_item = [] if @deposit_item == nil

        return @deposit_item[id] != nil ? @deposit_item[id] : 0

      end

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

      # ? Acquisition de l'objet

      #    id    : ID

      #    number : Quantidade
      #--------------------------------------------------------------------------

      def gain_deposit_item(id, number)

        @deposit_item = [] if @deposit_item == nil

        @deposit_item[id] = 0 if @deposit_item[id] == nil

        @deposit_item[id] += number

      end

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

      # ? Depositar objeto?

      #    id    : ID

      #    number : Quantidade
      #--------------------------------------------------------------------------

      def lose_deposit_item(id, number)

        self.gain_deposit_item(id, -number)

      end

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

      # ? Récupère l'information sur les armes

      #    id : ID

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

      def deposit_weapon_number(id)

        @deposit_weapon = [] if @deposit_weapon == nil

        return @deposit_weapon[id] != nil ? @deposit_weapon[id] : 0

      end

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

      # ? Acquisition de l'arme

      #    id    : ID

      #    number : Quantidade
      #--------------------------------------------------------------------------

      def gain_deposit_weapon(id, number)

        @deposit_weapon = [] if @deposit_weapon == nil

        @deposit_weapon[id] = 0 if @deposit_weapon[id] == nil

        @deposit_weapon[id] += number

      end

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

      # ? Depositar arma?

      #    id    : ID

      #    number : Quantidade

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

      def lose_deposit_weapon(id, number)

        self.gain_deposit_weapon(id, -number)

      end

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

      # ? Récupère l'information sur les armures

      #    id : ID

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

      def deposit_armor_number(id)

        @deposit_armor = [] if @deposit_armor == nil

        return @deposit_armor[id] != nil ? @deposit_armor[id] : 0

      end

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

      # ? Acquisition de l'armure

      #    id    : ID

      #    number : Quantidade

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

      def gain_deposit_armor(id, number)

        @deposit_armor = [] if @deposit_armor == nil

        @deposit_armor[id] = 0 if @deposit_armor[id] == nil

        @deposit_armor[id] += number

      end

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

      # ? Dépôt de l'armure

      #    id    : ID

      #    number : Quantidade

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

      def lose_deposit_armor(id, number)

        self.gain_deposit_armor(id, -number)

      end

    end

     

    #???????????????????????????????????????

     

    #==============================================================================

    # ¦ Window_DepositoryCommand

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

    #  Ecran de sélection d'une commande de l'espace de stockage

    #==============================================================================

     

    class Window_DepositoryCommand < Window_Selectable

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

      # ? Initialisation

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

      def initialize

        super(0, 64, 640, 64)

        self.contents = Bitmap.new(width - 32, height - 32)

        # ?????????

        @commands = DEPOSITORY_COMMAND

        @item_max = @commands.size

        @column_max = @commands.size

        @item_width = (width - 32) / @commands.size

        self.back_opacity = 160

        self.index = 0

        refresh

      end

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

      # ? Actualisation

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

      def refresh

        for i in 0...@commands.size

          rect = Rect.new(@item_width * i, 0, @item_width, 32)

          self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))

          self.contents.font.color = system_color

          self.contents.draw_text(rect, @commands[i], 1)

        end

      end

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

      # ? Curseur

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

      def update_cursor_rect

        if index != -1

          self.cursor_rect.set(@item_width * index, 0, @item_width, 32)

        end

      end

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

      # ? Actualisation de la fenêtre d'aide

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

      def update_help

        @help_window.set_text(DEPOSITORY_HELP[self.index])

      end

    end

    #==============================================================================

    # ¦ Window_DepositoryItem

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

    #  Conception d'un sommaire pour les objets

    #==============================================================================

     

    class Window_DepositoryItem < Window_Selectable

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

      # ? Initialisation

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

      def initialize

        super(0, 128, 640, 352)

        self.back_opacity = 160

        self.active = false

        self.visible = false

        @column_max = 2

        self.index = 0

      end

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

      # ? Récupère l'information sur les objets

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

      def item

        return @data[self.index]

      end

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

      # ? Actualisation

      #    type : Type

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

      def refresh(type)

        if self.contents != nil

          self.contents.dispose

          self.contents = nil

        end

        @data = []

        self.index = 0

        # Ajoute l'objet / arme / armure x

        if type == 0

          for i in 1...$data_items.size

            if $game_party.item_number(i) > 0

              @data.push($data_items[i])

            end

          end

          for i in 1...$data_weapons.size

            if $game_party.weapon_number(i) > 0

              @data.push($data_weapons[i])

            end

          end

          for i in 1...$data_armors.size

            if $game_party.armor_number(i) > 0

              @data.push($data_armors[i])

            end

          end

        else

          for i in 1...$data_items.size

            if $game_party.deposit_item_number(i) > 0

              @data.push($data_items[i])

            end

          end

          for i in 1...$data_weapons.size

            if $game_party.deposit_weapon_number(i) > 0

              @data.push($data_weapons[i])

            end

          end

          for i in 1...$data_armors.size

            if $game_party.deposit_armor_number(i) > 0

              @data.push($data_armors[i])

            end

          end

     

        end

        # Si le nombre d'objet n'est pas de 0 :

        @item_max = @data.size

        if @item_max > 0

          self.contents = Bitmap.new(width - 32, row_max * 32)

          for i in 0...@item_max

            draw_item(i, type)

          end

        end

      end

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

      # ? Affichage de l'objet

      #    index : Nombre d'objets

      #    type  : Type

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

      def draw_item(index, type)

        item = @data[index]

        case item

        when RPG::Item

          number = type == 0 ? $game_party.item_number(item.id) :

            $game_party.deposit_item_number(item.id)

        when RPG::Weapon

          number = type == 0 ? $game_party.weapon_number(item.id) :

            $game_party.deposit_weapon_number(item.id)

        when RPG::Armor

          number = type == 0 ? $game_party.armor_number(item.id) :

            $game_party.deposit_armor_number(item.id)

        end

        x = 4 + index % 2 * (288 + 32)

        y = index / 2 * 32

        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)

        self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))

        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

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

      # ? Actualisation de la fenêtre d'aide

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

      def update_help

        @help_window.set_text(self.item == nil ? "" : self.item.description)

      end

    end

     

    #???????????????????????????????????????

     

    #==============================================================================

    # ¦ Window_DepositoryNumber

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

    #  Fenêtre de l'insertion numérique

    #==============================================================================

     

    class Window_DepositoryNumber < Window_Base

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

      # ? Initialisation

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

      def initialize

        @digits_max = 2

        @number = 0

        # Calcul de la largeur du curseur en fonction du nombre de chiffres

        dummy_bitmap = Bitmap.new(32, 32)

        @cursor_width = dummy_bitmap.text_size("0").width + 8

        dummy_bitmap.dispose

        @default_size = @cursor_width * @digits_max + 32

        super(0, 0, @default_size, 128)

        self.contents = Bitmap.new(width - 32, height - 32)

        self.z = 1000

        self.back_opacity = 160

        self.active = false

        self.visible = false

        @index = 0

        @item = nil

        refresh

        update_cursor_rect

      end

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

      # ? Option de l'objet

      #    item : Objet

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

      def item=(item)

        @item = item

      end

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

      # ? Acquisition de la valeur numérique

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

      def number

        return @number

      end

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

      # ? Option de la valeur numérique

      #    number : Nouvelle valeur numérique

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

      def number=(number)

        @number = [[number, 0].max, @max].min

        refresh

      end

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

      # ? Actualisation du curseur

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

      def update_cursor_rect

        self.cursor_rect.set(@index * @cursor_width, 32, @cursor_width, 32)

      end

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

      # ? Reinitilisation

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

      def reset(type)

        @number = 0

        @index = @digits_max - 1

        if type == 0

          case @item

          when RPG::Item

            @max = $game_party.item_number(@item.id)

            dep = $game_party.deposit_item_number(@item.id)

          when RPG::Weapon

            @max = $game_party.weapon_number(@item.id)

            dep = $game_party.deposit_weapon_number(@item.id)

          when RPG::Armor

            @max = $game_party.armor_number(@item.id)

            dep = $game_party.deposit_armor_number(@item.id)

          end

          # Affiche la quantité déposé

          self.contents.fill_rect(0, 64, width - 32, 32, Color.new(0, 0, 0, 0))

          self.contents.font.color = system_color

          self.contents.draw_text(0, 64, width - 32, 32, "Banco:#{dep}")

        else

          case @item

          when RPG::Item

            @max = [$game_party.deposit_item_number(@item.id),

              10 ** @digits_max - $game_party.item_number(@item.id) - 1].min

            having = $game_party.item_number(@item.id)

          when RPG::Weapon

            @max = [$game_party.deposit_weapon_number(@item.id),

              10 ** @digits_max - $game_party.weapon_number(@item.id) - 1].min

            having = $game_party.weapon_number(@item.id)

          when RPG::Armor

            @max = [$game_party.deposit_armor_number(@item.id),

              10 ** @digits_max - $game_party.armor_number(@item.id) - 1].min

            having = $game_party.armor_number(@item.id)

          end

          # Affiche la quantité possedé

          self.contents.fill_rect(0, 64, width - 32, 32, Color.new(0, 0, 0, 0))

          self.contents.font.color = system_color

          self.contents.draw_text(0, 64, width - 32, 32, "Bag:#{having}")

        end

        refresh

      end

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

      # ? Actualisation

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

      def refresh

        self.contents.fill_rect(0, 32, width - 32, 32, Color.new(0, 0, 0, 0))

        self.contents.font.color = normal_color

        s = sprintf("%0*d", @digits_max, @number)

        for i in 0...@digits_max

          self.contents.draw_text(i * @cursor_width + 4, 32, 32, 32, s[i,1])

        end

      end

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

      # ? Option du personnage

      #    string : Met en place les options

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

      def set_text(string = " ")

        self.resize(self.contents.text_size(string).width + 40)

        self.contents.fill_rect(0, 0, width - 32, 32, Color.new(0, 0, 0, 0))

        self.contents.font.color = normal_color

        self.contents.draw_text(0, 0, width - 32, 32, string, 1)

        refresh

        centering

      end

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

      # ? Modification de la taille

      #    nw : Nouvelle largeur

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

      def resize(nw)

        self.width = nw

        buf = self.contents.dup

        self.contents.dispose

        self.contents = Bitmap.new(nw - 32, 96)

        self.contents.blt(0, 0, buf, buf.rect)

        buf.dispose

      end

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

      # ? Mouvement central

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

      def centering

        self.x = 320 - self.width / 2

        self.y = 240 - self.height / 2

      end

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

      # ? Actualisation

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

      def update

        super

        return unless self.active

        # Lors d'un appui HAUT ou BAS

        if Input.repeat?(Input::UP) || Input.repeat?(Input::DOWN)

          $game_system.se_play($data_system.cursor_se)

          place = 10 ** (@digits_max - 1 - @index)

          n = self.number / place % 10

          self.number -= n * place

          n = (n + 1) % 10 if Input.repeat?(Input::UP)

          n = (n + 9) % 10 if Input.repeat?(Input::DOWN)

          self.number += n * place

          refresh

        end

        if Input.repeat?(Input::RIGHT)

          if @digits_max >= 2

            $game_system.se_play($data_system.cursor_se)

            @index = (@index + 1) % @digits_max

          end

        end

        if Input.repeat?(Input::LEFT)

          if @digits_max >= 2

            $game_system.se_play($data_system.cursor_se)

            @index = (@index + @digits_max - 1) % @digits_max

          end

        end

        update_cursor_rect

      end

    end

     
    #???????????????????????????????????????

     

    #==============================================================================

    # ¦ Scene_Depository

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

    #  "Class" qui proccède à l'espace de stockage

    #==============================================================================

     

    class Scene_Depository

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

      # ? ?????

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

      def main

        # Compilation des sprites

        @spriteset = Spriteset_Map.new

        # Affiche des fenêtres multiples

        @dummy_window = Window_Base.new(0, 128, 640, 352)

        @help_window = Window_Help.new

        @dummy_window.back_opacity = 160

        @help_window.back_opacity = 160

        @command_window = Window_DepositoryCommand.new

        @item_window = Window_DepositoryItem.new

        @number_window = Window_DepositoryNumber.new

        # Association de la fenêtre d'affichage

        @command_window.help_window = @help_window

        @item_window.help_window = @help_window

        # Exécute la transition

        Graphics.transition

        # Boucle Principale

        loop do

          # Actualise les images

          Graphics.update

          # Actualise l'information d'insertion

          Input.update

          # Actualisation

          update

          # Brise la boucle si les images changent

          if $scene != self

            break

          end

        end

        # Préparation de la Transition

        Graphics.freeze

        # Relais

        @spriteset.dispose

        @dummy_window.dispose

        @help_window.dispose

        @command_window.dispose

        @item_window.dispose

        @number_window.dispose

      end

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

      # ? Actualisation

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

      def update

        # Actualisation des fenêtres

        @dummy_window.update

        @help_window.update

        @command_window.update

        @item_window.update

        @number_window.update

        if @command_window.active

          update_command

          return

        end


        if @item_window.active

          update_item

          return

        end

        if @number_window.active

          update_number

          return

        end

      end

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

      # ? Actualisation lorsque une fenêtre de commande est active

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

      def update_command

        # Lors d'un appui sur la touche B

        if Input.trigger?(Input::B)

          $game_system.se_play($data_system.cancel_se)

          $scene = Scene_Map.new

          return

        end

        # Lors d'un appui sur la touche C

        if Input.trigger?(Input::C)

          $game_system.se_play($data_system.decision_se)

          case @command_window.index

     
          when 0

            @item_window.active = true

            @item_window.visible = true

            @item_window.refresh(0)

          when 1

            @item_window.active = true

            @item_window.visible = true

            @item_window.refresh(1)

          end

          @command_window.active = false

          @dummy_window.visible = false

          return

        end

      end

      #--------------------------------------------------------------------------
     
      # ? Actualisation lors d'un appui pendant la fenetre d'objet

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

      def update_item

        # Lors d'un appui sur la touche B

        if Input.trigger?(Input::B)

          $game_system.se_play($data_system.cancel_se)

          @command_window.active = true

          @item_window.active = false

          @item_window.visible = false

          @dummy_window.visible = true

          return

        end

        # Lors d'un appui sur la touche C

        if Input.trigger?(Input::C)

          @item = @item_window.item

          if @item == nil

            $game_system.se_play($data_system.buzzer_se)

            return

          end

          @number_window.item = @item

          $game_system.se_play($data_system.decision_se)

          case @command_window.index

          when 0

            @number_window.set_text(DEPOSIT_ITEM)

          when 1

            @number_window.set_text(WDEPOSIT_ITEM)

          end

          @number_window.reset(@command_window.index)

          # ????????????

          @item_window.active = false

          @number_window.active = true

          @number_window.visible = true

          return

        end

      end

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

      # ? Actualisation lors d'un appui pendant la fenetre de nombres

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

      def update_number

        # Lors d'un appui sur la touche B

        if Input.trigger?(Input::B)

          $game_system.se_play($data_system.cancel_se)

          @item_window.active = true

          @number_window.active = false

          @number_window.visible = false

          return

        end

        # Lors d'un appui sur la touche C

        if Input.trigger?(Input::C)

          $game_system.se_play($data_system.decision_se)

          number = @number_window.number

          case @command_window.index

          when 0

            case @item

            when RPG::Item

              $game_party.lose_item(@item.id, number)

              $game_party.gain_deposit_item(@item.id, number)

            when RPG::Weapon

              $game_party.lose_weapon(@item.id, number)

              $game_party.gain_deposit_weapon(@item.id, number)

            when RPG::Armor

              $game_party.lose_armor(@item.id, number)

              $game_party.gain_deposit_armor(@item.id, number)

            end

          when 1

            case @item

            when RPG::Item

              $game_party.gain_item(@item.id, number)

              $game_party.lose_deposit_item(@item.id, number)

            when RPG::Weapon

              $game_party.gain_weapon(@item.id, number)

              $game_party.lose_deposit_weapon(@item.id, number)

            when RPG::Armor

              $game_party.gain_armor(@item.id, number)

              $game_party.lose_deposit_armor(@item.id, number)

            end

          end

          @item_window.refresh(@command_window.index)

          @item_window.active = true

          @number_window.active = false

          @number_window.visible = false

          return

        end

      end
    end
    ele funciona normalmentew em npv4 Very Happy


    _________________

    Life rpg maker, suporte para criacao de jgoos online eoffline, link do forum:(v2.0)
    http://liferpgmakerv2.forumais.com/




    Tópico original/Tópico de Recrutamento

    Paulo S.
    Lenda
    Lenda

    Mensagens : 1876
    Créditos : 331

    Re: Sistema de banco compatível com NP4.0

    Mensagem por Paulo S. em Qui Set 20, 2012 6:19 pm

    Não, você não fez esse sistema.


    _________________

    Daniel Carvalho
    Ocasional
    Ocasional

    Mensagens : 203
    Créditos : 19

    Re: Sistema de banco compatível com NP4.0

    Mensagem por Daniel Carvalho em Qui Set 20, 2012 8:47 pm

    Samuka_Maker escreveu:sim cara eu fiz um
    Código:
    #Script De Deposito
    #Com este script você poderar depositar e retirar itens
    #usando um evento
    #E só criar um evento e colocar a opção chamar script
    ##$scene = Scene_Depository.new#
    #Creditos:Autor: KGC
    #Editor: Samuka_Maker
    #Msn: smkpsb@hotmail.com
    ################################################################
    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

    #_/  ?Espace de Stockage - KGC_Depository ? Translated by Ojiro -

    #_/----------------------------------------------------------------------------

    #_/ Espace de stockage pour objets et monaie.

    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

     

     

    class Window_DepositoryCommand < Window_Selectable

      # ?Nom des commandes de l'espace de stockage

      DEPOSITORY_COMMAND = [

        "Depositar itens",  # Guardar  itens

        "Sacar itens"  # Retirar itens

      ]

      # ?Définitions des commandes

      DEPOSITORY_HELP = [


        "Guardar um objeto",          # Guardar um objeto

        "retirar um objeto"  # Retirar um objeto

      ]

    end

     


    class Scene_Depository


      DEPOSIT_ITEM = "Depositar?"

      WDEPOSIT_ITEM = "Retirar?"

    end

     

    #???????????????????????????????????????

     

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

    # ? Appel de l'espace de stockage

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

    def call_depository

      $game_player.straighten

      # Affiche l'espace de stockage

      $scene = Scene_Depository.new

    end

     

    #???????????????????????????????????????

     

    #==============================================================================

    # ¦ Game_Party

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

    #  Récupère les informations sur la monnaie et les objets possédés dans

    # $game_party

    #==============================================================================

     

    class Game_Party

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

      # ? Initialisation

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

      alias initialize_KGC_Depository initialize

      def initialize

        # Exécute le processus d'origine

        initialize_KGC_Depository

     


        @deposit_item = []

        @deposit_weapon = []

        @deposit_armor = []

      end


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

      # ? Récupère l'information sur les objets

      #    id : ID

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

      def deposit_item_number(id)

        @deposit_item = [] if @deposit_item == nil

        return @deposit_item[id] != nil ? @deposit_item[id] : 0

      end

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

      # ? Acquisition de l'objet

      #    id    : ID

      #    number : Quantidade
      #--------------------------------------------------------------------------

      def gain_deposit_item(id, number)

        @deposit_item = [] if @deposit_item == nil

        @deposit_item[id] = 0 if @deposit_item[id] == nil

        @deposit_item[id] += number

      end

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

      # ? Depositar objeto?

      #    id    : ID

      #    number : Quantidade
      #--------------------------------------------------------------------------

      def lose_deposit_item(id, number)

        self.gain_deposit_item(id, -number)

      end

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

      # ? Récupère l'information sur les armes

      #    id : ID

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

      def deposit_weapon_number(id)

        @deposit_weapon = [] if @deposit_weapon == nil

        return @deposit_weapon[id] != nil ? @deposit_weapon[id] : 0

      end

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

      # ? Acquisition de l'arme

      #    id    : ID

      #    number : Quantidade
      #--------------------------------------------------------------------------

      def gain_deposit_weapon(id, number)

        @deposit_weapon = [] if @deposit_weapon == nil

        @deposit_weapon[id] = 0 if @deposit_weapon[id] == nil

        @deposit_weapon[id] += number

      end

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

      # ? Depositar arma?

      #    id    : ID

      #    number : Quantidade

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

      def lose_deposit_weapon(id, number)

        self.gain_deposit_weapon(id, -number)

      end

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

      # ? Récupère l'information sur les armures

      #    id : ID

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

      def deposit_armor_number(id)

        @deposit_armor = [] if @deposit_armor == nil

        return @deposit_armor[id] != nil ? @deposit_armor[id] : 0

      end

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

      # ? Acquisition de l'armure

      #    id    : ID

      #    number : Quantidade

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

      def gain_deposit_armor(id, number)

        @deposit_armor = [] if @deposit_armor == nil

        @deposit_armor[id] = 0 if @deposit_armor[id] == nil

        @deposit_armor[id] += number

      end

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

      # ? Dépôt de l'armure

      #    id    : ID

      #    number : Quantidade

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

      def lose_deposit_armor(id, number)

        self.gain_deposit_armor(id, -number)

      end

    end

     

    #???????????????????????????????????????

     

    #==============================================================================

    # ¦ Window_DepositoryCommand

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

    #  Ecran de sélection d'une commande de l'espace de stockage

    #==============================================================================

     

    class Window_DepositoryCommand < Window_Selectable

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

      # ? Initialisation

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

      def initialize

        super(0, 64, 640, 64)

        self.contents = Bitmap.new(width - 32, height - 32)

        # ?????????

        @commands = DEPOSITORY_COMMAND

        @item_max = @commands.size

        @column_max = @commands.size

        @item_width = (width - 32) / @commands.size

        self.back_opacity = 160

        self.index = 0

        refresh

      end

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

      # ? Actualisation

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

      def refresh

        for i in 0...@commands.size

          rect = Rect.new(@item_width * i, 0, @item_width, 32)

          self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))

          self.contents.font.color = system_color

          self.contents.draw_text(rect, @commands[i], 1)

        end

      end

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

      # ? Curseur

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

      def update_cursor_rect

        if index != -1

          self.cursor_rect.set(@item_width * index, 0, @item_width, 32)

        end

      end

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

      # ? Actualisation de la fenêtre d'aide

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

      def update_help

        @help_window.set_text(DEPOSITORY_HELP[self.index])

      end

    end

    #==============================================================================

    # ¦ Window_DepositoryItem

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

    #  Conception d'un sommaire pour les objets

    #==============================================================================

     

    class Window_DepositoryItem < Window_Selectable

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

      # ? Initialisation

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

      def initialize

        super(0, 128, 640, 352)

        self.back_opacity = 160

        self.active = false

        self.visible = false

        @column_max = 2

        self.index = 0

      end

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

      # ? Récupère l'information sur les objets

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

      def item

        return @data[self.index]

      end

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

      # ? Actualisation

      #    type : Type

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

      def refresh(type)

        if self.contents != nil

          self.contents.dispose

          self.contents = nil

        end

        @data = []

        self.index = 0

        # Ajoute l'objet / arme / armure x

        if type == 0

          for i in 1...$data_items.size

            if $game_party.item_number(i) > 0

              @data.push($data_items[i])

            end

          end

          for i in 1...$data_weapons.size

            if $game_party.weapon_number(i) > 0

              @data.push($data_weapons[i])

            end

          end

          for i in 1...$data_armors.size

            if $game_party.armor_number(i) > 0

              @data.push($data_armors[i])

            end

          end

        else

          for i in 1...$data_items.size

            if $game_party.deposit_item_number(i) > 0

              @data.push($data_items[i])

            end

          end

          for i in 1...$data_weapons.size

            if $game_party.deposit_weapon_number(i) > 0

              @data.push($data_weapons[i])

            end

          end

          for i in 1...$data_armors.size

            if $game_party.deposit_armor_number(i) > 0

              @data.push($data_armors[i])

            end

          end

     

        end

        # Si le nombre d'objet n'est pas de 0 :

        @item_max = @data.size

        if @item_max > 0

          self.contents = Bitmap.new(width - 32, row_max * 32)

          for i in 0...@item_max

            draw_item(i, type)

          end

        end

      end

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

      # ? Affichage de l'objet

      #    index : Nombre d'objets

      #    type  : Type

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

      def draw_item(index, type)

        item = @data[index]

        case item

        when RPG::Item

          number = type == 0 ? $game_party.item_number(item.id) :

            $game_party.deposit_item_number(item.id)

        when RPG::Weapon

          number = type == 0 ? $game_party.weapon_number(item.id) :

            $game_party.deposit_weapon_number(item.id)

        when RPG::Armor

          number = type == 0 ? $game_party.armor_number(item.id) :

            $game_party.deposit_armor_number(item.id)

        end

        x = 4 + index % 2 * (288 + 32)

        y = index / 2 * 32

        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)

        self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))

        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

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

      # ? Actualisation de la fenêtre d'aide

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

      def update_help

        @help_window.set_text(self.item == nil ? "" : self.item.description)

      end

    end

     

    #???????????????????????????????????????

     

    #==============================================================================

    # ¦ Window_DepositoryNumber

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

    #  Fenêtre de l'insertion numérique

    #==============================================================================

     

    class Window_DepositoryNumber < Window_Base

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

      # ? Initialisation

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

      def initialize

        @digits_max = 2

        @number = 0

        # Calcul de la largeur du curseur en fonction du nombre de chiffres

        dummy_bitmap = Bitmap.new(32, 32)

        @cursor_width = dummy_bitmap.text_size("0").width + 8

        dummy_bitmap.dispose

        @default_size = @cursor_width * @digits_max + 32

        super(0, 0, @default_size, 128)

        self.contents = Bitmap.new(width - 32, height - 32)

        self.z = 1000

        self.back_opacity = 160

        self.active = false

        self.visible = false

        @index = 0

        @item = nil

        refresh

        update_cursor_rect

      end

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

      # ? Option de l'objet

      #    item : Objet

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

      def item=(item)

        @item = item

      end

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

      # ? Acquisition de la valeur numérique

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

      def number

        return @number

      end

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

      # ? Option de la valeur numérique

      #    number : Nouvelle valeur numérique

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

      def number=(number)

        @number = [[number, 0].max, @max].min

        refresh

      end

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

      # ? Actualisation du curseur

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

      def update_cursor_rect

        self.cursor_rect.set(@index * @cursor_width, 32, @cursor_width, 32)

      end

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

      # ? Reinitilisation

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

      def reset(type)

        @number = 0

        @index = @digits_max - 1

        if type == 0

          case @item

          when RPG::Item

            @max = $game_party.item_number(@item.id)

            dep = $game_party.deposit_item_number(@item.id)

          when RPG::Weapon

            @max = $game_party.weapon_number(@item.id)

            dep = $game_party.deposit_weapon_number(@item.id)

          when RPG::Armor

            @max = $game_party.armor_number(@item.id)

            dep = $game_party.deposit_armor_number(@item.id)

          end

          # Affiche la quantité déposé

          self.contents.fill_rect(0, 64, width - 32, 32, Color.new(0, 0, 0, 0))

          self.contents.font.color = system_color

          self.contents.draw_text(0, 64, width - 32, 32, "Banco:#{dep}")

        else

          case @item

          when RPG::Item

            @max = [$game_party.deposit_item_number(@item.id),

              10 ** @digits_max - $game_party.item_number(@item.id) - 1].min

            having = $game_party.item_number(@item.id)

          when RPG::Weapon

            @max = [$game_party.deposit_weapon_number(@item.id),

              10 ** @digits_max - $game_party.weapon_number(@item.id) - 1].min

            having = $game_party.weapon_number(@item.id)

          when RPG::Armor

            @max = [$game_party.deposit_armor_number(@item.id),

              10 ** @digits_max - $game_party.armor_number(@item.id) - 1].min

            having = $game_party.armor_number(@item.id)

          end

          # Affiche la quantité possedé

          self.contents.fill_rect(0, 64, width - 32, 32, Color.new(0, 0, 0, 0))

          self.contents.font.color = system_color

          self.contents.draw_text(0, 64, width - 32, 32, "Bag:#{having}")

        end

        refresh

      end

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

      # ? Actualisation

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

      def refresh

        self.contents.fill_rect(0, 32, width - 32, 32, Color.new(0, 0, 0, 0))

        self.contents.font.color = normal_color

        s = sprintf("%0*d", @digits_max, @number)

        for i in 0...@digits_max

          self.contents.draw_text(i * @cursor_width + 4, 32, 32, 32, s[i,1])

        end

      end

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

      # ? Option du personnage

      #    string : Met en place les options

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

      def set_text(string = " ")

        self.resize(self.contents.text_size(string).width + 40)

        self.contents.fill_rect(0, 0, width - 32, 32, Color.new(0, 0, 0, 0))

        self.contents.font.color = normal_color

        self.contents.draw_text(0, 0, width - 32, 32, string, 1)

        refresh

        centering

      end

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

      # ? Modification de la taille

      #    nw : Nouvelle largeur

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

      def resize(nw)

        self.width = nw

        buf = self.contents.dup

        self.contents.dispose

        self.contents = Bitmap.new(nw - 32, 96)

        self.contents.blt(0, 0, buf, buf.rect)

        buf.dispose

      end

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

      # ? Mouvement central

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

      def centering

        self.x = 320 - self.width / 2

        self.y = 240 - self.height / 2

      end

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

      # ? Actualisation

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

      def update

        super

        return unless self.active

        # Lors d'un appui HAUT ou BAS

        if Input.repeat?(Input::UP) || Input.repeat?(Input::DOWN)

          $game_system.se_play($data_system.cursor_se)

          place = 10 ** (@digits_max - 1 - @index)

          n = self.number / place % 10

          self.number -= n * place

          n = (n + 1) % 10 if Input.repeat?(Input::UP)

          n = (n + 9) % 10 if Input.repeat?(Input::DOWN)

          self.number += n * place

          refresh

        end

        if Input.repeat?(Input::RIGHT)

          if @digits_max >= 2

            $game_system.se_play($data_system.cursor_se)

            @index = (@index + 1) % @digits_max

          end

        end

        if Input.repeat?(Input::LEFT)

          if @digits_max >= 2

            $game_system.se_play($data_system.cursor_se)

            @index = (@index + @digits_max - 1) % @digits_max

          end

        end

        update_cursor_rect

      end

    end

     
    #???????????????????????????????????????

     

    #==============================================================================

    # ¦ Scene_Depository

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

    #  "Class" qui proccède à l'espace de stockage

    #==============================================================================

     

    class Scene_Depository

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

      # ? ?????

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

      def main

        # Compilation des sprites

        @spriteset = Spriteset_Map.new

        # Affiche des fenêtres multiples

        @dummy_window = Window_Base.new(0, 128, 640, 352)

        @help_window = Window_Help.new

        @dummy_window.back_opacity = 160

        @help_window.back_opacity = 160

        @command_window = Window_DepositoryCommand.new

        @item_window = Window_DepositoryItem.new

        @number_window = Window_DepositoryNumber.new

        # Association de la fenêtre d'affichage

        @command_window.help_window = @help_window

        @item_window.help_window = @help_window

        # Exécute la transition

        Graphics.transition

        # Boucle Principale

        loop do

          # Actualise les images

          Graphics.update

          # Actualise l'information d'insertion

          Input.update

          # Actualisation

          update

          # Brise la boucle si les images changent

          if $scene != self

            break

          end

        end

        # Préparation de la Transition

        Graphics.freeze

        # Relais

        @spriteset.dispose

        @dummy_window.dispose

        @help_window.dispose

        @command_window.dispose

        @item_window.dispose

        @number_window.dispose

      end

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

      # ? Actualisation

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

      def update

        # Actualisation des fenêtres

        @dummy_window.update

        @help_window.update

        @command_window.update

        @item_window.update

        @number_window.update

        if @command_window.active

          update_command

          return

        end


        if @item_window.active

          update_item

          return

        end

        if @number_window.active

          update_number

          return

        end

      end

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

      # ? Actualisation lorsque une fenêtre de commande est active

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

      def update_command

        # Lors d'un appui sur la touche B

        if Input.trigger?(Input::B)

          $game_system.se_play($data_system.cancel_se)

          $scene = Scene_Map.new

          return

        end

        # Lors d'un appui sur la touche C

        if Input.trigger?(Input::C)

          $game_system.se_play($data_system.decision_se)

          case @command_window.index

     
          when 0

            @item_window.active = true

            @item_window.visible = true

            @item_window.refresh(0)

          when 1

            @item_window.active = true

            @item_window.visible = true

            @item_window.refresh(1)

          end

          @command_window.active = false

          @dummy_window.visible = false

          return

        end

      end

      #--------------------------------------------------------------------------
     
      # ? Actualisation lors d'un appui pendant la fenetre d'objet

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

      def update_item

        # Lors d'un appui sur la touche B

        if Input.trigger?(Input::B)

          $game_system.se_play($data_system.cancel_se)

          @command_window.active = true

          @item_window.active = false

          @item_window.visible = false

          @dummy_window.visible = true

          return

        end

        # Lors d'un appui sur la touche C

        if Input.trigger?(Input::C)

          @item = @item_window.item

          if @item == nil

            $game_system.se_play($data_system.buzzer_se)

            return

          end

          @number_window.item = @item

          $game_system.se_play($data_system.decision_se)

          case @command_window.index

          when 0

            @number_window.set_text(DEPOSIT_ITEM)

          when 1

            @number_window.set_text(WDEPOSIT_ITEM)

          end

          @number_window.reset(@command_window.index)

          # ????????????

          @item_window.active = false

          @number_window.active = true

          @number_window.visible = true

          return

        end

      end

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

      # ? Actualisation lors d'un appui pendant la fenetre de nombres

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

      def update_number

        # Lors d'un appui sur la touche B

        if Input.trigger?(Input::B)

          $game_system.se_play($data_system.cancel_se)

          @item_window.active = true

          @number_window.active = false

          @number_window.visible = false

          return

        end

        # Lors d'un appui sur la touche C

        if Input.trigger?(Input::C)

          $game_system.se_play($data_system.decision_se)

          number = @number_window.number

          case @command_window.index

          when 0

            case @item

            when RPG::Item

              $game_party.lose_item(@item.id, number)

              $game_party.gain_deposit_item(@item.id, number)

            when RPG::Weapon

              $game_party.lose_weapon(@item.id, number)

              $game_party.gain_deposit_weapon(@item.id, number)

            when RPG::Armor

              $game_party.lose_armor(@item.id, number)

              $game_party.gain_deposit_armor(@item.id, number)

            end

          when 1

            case @item

            when RPG::Item

              $game_party.gain_item(@item.id, number)

              $game_party.lose_deposit_item(@item.id, number)

            when RPG::Weapon

              $game_party.gain_weapon(@item.id, number)

              $game_party.lose_deposit_weapon(@item.id, number)

            when RPG::Armor

              $game_party.gain_armor(@item.id, number)

              $game_party.lose_deposit_armor(@item.id, number)

            end

          end

          @item_window.refresh(@command_window.index)

          @item_window.active = true

          @number_window.active = false

          @number_window.visible = false

          return

        end

      end
    end
    ele funciona normalmentew em npv4 Very Happy

    Esse script tem problemas também.. o mouse não pega eles, pra selecionar, tem que apontar o mouse um pouco mais pra baixo do "Retirar items", se ir em cima ou com a setinha não da =/


    _________________
    Se vocês riem de mim por eu ser diferente, eu rio de vocês por serem todos iguais.
    Bob Marley

    Warrior
    Aldeia Friend
    Aldeia Friend

    Mensagens : 1148
    Créditos : 77

    Re: Sistema de banco compatível com NP4.0

    Mensagem por Warrior em Qui Set 20, 2012 8:48 pm

    Tam bem ja tinha percebido isso por isso ta meio ruim arruma ai samukaaa


    _________________
    Eu não sou um ROBÔ!

    Samuka_Maker
    Aldeia Friend
    Aldeia Friend

    Medalhas :
    Mensagens : 1204
    Créditos : 122

    Re: Sistema de banco compatível com NP4.0

    Mensagem por Samuka_Maker em Qui Set 20, 2012 8:51 pm

    soreto eu fiz eu digo eu editei pro geito q ele queria
    pq o original é diferente
    ele quer um q guarde só item e eu fiz as edições
    bom gente n é problema no script e sim sim no sis de mouse
    :/


    _________________

    Life rpg maker, suporte para criacao de jgoos online eoffline, link do forum:(v2.0)
    http://liferpgmakerv2.forumais.com/




    Tópico original/Tópico de Recrutamento

      Data/hora atual: Qua Dez 07, 2016 9:06 pm