질문과 답변

Extra Form

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

class Scene_Menu
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #     menu_index : 커멘드의 커서 초기 위치
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # ● 메인 처리
  #--------------------------------------------------------------------------
  def main
    # 커멘드 윈도우를 작성
    s1 = $data_system.words.item
    s2 = "스테이터스"
    s3 = "세이브"
    s4 = "게임 종료"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4])
    @command_window.index = @menu_index
    # 파티 인원수가 0 명의 경우
    if $game_party.actors.size == 0
      # 아이템, 스킬, 장비, 스테이터스를 무효화
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    # 세이브 금지의 경우
    if $game_system.save_disabled
      # 세이브를 무효로 한다
      @command_window.disable_item(4)
    end
    # 플레이 시간 윈도우를 작성
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 224
    # 보수 윈도우를 작성
    @steps_window = Window_Steps.new
    @steps_window.x = 0
    @steps_window.y = 320
    # 골드 윈도우를 작성
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
    # 스테이터스 윈도우를 작성
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    # 트란지션 실행
    Graphics.transition
    # 메인 루프
    loop do
      # 게임 화면을 갱신
      Graphics.update
      # 입력 정보를 갱신
      Input.update
      # 프레임 갱신
      update
      # 화면이 바뀌면 루프를 중단
      if $scene != self
        break
      end
    end
    # 트란지션 준비
    Graphics.freeze
    # 윈도우를 해방
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신
  #--------------------------------------------------------------------------
  def update
    # 윈도우를 갱신
    @command_window.update
    @playtime_window.update
    @steps_window.update
    @gold_window.update
    @status_window.update
    # 커멘드 윈도우가 액티브의 경우: update_command 를 부른다
    if @command_window.active
      update_command
      return
    end
    # 스테이터스 윈도우가 액티브의 경우: update_status 를 부른다
    if @status_window.active
      update_status
      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)
      # 파티 인원수가 0 명으로, 세이브, 게임 종료 이외의 커멘드의 경우
      if $game_party.actors.size == 0 and @command_window.index < 4
        # 버저 SE 를 연주
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 커멘드 윈도우의 커서 위치에서 분기
      case @command_window.index
      when 0  # 아이템
        # 결정  SE 를 연주
        $game_system.se_play($data_system.decision_se)
        # 아이템 화면으로 전환해
        $scene = Scene_Item.new
      when 1  # 스테이터스
        # 결정 SE 를 연주
        $game_system.se_play($data_system.decision_se)
        # 스테이터스 윈도우를 액티브하게 한다
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2  # 세이브
        # 세이브 금지의 경우
        if $game_system.save_disabled
          # 버저 SE 를 연주
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # 결정 SE 를 연주
        $game_system.se_play($data_system.decision_se)
        # 세이브 화면으로 전환해
        $scene = Scene_Save.new
      when 3  # 게임 종료
        # 결정 SE 를 연주
        $game_system.se_play($data_system.decision_se)
        # 게임 종료 화면으로 전환해
        $scene = Scene_End.new
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신 (스테이터스 윈도우가 액티브의 경우)
  #--------------------------------------------------------------------------
  def update_status
    # B 버튼이 밀렸을 경우
    if Input.trigger?(Input::B)
      # 캔슬 SE 를 연주
      $game_system.se_play($data_system.cancel_se)
      # 커멘드 윈도우를 액티브하게 한다
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # C 버튼이 밀렸을 경우
    if Input.trigger?(Input::C)
      # 커멘드 윈도우의 커서 위치에서 분기
      case @command_window.index     
      when 1  # 스테이터스
        # 결정 SE 를 연주
        $game_system.se_play($data_system.decision_se)
        # 스테이터스 화면으로 전환해
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end

 

일단 이게 스크립트 전문입니다.

 

어떤 분은 스테이터스 누르면 오류 있다고 하시고,

 

뭣보다 저장을 누른뒤 메뉴로 돌아가면 왠지 메뉴 맨 밑창(원래 아무것도 없어야 하는 칸)에 들어가는 오류가 생깁니다.

 

어느 부분을 수정해야 할까요?

Comment '1'
  • ?
    Alkaid 2011.02.16 17:41

    메뉴에 항목을 추가하거나 삭제할 경우, 메뉴 스크립트만 수정하면 그런 오류가 뜹니다.  Scene_Status의 update와 Scene_Save의 on_decision/on_cancel에서 메인메뉴로 돌아가는 부분의 인덱스값($scene = Scene_Menu.new(index))도 수정해 줘야 합니다.


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12448
플러그인 생성 RMMV 이 스크립트(ace) mv용으로 바꿔주실분? 3 무명시절 2020.03.10 179
턴제 전투 RMMV 적의 공격을 받았을 때 차는 tp 량 조절 3 바다에요 2020.03.10 130
스크립트 사용 RMVXA 다음 맵으로 넘어갈때 원경 고정 풀리게 하는법좀요 도르마무 2020.03.10 39
턴제 전투 RMMV rpg mv에 쉴드 스킬만들기가 너무 어려워요 2 키보드부셔라 2020.03.09 290
기타 게임찾기 왕녀의 기사 엣날에 한기억이 나서 알만툴쪽은 srpg 나름 잘만든게 잇나요? 호시노요나메 2020.03.08 94
기본툴 사용법 RMMV 조건 전투불능 스탯 11 Timeout 2020.03.07 228
에러 해결 RMVXA 캐릭터 시야에 벗어나면 이벤트가 쫒아오질 않아요 2 Wolfclaw 2020.03.07 95
기타 사이트 이용 게임다운받고싶은데 권한을 승인받아야한데요..뭔소리임?? file 프릴상어 2020.03.06 133
턴제 전투 RMMV 측면 보기 전투 중에 검을 사용하는 아군이 40M 장검으로 때리듯 원거리 공격을 합니다. 2 바다에요 2020.03.06 114
이벤트 작성 RMMV 가시 함정을 밟으면 죽게 하고 싶어요 6 file 지탁 2020.03.05 335
턴제 전투 RMVXA 적 선택시 화살표 Sa0327 2020.03.04 61
턴제 전투 RMMV 전투 중에 스킬 사용 시 사용자 이름이 뜨는 것 대신 스킬 이름과 아이콘이 어떻게 뜨게 하나요... 1 바다에요 2020.03.04 73
기본툴 사용법 RMMV 타이틀 창 위치 옮기는 방법 좀 알려주세요 1 뿔님 2020.03.03 453
한글 패치 RMVXA RPG MAKER VX ACE 한글패치 관련 문의드립니다ㅠ 2 쇠창살 2020.03.02 462
스크립트 작성 RMVXA 게임 도중 타이틀 bgm 변경 ㄷㄲㅇ 2020.03.01 125
기타 RMVXA 사운드파일 추출 2 한들 2020.02.29 212
이벤트 작성 RMMV 일정한 스킬 사용 후 일정 턴 뒤에 캐릭터가 디버프를 받는 이벤트는 어떻게 해야하나요 2 Bigorca 2020.02.29 89
기타 RMMV 패럴랙스를 사용하려 하는데 캐릭터가 안 움직여요 급처분 2020.02.28 65
스크립트 사용 RMXP 컨트롤 누를시 맵통과가됩니다. 1 별의커비DX 2020.02.28 67
스크립트 사용 RMMV 패럴랙스 맵핑에서 그림이 캐릭터 위로 표시되는 오류 아방스여 2020.02.28 138
Board Pagination Prev 1 ... 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 ... 516 Next
/ 516