조회 수 2673 추천 수 5 댓글 10
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Extra Form




http://cafe.daum.net/rpgmake2003verhttp://f44.aaa.livedoor.jp/~ytomy/#http://f44.aaa.livedoor.jp/~ytomy/제공
#도움말 탑재 및 한글번역:ケロロ 님의 ツク-ル    닉네임 주소: http://nioting.com/
#                                  하람(RPGツク-ル)      닉네임 주소: http://cafe.daum.net/rpgmake2003ver
#보관소를 부르려면 , 이벤트 커멘드 「스크립트」로
#          call_depository
#를 실행합니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/  ◆보관소 - KGC_Depository◆
#_/----------------------------------------------------------------------------
#_/ 아이템이나 소지금을 맡길 수가 있는 가게를 작성합니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ★ 커스터마이즈 항목 ★
#==============================================================================

module KGC
  # ◆조작 윈도우의 커멘드명
  DEPOSITORY_COMMAND = [
    "돈을 맡기는",       # 돈을 맡기는
    "돈을 인출하는",     # 돈을 인출하는
    "아이템을 맡기는",   # 아이템을 맡기는
    "아이템을 꺼내는"  # 아이템을 꺼내는
  ]
  # ◆조작 윈도우의 헬프
  DEPOSITORY_HELP = [
    "돈을 맡깁니다. ",               # 돈을 맡기는
    "맡긴 돈을 인출합니다. ",     # 돈을 인출하는
    "아이템을 맡깁니다. ",           # 아이템을 맡기는
    "맡긴 아이템을 꺼냅니다. "  # 아이템을 꺼내는
  ]

  # ◆금액 지정의 자리수
  DEPOSITORY_GOLD_DIGITS = 8

  # ◆골드를 맡길 때의 메세지(헬프 윈도우)
  DEPOSIT_GOLD = "맡기는 금액을 입력해 주세요. "
  # ◆골드를 꺼낼 때의 메세지(헬프 윈도우)
  WDEPOSIT_GOLD = "꺼내는 금액을 입력해 주세요. "
  # ◆아이템을 맡길 때의 메세지(개수 윈도우)
  DEPOSIT_ITEM = "몇개 맡깁니까? "
  # ◆아이템을 꺼낼 때의 메세지(개수 윈도우)
  WDEPOSIT_ITEM = "몇개 꺼냅니까? "
end

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

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

#--------------------------------------------------------------------------
# ● 보관소 호출
#--------------------------------------------------------------------------
def call_depository
  # 플레이어의 자세를 교정
  $game_player.straighten
  # 보관소 화면으로 전환하고
  $scene = Scene_Depository.new
end

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

#==============================================================================
# ■ 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 = KGC::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(KGC::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 = KGC::DEPOSITORY_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, @number = 2, 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(KGC::DEPOSIT_GOLD)
      when 1
        # 골드 윈도우로 전환하고
        @gold_window.active = true
        @gold_window.visible = true
        @gold_window.reset(1)
        @help_window.set_text(KGC::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(KGC::DEPOSIT_ITEM)
      when 3  # 꺼내는
        @number_window.set_text(KGC::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

  • ?
    RPG대가 2005.12.13 23:49
    여쭤볼것이... 일본에서 건너온건가요?
  • ?
    쩌우2 2005.12.30 17:45
    저기요 다 읽다가는 머리가 ...
  • ?
    공솔 2006.01.18 09:56
    KGC 마스터 스크립트 가 없으면 실행이 안됩니다. 무조건 오류납니다.
  • ?
    qlqjemf11 2007.06.19 19:12
    아이템 맡길때 갯수가 늘어나는 버그있다..
  • ?
    김세훈 2008.02.19 16:08
    이거 어디에다가 집어넣어야 하나요?
    또한 아이템 보관소는 어디에??
  • ?
    김세훈 2008.03.08 10:20
    저 KGC 마스터 스크립트는 어디서 구해야 하나요?
  • profile
    은하계 2010.09.25 00:08

    KGC마스터스크립트 없어도 정상실행됩니다~

  • ?
    오호홋 2011.02.12 13:30
    와~감사해요
  • ?
    레시라무 2011.05.25 21:34
    와 감사합니다.
  • ?
    레시라무 2011.05.25 21:35
    굿

  1. 일본어 스크립트를 번역하기 좋은 번역사이트 두곳입니다

    Date2010.01.09 Category공지사항 Byruby Views22086 Votes0
    read more
  2. 스크립트 게시판 관리자' ruby ' 입니다

    Date2010.01.09 Category공지사항 Byruby Views20726 Votes0
    read more
  3. 일본 스크립트/소스 공유 포럼

    Date2010.01.05 Category공지사항 By니오티 Views22257 Votes0
    read more
  4. 게이지바 스크립트!! 최고!!

    Date2011.08.08 Category기타 By코아 코스튬 Views4255 Votes0
    Read More
  5. 이름입력 스크립트

    Date2011.07.16 Category기타 By닉네임이없습니다 Views2211 Votes0
    Read More
  6. 중복일것 같은데;; [한글 이름 입력]

    Date2011.01.05 Category기타 By꼬마쟁이 Views4644 Votes0
    Read More
  7. 상태창표시 스크립투 Ver 6.0

    Date2010.09.21 Category기타 By코아 코스튬 Views2412 Votes2
    Read More
  8. 3d 스크립트 (적용시 바로 실행가능&암호걸림)

    Date2010.06.04 Category기타 Bykjs Views4078 Votes0
    Read More
  9. Staff Roll

    Date2010.03.04 Category기타 By허걱 Views7511 Votes0
    Read More
  10. 게임 화면에 좌표 띄우기

    Date2010.01.25 Category기타 Bywindshy Views1769 Votes1
    Read More
  11. 디버깅 화면 재 구성

    Date2010.01.05 Category기타 By루시아스 Views1834 Votes0
    Read More
  12. 일어 스크립트 한글화 방법 안내

    Date2007.02.01 Category기타 By니오티 Views2572 Votes4
    Read More
  13. 어떤님이 부탁하신 온라인 같은 hud입니다

    Date2007.10.19 Category기타 By루비 Views2594 Votes2
    Read More
  14. 더욱더 간편하게! 에메스엔의 귀차니즘 탈출!

    Date2007.02.20 Category기타 By샤이닉 Views2357 Votes2
    Read More
  15. 몬스터 도감

    Date2007.02.01 Category기타 By니오티 Views2871 Votes3
    Read More
  16. 돈맡기기 시스템

    Date2007.01.31 Category기타 By히카루 Views3341 Votes2
    Read More
  17. 한글입력기

    Date2007.01.31 Category기타 By히카루 Views14281 Votes1
    Read More
  18. 레벨과 능력치 9999까지 만들기

    Date2007.01.31 Category기타 Bywindshy Views2184 Votes0
    Read More
  19. 아이템 보관소 스크립트 (KGC펌)

    Date2005.12.11 Category기타 Byケロロ 님의 ツク-ル Views2673 Votes5
    Read More
Board Pagination Prev 1 Next
/ 1

Copyright ⓒ Nioting All Rights Reserved. (since 1999)    개인정보
        

Fatal error: Cannot access property sessionController::$lifetime in /web/old/xe/modules/session/session.controller.php on line 45