질문과 답변

Extra Form

module Vocab
  def self.formation
    '대열 변경'
  end
end
class Game_Party < Game_Unit
  def swap_order(index1, index2)
    @actors[index1], @actors[index2] = @actors[index2], @actors[index1]
    $game_player.refresh
  end
end
class Window_MenuStatus < Window_Selectable
  attr_reader   :pending_index
  def initialize(x, y)
    if $scene.is_a?(Scene_Menu)
      super(x, y, 384, 416)
    else
      super(x, y, 384, Graphics.height)
    end
    @pending_index = -1
    refresh
    self.opacity = 0
    self.active = false
    self.index = -1
  end
  def refresh
    self.contents.clear
    @item_max = 4
    for i in 0...@item_max
      break if i >= $game_party.members.size
      draw_item_background(i)
        x = 0
        y = i * contents.height / @item_max
      draw_actor_face($game_party.members[i], x + 2, y + 2)
      draw_actor_name($game_party.members[i], x + 104, y + 13)
      draw_actor_class($game_party.members[i], x + 224, y + 13)
      draw_actor_level($game_party.members[i], x + 104, y + 37)
      draw_actor_state($game_party.members[i], x + 104, y + 61, 96, 24)
      draw_actor_hp($game_party.members[i], x + 224, y + 37, 120)
      draw_actor_mp($game_party.members[i], x + 224, y + 61, 120)
    end
  end
  def draw_actor_name(actor, x, y)
    self.contents.font.color = hp_color(actor)
    self.contents.draw_text(x, y, 112, 24, actor.name)
  end
  def draw_actor_class(actor, x, y)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y, 112, 24, actor.class.name)
  end
  def draw_actor_level(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, 24, Vocab::level_a)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 32, y, 58 - 32, 24, actor.level, 2)
  end
  def draw_actor_state(actor, x, y, width = 96, height = 24)
    count = 0
    for state in actor.states
      draw_icon(state.icon_index, x + 24 * (count % (width / 24)), y + 24 * (count / (width / 24)))
      count += 1
      break if (24 * count > width * (height/24) - 24)
    end
  end
  def draw_face(face_name, face_index, x, y, size = 96)
    bitmap = Cache.face(face_name)
    rect = Rect.new(0, 0, 0, 0)
    rect.x = face_index % 4 * 96 + (96 - 92) / 2
    rect.y = face_index / 4 * 96 + (96 - 92) / 2
    rect.width = 92
    rect.height = 92
    self.contents.blt(x, y, bitmap, rect)
    bitmap.dispose
  end
  def update_cursor
    if @index < 0
      self.cursor_rect.empty
    elsif @index < @item_max
      x = 0
      y = @index * contents.height / @item_max
      self.cursor_rect.set(x, y, contents.width, contents.height/@item_max)
    elsif @index >= 100
      x = 0
      y = (@index - 100) * contents.height/@item_max
      self.cursor_rect.set(x, y, contents.width, contents.height/@item_max)
    else
      self.cursor_rect.set(0, 0, contents.width, contents.height)
    end
  end
  def draw_item_background(index)
    if index == @pending_index
      contents.fill_rect(self.cursor_rect, pending_color)
    end
  end
  def pending_color
    windowskin.get_pixel(80, 80)
  end
  def pending_index=(index)
    last_pending_index = @pending_index
    @pending_index = index
    refresh
  end
end
class Window_MenuGold < Window_Base
  def initialize(x, y, width, height)
    super(x, y, width, height)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, self.contents.width - 8, WLH, '소지금')
    cx = contents.text_size(Vocab::gold).width
    self.contents.font.color = normal_color
    self.contents.draw_text(4, self.contents.height-WLH, self.contents.width - 8-cx-2, WLH, $game_party.gold, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(4, self.contents.height-WLH, self.contents.width - 8, WLH, Vocab::gold, 2)
  end
end
class Window_Timer < Window_Base
  def initialize(x, y, width, height)
    super(x, y, width, height)
    refresh
  end
  def update
    if @total_sec != Graphics.frame_count / Graphics.frame_rate
      refresh
    end
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, self.contents.width - 8, WLH, '시간')
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    time_string = sprintf('%02d:%02d:%02d', hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, self.contents.height-WLH, self.contents.width - 8, WLH, time_string, 2)
  end
end
class Window_Location < Window_Base
  def initialize(x, y, width, height)
    super(x, y, width, height)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, self.contents.width - 8, WLH, '위치')
    self.contents.font.color = normal_color
    map = load_data('Data/MapInfos.rvdata')
    self.contents.draw_text(4, self.contents.height-WLH, self.contents.width - 8, WLH, map[$game_map.map_id].name, 2)
  end
end
class Window_MenuCommand < Window_Command
  def draw_item(index, enabled = true)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(rect, @commands[index], 0)
  end
end
class Scene_Menu < Scene_Base
  def start
    super
    create_menu_background
    create_background
    create_command_window
    @gold_window = Window_MenuGold.new(384, 360, 160, 56)
    @timer_window = Window_Timer.new(384, 304, 160, 56)
    @location_window = Window_Location.new(384, 248, 160, 56)
   @status_window = Window_MenuStatus.new(0, 0)
  end
  def create_background
    @menu_background = Sprite.new
    @menu_background.bitmap = Cache.system('menu_bg')
  end
  def dispose_background
    @menu_background.bitmap.dispose
    @menu_background.dispose
  end
  def terminate
    super
    dispose_menu_background
    dispose_background
    @command_window.dispose
    @gold_window.dispose
    @timer_window.dispose
    @location_window.dispose
    @status_window.dispose
  end
  def update
    super
    update_menu_background
    @command_window.update
      @gold_window.update
      @timer_window.update
      @location_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
   @command_window = Window_MenuCommand.new(160, [Vocab::item,Vocab::skill,Vocab::equip,Vocab::status,Vocab::formation,Vocab::save,Vocab::game_end])
   @command_window.x = 384
   @command_window.y = 0
   @command_window.height = 200
    @command_window.index = @menu_index
    if $game_party.members.size == 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_party.members.size < 2
      @command_window.draw_item(4, false)
    end
    if $game_system.save_disabled
      @command_window.draw_item(5, 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 [5,6].include?(@command_window.index)
      Sound.play_buzzer
      return
    elsif $game_system.save_disabled and @command_window.index == 5
      Sound.play_buzzer
      return
    end
      Sound.play_decision
      case @command_window.index
      when 0
          $scene = Scene_Item.new
      when 1
          start_actor_selection
      when 2
          start_actor_selection
      when 3
          start_actor_selection
      when 4
          start_actor_selection
      when 5
          $scene = Scene_File.new(true, false, false)
      when 6
          $scene = Scene_End.new
    end
    end
  end
  def update_actor_selection
    if Input.trigger?(Input::B)
      if @command_window.index == 4
        if @status_window.pending_index >= 0
          @status_window.pending_index = -1
          Sound.play_cancel
        else
          Sound.play_cancel
          end_actor_selection
        end
      else
        Sound.play_cancel
        end_actor_selection
      end
    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)
       when 4
          if @status_window.pending_index >= 0
            $game_party.swap_order(@status_window.index, @status_window.pending_index)
            @status_window.pending_index = -1
            @status_window.refresh
          else
            @status_window.pending_index = @status_window.index
          end
       end
      end
    end
  end
end
class Scene_Item < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(0)
  end
end
class Scene_Skill < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(1)
  end
end
class Scene_Equip < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(2)
  end
end
class Scene_Status < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(3)
  end
end
class Scene_End < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end
class Scene_File < Scene_Base
  def return_scene 
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end

를 했는데 계속 297번째 줄에서 syntax error가 뜨네요 뭐가 문제죠???

Comment '3'
  • profile
    습작 2015.11.01 17:34
    최근 발션된 문제 해결한다고 수정했더니 다른 곳에서 다시 문제가 생겼군요!!
    재점검하고 오류 수정되는 대로 댓글로 알려드릴게요. :)
  • profile
    습작 2015.11.01 17:50
    해당 문제되는 부분을 수정하여 버전업 하였습니다. 혹여 문제 재 발생시 피드백 부탁드립니다. :)
  • profile
    습작 2015.11.01 20:49
    새로운 버그 발견으로 인해 버전업 되었습니다. 추가적인 분제 발생시 피드백 부탁드려요. :)

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 13187
RMVXA 게임중 특정한 상황에서 rgss3 player 오류 file vivid 2015.11.01 2044
RMVX 습작님의 rpg maker vx eme 사용 중 문제 3 cutyperson 2015.11.01 198
라이선스 기타 다른 작품에서 사용된 파일(사진, SE 등)을 사용해도 괜찮을까요? 1 종이맛쿠키 2015.11.01 136
RMVXA 떠났던 장소를 기억하는 법! 2 뉴리키 2015.11.01 256
RMVXA 주석 'Light'를 지우고 싶어요! file 뉴리키 2015.11.01 121
툴선택 무슨 툴이 좋을까요? 3 cutyperson 2015.10.31 223
RMVX 타일 지우기 1 cutyperson 2015.10.31 501
RMMV if 비교문 만드는 법? (제발 도와주세요.) RPG 메이커 MV 날짜 비교 2 file 가시밭 2015.10.31 554
기타 RGSS가 뭐죠? 2 cutyperson 2015.10.31 308
RMMV 액션을 마우스로 옮기는 플러그인이 있나요? 1 file 가시밭 2015.10.31 165
RMMV mv 원경맵 만들고 싶은데 parallaxes 맵 고정하는 방법좀 가르쳐주세요 2 삡코 2015.10.31 386
RMMV 화면에 변수를 간단하게 출력하고 싶습니다 2 IZEN 2015.10.31 205
RMMV 선택지 마우스오버시 대화창에 설명이 나오는 시스템 1 가시밭 2015.10.30 180
RMVXA 필요없는 메뉴 삭제하는법 1 아쳐 2015.10.30 258
RMVXA 손전등 이벤트좀 도와주세요 1 file 콜라아아 2015.10.30 205
RMVXA 무기의 능력치 조정방법 4 종이상자. 2015.10.29 135
RMMV 순서대로 버튼을 눌러야지만 이벤트가 실행되게 하려면? 3 file 다연 2015.10.29 156
RMVXA 체력바 표시 스크립트 수정 프크 2015.10.29 200
기타 아이콘셋 투명화 질문 2 file 체력을가르다. 2015.10.29 251
RMMV 상태이상에 추가효과를 넣고 싶습니다 스네이쿠 2015.10.27 132
Board Pagination Prev 1 ... 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 ... 517 Next
/ 517