XP 스크립트

창고 1

$game_special_elements = {}
$imported = {}
$data_states = load_data("Data/States.rxdata")
$data_system = load_data("Data/System.rxdata")

================================================= 여기 까지만 =하지 마세요.

lnsert를 눌러주시고 복사해 붙어주세요.

창고 2

#==============================================================================
# ★ 커스터마이즈(customize) 항목 ★
#==============================================================================

class Window_DepositoryCommand < Window_Selectable
  # ◆操作ウィンドウのコマンド名
  DEPOSITORY_COMMAND = [
    "입금",      # お金を預ける
    "출금",    # お金を引き出す
    "아이템보관",  # アイテムを預ける
    "아이템찾기"  # アイテムを引き出す
  ]
  # ◆操作ウィンドウのヘルプ
  DEPOSITORY_HELP = [
    "돈을 맡깁니다 최대 10억 까지 가능합니다",              # お金を預ける
    "돈을 찾습니다",    # お金を引き出す
    "아이템을 맡깁니다",          # アイテムを預ける
    "아이템을 찾습니다"  # アイテムを引き出す
  ]
end

class Window_DepositoryGold < Window_Base
  # ◆金額指定の桁?
  GOLD_DIGITS = 10
end

class Scene_Depository
  # ◆ゴ?ルドを預ける際のメッセ?ジ(ヘルプウィンドウ)
  DEPOSIT_GOLD = "돈을 얼마나 입금합니까?"
  # ◆ゴ?ルドを引き出す際のメッセ?ジ(ヘルプウィンドウ)
  WDEPOSIT_GOLD = "돈을 얼마나 출금합니까?"
  # ◆アイテムを預ける際のメッセ?ジ(個?ウィンドウ)
  DEPOSIT_ITEM = "아이템을 몇개 맡깁니까?"
  # ◆アイテムを引き出す際のメッセ?ジ(個?ウィンドウ)
  WDEPOSIT_ITEM = "아이템을 몇개 찾습니까?"
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#--------------------------------------------------------------------------
# ● 預かり所呼び出し
#--------------------------------------------------------------------------
def call_depository
  # プレイヤ?の姿勢を矯正
  $game_player.straighten
  # 預かり所?面に切り替え
  $scene = Scene_Depository.new
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Party
#------------------------------------------------------------------------------
#  パ?ティを扱うクラスです。ゴ?ルドやアイテムなどの情報が含まれます。このク
# ラスのインスタンスは $game_party で?照されます。
#==============================================================================

class Game_Party
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_KGC_Depository initialize
  def initialize
    # 元の?理を?行
    initialize_KGC_Depository

    @deposit_gold = 0
    @deposit_item = []
    @deposit_weapon = []
    @deposit_armor = []
  end
  #--------------------------------------------------------------------------
  # ● 預けた金取得
  #--------------------------------------------------------------------------
  def deposit_gold
    @deposit_gold = 0 if @deposit_gold == nil
    return @deposit_gold
  end
  #--------------------------------------------------------------------------
  # ● 預けた金?加
  #    number : ?加量
  #--------------------------------------------------------------------------
  def gain_deposit_gold(number)
    @deposit_gold = 0 if @deposit_gold == nil
    @deposit_gold += number
  end
  #--------------------------------------------------------------------------
  # ● 預けた金減少
  #    number : 減少量
  #--------------------------------------------------------------------------
  def lose_deposit_gold(number)
    self.gain_deposit_gold(-number)
  end
  #--------------------------------------------------------------------------
  # ● 預けたアイテム取得
  #    id : ID
  #--------------------------------------------------------------------------
  def deposit_item_number(id)
    @deposit_item = [] if @deposit_item == nil
    return @deposit_item[id] != nil ? @deposit_item[id] : 0
  end
  #--------------------------------------------------------------------------
  # ● 預けたアイテム?加
  #    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
  #--------------------------------------------------------------------------
  # ● 預けたアイテム減少
  #    id    : ID
  #    number : 個?
  #--------------------------------------------------------------------------
  def lose_deposit_item(id, number)
    self.gain_deposit_item(id, -number)
  end
  #--------------------------------------------------------------------------
  # ● 預けた武器取得
  #    id : ID
  #--------------------------------------------------------------------------
  def deposit_weapon_number(id)
    @deposit_weapon = [] if @deposit_weapon == nil
    return @deposit_weapon[id] != nil ? @deposit_weapon[id] : 0
  end
  #--------------------------------------------------------------------------
  # ● 預けた武器?加
  #    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
  #--------------------------------------------------------------------------
  # ● 預けた武器減少
  #    id    : ID
  #    number : 個?
  #--------------------------------------------------------------------------
  def lose_deposit_weapon(id, number)
    self.gain_deposit_weapon(id, -number)
  end
  #--------------------------------------------------------------------------
  # ● 預けた防具取得
  #    id : ID
  #--------------------------------------------------------------------------
  def deposit_armor_number(id)
    @deposit_armor = [] if @deposit_armor == nil
    return @deposit_armor[id] != nil ? @deposit_armor[id] : 0
  end
  #--------------------------------------------------------------------------
  # ● 預けた防具?加
  #    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
  #--------------------------------------------------------------------------
  # ● 預けた防具減少
  #    id    : ID
  #    number : 個?
  #--------------------------------------------------------------------------
  def lose_deposit_armor(id, number)
    self.gain_deposit_armor(id, -number)
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Window_DepositoryCommand
#------------------------------------------------------------------------------
#  預かり所?面で、操作を選?するウィンドウです。
#==============================================================================

class Window_DepositoryCommand < Window_Selectable
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 64, 640, 64)
    self.y = 128 if $imported["HelpExtension"]
    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
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● カ?ソルの矩形更新
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if index != -1
      self.cursor_rect.set(@item_width * index, 0, @item_width, 32)
    end
  end
  #--------------------------------------------------------------------------
  # ● ヘルプテキスト更新
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(DEPOSITORY_HELP[self.index])
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Window_DepositoryGold
#------------------------------------------------------------------------------
#  預かり所?面で、金額を入力するウィンドウです。
#==============================================================================

class Window_DepositoryGold < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 128, 640, 352)
    if $imported["HelpExtension"]
      self.y = 192
      self.height = 288
    end
    @digits_max = GOLD_DIGITS
    # ?字の幅からカ?ソルの幅を計算 (0~9 は等幅と?定)
    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
  #--------------------------------------------------------------------------
  # ● 入力された金額の取得
  #--------------------------------------------------------------------------
  def price
    return @price
  end
  #--------------------------------------------------------------------------
  # ● 金額の設定
  #    np : 新しい金額
  #--------------------------------------------------------------------------
  def price=(np)
    @price = [[np, 0].max, @max].min
    redraw_price
  end
  #--------------------------------------------------------------------------
  # ● リセット
  #    type : 形式
  #--------------------------------------------------------------------------
  def reset(type)
    @price = 0
    @index = @digits_max - 1
    refresh(type)
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #    type : 形式
  #--------------------------------------------------------------------------
  def refresh(type)
    # 金額を描?
    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, "골드")
    self.contents.draw_text(0, 64, 608, 32, "예금잔고")
    if type == 0
      self.contents.draw_text(0, 128, 608, 32, "맡기는 금액")
      @max = $game_party.gold
    else
      self.contents.draw_text(0, 128, 608, 32, "꺼내는 금액")
      @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
  #--------------------------------------------------------------------------
  # ● 金額再描?
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● カ?ソルの矩形更新
  #--------------------------------------------------------------------------
  def update_cursor_rect
    x = @cursor_position + @index * @cursor_width
    self.cursor_rect.set(x, 160, @cursor_width, 32)
  end
  #--------------------------------------------------------------------------
  # ● フレ?ム更新
  #--------------------------------------------------------------------------
  def update
    super
    return unless self.active
    # 方向ボタンの上か下が押された場合
    if Input.repeat?(Input::UP) || Input.repeat?(Input::DOWN)
      $game_system.se_play($data_system.cursor_se)
      # 現在の位の?字を取得し、いったん 0 にする
      place = 10 ** (@digits_max - 1 - @index)
      n = self.price / place % 10
      self.price -= n * place
      # 上なら +1、下なら -1
      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
#------------------------------------------------------------------------------
#  預かり所?面で、預けたアイテムの一?を表示するウィンドウです。
#==============================================================================

class Window_DepositoryItem < Window_Selectable
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 128, 640, 352)
    if $imported["HelpExtension"]
      self.y = 192
      self.height = 288
    end
    self.back_opacity = 160
    self.active = false
    self.visible = false
    @column_max = 2
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # ● アイテムの取得
  #--------------------------------------------------------------------------
  def item
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #    type : 形式
  #--------------------------------------------------------------------------
  def refresh(type)
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    self.index = 0
    # アイテム?武器?防具を追加
    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
    # 項目?が 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
  #--------------------------------------------------------------------------
  # ● 項目の描?
  #    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
  #--------------------------------------------------------------------------
  # ● ヘルプテキスト更新
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Window_DepositoryNumber
#------------------------------------------------------------------------------
#  預かり所で使用する、?値入力用のウィンドウです。
#==============================================================================

class Window_DepositoryNumber < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    @digits_max = 2
    @number = 0
    # ?字の幅からカ?ソルの幅を計算 (0~9 は等幅と?定)
    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
  #--------------------------------------------------------------------------
  # ● アイテムの設定
  #    item : アイテム
  #--------------------------------------------------------------------------
  def item=(item)
    @item = item
  end
  #--------------------------------------------------------------------------
  # ● ?値の取得
  #--------------------------------------------------------------------------
  def number
    return @number
  end
  #--------------------------------------------------------------------------
  # ● ?値の設定
  #    number : 新しい?値
  #--------------------------------------------------------------------------
  def number=(number)
    @number = [[number, 0].max, @max].min
    refresh
  end
  #--------------------------------------------------------------------------
  # ● カ?ソルの矩形更新
  #--------------------------------------------------------------------------
  def update_cursor_rect
    self.cursor_rect.set(@index * @cursor_width, 32, @cursor_width, 32)
  end
  #--------------------------------------------------------------------------
  # ● リセット
  #--------------------------------------------------------------------------
  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
      # 預けている個?を描?
      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, "가지고 있는 수:#{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
      # 所持?を描?
      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, "보관소에 맡긴 수:#{having}")
    end
    refresh
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● 文字列設定
  #    string : 設定文字列
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● サイズ?更
  #    nw : 新しい幅
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● 中央移動
  #--------------------------------------------------------------------------
  def centering
    self.x = 320 - self.width / 2
    self.y = 240 - self.height / 2
  end
  #--------------------------------------------------------------------------
  # ● フレ?ム更新
  #--------------------------------------------------------------------------
  def update
    super
    return unless self.active
    # 方向ボタンの上か下が押された場合
    if Input.repeat?(Input::UP) || Input.repeat?(Input::DOWN)
      $game_system.se_play($data_system.cursor_se)
      # 現在の位の?字を取得し、いったん 0 にする
      place = 10 ** (@digits_max - 1 - @index)
      n = self.number / place % 10
      self.number -= n * place
      # 上なら +1、下なら -1
      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 Scene_Depository
  #--------------------------------------------------------------------------
  # ● メイン?理
  #--------------------------------------------------------------------------
  def main
    # スプライトセット作成
    @spriteset = Spriteset_Map.new
    # 各種ウィンドウを作成
    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
    @gold_window = Window_DepositoryGold.new
    @item_window = Window_DepositoryItem.new
    @number_window = Window_DepositoryNumber.new
    # ヘルプウィンドウを?連付け
    @command_window.help_window = @help_window
    @item_window.help_window = @help_window
    # トランジション?行
    Graphics.transition
    # メインル?プ
    loop do
      # ゲ?ム?面を更新
      Graphics.update
      # 入力情報を更新
      Input.update
      # フレ?ム更新
      update
      # ?面が切り替わったらル?プを中?
      if $scene != self
        break
      end
    end
    # トランジション準備
    Graphics.freeze
    # 解放
    @spriteset.dispose
    @dummy_window.dispose
    @help_window.dispose
    @command_window.dispose
    @gold_window.dispose
    @item_window.dispose
    @number_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● フレ?ム更新
  #--------------------------------------------------------------------------
  def update
    # ウィンドウを更新
    @dummy_window.update
    @help_window.update
    @command_window.update
    @gold_window.update
    @item_window.update
    @number_window.update
    # コマンドウィンドウがアクティブの場合: update_command を呼ぶ
    if @command_window.active
      update_command
      return
    end
    # ゴ?ルドウィンドウがアクティブの場合: update_gold を呼ぶ
    if @gold_window.active
      update_gold
      return
    end
    # アイテムウィンドウがアクティブの場合: update_item を呼ぶ
    if @item_window.active
      update_item
      return
    end
    # 個?ウィンドウがアクティブの場合: update_number を呼ぶ
    if @number_window.active
      update_number
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● フレ?ム更新 (コマンドウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_command
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $game_system.se_play($data_system.cancel_se)
      # マップ?面に切り替え
      $scene = Scene_Map.new
      return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # 決定 SE を演奏
      $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
  #--------------------------------------------------------------------------
  # ● フレ?ム更新 (ゴ?ルドウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_gold
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $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
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # 入力した金額を取得
      price = @gold_window.price
      # 金額が 0 の場合
      if price == 0
        # 決定 SE を演奏
        $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
      # ショップ SE を演奏
      $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
  #--------------------------------------------------------------------------
  # ● フレ?ム更新 (アイテムウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_item
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $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
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # 選?アイテムを取得
      @item = @item_window.item
      # 空欄の場合
      if @item == nil
        # ブザ? SE を演奏
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 個?ウィンドウのアイテムを設定
      @number_window.item = @item
      # 決定 SE を演奏
      $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
  #--------------------------------------------------------------------------
  # ● フレ?ム更新 (個?ウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_number
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $game_system.se_play($data_system.cancel_se)
      # アイテムウィンドウに切り替え
      @item_window.active = true
      @number_window.active = false
      @number_window.visible = false
      return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # 決定 SE を演奏
      $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

 

Comment '5'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6203
254 기타 횡스크롤 스크립트 한국말 번역. 15 file 백호 2009.02.21 3315
253 기타 회복으로 데미지를 받는 좀비 스크립트 7 백호 2009.02.22 2010
252 기타 홈페이지 띄우기 (VX 상관없음.) 6 KNAVE 2009.08.25 2139
251 기타 현재시간표시 33 file 코아 코스튬 2010.10.09 2529
250 기타 현재 맵BGM을 그대로 전투 BGM으로 연결 from phylomortis.com 백호 2009.02.22 1180
249 기타 한글 입력 스크립트 입니다. (vx -> xp) 23 file 헤르코스 2009.04.18 3400
248 기타 한계 돌파스크립트 8 G MAX 2009.09.03 2206
247 기타 하나더올립니다....하암........이건...렙제라네요 7 벨☆ 2010.01.23 1754
246 기타 필요 경험치 직접 정하기 9 백호 2009.02.21 1408
245 기타 필드에서 체력을 출력합니다. 4 백호 2009.02.22 1740
244 기타 필드에서 마력을 출력합니다. 백호 2009.02.22 989
243 기타 필드에서 경험치%를 표시합니다. 4 file 백호 2009.02.22 1448
242 기타 플레이어 발소리 스크립트 20 백호 2009.02.22 3108
241 기타 프리 윈도우 스크립트 (상입오두막 출처) 6 백호 2009.02.21 1449
240 기타 프레임 적용 스크립트 1 file 백호 2009.02.21 1007
239 기타 풀스크린 스크립트 2 백호 2009.02.22 1407
238 기타 폰트 자동 설치 스크립트 12 file 백호 2009.02.22 2865
237 기타 포커(Blackjack) 게임을 도입하는 스크립트 5 file 백호 2009.02.21 1675
236 기타 파노라마 스크롤 스크립트 개량판 by Guillaume777 1 백호 2009.02.22 896
235 기타 특수효과 ElseEX 스크립트 file 백호 2009.02.21 995
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13