Welcome Guest: S’enregistrer | Connexion
 
Portail  | FAQ | Rechercher | Membres | Groupes
 
[Script] Faire une banque pour stocker argent et objets.
 
Poster un nouveau sujet   Répondre au sujet
RPG Community Index du Forum -> RPG Maker -> Scripts RPG Maker XP
Sujet précédent :: Sujet suivant  
Auteur Message
Musica
Noble
Noble

Hors ligne

Inscrit le: 06 Mar 2006
Messages: 349
Localisation: Dans un tonneau de bière...*hips*
Points RPG Community: -37
Moyenne de points: -0,11

MessagePosté le: 08/03/2006 08:25:04
MessageSujet du message: [Script] Faire une banque pour stocker argent et objets.
Répondre en citant

Voici un script (pris sur The Factor^) qui vou permet de créer une banque en deux min :
Code:

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    Ÿ—a‚©‚菊 | KGC_DepositoryŸ
#_/----------------------------------------------------------------------------
#_/  ƒAƒCƒeƒ€‚⏊Ž‹à‚ð—a‚¯‚邱‚Æ‚ª‚Å‚«‚é“X‚ðì¬‚µ‚Ü‚·B
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# š ƒJƒXƒ^ƒ}ƒCƒY€–Ú š
#==============================================================================

module KGC
 
  $game_special_elements = {}
  $imported = {}
  $data_states = load_data("Data/States.rxdata")
  $data_system = load_data("Data/System.rxdata")
 
  # Ÿ‘€ìƒEƒBƒ“ƒhƒE‚̃Rƒ}ƒ“ƒh–¼
  DEPOSITORY_COMMAND = [
    "Deposer Or.",       # ‚¨‹à‚ð—a‚¯‚é
    "Reprendre Or.",     # ‚¨‹à‚ðˆø‚«o‚·
    "Deposer Obj.",   # ƒAƒCƒeƒ€‚ð—a‚¯‚é
    "Reprendre Obj."  # ƒAƒCƒeƒ€‚ðˆø‚«o‚·
  ]
  # Ÿ‘€ìƒEƒBƒ“ƒhƒE‚̃wƒ‹ƒv
  DEPOSITORY_HELP = [
    "Permet de deposer de l'or dans la banque.",               # ‚¨‹à‚ð—a‚¯‚é
    "Permet de reprendre l'or laissé à la banque.",     # ‚¨‹à‚ðˆø‚«o‚·
    "Permet de deposer des Objets dans la banque.",           # ƒAƒCƒeƒ€‚ð—a‚¯‚é
    "Permet de reprendre les Objets laissés à la banque."  # ƒAƒCƒeƒ€‚ðˆø‚«o‚·
  ]

  # Ÿ‹àŠzŽw’è‚ÌŒ…”
  DEPOSITORY_GOLD_DIGITS = 7

  # ŸƒS[ƒ‹ƒh‚ð—a‚¯‚éÛ‚̃ƒbƒZ[ƒW(ƒwƒ‹ƒvƒEƒBƒ“ƒhƒE)
  DEPOSIT_GOLD = "Choisissez la quantitée d'or à deposer."
  # ŸƒS[ƒ‹ƒh‚ðˆø‚«o‚·Û‚̃ƒbƒZ[ƒW(ƒwƒ‹ƒvƒEƒBƒ“ƒhƒE)
  WDEPOSIT_GOLD = "Choisissez la quantitée d'or à reprendre"
  # ŸƒAƒCƒeƒ€‚ð—a‚¯‚éÛ‚̃ƒbƒZ[ƒW(ŒÂ”ƒEƒBƒ“ƒhƒE)
  DEPOSIT_ITEM = "Choisissez le nombre de cet Objet à deposer"
  # ŸƒAƒCƒeƒ€‚ðˆø‚«o‚·Û‚̃ƒbƒZ[ƒW(ŒÂ”ƒEƒBƒ“ƒhƒE)
  WDEPOSIT_ITEM = "Choisissez le nombre de cet Objet à reprendre"
end

#š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š

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

#--------------------------------------------------------------------------
# œ —a‚©‚菊ŒÄ‚яo‚µ
#     type : 0..‹à/ƒAƒCƒeƒ€  1..‹à  2..ƒAƒCƒeƒ€
#--------------------------------------------------------------------------
def call_depository(type = 0)
  # ƒvƒŒƒCƒ„[‚ÌŽp¨‚ð‹¸³
  $game_player.straighten
  # —a‚©‚菊‰æ–ʂɐ؂è‘Ö‚¦
  $scene = Scene_Depository.new(type)
end

#š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š

#==============================================================================
# ¡ Game_Party
#==============================================================================

class Game_Party
  #--------------------------------------------------------------------------
  # œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  alias initialize_KGC_Depository initialize
  def initialize
    # Œ³‚̏ˆ—‚ðŽÀs
    initialize_KGC_Depository

    @deposit_gold = 0
    @deposit_item, @deposit_weapon, @deposit_armor = [], [], []
  end
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½‹àŽæ“¾
  #--------------------------------------------------------------------------
  def deposit_gold
    @deposit_gold = 0 if @deposit_gold == nil
    return @deposit_gold
  end
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½‹à‘‰Á
  #     number : ‘‰Á—Ê
  #--------------------------------------------------------------------------
  def gain_deposit_gold(number)
    @deposit_gold = 0 if @deposit_gold == nil
    @deposit_gold += number
  end
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½‹àŒ¸­
  #     number : Œ¸­—Ê
  #--------------------------------------------------------------------------
  def lose_deposit_gold(number)
    self.gain_deposit_gold(-number)
  end
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½ƒAƒCƒeƒ€Žæ“¾
  #     id : ID
  #--------------------------------------------------------------------------
  def deposit_item_number(id)
    @deposit_item = [] if @deposit_item == nil
    return @deposit_item[id] != nil ? @deposit_item[id] : 0
  end
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½ƒAƒCƒeƒ€‘‰Á
  #     id     : ID
  #     number : ŒÂ”
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½ƒAƒCƒeƒ€Œ¸­
  #     id     : ID
  #     number : ŒÂ”
  #--------------------------------------------------------------------------
  def lose_deposit_item(id, number)
    self.gain_deposit_item(id, -number)
  end
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½•ŠíŽæ“¾
  #     id : ID
  #--------------------------------------------------------------------------
  def deposit_weapon_number(id)
    @deposit_weapon = [] if @deposit_weapon == nil
    return @deposit_weapon[id] != nil ? @deposit_weapon[id] : 0
  end
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½•Ší‘‰Á
  #     id     : ID
  #     number : ŒÂ”
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½•ŠíŒ¸­
  #     id     : ID
  #     number : ŒÂ”
  #--------------------------------------------------------------------------
  def lose_deposit_weapon(id, number)
    self.gain_deposit_weapon(id, -number)
  end
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½–h‹ïŽæ“¾
  #     id : ID
  #--------------------------------------------------------------------------
  def deposit_armor_number(id)
    @deposit_armor = [] if @deposit_armor == nil
    return @deposit_armor[id] != nil ? @deposit_armor[id] : 0
  end
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½–h‹ï‘‰Á
  #     id     : ID
  #     number : ŒÂ”
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # œ —a‚¯‚½–h‹ïŒ¸­
  #     id     : ID
  #     number : ŒÂ”
  #--------------------------------------------------------------------------
  def lose_deposit_armor(id, number)
    self.gain_deposit_armor(id, -number)
  end
end

#š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š

#==============================================================================
# ¡ Window_DepositoryCommand
#------------------------------------------------------------------------------
# @—a‚©‚菊‰æ–ʂŁA‘€ì‚ð‘I‘ð‚·‚éƒEƒBƒ“ƒhƒE‚Å‚·B
#==============================================================================

class Window_DepositoryCommand < Window_Selectable
  #--------------------------------------------------------------------------
  # œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize(type)
    super(0, 64, 640, 64)
    self.y = 128 if $imported["HelpExtension"]
    self.contents = Bitmap.new(width - 32, height - 32)
    # ƒRƒ}ƒ“ƒhˆê——‚ðì¬
    case type
    when 1  # ‹à
      @commands = KGC::DEPOSITORY_COMMAND[0, 2]
      @help_text = KGC::DEPOSITORY_HELP[0, 2]
    when 2  # ƒAƒCƒeƒ€
      @commands = KGC::DEPOSITORY_COMMAND[2, 2]
      @help_text = KGC::DEPOSITORY_HELP[2, 2]
    else    # ‹à/ƒAƒCƒeƒ€
      @commands = KGC::DEPOSITORY_COMMAND
      @help_text = KGC::DEPOSITORY_HELP
    end
    @item_max = @commands.size
    @column_max = @commands.size
    @item_width = (width - 32) / @commands.size
    self.back_opacity = 160
    self.index = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # œ ƒŠƒtƒŒƒbƒVƒ…
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # œ ƒJ[ƒ\ƒ‹‚Ì‹éŒ`XV
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if index != -1
      self.cursor_rect.set(@item_width * index, 0, @item_width, 32)
    end
  end
  #--------------------------------------------------------------------------
  # œ ƒwƒ‹ƒvƒeƒLƒXƒgXV
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(@help_text[self.index])
  end
end

#š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š

#==============================================================================
# ¡ Window_DepositoryGold
#------------------------------------------------------------------------------
# @—a‚©‚菊‰æ–ʂŁA‹àŠz‚ð“ü—Í‚·‚éƒEƒBƒ“ƒhƒE‚Å‚·B
#==============================================================================

class Window_DepositoryGold <Window_Base>= 2
        $game_system.se_play($data_system.cursor_se)
        @index = (@index + 1) % @digits_max
      end
    end
    # ƒJ[ƒ\ƒ‹¶
    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

#š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š

#==============================================================================
# ¡ Window_DepositoryItem
#------------------------------------------------------------------------------
# @—a‚©‚菊‰æ–ʂŁA—a‚¯‚½ƒAƒCƒeƒ€‚̈ꗗ‚ð•\Ž¦‚·‚éƒEƒBƒ“ƒhƒE‚Å‚·B
#==============================================================================

class Window_DepositoryItem <Window_Selectable> 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
    when 1
      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
    if reset
      self.index = 0
    else
      self.index = @data[last_index] != nil ? last_index :
        [last_index - 1, 0].max
    end
    # €–ڐ”‚ª 0 ‚Å‚È‚¯‚ê‚΃rƒbƒgƒ}ƒbƒv‚ðì¬‚µA‘S€–Ú‚ð•`‰æ
    @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
  #--------------------------------------------------------------------------
  # œ €–Ú‚Ì•`‰æ
  #     index : €–ڔԍ†
  #     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
  #--------------------------------------------------------------------------
  # œ ƒwƒ‹ƒvƒeƒLƒXƒgXV
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
  end
end

#š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š™š

#==============================================================================
# ¡ Window_DepositoryNumber
#------------------------------------------------------------------------------
# @—a‚©‚菊‚ÅŽg—p‚·‚éA”’l“ü—Í—p‚̃EƒBƒ“ƒhƒE‚Å‚·B
#==============================================================================

class Window_DepositoryNumber <Window_Base>= 2
        $game_system.se_play($data_system.cursor_se)
        @index = (@index + 1) % @digits_max
      end
    end
    # ƒJ[ƒ\ƒ‹¶
    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
#------------------------------------------------------------------------------
# @—a‚©‚菊‰æ–ʂ̏ˆ—‚ðs‚¤ƒNƒ‰ƒX‚Å‚·B
#==============================================================================

class Scene_Depository
  #--------------------------------------------------------------------------
  # œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize(type)
    @type = type
    case type
    when 1  # ‹à
      @command_money = 0
      @command_item = 100
    when 2  # ƒAƒCƒeƒ€
      @command_money = 100
      @command_item = 0
    else    # ‹à/ƒAƒCƒeƒ€
      @command_money = 0
      @command_item = 2
    end
  end
  #--------------------------------------------------------------------------
  # œ ƒƒCƒ“ˆ—
  #--------------------------------------------------------------------------
  def main
    # ƒXƒvƒ‰ƒCƒgƒZƒbƒgì¬
    @spriteset = Spriteset_Map.new
    # ŠeŽíƒEƒBƒ“ƒhƒE‚ðì¬
    if $imported["HelpExtension"]
      @dummy_window = Window_Base.new(0, 192, 640, 288)
      @help_window = Window_HelpExtension.new
    else
      @dummy_window = Window_Base.new(0, 128, 640, 352)
      @help_window = Window_Help.new
    end
    @dummy_window.back_opacity = 160
    @help_window.back_opacity = 160
    @command_window = Window_DepositoryCommand.new(@type)
    @gold_window = Window_DepositoryGold.new
    @item_window = Window_DepositoryItem.new
    @number_window = Window_DepositoryNumber.new
    # ƒwƒ‹ƒvƒEƒBƒ“ƒhƒE‚ðŠÖ˜A•t‚¯
    @command_window.help_window = @help_window
    @item_window.help_window = @help_window
    # ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ŽÀs
    Graphics.transition
    # ƒƒCƒ“ƒ‹[ƒv
    loop {
      Graphics.update
      Input.update
      update
      break if $scene != self
    }
    # ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“€”õ
    Graphics.freeze
    # ‰ð•ú
    @spriteset.dispose
    @dummy_window.dispose
    @help_window.dispose
    @command_window.dispose
    @gold_window.dispose
    @item_window.dispose
    @number_window.dispose
  end
  #--------------------------------------------------------------------------
  # œ ƒtƒŒ[ƒ€XV
  #--------------------------------------------------------------------------
  def update
    # ƒEƒBƒ“ƒhƒE‚ðXV
    @dummy_window.update
    @help_window.update
    @command_window.update
    @gold_window.update
    @item_window.update
    @number_window.update
    # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ: update_command ‚ðŒÄ‚Ô
    if @command_window.active
      update_command
      return
    end
    # ƒS[ƒ‹ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ: update_gold ‚ðŒÄ‚Ô
    if @gold_window.active
      update_gold
      return
    end
    # ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ: update_item ‚ðŒÄ‚Ô
    if @item_window.active
      update_item
      return
    end
    # ŒÂ”ƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ: update_number ‚ðŒÄ‚Ô
    if @number_window.active
      update_number
      return
    end
  end
  #--------------------------------------------------------------------------
  # œ ƒtƒŒ[ƒ€XV (ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ)
  #--------------------------------------------------------------------------
  def update_command
    # B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::B)
      # ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
      $game_system.se_play($data_system.cancel_se)
      # ƒ}ƒbƒv‰æ–ʂɐ؂è‘Ö‚¦
      $scene = Scene_Map.new
      return
    end
    # C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::C)
      # Œˆ’è SE ‚ð‰‰‘t
      $game_system.se_play($data_system.decision_se)
      # ƒJ[ƒ\ƒ‹ˆÊ’u‚Å•ªŠò
      case @command_window.index
      when @command_money
        # ƒS[ƒ‹ƒhƒEƒBƒ“ƒhƒE‚ɐ؂è‘Ö‚¦
        @gold_window.active = true
        @gold_window.visible = true
        @gold_window.reset(0)
        @help_window.set_text(KGC::DEPOSIT_GOLD)
      when @command_money + 1
        # ƒS[ƒ‹ƒhƒEƒBƒ“ƒhƒE‚ɐ؂è‘Ö‚¦
        @gold_window.active = true
        @gold_window.visible = true
        @gold_window.reset(1)
        @help_window.set_text(KGC::WDEPOSIT_GOLD)
      when @command_item
        # ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ɐ؂è‘Ö‚¦
        @item_window.refresh(0, true)
        @item_window.active = true
        @item_window.visible = true
      when @command_item + 1
        # ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ɐ؂è‘Ö‚¦
        @item_window.refresh(1, true)
        @item_window.active = true
        @item_window.visible = true
      end
      @command_window.active = false
      # ƒ_ƒ~[ƒEƒBƒ“ƒhƒEÁ‹Ž
      @dummy_window.visible = false
      return
    end
  end
  #--------------------------------------------------------------------------
  # œ ƒtƒŒ[ƒ€XV (ƒS[ƒ‹ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ)
  #--------------------------------------------------------------------------
  def update_gold
    # B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::B)
      # ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
      $game_system.se_play($data_system.cancel_se)
      # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ɐ؂è‘Ö‚¦
      @command_window.active = true
      @gold_window.active = false
      @gold_window.visible = false
      @dummy_window.visible = true
      return
    end
    # C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::C)
      # “ü—Í‚µ‚½‹àŠz‚ðŽæ“¾
      price = @gold_window.price
      # ‹àŠz‚ª 0 ‚̏ꍇ
      if price == 0
        # Œˆ’è SE ‚ð‰‰‘t
        $game_system.se_play($data_system.decision_se)
        # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ɐ؂è‘Ö‚¦
        @command_window.active = true
        @gold_window.active = false
        @gold_window.visible = false
        @dummy_window.visible = true
        return
      end
      # ƒVƒ‡ƒbƒv SE ‚ð‰‰‘t
      $game_system.se_play($data_system.shop_se)
      # ƒJ[ƒ\ƒ‹ˆÊ’u‚Å•ªŠò
      case @command_window.index
      when 0  # —a‚¯‚é
        $game_party.lose_gold(price)
        $game_party.gain_deposit_gold(price)
      when 1  # ˆø‚«o‚·
        $game_party.gain_gold(price)
        $game_party.lose_deposit_gold(price)
      end
      # ƒS[ƒ‹ƒhƒEƒBƒ“ƒhƒE‚ðƒŠƒZƒbƒg
      @gold_window.reset(@command_window.index)
      return
    end
  end
  #--------------------------------------------------------------------------
  # œ ƒtƒŒ[ƒ€XV (ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ)
  #--------------------------------------------------------------------------
  def update_item
    # B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::B)
      # ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
      $game_system.se_play($data_system.cancel_se)
      # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ɐ؂è‘Ö‚¦
      @command_window.active = true
      @item_window.active = false
      @item_window.visible = false
      @dummy_window.visible = true
      return
    end
    # C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::C)
      # ‘I‘ðƒAƒCƒeƒ€‚ðŽæ“¾
      @item = @item_window.item
      # ‹ó—“‚̏ꍇ
      if @item == nil
        # ƒuƒU[ SE ‚ð‰‰‘t
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # ŒÂ”ƒEƒBƒ“ƒhƒE‚̃AƒCƒeƒ€‚ðÝ’è
      @number_window.item = @item
      # Œˆ’è SE ‚ð‰‰‘t
      $game_system.se_play($data_system.decision_se)
      # ƒJ[ƒ\ƒ‹ˆÊ’u‚Å•ªŠò
      case @command_window.index
      when 2  # —a‚¯‚é
        @number_window.set_text(KGC::DEPOSIT_ITEM)
      when 3  # ˆø‚«o‚·
        @number_window.set_text(KGC::WDEPOSIT_ITEM)
      end
      # ŒÂ”ƒEƒBƒ“ƒhƒE‚ðƒŠƒZƒbƒg
      @number_window.reset(@command_window.index - 2)
      # ŒÂ”ƒEƒBƒ“ƒhƒE‚ɐ؂è‘Ö‚¦
      @item_window.active = false
      @number_window.active = true
      @number_window.visible = true
      return
    end
  end
  #--------------------------------------------------------------------------
  # œ ƒtƒŒ[ƒ€XV (ŒÂ”ƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ)
  #--------------------------------------------------------------------------
  def update_number
    # B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::B)
      # ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
      $game_system.se_play($data_system.cancel_se)
      # ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ɐ؂è‘Ö‚¦
      @item_window.active = true
      @number_window.active = false
      @number_window.visible = false
      return
    end
    # C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::C)
      # Œˆ’è SE ‚ð‰‰‘t
      $game_system.se_play($data_system.decision_se)
      number = @number_window.number
      # ƒJ[ƒ\ƒ‹ˆÊ’u‚Å•ªŠò
      case @command_window.index
      when 2  # —a‚¯‚é
        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 3  # ˆø‚«o‚·
        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
      # ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ…
      @item_window.refresh(@command_window.index - 2)
      # ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ɐ؂è‘Ö‚¦
      @item_window.active = true
      @number_window.active = false
      @number_window.visible = false
      return
    end
  end
end


Marche à suivre pour faire fonctionner le script :

placez un evenement avec la commande "inserer un script" et rentrer ce bout de code :
Code:
call_deposity0


le dernier chiffre peu avoir trois valeurs :
0: permet de stocker de argent et des objets
1 = premet de stocker de l'argent seulement
2 = permet de stocker des objets seulement

voci des screens :




voilà !


Dernière édition par Musica le 29/04/2006 14:57:55; édité 1 fois
Revenir en haut
Publicité






MessagePosté le: 08/03/2006 08:25:04
MessageSujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Mi
Noble
Noble

Hors ligne

Inscrit le: 07 Jan 2006
Messages: 298
Points RPG Community: -22
Moyenne de points: -0,07

MessagePosté le: 18/04/2006 20:19:37
MessageSujet du message: [Script] Faire une banque pour stocker argent et objets.
Répondre en citant

Le script, il faut en créer un et tout mettre dedans simplement?

Parce que moi j'ai fait ça, et j'ai mis dans "inserer script" "call_deposity0"
et quand je lance mon jeu, tout marche, mais quand je fait le inserer script,
mon jeu arrête et il y a se message d'erreur:

Citation:
undefined local variable or method 'call_deposity0' for # Interpreter:0x466c048



alors j'aimerais un petit eclairsissement car.... j'suis pas un scripteur, loin de là...

EDIT

Ouin..... dans inserer script, c'est pas call_deposity0 qu'il faut écrir, en tout cas, moi je l'ai changer pour call_depository(0) et ça a marché, sauf que je ne vois pas les écriture dans les cadre.... ça donne la meme chose que toi, mais sans écriture...... p-e un petit coup de pouce aiderais;)
_________________
The only proof we had a yesterday is our memory
The only proof we have a tomorrow is our imagination

Time is but an illusion
Revenir en haut
Musica
Noble
Noble

Hors ligne

Inscrit le: 06 Mar 2006
Messages: 349
Localisation: Dans un tonneau de bière...*hips*
Points RPG Community: -37
Moyenne de points: -0,11

MessagePosté le: 18/04/2006 21:28:43
MessageSujet du message: [Script] Faire une banque pour stocker argent et objets.
Répondre en citant

D'après la nature de ton problème, je dirais que la police d'écriture est mal dénifie.
Tu l'as changée ?
Revenir en haut
Mi
Noble
Noble

Hors ligne

Inscrit le: 07 Jan 2006
Messages: 298
Points RPG Community: -22
Moyenne de points: -0,07

MessagePosté le: 18/04/2006 22:51:26
MessageSujet du message: [Script] Faire une banque pour stocker argent et objets.
Répondre en citant

.... non, je ne crois pas....

et sinon, c'est dans "main" que je peux le changer je pense?

va falloir que je regarde ça.... quelle est la police de caractère d'origine?

timenew roman?

EDIT

je suis en arial, en tk, je pense bien....
_________________
The only proof we had a yesterday is our memory
The only proof we have a tomorrow is our imagination

Time is but an illusion


Dernière édition par Mi le 18/04/2006 22:56:54; édité 1 fois
Revenir en haut
Yojimbo
Seigneur tout puissant
Seigneur tout puissant

Hors ligne

Inscrit le: 04 Jan 2006
Messages: 805
Localisation: Grotte du priant volé.
Points RPG Community: 587
Moyenne de points: 0,73

MessagePosté le: 18/04/2006 22:56:50
MessageSujet du message: [Script] Faire une banque pour stocker argent et objets.
Répondre en citant

C'est Arial.
Pour la modifier, va voir en bas de cette page :
http://rpgcommunity.xooit.com/t25-Afficher-le-nom-de-la-carte-sous-RPG-Maker-XP.htm?highlight=police


Dernière édition par Yojimbo le 18/04/2006 22:59:19; édité 1 fois
Revenir en haut
Visiter le site web du posteur
Mi
Noble
Noble

Hors ligne

Inscrit le: 07 Jan 2006
Messages: 298
Points RPG Community: -22
Moyenne de points: -0,07

MessagePosté le: 18/04/2006 22:57:48
MessageSujet du message: [Script] Faire une banque pour stocker argent et objets.
Répondre en citant

Alors je comprends pas c'est quoi le probleme
_________________
The only proof we had a yesterday is our memory
The only proof we have a tomorrow is our imagination

Time is but an illusion
Revenir en haut
Musica
Noble
Noble

Hors ligne

Inscrit le: 06 Mar 2006
Messages: 349
Localisation: Dans un tonneau de bière...*hips*
Points RPG Community: -37
Moyenne de points: -0,11

MessagePosté le: 19/04/2006 07:55:37
MessageSujet du message: [Script] Faire une banque pour stocker argent et objets.
Répondre en citant

moi non plus...c'est assez embetant..j'ai installé tout le bazar et ça marche sans aucun problème, j'ai changé de police pour voir aussi et tout s'affiche. Confused
Revenir en haut
rooswell
Paysan
Paysan

Hors ligne

Inscrit le: 02 Aoû 2007
Messages: 6
Localisation: pessac
Points RPG Community: 0
Moyenne de points: 0,00

MessagePosté le: 16/08/2007 00:26:51
MessageSujet du message: [Script] Faire une banque pour stocker argent et objets.
Répondre en citant

Bjr j'ai ésséyer de rentrer le script mé il ne marche pa.Est-ce que kelkun pourré le renvoyer ou me contacter sa seré simpa. Merci.
Revenir en haut
Yojimbo
Seigneur tout puissant
Seigneur tout puissant

Hors ligne

Inscrit le: 04 Jan 2006
Messages: 805
Localisation: Grotte du priant volé.
Points RPG Community: 587
Moyenne de points: 0,73

MessagePosté le: 16/08/2007 14:22:36
MessageSujet du message: [Script] Faire une banque pour stocker argent et objets.
Répondre en citant

Créé un script nommé "Dipositery" au dessus de "Main".
Colle ceci :

Code:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#_/  ?Espace de Stockage - KGC_Depository

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

#_/ Espace de stockage pour objets et monaie.

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

 

 

class Window_DepositoryCommand < Window_Selectable

  # ?Nom des commandes de l'espace de stockage

  DEPOSITORY_COMMAND = [

    "Déposer",       # Déposer

    "Retirer",     # Retirer

    "Stocker",   # Stocker

    "Prendre"  # Prendre

  ]

  # ?Définitions des commandes

  DEPOSITORY_HELP = [

    "Déposer de l'argent",               # Déposer de l'argent

    "Retirer de l'argent",     # Retirer de l'argent

    "Stocker un objet",           # Stocker un objet

    "Prendre un objet"  # Prendre un objet

  ]

end

 

class Window_DepositoryGold < Window_Base

  # ?Nombre de chiffres maximal pour le dépot de monnaie

  GOLD_DIGITS = 7

end

 

class Scene_Depository

  DEPOSIT_GOLD = "Inserez la somme à déposer"

  WDEPOSIT_GOLD = "Inserez la somme à retirer"

  DEPOSIT_ITEM = "Déposer combien ?"

  WDEPOSIT_ITEM = "Retirer combien ?"

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_gold = 0

    @deposit_item = []

    @deposit_weapon = []

    @deposit_armor = []

  end

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

  # ? Récupère l'information sur la monnaie

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

  def deposit_gold

    @deposit_gold = 0 if @deposit_gold == nil

    return @deposit_gold

  end

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

  # ? Récupère l'information sur la monnaie récupérée

  #     number : Montant a récuperer

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

  def gain_deposit_gold(number)

    @deposit_gold = 0 if @deposit_gold == nil

    @deposit_gold += number

  end

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

  # ? Récupère l'information sur la monnaie déposée

  #     number : Montant à déposer

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

  def lose_deposit_gold(number)

    self.gain_deposit_gold(-number)

  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 : Quantité

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

  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

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

  # ? Dépôt de l'objet

  #     id     : ID

  #     number : Quantité

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

  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 : Quantité

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

  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

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

  # ? Dépôt de l'arme

  #     id     : ID

  #     number : Quantité

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

  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 : Quantité

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

  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 : Quantité

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

  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_DepositoryGold

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

#  Indication de la quantité/valeur de la monnaie/objet.

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

 

class Window_DepositoryGold < Window_Base

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

  # ? Initialisation

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

  def initialize

    super(0, 128, 640, 352)

    @digits_max = GOLD_DIGITS

    # Calcul de la largeur du curseur à partir du nombre de chiffres à entrer

    dummy_bitmap = Bitmap.new(32, 32)

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

    dummy_bitmap.dispose

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

    self.back_opacity = 160

    self.active = false

    self.visible = false

    @cursor_position = 0

    @max = 0

    @price = 0

    @index = 0

  end

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

  # ? Acquisition de la quantité inséré

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

  def price

    return @price

  end

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

  # ? Option de la quantité

  #     np : Nouvelle quantité

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

  def price=(np)

    @price = [[np, 0].max, @max].min

    redraw_price

  end

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

  # ? Reinitialisation

  #     type : Type

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

  def reset(type)

    @price = 0

    @index = @digits_max - 1

    refresh(type)

  end

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

  # ? Actualisation

  #     type : Type

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

  def refresh(type)

    # Affiche la quantité

    self.contents.clear

    domination = $data_system.words.gold

    cx = contents.text_size(domination).width

    @cursor_position = 332 - cx - @cursor_width * @digits_max

    self.contents.font.color = system_color

    self.contents.draw_text(0, 0, 608, 32, "Monnaie en main")

    self.contents.draw_text(0, 64, 608, 32, "Dépôt")

    if type == 0

      self.contents.draw_text(0, 128, 608, 32, "Quantité")

      @max = $game_party.gold

    else

      self.contents.draw_text(0, 128, 608, 32, "Retrait")

      @max = [10 ** @digits_max - $game_party.gold - 1, $game_party.deposit_gold].min

    end

    self.contents.font.color = normal_color

    self.contents.draw_text(4, 32, 326 - cx, 32, $game_party.gold.to_s, 2)

    self.contents.font.color = system_color

    self.contents.draw_text(332 - cx, 32, cx, 32, domination, 2)

    self.contents.font.color = normal_color

    self.contents.draw_text(4, 96, 326 - cx, 32, $game_party.deposit_gold.to_s, 2)

    self.contents.font.color = system_color

    self.contents.draw_text(332 - cx, 96, cx, 32, domination, 2)

    redraw_price

  end

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

  # ? Quantité re-affiché

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

  def redraw_price

    domination = $data_system.words.gold

    cx = contents.text_size(domination).width

    self.contents.fill_rect(0, 160, 608, 32, Color.new(0, 0, 0, 0))

    self.contents.font.color = normal_color

    text = sprintf("%0#{@digits_max}d", self.price)

    for i in 0...text.length

      x = @cursor_position + (i - 1) * @cursor_width

      self.contents.draw_text(x, 160, 32, 32, text[i, 1], 2)

    end

    self.contents.font.color = system_color

    self.contents.draw_text(332 - cx, 160, cx, 32, domination, 2)

  end

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

  # ? Actualisation du curseur

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

  def update_cursor_rect

    x = @cursor_position + @index * @cursor_width

    self.cursor_rect.set(x, 160, @cursor_width, 32)

  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.price / place % 10

      self.price -= n * place

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

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

      self.price += n * place

    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

 

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

 

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

# ¦ 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, "Dépôt:#{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, "Possédé:#{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

    @gold_window = Window_DepositoryGold.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

    @gold_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

    @gold_window.update

    @item_window.update

    @number_window.update

    if @command_window.active

      update_command

      return

    end

    if @gold_window.active

      update_gold

      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

        @gold_window.active = true

        @gold_window.visible = true

        @gold_window.reset(0)

        @help_window.set_text(DEPOSIT_GOLD)

      when 1

        @gold_window.active = true

        @gold_window.visible = true

        @gold_window.reset(1)

        @help_window.set_text(WDEPOSIT_GOLD)

      when 2

        @item_window.active = true

        @item_window.visible = true

        @item_window.refresh(0)

      when 3

        @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 de monnaie

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

  def update_gold

    # 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

      @gold_window.active = false

      @gold_window.visible = false

      @dummy_window.visible = true

      return

    end

    # Lors d'un appui sur la touche C

    if Input.trigger?(Input::C)

      price = @gold_window.price

      if price == 0

        $game_system.se_play($data_system.decision_se)

        @command_window.active = true

        @gold_window.active = false

        @gold_window.visible = false

        @dummy_window.visible = true

        return

      end

      $game_system.se_play($data_system.shop_se)

      case @command_window.index

      when 0

        $game_party.lose_gold(price)

        $game_party.gain_deposit_gold(price)

      when 1

        $game_party.gain_gold(price)

        $game_party.lose_deposit_gold(price)

      end

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

      @gold_window.reset(@command_window.index)

      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 2

        @number_window.set_text(DEPOSIT_ITEM)

      when 3

        @number_window.set_text(WDEPOSIT_ITEM)

      end

      @number_window.reset(@command_window.index - 2)

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

      @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 2

        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 3

        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 - 2)

      @item_window.active = true

      @number_window.active = false

      @number_window.visible = false

      return

    end

  end

end




Ensuite, créé un personnage sur une map en event.
Comme commande de l'évènement, fait "Insérer script" (toute dernière commande de la dernière page).
Et tape : "call_depository".
Voilà, ça marche, redemande si tu as un problème.
Revenir en haut
Visiter le site web du posteur
rooswell
Paysan
Paysan

Hors ligne

Inscrit le: 02 Aoû 2007
Messages: 6
Localisation: pessac
Points RPG Community: 0
Moyenne de points: 0,00

MessagePosté le: 16/08/2007 15:04:14
MessageSujet du message: [Script] Faire une banque pour stocker argent et objets.
Répondre en citant

Ok merci bocoup sa marche nikel.
Revenir en haut
Contenu Sponsorisé






MessagePosté le: 10/12/2016 10:46:41
MessageSujet du message: [Script] Faire une banque pour stocker argent et objets.

Revenir en haut
Montrer les messages depuis:   
RPG Community Index du Forum -> RPG Maker -> Scripts RPG Maker XP Toutes les heures sont au format GMT + 2 Heures
Poster un nouveau sujet   Répondre au sujet
Page 1 sur 1
Sauter vers:  

 

Portail | Index | Panneau d’administration | Créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
phpBB
Template by BMan1
Traduction par : phpBB-fr.com