#===================================
# 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
혹시 몰라서 남겨두는 스크립트 링크입니다.
메시지가 표시되는 중에도 메뉴를 열 수 있게 해주는 스크립트입니다.
CONFIG 부분에서 메뉴를 열지 못하게 할 Scene과 메뉴를 열 때 사용하는 버튼을 바꾸실 수 있습니다.