질문과 답변

Extra Form



안녕하세요, 아방스 회원님들. 한 가지 여쭤보고 싶은 게 있어서 글을 쓰게 되었습니다.

다름이 아니라 제목에 있는 것처럼 엔딩을 본 다음에 새로 게임을 시작할 때 특정 변수만 보존하는 것이 가능한지 알고 싶어서 글을 올리게 되었습니다. 



#==============================================================================

# ■ 강해서 뉴 게임 Ver. 1.1 by Claimh

#------------------------------------------------------------------------------

#   게임 완료시의 데이터를 계승하고, 최초부터 시작할 수 있다.

#   (주) 강해서 뉴 게임 판정용의 스윗치 이외는 모두 초기화됩니다 

#   (강해서 뉴 게임을 판정시키는 플래그만 ON가 된다)

#   변수도 모두 초기화됩니다

#   액터 상태만 계승합니다. 

#==============================================================================


class Scene_Load < Scene_File

  #  강해서 뉴 게임 판정 스윗치 

  RENEW_GAME = 10

  # 강해서 뉴 게임 발생 후 , 강해서 뉴 게임을 판정시키는 플래그 

  RENEW_GAME_FLG = 11

  #--------------------------------------------------------------------------

  # ● 결정시의 처리

  #--------------------------------------------------------------------------

  def on_decision(filename)

    # 파일이 존재하지 않는 경우 

    unless FileTest.exist?(filename)

      # 버저 SE 를 연주 

      $game_system.se_play($data_system.buzzer_se)

      return

    end

    # 로드 SE 를 연주

    $game_system.se_play($data_system.load_se)

    # 세이브 데이터의 기입해 

    file = File.open(filename, "rb")

    read_save_data(file)

    file.close

#-----------

    # 강해서 뉴 게임 발동 

    if $game_switches[RENEW_GAME]

      # 초기화

      $game_temp          = Game_Temp.new

      $game_system        = Game_System.new

      $game_switches      = Game_Switches.new

      $game_variables     = Game_Variables.new

      $game_self_switches = Game_SelfSwitches.new

      $game_screen        = Game_Screen.new

      $game_troop         = Game_Troop.new

      $game_map           = Game_Map.new

      $game_player        = Game_Player.new

      # 초기 파티를 셋업

      $game_party.setup_starting_members

      # 초기 위치의 맵을 셋업 

      $game_map.setup($data_system.start_map_id)

      # 플레이어를 초기 위치에 이동 

      $game_player.moveto($data_system.start_x, $data_system.start_y)

      # 플레이어를 리프레쉬

      $game_player.refresh

      # 맵으로 설정되어 있는 BGM 과 BGS 의 자동 바꾸고를 실행 

      $game_map.autoplay

      #  맵을 갱신 (병렬 이벤트 실행) 

      $game_map.update

      # 강해서 뉴 게임한 증거를 남기는

      $game_switches[RENEW_GAME_FLG] = true

      # 맵 화면으로 전환하고

      $scene = Scene_Map.new

      return

    end

#-----------

    # BBGM,BGS 를 복귀 

    $game_system.bgm_play($game_system.playing_bgm)

    $game_system.bgs_play($game_system.playing_bgs)

    # 맵을 갱신 (병렬 이벤트 실행) 

    $game_map.update

    # 맵 화면으로 전환하고

    $scene = Scene_Map.new

  end

end



검색을 해보니까 위에 있는 것처럼 엔딩 후 캐릭터를 이어서 시작할 수 있는 스크립트라는 게 나왔는데, 이건 변수나 스위치는 모두 초기화 되고 액터의 상태만 보존되는 것이더라구요ㅠㅠ 저는 모두 초기화 되고 딱 한 가지 변수만 초기화 되지 않기를 원하거든요... 이게 가능한 것인지, 혹시 가능하다면 어떤 방법을 써야 되는지 알고 싶습니다. 답변해주시면 정말로 감사드리겠습니다ㅠㅠ 날씨가 많이 추워졌는데 건강 조심하세요~! 



Comment '6'
  • ?
    탐험가 2012.11.29 19:22
    $game_variables = Game_Variables.new
    이 줄 앞에 #를 붙여보세요. 이렇게
    #$game_variables = Game_Variables.new

    변수 초기화하는 코드를 코멘트로 바꿔주어 변수 초기화가 되지 않게 됩니다.
  • ?
    얍얍 2012.11.29 19:25
    그렇게 하면 모든 변수가 초기화 되지 않는 것 아닌가요? 저는 변수 중에서 한 가지 변수만 초기화를 시키고 싶지 않은 것입니다.
  • ?
    탐험가 2012.11.29 19:35
    @저장변수 = $game_variables[특정변수].clone
    $game_variables = Game_Variables.new
    $game_variables[특정변수] = @저장변수

    이렇게 한 번 해보세요. clone 메소드가 먹힐지는 모르겠네요. 실험을 안해봐서.
  • ?
    탐험가 2012.11.29 20:15
    $game_variables = contents[:variables]
    @저장변수 = $game_variables[1]#.clone
    p @저장변수
    $game_variables = $game_switches[10] ? Game_Variables.new : contents[:variables]
    $game_variables[4] = @저장변수#.clone
    p @저장변수

    XP는 모르겠고 VX Ace에서는 데이터 매니저의 익스트랙트 세이브 콘텐츠에 게임 베리블을 이걸로 바꾸면 됩니다. 엔딩 후에 해당 파일로 로드하면 변수가 한 변수 외에는 모든 변수가 초기화됩니다. 위에서는 4번 변수를 초기화하지 않았습니다. 스트링이기 때문에 클론 메소드를 쓰면 안되는군요.
  • ?
    하진 2012.12.01 02:02
    XP에서 확실히 되는 스크립트가 있습니다. 전에 KRC? RKC?...라고 네이버카페 아시죠... 거기에 FPG란 닉 쓰시던 분이 '세이브파일끼리 스위치&변수 공유하는 스크립트' 찾는 질문글에 답변으로 직접 짜서 올려주신 게 있었어요. 모든 세이브파일에서 참조하는 세이브파일...? 이라고 했던가?
    제가 예전에 받아서 커스텀해서 쓰고 있는거 긁어 드리고 싶은데 수정재배포를 막 하기도 좀 그래서;; 카페 가셔서 검색한번 해보심 뙇 나올 거예요.
  • ?
    에헤헤 2012.12.03 19:49
    감사합니다!

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12451
기타 !! 자료실의 게임 소재들이 안 보여요 !! 라스민트 2010.11.14 1547
RMVXA "그림의 이동"에 걸리는 시간을 변수로 대체할 수 있을까요? 3 file Roam 2012.11.26 1069
RMXP "마녀의 집" 게임 첫부분 처럼 화면 맵 이동하는 방법 2 허곰탱 2014.02.20 1327
RMVXA "메뉴>상태>캐릭터선택>상태창"에서 캐릭터 선택을 없애기 2 Refus 2015.06.18 317
게임찾기 "보코의 농장"이란 게임 갖고있는분 찾습니다 2 A.미스릴 2013.04.27 2224
RMXP "주인공과 어떤 이벤트와 눈이 마주쳤을 때" 라는 조건분기 어떻게 만드나요? 1 CJYG* 2011.06.29 1589
RMVXA "피격당할때" 조건문을 넣기 머그빵 2016.01.07 135
RMVXA #추격 #추적 #사망 #게임오버 에 대해서 가르쳐주세요 5 신이다1 2018.05.13 278
RMMV $gameScreen.showPicture 쓸려하는데 어떻게 써야하나요. 4 게임잘날아가는닝겐 2016.01.15 224
RMVX $game_party.item_number로 아이템 숫자가 호출이 안 되는데 뭐가 문제일까요? 1 MMM 2014.07.07 751
RMVXA $game_variables은 뭔가요? 스크립트에 적는거인건 아는데... 1 알만툴초보입니당 2017.03.02 100
RMVX $scene = Scene_ATB.new 이게 안됩니다 2 file 욕쟁이스님 2012.11.04 931
이벤트 작성 RMMV '데미지의 처리' 구현법이 있나요? 아무개 2021.03.26 43
플러그인 추천 RMMV "버튼 액션"?에 관한 질문입니다! 2 소랭소랭 2021.03.20 144
플러그인 사용 RMMV "특정이름을 입력했을 때 이벤트 발생하기" 질문입니다! 2 소랭소랭 2021.01.26 149
RMMV "파티원"의 옷을 갈아입히면 케릭터칩을 그 옷을 입은 칩으로 바뀌게 하고싶습니다. 4 만죠메군 2017.07.09 496
플러그인 추천 RMMV "히어로즈 오브 마이트 앤 매직"같은 형식으로 전투를 할수있게해주는 플로그인이 있을까요? file 희희낙낙 2019.10.06 80
RMVXA '(번역) 선택지에서 \를 사용시 공백발생현상 해결' 스크립트를 찾습니다. 3 카로 2012.12.20 877
RMVXA 'A값이 B값보다 클 경우'를 스크립트로 어떻게 표현하죠? 2 게임잘날아가는닝겐 2015.09.19 169
RMVX 'rpg 쯔꾸르 vx'에서 한국 노래가 bgm으로 써지지 않습니다. 2 마런마 2014.01.14 1330
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 516 Next
/ 516