질문과 답변

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 12392
사이트 이용 어떻게다운합니까??? 2 빨간운동화 2010.12.09 840
RMXP 포털을 어떻게 만들죠? 2 게임광팬 2010.12.09 659
RMXP extraction finished라는 메세지가 뜹니다. 2 짱구야 2010.12.09 1024
RMVX 얼굴 아이콘 어떻게 제작하나요? 1 왕자 2010.12.10 820
RMXP 아방스님~^^밑에 extraction finshed 관련 질문 입니다. 1 짱구야 2010.12.10 644
RMXP 장비종류확장 스크립트에 대해 질문합니다.. 2 GK탐정 2010.12.10 680
RMVX 읽기전용 해지를 못해서 실행이 안되요 1 최호준1024 2010.12.10 1128
RMXP 테스트 플레이 도중 1 Hsik 2010.12.11 748
RMVX 혹시 GTBS 공격 범위 설정하시는 방법 아세요? 2 밀로운유글레나 2010.12.11 742
RMXP 메이플같이 퀘스트가 있으면 머리 위에 아이콘이 뜨는 스크립트를 구합니다. 3 ssbest1015 2010.12.11 1112
기타 저 다른님들게임받아서 실행하면 오류같은게떠요 2 RPG깐쥐남 2010.12.11 1587
RMVX vx툴이 예기치 않은 형식이라면서 안됩니다 ㅠㅠ RPGvvxx 2010.12.12 642
RMVX 맵칩셋 어떻게 바꾸죠? 1 전학생 2010.12.12 792
RMXP TCG게임을 만드려면 1 리버 2010.12.12 997
RMXP ABP 액알에서 스킬 문제 Hsik 2010.12.12 712
RMXP 이벤트 이름을 바꾸려면 어떻게 해야 하나요? 2 비터스틸 2010.12.13 694
RMXP 에너미 능력치 제한해제 Outsider2 2010.12.13 660
RMXP 여기에 질문해도 될지? 스크립트 관한거요! 몽실년 2010.12.13 479
사이트 이용 저 마야(maya) 라는 게임 만들기 파일은 어디서 다운?? 1 귀요비 2010.12.13 1261
RMVX VX에서 WGB를 사용하고있는데요..[스크립트 관련] 1 이클립스 2010.12.13 490
Board Pagination Prev 1 ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... 516 Next
/ 516