Код:
############################################################################
# Enix_FFGlass Window v1.0 #
# by Speed@ #
# A BIG Thanks to: Woratana and his [RMVX] Custom Menu Background #
# Effects & Opacity Script #
# Only for RPG Revolution #
# Posting on other forum without my permission is forbidden. #
###########################################################################
#
module Puppeto
#==============================================================================
# Start edit here.
#------------------------------------------------------------------------------
# ** Menu Screen
# Change the value below for the text that you want for the common event name
CommonMenu01 = "Карта"
CommonMenu02 = "Панель"
# ** Common Event ID for the menu
# Change the value below to the common event ID that you want to use
CommonMenuID01 = 003
CommonMenuID02 = 006
end
class Scene_Menu < Scene_Base
#--------------------------------------------------------------------------
# * Object Initialization
# menu_index : command cursor's initial position
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
super
create_menu_background
create_command_window
@gold_window = Window_Gold.new(0, 360)
@gold_window.opacity = 0
@gold_window.x = -70
@gold_window.y = 360
@status_window = Window_MenuStatus.new(160, 0)
@status_window.opacity = 0
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@command_window.dispose
@gold_window.dispose
@status_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_menu_background
@command_window.update
@gold_window.update
@status_window.update
if @command_window.active
update_command_selection
elsif @status_window.active
update_actor_selection
end
end
#--------------------------------------------------------------------------
# * Create Command Window
#--------------------------------------------------------------------------
def create_command_window
s1 = Vocab::item
s2 = Vocab::skill
s3 = Vocab::equip
s4 = Vocab::status
s5 = Puppeto::CommonMenu01
s6 = Puppeto::CommonMenu02
s7 = "Materia"
s8 = Vocab::save
s9 = Vocab::game_end
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s8, s9])
@command_window.index = @menu_index
@command_window.opacity = 0
@command_window.y = 80
if $game_party.members.size == 0 # If number of party members is 0
@command_window.draw_item(0, false) # Disable item
@command_window.draw_item(1, false) # Disable skill
@command_window.draw_item(2, false) # Disable equipment
@command_window.draw_item(3, false) # Disable status
end
if $game_system.save_disabled # If save is forbidden
@command_window.draw_item(7, false) # Disable save
end
end
#--------------------------------------------------------------------------
# * Update Command Selection
#--------------------------------------------------------------------------
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @command_window.index < 7
Sound.play_buzzer
return
elsif $game_system.save_disabled and @command_window.index == 7
Sound.play_buzzer
return
end
Sound.play_decision
case @command_window.index
when 0 # Item
$scene = Scene_Item.new
when 1,2,3 # Skill, equipment, status
start_actor_selection
when 4 # Common Event 01
$game_temp.common_event_id = Puppeto::CommonMenuID01
$scene = Scene_Map.new
when 5 # Save
$scene = Scene_File.new(true, false, false)
when 6 # End Game
$scene = Scene_End.new
end
end
end
#--------------------------------------------------------------------------
# * Start Actor Selection
#--------------------------------------------------------------------------
def start_actor_selection
@command_window.active = false
@status_window.active = true
if $game_party.last_actor_index < @status_window.item_max
@status_window.index = $game_party.last_actor_index
else
@status_window.index = 0
end
end
#--------------------------------------------------------------------------
# * End Actor Selection
#--------------------------------------------------------------------------
def end_actor_selection
@command_window.active = true
@status_window.active = false
@status_window.index = -1
end
#--------------------------------------------------------------------------
# * Update Actor Selection
#--------------------------------------------------------------------------
def update_actor_selection
if Input.trigger?(Input::B)
Sound.play_cancel
end_actor_selection
elsif Input.trigger?(Input::C)
$game_party.last_actor_index = @status_window.index
Sound.play_decision
case @command_window.index
when 1 # skill
$scene = Scene_Skill.new(@status_window.index)
when 2 # equipment
$scene = Scene_Equip.new(@status_window.index)
when 3 # status
$scene = Scene_Status.new(@status_window.index)
end
end
end
end
module WorBG
#----------------------------------------
# SETUP MENU BACKGROUND & OPACITY HERE!
#---------------------------------------
BG_MODE = 2 # Mode of BG
BG_BLUR = true # Turn on (true)/ off (false) to make background blur
WINDOW_OPACITY = 200 # Opacity for Menu Screens
THICK_WINDOW_OPACITY = 200 # Opacity for Windows in Title/Battle/End Screens
BG_MOVE_X = 0 # Move Background in X-coordinate
BG_MOVE_Y = 0 # Move Background in Y-coordinate
BG_PICTURE = "Back" # Picture file name when you use custom BG (mode 2)
end
class Scene_Base
def create_menu_background
@menuback_sprite = Plane.new
case WorBG::BG_MODE
when 0 # Default BG
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.color.set(16, 16, 16, 128)
when 1 # Brighter Default BG
@menuback_sprite.bitmap = $game_temp.background_bitmap
when 2 # Custom BG
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite2 = Sprite.new
@menuback_sprite2.bitmap = Cache.picture(WorBG::BG_PICTURE)
@menuback_sprite2.opacity = 220
else
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.color.set(16, 16, 16, 128)
end
@menuback_sprite.bitmap.blur if WorBG::BG_BLUR == true
update_menu_background
end
alias wor_scebase_upd update
def update
@menuback_sprite.ox += WorBG::BG_MOVE_X if @menuback_sprite != nil and WorBG::BG_MOVE_X != 0
@menuback_sprite.oy += WorBG::BG_MOVE_Y if @menuback_sprite != nil and WorBG::BG_MOVE_Y != 0
end
def snapshot_for_background
$game_temp.background_bitmap.dispose
$game_temp.background_bitmap = Graphics.snap_to_bitmap
end
end # Class End
class Window_Base
alias wor_winbase_ini initialize
def initialize(x, y, width, height)
wor_winbase_ini(x, y, width, height)
if $scene.is_a?(Scene_Title) or $scene.is_a?(Scene_Battle) or $scene.is_a?(Scene_End)
self.back_opacity = WorBG::THICK_WINDOW_OPACITY
else
self.back_opacity = WorBG::WINDOW_OPACITY
end
end
end
Социальные закладки