질문과 답변

Extra Form
메뉴에 입장하면 이러한 오류가 뜨는데 무슨이유일까요
Comment '5'
  • ?
    페렐 2013.07.25 22:53
    40번째 줄에 이상이 있다는 뜻입니다.
    마땅한 해결방법이 생각나지 않으신다면 해당 스크립트를 txt로 첨부해서 올려주세요.
  • ?
    ABIS 2013.07.26 09:16
    #==============================================================================
    # ■ Window_Command
    #------------------------------------------------------------------------------
    #  일반적인 커멘드 선택을 실시하는 윈도우입니다.
    #==============================================================================

    class Window_Command < Window_Selectable
    #--------------------------------------------------------------------------
    # ● 오브젝트 초기화
    # width : 윈도우의 폭
    # commands : 커멘드 캐릭터 라인의 배열
    #--------------------------------------------------------------------------
    def initialize(width, commands)
    # 커멘드의 개수로부터 윈도우의 높이를 산출
    super(0, 0, width, commands.size * 32 + 32)
    @item_max = commands.size
    @commands = commands
    self.contents = Bitmap.new(width - 32, @item_max * 32)
    refresh
    self.index = 0
    end
    #--------------------------------------------------------------------------
    # ● 리프레쉬
    #--------------------------------------------------------------------------
    def refresh
    self.contents.clear
    for i in 0...@item_max
    draw_item(i, normal_color)
    end
    end
    #--------------------------------------------------------------------------
    # ● 항목의 묘화
    # index : 항목 번호
    # color : 문자색
    #--------------------------------------------------------------------------
    def draw_item(index, color)
    self.contents.font.color = color
    rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index])
    end
    #--------------------------------------------------------------------------
    # ● 항목의 무효화
    # index : 항목 번호
    #--------------------------------------------------------------------------
    def disable_item(index)
    draw_item(index, disabled_color)
    end
    end
  • ?
    Alkaid 2013.07.26 09:22
    기본 윈도우 클래스 말고 사용하는 스크립트를 알려주시기 바랍니다.
  • ?
    ABIS 2013.07.26 09:32
    위에것이 사용하는 스크립트입니다.

    그리고, scene_Meue 에서 새로운스크립트를 복붙하면 위에같이 오류가뜹니다.
    Scene_Meue 스크립트 보여드릴게요

    #==============================================================================
    # ■ 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 = "로드"
        @command_window = Window_Command.new(160, [s1, s2])
        @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
        # 스테이터스 윈도우를 작성
        @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
        @status_window.dispose
      end
      #--------------------------------------------------------------------------
      # ● 프레임 갱신
      #--------------------------------------------------------------------------
      def update
        # 윈도우를 갱신
        @command_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  # 세이브
            # 세이브 금지의 경우
            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_Load.new
          return
        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  # 스킬
            # 이 엑터의 행동 제한이 2 이상의 경우
            if $game_party.actors[@status_window.index]. restriction >= 2
              # 버저 SE 를 연주
              $game_system.se_play($data_system.buzzer_se)
              return
            end
            # 결정 SE 를 연주
            $game_system.se_play($data_system.decision_se)
            # 스킬 화면으로 전환하고
            $scene = Scene_Skill.new(@status_window.index)
          when 2  # 장비
            # 결정 SE 를 연주
            $game_system.se_play($data_system.decision_se)
            # 장비 화면으로 전환하고
            $scene = Scene_Equip.new(@status_window.index)
          when 3  # 스테이터스
            # 결정 SE 를 연주
            $game_system.se_play($data_system.decision_se)
            # 스테이터스 화면으로 전환하고
            $scene = Scene_Status.new(@status_window.index)
          end
          return
        end
      end
    end
    end
    end

    ==
    사용하고있는 Scene_Meue의 스크립트입니다.
  • ?
    Alkaid 2013.07.26 09:39
    메뉴명령의 갯수를 늘이거나 줄였다면 그에 맞게 해당 명령이 불러오는 장면클래스의 인덱스도 조정해야 합니다. 위의 경우는 아이템과 로드 뿐이므로 그 아래의 파티원이 없을 경우의 처리와 세이브 금지에 따른 처리를 제거해야 할 겁니다. 그리고, Window_Command는 이미 말했듯이 수정되지 않은 기본 스크립트 원본이라서 올릴 필요도 없었습니다.(기본 스크립트는 그 자체에 버그가 있거나 추가한 스크립트에 문제가 있지 않는 한 문제 없이 작동합니다)

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12447
RMXP 윈도우 7로 구동은 잘 되지만 문제가 있습니다. 1 마린레이 2011.07.23 1687
RMVXA vx ace 스크립트 관련 질문 입니다 3 네스퀵 2012.05.30 1686
RMXP RPGPX 글씨체 바꾸는 방법 4 조규상 2011.05.24 1686
RMVX 직접 캐릭터 얼굴 만들기(RPGVX)알려주세요!!! 3 전뇽 2011.01.17 1685
RMVXA 자동전투 AI패턴을 추가하는 방법 간파더 2012.05.29 1683
RMVX 그림의 표시제한 스크립트 명품항룡 2011.08.07 1683
RMVX 전투 후 이어지는 배경음 스크립트 5 크리티컬 2012.06.01 1681
RMXP 플래쉬파일 재생이 안돼요ㅠㅠㅠ file 호호홀 2011.08.17 1681
RMVX VX의 윈도우크기 조절 2 케이나인 2011.05.01 1681
RMVXA 흔들림 효과 질문 3 달밤에왈츠 2012.07.03 1680
RMVX 만렙설정법좀요 2 dklqwer123 2011.09.08 1680
RMVXA 알만툴로 미연시 같은 느낌의 대화형식 이루는 법? 2 늄늄이 2015.03.17 1679
RMXP 윈도우7에서 rpgxp쓰고있는데요 맵배치후 게임에서 문제가생기네요! 도와주세요 3 file 모험소년 2013.07.15 1679
RMVX 타일셋...... 1 hareun 2011.07.20 1679
RMVX 피하기게임에서 보스를 구현할랍니다! 1 냉혈한도라지 2011.12.06 1677
RMXP 스크립트 고수분들 부탁드립니다 ; 3 동망새 2011.11.16 1677
RMVX 프로세스 작성 실패하엿습니다..? 2 어쩌구 2011.08.15 1677
RMVX 훈덕 님이 올리신 스킬 사용 조건(번역) 사용방법 file 엿데브 2011.06.07 1677
RMVXA RPF VX ACE 타일셋 재질문 3 임벌 2013.12.03 1676
RMXP 케릭터만들고 xp에 어떻게 적용하나요? 1 오매갓 2011.12.14 1676
Board Pagination Prev 1 ... 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 ... 516 Next
/ 516