질문과 답변

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 12387
RMVX RPGVX 조건분기 질문 1 슬 라임 2012.03.30 2277
RMVX 캐릭이 3 초보닼ㅋㅋㅋㅋㅋㅋㅋㅋ 2012.03.30 2225
RMXP 메뉴화면에 새로운 메뉴를 추가할 수가 있을까요...? 5 file 하진 2012.03.30 2392
RMVX 스킬쿨타임 하는방법 자세히 가르쳐주세요 2 냐catch 2012.03.30 2191
RMXP VX스크립트를 XP스크립트로 바꾸기 말짱꽝이지롱 2012.03.30 2112
RMVX 아이미르님의 SRPG 스크립트에서 1 우왕ㅋ 굳ㅋ 2012.03.30 2314
RMXP 일괄변수를 나타내는 스크립트 언어 질문!! 까멸 2012.03.29 2535
RMVX 스타팅 오프닝 어떻게 만들어요? J.I.S 2012.03.29 2295
RMVXA 액터 그래픽 변경이 안되요 저만 그런가요? 2 욕쟁이스님 2012.03.28 2159
RMVX 액터 미지의 치환과 사용자가 캐릭터 선택에대하여 1 minibalrog 2012.03.27 2066
RMVX 엑알사용하고 스킬만들고사용시에 2 냐catch 2012.03.26 2177
RMXP se반복하는 스크립트는 없을까요? 2 CJYG* 2012.03.26 2134
RMVX 페이스칩 만들기 1 우파룸파 2012.03.26 2260
RMVX 몬스터 능력치중에 회복량에 대해서... 1 file 이카루스 2012.03.26 1763
RMVXA 데이터베이스 타일셋 모드에 vx호환은 무엇인가요? 1 김놈똥 2012.03.26 2329
RMVX SRPG 부대편성씬 닫아주세요 2 minibalrog 2012.03.26 2425
RMVX 자동으로 세이브, 로드 되는 스크립트 급해요!! 4 트러리 2012.03.26 2258
RMVXA ACE에서 VX 스크립트 못쓰나요? 2 Karyats 2012.03.26 2360
RMVXA 알만툴 vx ace의 스크립트 오류 2 file 거울의전설 2012.03.25 2684
RMVX rpg vx스크립트의 기본문법좀가르쳐주세요 2 냐catch 2012.03.25 1961
Board Pagination Prev 1 ... 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 ... 516 Next
/ 516