질문과 답변

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 12391
RMMV NPC를 반투명으로 만드는 방법 2 이깅 2018.03.11 109
스크립트 추천 RMVXA 지역(Region)을 이용하여 타일셋을 놓지 않고도 통행가능하게 하는 방법이 있나요? yoyo1515 2019.07.14 109
툴선택 캐릭터 혼자 이동시킬수 잇는 시스템 커맨드? 2 하루0117 2018.06.04 109
RMVXA 스킬 툴셋에 관련하여 2 RPGvvxx 2016.03.26 109
RMXP 특정 장비아이템을 착용할 경우 기술 마나소모량이 줄어드는 시스템 알중: 2016.07.13 109
스크립트 작성 RMMV 조건분기의 이벤트 접근 스크립트 어떻게 쓰나요? 5 file hurakan 2021.07.14 108
플러그인 사용 RMMV 이분의 플러그인 사용법좀.. 백월화(白月華) 2022.07.22 108
이벤트 작성 RMMV 움직임에 따라 바뀌는 스프라이트를 만들고 있는데... 1 file 무명시절 2021.02.12 108
플러그인 사용 RMMV 파판 7처럼 전투중에 3D모델이 등장하게 할 수 없나요? 5 JDG 2020.09.15 108
기타 RMVXA 엔딩 스크롤 구현 관련 질문 2 독도2005 2020.01.28 108
스크립트 추천 RMMV 적의 능력치를 변수로 설정하고 싶습니다. 2 레기우스州 2020.09.07 108
플러그인 사용 RMMV 경험치를 수동으로 일일이 설정할 수 있는 플러그인을 구하고 싶습니다 2 코코아밀크 2019.05.04 108
RMXP 오프닝 apple0923 2018.09.23 108
RMMV 파티상태에서 전투에 나오지 않는 방법 4 만죠메군 2018.08.25 108
RMMV 변수 셀렉터와 스위치 셀렉터 5 file 에어컨사줘 2018.07.23 108
RMXP rpg xp 테스트할때 전혀 움직임이 없습니다 4 발릴랄로 2017.08.17 108
RMMV MV에서 스킬을 쓸 때 스킬네임을 먼저 뜨게.. 조하루 2016.07.17 108
RMVXA [해결완료]아이템 클래스 제한 스크립트에 대해서 질문있습니다. 2 KuKuKu 2017.03.19 108
RMVX 알려주세요 3 쯔꾸르만들껀데 2015.12.10 108
RMVXA 해상도 변경시 이벤트가 안보이는 문제.. file NaNuyu 2016.05.08 108
Board Pagination Prev 1 ... 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 ... 516 Next
/ 516