질문과 답변

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 12389
RMXP RPG XP 맵질문~!! 3 shalwk 2011.10.25 2153
RPG XP 리젠방법 !! 1 백백이 2011.04.14 1722
RMXP rpg xp 동영상 찍는법 흙흙흙 2014.03.31 706
RMXP rpg xp 대화창이랑 폰트 어떻게 바꾸나요? 1 매콤한빨간모자 2012.09.08 3997
사이트 이용 RPG XP 다운로드땜에ㅜㅜ 1 전사 2012.02.03 3955
사이트 이용 RPG XP 다운로드 하는 곳이나 방법 좀 알려주새요.^^ 3 file qkrrudwls945 2011.07.01 2768
사이트 이용 RPG XP 다운로드 방법 1 맥시멈 2011.12.06 2452
RMXP RPG XP 는 화면창이 원래 작나요? 1 AVANGS주니 2013.10.11 1424
RMXP RPG XP 기본 전투때 무기를 안끼면 공격력이 0이에요. 1 아미상 2010.12.14 741
RMXP rpg xp 글자색 변경 12 호오라그렇군여 2014.05.08 1452
RMXP rpg xp 공격할때모션 1 조석을조준을조준 2012.10.08 2276
RMXP RPG XP 게임을 역전재판 처럼 만드는법 5 RPGXPMAN 2011.01.05 1752
RMXP RPG XP 게임실행 오류... 도와주세요!!! 1 file 블라블라 2012.01.08 4825
RMXP rpg xp 게임 실행 6 file SerenJU 2013.02.22 3048
RMXP RPG XP 게임 시작하기 전에 안내문 만드는데 스크립트 사용에 대해 4 허곰탱 2014.03.04 993
툴선택 RPG XP VS RPG VX ACE 5 Mr멜론 2013.10.24 2095
RMXP rpg xp rpg vx 캐릭터 질문 2 레고 2012.10.02 5313
RMXP rpg xp bgm me가 전혀 들리지 않네요 ㅠㅅㅠ 3 진공청소기 2016.02.17 194
RMXP rpg xp ASX를 기반으로 만드는법 1 티케이 2011.01.31 511
RMXP RPG XP 2003(?)에서 이벤트로 거울을 만들었습니다만, 거울을 몇번 엔터키를 누르면 갑자기 다른말이 나오게 하고 싶습니다 1 비두 2016.07.10 254
Board Pagination Prev 1 ... 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 ... 516 Next
/ 516