질문과 답변

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 12387
RMVX 스크립트로 세이브하기 아키Ra 2016.06.17 146
RMVX RPG VX 스크립트 문자열 비교 싸패 2016.06.13 86
RMVX 실제 플레이 하고있는 날짜 출력 2 아키Ra 2016.06.13 169
RMVX 공포게임처럼 시야를 주인공에 두는법 2 Elucid 2016.06.11 947
RMVX 플레이어가 어떤 대상에 부딫히고 대상이 제거되는 법 1 SteinsGate 2016.06.08 114
RMVX 상태변화:공격력하락 등 수치는 어디서 수정하나요? 싸패 2016.06.04 60
RMVX 문장 나오게 하는 스크립트 좀 알 수 있을까요? RMVX 싸패 2016.06.03 111
RMVX 윈도우 업데이트 이후 생긴문제.. 듀라듀라셀 2016.05.24 94
RMVX rpg 받아서 하는데 bgm 이 안나오네 쿠라카케 2016.05.22 157
RMVX 스크립트를 보고 쓰게됬는데.. 2 아키Ra 2016.05.18 153
RMVX RPG VX로 플레이 후 강제종료 이벤트 가능한가요? 민유일 2016.05.06 135
RMVX 아이템상자나 상점에서 여러 아이템을 동시에 획득이나 판매 가능하게 할수있나요. 1 thentlr 2016.04.26 152
RMVX 단간론파 동인 게임 제작을 시도해보고 싶은데... safsdrt455 2016.04.21 402
RMVX VX 캐릭터 생성사이트가 막혔어요 file Leonis 2016.04.13 195
RMVX 문열고 자동으로 닫히는 방법 4 file 두빢 2016.04.10 247
RMVX 사진 스크립트 질문이요 1 겜웅이 2016.03.31 105
RMVX 사용하기 쉬운 액알좀 알려주세요 ㅠㅠ 1 게임을만들자! 2016.03.29 248
RMVX rpg vx 프로젝트 파일 1 시로오니1 2016.03.27 153
RMVX 랜덤 카운트 할 줄 아시는분? 2 에드문드 2016.03.25 137
RMVX 캐릭터칩 짤림 1 시로오니1 2016.03.14 152
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 127 Next
/ 127