기타

regendo - MenuScreen While Message

by 혜인 posted Jan 23, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
#===================================
# MenuScreen While Message (MSWM)
#===================================
# by bStefan aka. regendo
# by request from AABattery
# : http://www.rpgmakervxace.net/index.php?/user/608-aabattery/
# please give credit if used
# for use with RMVX ACE
#===================================
# Call Scene_Menu while a message
# : is being displayed
#===================================
# implement over Main
#===================================
# customize:
# : add Scenes you don't want the
# : script to happen to NOCALLMENU
# : (like Scene_Battle, which would
# : be really annoying)
#===================================

module Regendo
  
  unless @scripts
    @scripts = Hash.new
    def self.contains?(key)
      @scripts[key] == true
    end
  end
  @scripts["Menu_during_Message"] = true
  
  module Menu_during_Message
    
    #=======
    #CONFIG
    #=======
    NOCALLMENU = [Scene_Battle] #scenes in which call_menu shall not work.
    BUTTON = Input::B #which button will trigger the menu?
  end
end
  
class Window_Message < Window_Base

  BUTTON = Regendo::Menu_during_Message::BUTTON
  NOCALLMENU = Regendo::Menu_during_Message::NOCALLMENU
  
  alias update_old update
  def update
    update_old
    call_menu if Input.trigger?(BUTTON) && !forbidden_scene_by_regendo
  end
  
  def call_menu
    Sound.play_ok
    SceneManager.call(Scene_Menu)
    Window_MenuCommand::init_command_position
  end
  
  def input_pause
    self.pause = true
    wait(10)
    
    case BUTTON
    when Input::B
      Fiber.yield until Input.trigger?(:C)
    when Input::C
      Fiber.yield until Input.trigger?(:B)
    else
      Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)
    end
    
    Input.update
    self.pause = false
  end
  
  def forbidden_scene_by_regendo
    return false unless NOCALLMENU
    NOCALLMENU.any? do |scene|
      SceneManager.scene_is?(scene)
    end
  end
end

 

 

https://github.com/regendo/rgss3-scripts/blob/master/MenuScreen_while_message/menuscreen_while_message.rb

 

혹시 몰라서 남겨두는 스크립트 링크입니다.

 

메시지가 표시되는 중에도 메뉴를 열 수 있게 해주는 스크립트입니다.

CONFIG 부분에서 메뉴를 열지 못하게 할 Scene과 메뉴를 열 때 사용하는 버튼을 바꾸실 수 있습니다.