03-08-2008, 06:03 AM
L's Simple Main Menu #3: 1-Person Menu
This is a menu for 1-person. Not so compact, but maybe useful for Action RPG. 'Variable' is for user-made value, like fame point, score, or in-game date, anything. Originally for someone else's game, but released for public, also posted on rmxp.org.
Screenshot
Script (Older)
Code:
class Window_Base < Window
SYSTEM_WORD_EVA = "Evade" #
#--------------------------------------------------------------------------
# * Draw Parameter
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# type : parameter type (0-6)
#--------------------------------------------------------------------------
def draw_actor_parameter(actor, x, y, type)
case type
when 0
parameter_name = $data_system.words.atk
parameter_value = actor.atk
when 1
parameter_name = $data_system.words.pdef
parameter_value = actor.pdef
when 2
parameter_name = $data_system.words.mdef
parameter_value = actor.mdef
when 3
parameter_name = $data_system.words.str
parameter_value = actor.str
when 4
parameter_name = $data_system.words.dex
parameter_value = actor.dex
when 5
parameter_name = $data_system.words.agi
parameter_value = actor.agi
when 6
parameter_name = $data_system.words.int
parameter_value = actor.int
when 7 #
parameter_name = SYSTEM_WORD_EVA #
parameter_value = actor.eva #
end
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, 32, parameter_name)
self.contents.font.color = normal_color
self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
end
end
#==============================================================================
# ? Game_Map
#==============================================================================
class Game_Map
def name
$map_infos[@map_id]
end
end
#========================================
#? Scene_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
end
#==============================================================================
# InfoWindow
#==============================================================================
class Window_Info < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 384, 640, 96)
#Create Bitmap
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 22
#Z-Pos
self.z = 100
#Refresh and add the contents to window
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
#Clear Bitmap
self.contents.clear
#Add Contents
self.contents.font.color = system_color
self.contents.draw_text(4,0,120,32,'Location')
self.contents.font.color = normal_color
self.contents.draw_text(96,0,360,32,$game_map.name.to_s)
#Draw Steps
self.contents.font.color = system_color
self.contents.draw_text(4,32,120,32,'Steps')
self.contents.font.color = normal_color
self.contents.draw_text(48,32, 120, 32, $game_party.steps.to_s, 2)
#Draw Play Time
self.contents.font.color = system_color
self.contents.draw_text(200,32,120,32,'Play Time')
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(310, 32, 120, 32, text)
#Draw Gold
#Advanced Gold Display mini-script by Dubealex.
case $game_party.gold
when 0..9999
gold = $game_party.gold
when 10000..99999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
when 100000..999999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
when 1000000..9999999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
end
self.contents.font.color = system_color
gold_word = $data_system.words.gold.to_s + " :"
cx = contents.text_size(gold_word).width
cx2=contents.text_size(gold.to_s).width
self.contents.draw_text(412,32,120-cx-2,32,gold_word)
self.contents.font.color = normal_color
self.contents.draw_text(600-cx2+2, 32, cx2, 32, gold.to_s, 2)
#Draw Variable
self.contents.font.color = system_color
self.contents.draw_text(412,0,120,32,'Variable Name')
self.contents.font.color = normal_color
self.contents.draw_text(540,0,120,32,'Variable')
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end
#==============================================================================
# MenuStatus
#==============================================================================
class Window_NewMenuStatus < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(160, 0, 480, 320)
#Create Bitmap
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 22
#Z-Pos
self.z = 100
#Refresh and add the contents to window
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
#Clear Bitmap
self.contents.clear
actor = $game_party.actors[0]
draw_actor_graphic(actor, 32, 64)
draw_actor_name(actor, 75, 0)
draw_actor_class(actor, 240, 0)
draw_actor_level(actor, 75, 32)
draw_actor_state(actor, 240, 32)
draw_actor_exp(actor, 75, 64)
draw_actor_hp(actor, 32,100)
draw_actor_sp(actor, 240,100)
draw_actor_parameter(actor, 32, 150, 0)
draw_actor_parameter(actor, 32, 182, 1)
draw_actor_parameter(actor, 32, 214, 2)
draw_actor_parameter(actor, 32, 246, 7) #Evade
draw_actor_parameter(actor, 240, 150, 3)
draw_actor_parameter(actor, 240, 182, 4)
draw_actor_parameter(actor, 240, 214, 5)
draw_actor_parameter(actor, 240, 246, 6)
end
end
#==============================================================================
# Scene_Menu
#==============================================================================
class Scene_Menu
def initialize(menu_index = 0)
@menu_index = menu_index
commands_init
end
#--------------------------------------------------------------------------
# * Set Commands
#--------------------------------------------------------------------------
def commands_init
# MenuCommand
@commands = []
s1='Item'
s2='Skill'
s3='Equip'
s4='Player'
s5='Option'
s6='System'
@commands.push(s1, s2, s3, s4, s5, s6).flatten!
@player_commands = []
z1='Status'
z2='Quest Log'
@player_commands.push(z1, z2).flatten!
@system_commands = []
o1='Save'
o2='Load'
o3='Exit'
@system_commands.push(o1, o2, o3).flatten!
end
#--------------------------------------------------------------------------
# * Main - Handles drawing/disposing windows and the main loop
#--------------------------------------------------------------------------
def main
#Draw Windows
main_command_window
player_command_window
system_command_window
main_draw
#Execute transition
Graphics.transition
#Main Loop
loop do
#Main Loop
main_loop
break if main_scenechange?
end
#Prepare for transition
Graphics.freeze
#Dispose Windows
main_dispose
end
#--------------------------------------------------------------------------
# * Main Command Window
#--------------------------------------------------------------------------
def main_command_window
@command_window = Window_Command.new(160,@commands)
@command_window.back_opacity = 160
@command_window.index = @menu_index
# If number of party members is 0
if $game_party.actors.size == 0
# Disable items, skills, equipment, and status
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
end
def player_command_window
@player_command_window = Window_Command.new(160,@player_commands)
@player_command_window.back_opacity = 160
@player_command_window.visible = false
@player_command_window.active = false
@player_command_window.x = 100
@player_command_window.y = 120
end
def system_command_window
@sys_command_window = Window_Command.new(128,@system_commands)
@sys_command_window.back_opacity = 160
@sys_command_window.visible = false
@sys_command_window.active = false
@sys_command_window.x=100
@sys_command_window.y=180
if $game_system.save_disabled
@sys_command_window.disable_item(0)
end
end
#--------------------------------------------------------------------------
# * Main Draw - Handles drawing windows
#--------------------------------------------------------------------------
def main_draw
#Draw Background
@background = Spriteset_Map.new
#Draw Windows
# InfoWindow
@info_window = Window_Info.new
@info_window.back_opacity = 160
# MenuStatus
@status_window = Window_NewMenuStatus.new
@status_window.back_opacity = 160
end
#--------------------------------------------------------------------------
# * Main Scene Change
#--------------------------------------------------------------------------
def main_scenechange?
# Abort loop if screen is changed
if $scene != self
return true
end
return false
end
#--------------------------------------------------------------------------
# * Main Dispose
#--------------------------------------------------------------------------
def main_dispose
#Dispose Background
@background.dispose
# Dispose All Windows
# Dispose InfoWindow
@info_window.dispose
# Dispose MenuStatus
@status_window.dispose
# Dispose MenuCommand
@command_window.dispose
@player_command_window.dispose
@sys_command_window.dispose
end
#--------------------------------------------------------------------------
# * Main Loop
#--------------------------------------------------------------------------
def main_loop
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update
# Update Windows
update_windows
if @player_command_window.active
@player_command_window.z = +500
end
if @sys_command_window.active
@sys_command_window.z = +500
end
# If command window is active: call update_command
if @command_window.active
update_command
return
end
# If player menu window is active: call update_player_command
if @player_command_window.active
update_player_command
return
end
# If system menu window is active: call update_sys_command
if @sys_command_window.active
update_sys_command
return
end
end
#--------------------------------------------------------------------------
# * Window Update
#--------------------------------------------------------------------------
def update_windows
# Update MenuCommand
@command_window.update if @command_window.visible
@player_command_window.update if @player_command_window.visible
@sys_command_window.update if @sys_command_window.visible
@info_window.update
@status_window.update
end
#--------------------------------------------------------------------------
# * Update Menu Command
#--------------------------------------------------------------------------
def update_command
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to map screen
$scene = Scene_Map.new
return
end
# If C button was pressed
if Input.trigger?(Input::C)# If command other than save or end game, and party members = 0
if $game_party.actors.size == 0 and @command_window.index < 4
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Branch by command window cursor position
case @command_window.index
when 0 # Item
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Item.new
when 1 # Skill
# If this actor's action limit is 2 or more
if $game_party.actors[0].restriction >= 2
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to skill screen
$scene = Scene_Skill.new
when 2 # Equip
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to equipment screen
$scene = Scene_Equip.new
when 3 # Player
$game_system.se_play($data_system.decision_se)
@player_command_window.active = true
@player_command_window.visible = true
@command_window.active = false
when 4 # Option
#$game_system.se_play($data_system.decision_se)
#Put your Option Scene
when 5 # System
$game_system.se_play($data_system.decision_se)
@sys_command_window.active = true
@sys_command_window.visible = true
@command_window.active = false
end
end
end
#--------------------------------------------------------------------------
# * Update PlayerCommand Window
#--------------------------------------------------------------------------
def update_player_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@player_command_window.active = false
@player_command_window.visible = false
@player_command_window.index = 0
@player_command_window.z = 0
return
end
if Input.trigger?(Input::C)
case @player_command_window.index
when 0 #Status
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to status screen
$scene = Scene_Status.new
when 1 #Quest Log
# Play decision SE
#$game_system.se_play($data_system.decision_se)
#Put your Quest Scene
end
return
end
end
#--------------------------------------------------------------------------
# * Update SysCommand Window
#--------------------------------------------------------------------------
def update_sys_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@sys_command_window.active = false
@sys_command_window.visible = false
@sys_command_window.index = 0
@sys_command_window.z = 0
return
end
if Input.trigger?(Input::C)
case @sys_command_window.index
when 0 #Save
# If saving is forbidden
if $game_system.save_disabled
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to save screen
$scene = Scene_Save.new
when 1 #Load
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to load screen
$scene = Scene_Load.new
when 2 #Exit
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to end game screen
$scene = Scene_End.new
end
return
end
end
end
SDK2 version
Code:
#==============================================================================
#L's Custom Menu #3: Simple 1-person CMS - SDK2 ver.
#--------------------------------------------------------------------------
#==============================================================================
#--------------------------------------------------------------------------
# * Begin SDK Log
#--------------------------------------------------------------------------
SDK.log("L's 1-person CMS", 'L', '1.01', '2007-05-31')
#--------------------------------------------------------------------------
# * Begin SDK Requirement Check
#--------------------------------------------------------------------------
SDK.check_requirements(2.0, [1])
#--------------------------------------------------------------------------
# * Begin SDK Enable Test
#--------------------------------------------------------------------------
if SDK.enabled?("L's 1-person CMS")
module SDK::Scene_Commands
#============================================================================
# ** Scene_Menu
#============================================================================
module Scene_Menu
Item = 'Item'
Skill = 'Skill'
Equip = 'Equip'
Status = 'Status'
Save = 'Save'
Load = 'Load'
End_Game = 'Exit'
Order = 'Order'
Party = 'Party'
Player = 'Player'
Option = 'Option'
Quest = 'Quest'
System = 'System'
Menu_Commands = [Item, Skill, Equip, Player, Option, System]
Player_Commands = [Status, Quest]
System_Commands = [Save, Load, End_Game]
end
end
class Window_Base < Window
SYSTEM_WORD_EVA = "Evade" #
#--------------------------------------------------------------------------
# * Draw Parameter
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# type : parameter type (0-6)
#--------------------------------------------------------------------------
def draw_actor_parameter(actor, x, y, type)
case type
when 0
parameter_name = $data_system.words.atk
parameter_value = actor.atk
when 1
parameter_name = $data_system.words.pdef
parameter_value = actor.pdef
when 2
parameter_name = $data_system.words.mdef
parameter_value = actor.mdef
when 3
parameter_name = $data_system.words.str
parameter_value = actor.str
when 4
parameter_name = $data_system.words.dex
parameter_value = actor.dex
when 5
parameter_name = $data_system.words.agi
parameter_value = actor.agi
when 6
parameter_name = $data_system.words.int
parameter_value = actor.int
when 7 #
parameter_name = SYSTEM_WORD_EVA #
parameter_value = actor.eva #
end
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, 32, parameter_name)
self.contents.font.color = normal_color
self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
end
end
#==============================================================================
# ? Game_Map
#==============================================================================
class Game_Map
def name
$map_infos[@map_id]
end
end
#========================================
#? Scene_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
end
#==============================================================================
# InfoWindow
#==============================================================================
class Window_Info < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 384, 640, 96)
#Create Bitmap
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 22
#Z-Pos
self.z = 100
#Refresh and add the contents to window
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
#Clear Bitmap
self.contents.clear
#Add Contents
self.contents.font.color = system_color
self.contents.draw_text(4,0,120,32,'Location')
self.contents.font.color = normal_color
self.contents.draw_text(96,0,360,32,$game_map.name.to_s)
#Draw Steps
self.contents.font.color = system_color
self.contents.draw_text(4,32,120,32,'Steps')
self.contents.font.color = normal_color
self.contents.draw_text(48,32, 120, 32, $game_party.steps.to_s, 2)
#Draw Play Time
self.contents.font.color = system_color
self.contents.draw_text(200,32,120,32,'Play Time')
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(310, 32, 120, 32, text)
#Draw Gold
#Advanced Gold Display mini-script by Dubealex.
case $game_party.gold
when 0..9999
gold = $game_party.gold
when 10000..99999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
when 100000..999999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
when 1000000..9999999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
end
self.contents.font.color = system_color
gold_word = $data_system.words.gold.to_s + " :"
cx = contents.text_size(gold_word).width
cx2=contents.text_size(gold.to_s).width
self.contents.draw_text(412,32,120-cx-2,32,gold_word)
self.contents.font.color = normal_color
self.contents.draw_text(600-cx2+2, 32, cx2, 32, gold.to_s, 2)
#Draw Variable
self.contents.font.color = system_color
self.contents.draw_text(412,0,120,32,'Variable Name')
self.contents.font.color = normal_color
self.contents.draw_text(540,0,120,32,'Variable')
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end
#==============================================================================
# MenuStatus
#==============================================================================
class Window_NewMenuStatus < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(160, 0, 480, 320)
#Create Bitmap
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 22
#Z-Pos
self.z = 100
#Refresh and add the contents to window
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
#Clear Bitmap
self.contents.clear
actor = $game_party.actors[0]
draw_actor_graphic(actor, 32, 64)
draw_actor_name(actor, 75, 0)
draw_actor_class(actor, 240, 0)
draw_actor_level(actor, 75, 32)
draw_actor_state(actor, 240, 32)
draw_actor_exp(actor, 75, 64)
draw_actor_hp(actor, 32,100)
draw_actor_sp(actor, 240,100)
draw_actor_parameter(actor, 32, 150, 0)
draw_actor_parameter(actor, 32, 182, 1)
draw_actor_parameter(actor, 32, 214, 2)
draw_actor_parameter(actor, 32, 246, 7) #Evade
draw_actor_parameter(actor, 240, 150, 3)
draw_actor_parameter(actor, 240, 182, 4)
draw_actor_parameter(actor, 240, 214, 5)
draw_actor_parameter(actor, 240, 246, 6)
end
end
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# This class performs menu screen processing.
#==============================================================================
class Scene_Menu
#--------------------------------------------------------------------------
# * Object Initialization
# menu_index : command cursor's initial position
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# * Main Processing : Spriteset Initialization
#--------------------------------------------------------------------------
def main_spriteset
#Draw Background
@background = Spriteset_Map.new
end
#--------------------------------------------------------------------------
# * Main Processing : Window Initialization
#--------------------------------------------------------------------------
def main_window
#Draw Windows
main_command_window
player_command_window
system_command_window
#Draw Windows
# InfoWindow
@info_window = Window_Info.new
@info_window.back_opacity = 160
# MenuStatus
@status_window = Window_NewMenuStatus.new
@status_window.back_opacity = 160
end
#--------------------------------------------------------------------------
# * Main Command Window
#--------------------------------------------------------------------------
def main_command_window
commands = SDK::Scene_Commands::Scene_Menu::Menu_Commands.dup
@command_window = Window_Command.new(160, commands)
@command_window.back_opacity = 160
@command_window.index = @menu_index
# If number of party members is 0
if $game_party.actors.size == 0
# Disable items, skills, equipment, and status
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
end
#--------------------------------------------------------------------------
# * Player Command Window
#--------------------------------------------------------------------------
def player_command_window
player_commands = SDK::Scene_Commands::Scene_Menu::Player_Commands.dup
@player_command_window = Window_Command.new(160, player_commands)
@player_command_window.back_opacity = 160
@player_command_window.visible = false
@player_command_window.active = false
@player_command_window.x = 100
@player_command_window.y = 120
end
#--------------------------------------------------------------------------
# * System Command Window
#--------------------------------------------------------------------------
def system_command_window
system_commands = SDK::Scene_Commands::Scene_Menu::System_Commands.dup
@sys_command_window = Window_Command.new(128, system_commands)
@sys_command_window.back_opacity = 160
@sys_command_window.visible = false
@sys_command_window.active = false
@sys_command_window.x=100
@sys_command_window.y=180
check_save_available
check_load_available
end
#-----------------
def check_save_available
# If save is forbidden
if $game_system.save_disabled
# Disable save
@sys_command_window.disable_item(0)
end
end
#-----------------
def check_load_available
#Check if saved file exists
@load_enabled = false
for i in 0..3
if (FileTest.exist?("Save#{i+1}.rxdata"))
@load_enabled = true
end
end
if !@load_enabled
#Put your @command_window.disable_item(index)
@sys_command_window.disable_item(1)
end
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update
super
if @player_command_window.active
@player_command_window.z = +500
end
if @sys_command_window.active
@sys_command_window.z = +500
end
# If command window is active: call update_command
if @command_window.active
update_command
return
end
# If player menu window is active: call update_player_command
if @player_command_window.active
update_player_command
return
end
# If system menu window is active: call update_sys_command
if @sys_command_window.active
update_sys_command
return
end
end
#--------------------------------------------------------------------------
# * Update Menu Command
#--------------------------------------------------------------------------
def update_command
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to map screen
$scene = Scene_Map.new
return
end
# If C button was pressed
if Input.trigger?(Input::C)
# Return if Disabled Command
if disabled_main_command?
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Command Input
main_command_input
return
end
end
#--------------------------------------------------------------------------
# * Update SysCommand Window
#--------------------------------------------------------------------------
def update_sys_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@sys_command_window.active = false
@sys_command_window.visible = false
@sys_command_window.index = 0
@sys_command_window.z -= 500
return
end
# If C button was pressed
if Input.trigger?(Input::C)
# Return if Disabled Command
if disabled_main_command?
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Command Input
sys_command_input
return
end
end
#--------------------------------------------------------------------------
# * Update Player Command Window
#--------------------------------------------------------------------------
def update_player_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@player_command_window.active = false
@player_command_window.visible = false
@player_command_window.index = 0
@player_command_window.z -= 500
return
end
# If C button was pressed
if Input.trigger?(Input::C)
# Return if Disabled Command
if disabled_main_command?
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Command Input
player_command_input
return
end
end
#--------------------------------------------------------------------------
# * Disabled Main Command? Test
#--------------------------------------------------------------------------
def disabled_main_command?
# Gets Current Command
command = @command_window.command
sys_command = @sys_command_window.command
player_command = @player_command_window.command
# Gets SDK Scene_Menu Commands
c = SDK::Scene_Commands::Scene_Menu
# If 0 Party Size
if $game_party.actors.size == 0
# If Item, Skill, Equip or Status Selected
if [c::Item, c::Skill, c::Equip, c::Status].include?(command)
return true
end
if [c::Status].include?(player_command)
return true
end
end
if [c::Skill].include?(command)
# If this actor's action limit is 2 or more
if $game_party.actors[0].restriction >= 2
return true
end
end
# If Save Disabled && Command is Save
return true if $game_system.save_disabled && sys_command == c::Save
# If Load Disabled && Command is Load
return true if !@load_enabled && sys_command == c::Load
return false
end
#--------------------------------------------------------------------------
# * Main Command Input
#--------------------------------------------------------------------------
def main_command_input
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Branch by command window cursor position
case @command_window.command
when SDK::Scene_Commands::Scene_Menu::Item # item
command_item
when SDK::Scene_Commands::Scene_Menu::Skill # skill
command_skill
when SDK::Scene_Commands::Scene_Menu::Equip # equipment
command_equip
when SDK::Scene_Commands::Scene_Menu::Player # Call Player Menu
$game_system.se_play($data_system.decision_se)
@player_command_window.active = true
@player_command_window.visible = true
@command_window.active = false
when SDK::Scene_Commands::Scene_Menu::Option #option
command_option
when SDK::Scene_Commands::Scene_Menu::System # call system menu
$game_system.se_play($data_system.decision_se)
@sys_command_window.active = true
@sys_command_window.visible = true
@command_window.active = false
end
end
#--------------------------------------------------------------------------
# * Player Command Input
#--------------------------------------------------------------------------
def player_command_input
# Play decision SE
$game_system.se_play($data_system.decision_se)
case @player_command_window.command
when SDK::Scene_Commands::Scene_Menu::Status # status
command_status
when SDK::Scene_Commands::Scene_Menu::Quest # quest
command_quest
end
end
#--------------------------------------------------------------------------
# * System Command Input
#--------------------------------------------------------------------------
def sys_command_input
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Branch by command window cursor position
case @sys_command_window.command
when SDK::Scene_Commands::Scene_Menu::Save #save
command_save
when SDK::Scene_Commands::Scene_Menu::Load #load
command_load
when SDK::Scene_Commands::Scene_Menu::End_Game #end game
command_endgame
end
end
#--------------------------------------------------------------------------
# * Command : Item
#--------------------------------------------------------------------------
def command_item
# Switch to item screen
$scene = Scene_Item.new
end
#--------------------------------------------------------------------------
# * Command : Skill
#--------------------------------------------------------------------------
def command_skill
# Switch to skill screen
$scene = Scene_Skill.new
end
#--------------------------------------------------------------------------
# * Command : Equip
#--------------------------------------------------------------------------
def command_equip
# Switch to equipment screen
$scene = Scene_Equip.new
end
#--------------------------------------------------------------------------
# * Command : Status
#--------------------------------------------------------------------------
def command_status
# Switch to status screen
$scene = Scene_Status.new
end
#--------------------------------------------------------------------------
# * Command : Option
#--------------------------------------------------------------------------
def command_option
# Switch to option screen
#Put your Option Scene here
end
#--------------------------------------------------------------------------
# * Command : Quest
#--------------------------------------------------------------------------
def command_quest
# Switch to quest screen
#Put your Quest Scene here
end
#--------------------------------------------------------------------------
# * Command : Save
#--------------------------------------------------------------------------
def command_save
# Switch to save screen
$scene = Scene_Save.new
end
#--------------------------------------------------------------------------
# * Command : Load
#--------------------------------------------------------------------------
def command_load
# Switch to load screen
$scene = Scene_Load.new
end
#--------------------------------------------------------------------------
# * Command : End Game
#--------------------------------------------------------------------------
def command_endgame
# Switch to end game screen
$scene = Scene_End.new
end
end
#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end