질문과 답변

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 12391
RMVX srpg에서 마우스 조작 2 SIES 2015.07.01 158
RMVX SRPG에서 <boss><guard>의 의미를 잘 모르겠습니다 3 악셀투르 2011.06.23 823
RMVX SRPG에 대해 질문드립니다. 3 팔공산반달곰 2010.12.09 1271
기본툴 사용법 기타 srpg스튜디오로 멀티 플레이가 가능할까요? 자유와바람 2019.11.05 98
RMVX SRPG스크립트에 내장되어 있던 스킬CP제 관련으로 도움을 요청합니다 액셀 2011.10.06 1158
RMVX srpg만들다가 1 livea 2015.03.15 178
RMVX srpg2 스크립트의 파티인원증가 file SIES 2015.07.07 151
RMVXA SRPG, 회전전투메뉴 시스탬을 만들고자 합니다. 도와주세요! 6 file mintory 2015.08.05 319
RMXP SRPG 형식을 만드려고 합니다! 1 밀티슈 2017.02.26 228
RMVXA srpg 한글화 된 파일없나요? 1 ky2399 2012.03.01 2248
RMVXA srpg 컨버터 사용자 인데요 걷다가 전투걸려서 적이 먼저 아군발견(습격) 없엘수있나요 5 안경포스 2012.08.07 1038
RMXP SRPG 컨버터 XP 스크립트 스킬 오류에 관해서. 3 file 현문 2013.01.14 803
RMVX srpg 캐릭터에 대해서 2 텐가와 2011.01.18 1565
RMVX SRPG 질문 3 황제님 2011.11.22 1769
RMXP SRPG 제작 시스템 "GubiD's Tactical Battle System"질문이요! 2 file Blur 2014.01.26 925
RMVX Srpg 전투시 스킬창에 스킬이 없네요..., 3 karulin 2011.06.24 850
RMVX SRPG 스크립트에서 '맨손' 공격시 오류가 납니다 2 악셀투르 2011.06.15 904
RMVX SRPG 스크립트를 쓰는데 편성화면 뜨기전에 오류납니다. file 잡초더미 2012.05.10 2517
RMVX Srpg 스크립트 중에 1 아카로스 2011.05.05 1270
RMVX SRPG 스크립트 오류 (충돌인가........?) 5 file 불청객 2011.05.09 1129
Board Pagination Prev 1 ... 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 ... 516 Next
/ 516