질문과 답변

Extra Form
srpg

버튼B를 (키보드상 x)
눌러도 창이 안닫혀 커맨드 윈도우 선택지에서 
명령을 하나 늘려서 닫으려 합니다.
'when 2 # 취소' 어떤 명령어가 들어가야 
작동을 하게 될까요? 아니면 종료 처리쪽의 문제일까요?
혹 다른 방법이 있으시면  가르쳐주십쇼

class TSrpg_Edit_Scene < Scene_Base
  #--------------------------------------------------------------------------
  # ● 공개 인스턴스 변수
  #--------------------------------------------------------------------------
  attr_reader :member_max
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #--------------------------------------------------------------------------
  def initialize(map_id)
    @map_id = map_id
    if $data_mapinfos[map_id].name =~ TSRPG::Pattern::SRPG
#    if $data_mapinfos[$game_map.map_id].name =~ TSRPG::Pattern::SRPG
      @member_max = $1.to_i
    end
    
  end
  #--------------------------------------------------------------------------
  # ● 개시 처리
  #--------------------------------------------------------------------------
  def start
    super
    $game_temp.srpg_member = []       # 부대 배열의 초기화
    # 자동전투 캐릭터를 부대에 추가
#    for i in 0...$game_party.members.size
    for i in 0...$game_party.battle_members.size
      if $game_party.members[i].auto_battle and $game_temp.srpg_member.size < @member_max
        $game_temp.srpg_member.push(i)
      end
    end
    # 맵 ID에 강제 출격 설정되어 있는 캐릭터를 부대에 추가
    if TSRPG::Options::MAP_ACTOR[@map_id] != nil
#      for i in 0...$game_party.members.size
      for i in 0...$game_party.battle_members.size
        if TSRPG::Options::MAP_ACTOR[@map_id].include?($game_party.members[i].id)
          $game_temp.srpg_member.push(i)
        end
      end
    end
    create_menu_background            # 배경의 작성
    @help_window = Window_Help.new
    create_command_window
    @character_window = TRts_Window_Character.new(272, 56, 272, 360, @map_id)
    @character_window.help_window = @help_window
    @status_window = TRts_Window_Status.new(0, 136, @map_id)
  end
  #--------------------------------------------------------------------------
  # ● 커맨드 윈도우의 작성
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = "부대편성"
    s2 = "출격"
    s3 = "취소"
    @command_window = TRts_Window_Command.new(272, [s1, s2, s3])
    @command_window.index = 0
    @command_window.y = 56
    @command_window.active = true
    @command_window.help_window = @help_window
  end
  #--------------------------------------------------------------------------
  # ● 종료 처리
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @command_window.dispose
    @character_window.dispose
    @status_window.dispose
    @actor_window.dispose if @actor_window != nil
    end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    @status_window.update
    if @actor_window != nil
      update_actor_selection
    elsif @character_window.active
      update_character_selection
    else
      update_command_selection
    end
  end
  #--------------------------------------------------------------------------
  # ● 부대 윈도우의 갱신
  #--------------------------------------------------------------------------
  def update_character_selection
    @character_window.update
    if Input.trigger?(Input::A)   # 액터 스테이터스를 표시
      Sound.play_decision
      @character_window.active = false
#      @actor_window = Window_Status.new($game_party.members[@character_window.index])
      @actor_window = Window_Status.new($game_party.battle_members[@character_window.index])
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      @command_window.active = true
      @character_window.active = false
      @character_window.index = -1
    elsif Input.trigger?(Input::C)
      if $game_temp.srpg_member.include?(@character_window.index)
        # 미리 등록되어 있던 멤버라면 제외한다. 강제출격 멤버는 제외할 수 없다
#       if $game_party.members[@character_window.index].auto_battle or
#          (TSRPG::Options::MAP_ACTOR[@map_id] != nil and
#          TSRPG::Options::MAP_ACTOR[@map_id].include?($game_party.members[@character_window.index].id))
       if $game_party.battle_members[@character_window.index].auto_battle or
          (TSRPG::Options::MAP_ACTOR[@map_id] != nil and
          TSRPG::Options::MAP_ACTOR[@map_id].include?($game_party.battle_members[@character_window.index].id))
          Sound.play_buzzer
        else
          Sound.play_cancel
          $game_temp.srpg_member.delete(@character_window.index)
        end
      else
        # 미등록 상태라면 등록, 인원수 한계라면 등록하지 않는다
        if $game_temp.srpg_member.size == @member_max
          Sound.play_buzzer
        else
          Sound.play_decision
          $game_temp.srpg_member.push(@character_window.index)
        end
      end
      # 윈도우의 갱신
      @character_window.refresh
      @status_window.refresh
    end
  end
  #--------------------------------------------------------------------------
  # ● 커맨드 윈도우의 갱신
  #--------------------------------------------------------------------------
  def update_command_selection
    @command_window.update
    if Input.trigger?(Input::B)
      if TSRPG::Options::CANCEL_EDIT
        Sound.play_cancel
        $game_temp.srpg_member = nil
        $scene = Scene_Map.new
      else
        Sound.play_buzzer
      end
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0    # 부대편성
        Sound.play_decision
        @command_window.active = false
        @character_window.active = true
        @character_window.index = 0
      when 1    # 출격
        if $game_temp.srpg_member.size > 0
          Sound.play_decision
          $game_temp.srpg_member.sort!
          $scene = Scene_Map.new
          return
        else
when 2 (여기에 넣는거 아닐까요?)
          Sound.play_buzzer
        end
      end
    end
    end
  #--------------------------------------------------------------------------
  # ● 액터 스테이터스 윈도우의 갱신
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B) or Input.trigger?(Input::C)
      Sound.play_cancel
      @actor_window.dispose
      @actor_window = nil
      @character_window.active = true
    elsif Input.trigger?(Input::L)
      Sound.play_cursor
      @character_window.index -= 1
      if @character_window.index < 0
#        @character_window.index = $game_party.members.size - 1
        @character_window.index = $game_party.battle_members.size - 1
      end
      @actor_window.dispose
#      @actor_window = Window_Status.new($game_party.members[@character_window.index])
      @actor_window = Window_Status.new($game_party.battle_members[@character_window.index])
    elsif Input.trigger?(Input::R)
      Sound.play_cursor
      @character_window.index += 1
#      if @character_window.index >= $game_party.members.size
      if @character_window.index >= $game_party.battle_members.size
        @character_window.index = 0
      end
      @actor_window.dispose
#      @actor_window = Window_Status.new($game_party.members[@character_window.index])
      @actor_window = Window_Status.new($game_party.battle_members[@character_window.index])
    end
  end
end

Comment '2'
  • profile
    습작 2012.03.26 13:55
          case @command_window.index
          when 0    # 부대편성
            Sound.play_decision
            @command_window.active = false
            @character_window.active = true
            @character_window.index = 0
          when 1    # 출격
            if $game_temp.srpg_member.size > 0
              Sound.play_decision
              $game_temp.srpg_member.sort!
              $scene = Scene_Map.new
              return
            else
              Sound.play_buzzer
            end
          when 2 (여기에.)

          end

    참고로, SRPG 첫번째 버전에서 취소로 나가지 못하게 한 까닭은 출격씬 자체에서 맵 이동 및 출격을 해주는 것이 아니기 때문입니다.
    사실상 출격 커맨드가 해당 출격씬을 닫는 수준이고, 해당 씬이 닫히고 나면 이벤트로 맵이동이 되어 전투가 시작되는 것이지요.
    SRPG2나 SRPG3D 버전을 사용하는 것을 권장합니다.
  • ?
    minibalrog 2012.03.26 18:54

    넵 감사합니다 ^^*


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12448
RMVX 이벤트가 적용이 안되요. 2 file 2013.01.09 650
RMVX NPC가 등장할때 질문입니다. 6 2013.01.09 1002
RMVX 미치겠습니다....... 3 file 우여헌 2013.01.09 905
RMVX 제가 npc가 마음에 드는게 없어서 그런지..... 3 진기하 2013.01.11 668
RMVX 캐릭터 주위빼고 어둡게나오게하는법 2 file RigArt 2013.01.12 1078
RMVX 질문 아이템 획득 밑 이벤트 질문 2 호돌아 2013.01.14 1092
RMVX 이렇게 전투스킬사용시 스킬마다 이미지가 나타나게하는 방법좀 알려주세요... 3 file 누룽누룽 2013.01.15 1115
RMVX RPG VX에서 몬스터칩 삽입하는 방법좀요 7 file SimSimiRPG 2013.01.16 2937
RMVX 게임에서 몬스터가 주인공이 장소이동을 하면 몬스터도 같이 장소이동 할순 없나요? 2 SimSimiRPG 2013.01.17 746
RMVX 아이템을 줍는방법,아이템을 쓰는 방법 2 윤스 2013.01.17 802
RMVX 조건분기로 문열때 조건이 맞지않을경우 문이 멈추는 현상 16 포쿰 2013.01.18 540
RMVX 사용하는 갑옷에 따른 보행그래픽 변경 4 LLTL 2013.01.19 593
RMVX 얼굴 그래픽 1 file 지라쿠 2013.01.19 920
RMVX 몬스터 사진 2 많이제작 2013.01.21 575
RMVX RPG M VX ACE 의 레이어 구분 1 권예준 2013.01.21 903
RMVX 뜬금포 질문이지만 rgss2a 이 파일이 안보입니다 3 읭여류마력 2013.01.21 1466
RMVX NPC가 이벤트를 작성한 대로 움직이지 않습니다. [수정] 5 file 제이엘 2013.01.23 866
RMVX 세이브를 금지 시키려고 하는데요... ㅠ 9 고무고무열매 2013.01.24 698
RMVX 케릭터 그래픽 잘림 (단일 케릭터 적용방법) 6 file 떡좀쪄봐 2013.01.25 779
RMVX C버튼을 누르면 점프가 되게 만들었는데...Z를 눌러야 점프가 됩니다 4 file 춰억헐릿 2013.01.29 752
Board Pagination Prev 1 ... 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ... 127 Next
/ 127