RMVX

메뉴 스크립트 관련 오류입니다.

by 으아아 posted Jan 07, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

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

습작님이 올려주신 ESG를 사용하다가 직접 수정을 해보았습니다.

그러나 오류가 나더군요.

오류는 55번째줄이라는데 스크립트는 잘 모르는데다 또 오류가 날 것 같아서 올려봅니다.

전문 올립니다.

(기본 RGSS2에 있는 Scene Menu입니다.)



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

# ■ Scene_Menu

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

# 메뉴 화면의 처리를 실시하는 클래스입니다.

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


class Scene_Menu < Scene_Base

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

  # ● 오브젝트 초기화

  #     menu_index : 커멘드의 커서 초기 위치

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

  def initialize(menu_index = 0)

    @menu_index = menu_index

  end

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

  # ● 개시 처리

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

  def start

    super

    create_menu_background

    create_command_window

    @gold_window = Window_Gold.new(0, 360)

    @status_window = Window_MenuStatus.new(160, 0)

  end

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

  # ● 종료 처리

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

  def terminate

    super

    dispose_menu_background

    @command_window.dispose

    @gold_window.dispose

    @status_window.dispose

  end

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

  # ● 프레임 갱신

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

  def update

    super

    update_menu_background

    @command_window.update

    @gold_window.update

    @status_window.update

    if @command_window.active

      update_command_selection

    elsif @status_window.active

      update_actor_selection

    end

  end

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

  # ● 커멘드 윈도우의 작성

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

  def create_command_window

    s1 = Vocab::item

    s2 = game_end

    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])

    @command_window.index = @menu_index

    if $game_party.members.size == 0          # 파티 인원수가 0 명의 경우

      @command_window.draw_item(0, false)     # 아이템을 무효화

      @command_window.draw_item(1, false)     # 스킬을 무효화

      @command_window.draw_item(2, false)     # 장비를 무효화

      @command_window.draw_item(3, false)     # 스테이터스를 무효화

    end

    if $game_system.save_disabled             # 세이브 금지의 경우

      @command_window.draw_item(4, false)     # 세이브를 무효화

    end

  end

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

  # ● 커멘드 선택의 갱신

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

  def update_command_selection

    if Input.trigger?(Input::B)

      Sound.play_cancel

      $scene = Scene_Map.new

    elsif Input.trigger?(Input::C)

      if $game_party.members.size == 0 and @command_window.index < 4

        Sound.play_buzzer

        return

      elsif $game_system.save_disabled and @command_window.index == 4

        Sound.play_buzzer

        return

      end

      Sound.play_decision

      case @command_window.index

      when 0      # 아이템

        $scene = Scene_Item.new

      when 1      # 게임 종료

        $scene = Scene_End.new

      end

    end

  end

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

  # ● 액터 선택의 개시

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

  def start_actor_selection

    @command_window.active = false

    @status_window.active = true

    if $game_party.last_actor_index < @status_window.item_max

      @status_window.index = $game_party.last_actor_index

    else

      @status_window.index = 0

    end

  end

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

  # ● 액터 선택의 종료

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

  def end_actor_selection

    @command_window.active = true

    @status_window.active = false

    @status_window.index = -1

  end

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

  # ● 액터 선택의 갱신

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

  def update_actor_selection

    if Input.trigger?(Input::B)

      Sound.play_cancel

      end_actor_selection

    elsif Input.trigger?(Input::C)

      $game_party.last_actor_index = @status_window.index

      Sound.play_decision

      case @command_window.index

      when 1  # 스킬

        $scene = Scene_Skill.new(@status_window.index)

      when 2  # 장비

        $scene = Scene_Equip.new(@status_window.index)

      when 3  # 스테이터스

        $scene = Scene_Status.new(@status_window.index)

      end

    end

  end

end