메시지 표시 중에 자동으로 타이머 멈추기 (RPG VX Ace용)
◆게임 창작 관련/코드, 스크립트 :: 2014. 12. 7. 16:02본래 RPG VX Ace에서 타이머가 작동중일 때 메시지가 표시되는 중에도 타이머가 계속 작동하는데,
이 스크립트는 메시지가 표시되는 동안에 자동으로 타이머를 정지시키는 스크립트입니다.
다음 스크립트를 복사해서 스크립트창(F11)의 '▼ Materials' 부분 밑에 새 스크립트를 추가해 붙여넣기하시면 됩니다.
# Stop timer during message v1.1 # 메시지 표시 도중 타이머를 자동정지시키는 스크립트입니다. # # [v1.1에서 바뀐 점] # 중복구문 처리 추가 # # 만든이: 家和萬事成 # http://parkjuwan.tistory.com # # 저작권: Creative Commons BY 3.0 # (영리/비영리 여부에 관계없이 자유롭게 이용 가능합니다.) # # [사용법] # 스크립트 실행창에 다음 줄을 넣으면 됩니다. # $game_timer.stop_during_message(true) # # 해제하려면 다음과 같이 넣습니다. # $game_timer.stop_during_message(false) # # [참고] # 선택지, 숫자입력, 아이템 선택의 경우는 # 메시지 표시와 함께 실행해야만 적용됩니다. class Game_Timer #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- alias tmrinit initialize def initialize tmrinit @paused = false @messagestop = true end #-------------------------------------------------------------------------- # * Determine if Temp Stop #-------------------------------------------------------------------------- def paused? @paused end #-------------------------------------------------------------------------- # * Determine if Message Stop #-------------------------------------------------------------------------- def messagestop? @messagestop end #-------------------------------------------------------------------------- # * Start #-------------------------------------------------------------------------- alias tmrstart start def start(count) tmrstart(count) @paused = false end #-------------------------------------------------------------------------- # * Stop #-------------------------------------------------------------------------- alias tmrstop stop def stop tmrstop @paused = false end #-------------------------------------------------------------------------- # * Pause #-------------------------------------------------------------------------- def pause @paused = true @working = false end #-------------------------------------------------------------------------- # * Resume #-------------------------------------------------------------------------- def resume @working = true @paused = false end #-------------------------------------------------------------------------- # * Stop during message #-------------------------------------------------------------------------- def stop_during_message(truefalse) @messagestop = truefalse end end class Sprite_Timer < Sprite #-------------------------------------------------------------------------- # * Update Visibility #-------------------------------------------------------------------------- def update_visibility self.visible = $game_timer.working? || $game_timer.paused? end end class Game_Interpreter #-------------------------------------------------------------------------- # * Wait While Message Display is Busy #-------------------------------------------------------------------------- def wait_for_message if $game_timer.working? && $game_timer.messagestop? $game_timer.pause Fiber.yield while $game_message.busy? $game_timer.resume else Fiber.yield while $game_message.busy? end end end
예제는 다음 첨부파일에 있습니다.
위의 소스코드만 따로 빼낸 파일은 다음과 같습니다.