Jump to content

Recommended Posts

xs.png

Quit

Version: 1.0

Introduction

As topic spoils this is just a small script made to make it easier to change the settings of Scene End. Enjoy!

 

Features

  • Simple, easy to understand and install.
  • Easy to change the settings of the command window as well as add new items to it.
  • Icons.
  • Fade in animation for the window and icons.
  • And more...

Upcoming Features

  • Confirm window for the commands.

Screenshots

 

 

XS-Quit.jpg

 

 

 

How to Use

To install this script, open up your script editor and copy/paste this script to an open slot below Materials but above Main. Remember to save.

 

Main Script

 

#==============================================================================
#   XaiL System - Quit
#   Author: Nicke
#   Created: 16/01/2012
#   Edited: 17/01/2012
#   Version: 1.0
#==============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below â–¼ Materials but above â–¼ Main. Remember to save.
#
# Note: This script must be placed below XS - Core and XS - Title.
#
# *** Only for RPG Maker VX Ace. ***
#==============================================================================
($imported ||= {})["XAIL-XS-QUIT"] = true

module XAIL
 module QUIT
 #--------------------------------------------------------------------------#
 # * Settings
 #--------------------------------------------------------------------------#
 # QUIT list, the icon_index (set to nil) and custom_scene is optional.
 # QUIT_LIST:
 # ID = ['Title', :symbol, :command, icon_index, custom_scene (not needed) ]
 QUIT_LIST = []
 QUIT_LIST[0] = ['To Title', :to_title, :command_to_title, 121]
 QUIT_LIST[1] = ['New Game', :new_game, :command_new_game, 125]
 QUIT_LIST[2] = ['Save',	 :save,	 :command_custom,   229,  Scene_Save]
 QUIT_LIST[3] = ['Load',	 :continue, :command_continue, 232]
 QUIT_LIST[4] = ['Quit',	 :shutdown, :command_shutdown, 1]

 # If center window is true you cannot modify the x value.
 # QUIT_WINDOW [ Width, x, y, z, opacity, center window]
 QUIT_WINDOW = [160, 0, 50, 200, 255, true]

 # QUIT_ALIGNMENT = 0 (left), 1 (center), 2 (right)
 QUIT_ALIGNMENT = 0 # Default: 0.

 # The windowskin to use for the windows.
 # nil to disable.
 # SKIN = string
 SKIN = nil

 # Disable all of the icons if you don't need them.
 # ICON_ENABLE = true/false
 ICON_ENABLE = true

 # Transition, nil to use default.
 # TRANSITION [ SPEED, TRANSITION, OPACITY ]
 # TRANSITION = [40, "Graphics/Transitions/1", 50]
 TRANSITION = nil

 # Animate options.
 # Set ANIM_WINDOW_TIMER to nil to disable.
 ANIM_WINDOW_TIMER = 5 # Fade in time for window/icons.
 ANIM_SCENE_FADE = 1000 # Fade out time for scene. Default: 1000.
 ANIM_AUDIO_FADE = 1000 # Fade out time for audio. Default: 1000.

 end
end
# *** Don't edit below unless you know what you are doing. ***
#==============================================================================
# ** Window_QuitCommand
#==============================================================================
class Window_QuitCommand < Window_Command

 def initialize
super(0, 0)
self.openness = 0
open
 end

 def window_width
# // Method to return the width of QUIT_WINDOW.
return XAIL::QUIT::QUIT_WINDOW[0]
 end

 def alignment
# // Method to return the alignment.
return XAIL::QUIT::QUIT_ALIGNMENT
 end

 def continue_enabled
# // Method to check if a save file exists.
DataManager.save_file_exists?
 end

 def save_enabled
# // Method to check if save is enabled.
!$game_system.save_disabled
 end

 def make_command_list
# // Method to add the commands.
for i in XAIL::QUIT::QUIT_LIST
  case i[1]
  when :continue # Load
	add_command(i[0], i[1], continue_enabled, i[4])
  when :save
	add_command(i[0], i[1], save_enabled, i[4])
  else
	add_command(i[0], i[1], true, i[4])
  end
end
 end

end
#==============================================================================#
# ** Scene_End
#------------------------------------------------------------------------------
#  New Scene :: Scene_End
#==============================================================================#
class Scene_End < Scene_MenuBase

 alias xail_quit_start start
 def start(*args, &block)
# // Method to start the scene.
super
xail_quit_start(*args, &block)
create_quit_icon_window
create_quit_command_window
 end

 def terminate
# // Method to terminate.
super
 end

 def create_quit_command_window
# // Method to create the commands.
@command_window = Window_QuitCommand.new
@command_window.windowskin = Cache.system(XAIL::QUIT::SKIN) unless XAIL::QUIT::SKIN.nil?
if XAIL::QUIT::QUIT_WINDOW[5]
  @command_window.x = (Graphics.width - @command_window.width) / 2
else
  @command_window.x = XAIL::QUIT::QUIT_WINDOW[1]
end
@command_window.y = XAIL::QUIT::QUIT_WINDOW[2]
@command_window.z = XAIL::QUIT::QUIT_WINDOW[3]
@command_window.opacity = XAIL::QUIT::QUIT_WINDOW[4]
for i in XAIL::QUIT::QUIT_LIST
  @command_window.set_handler(i[1], method(i[2]))
end
@command_window.set_handler(:cancel, method(:return_scene))
pre_animate_in(@command_window) unless XAIL::QUIT::ANIM_WINDOW_TIMER.nil?
 end

 def create_quit_icon_window
# // Method to create the menu icon window.
@command_icon = Window_Icon.new(0, 0, @command_window.width, XAIL::QUIT::QUIT_LIST.size)
@command_icon.alignment = XAIL::QUIT::QUIT_ALIGNMENT
@command_icon.enabled = XAIL::QUIT::ICON_ENABLE
@command_icon.draw_cmd_icons(XAIL::QUIT::QUIT_LIST, 3)
if XAIL::QUIT::QUIT_WINDOW[5]
  @command_icon.x = (Graphics.width - @command_window.width) / 2
else
  @command_icon.x = XAIL::QUIT::QUIT_WINDOW[1]
end
@command_icon.y = XAIL::QUIT::QUIT_WINDOW[2]
@command_icon.z = 201
unless XAIL::QUIT::ANIM_WINDOW_TIMER.nil?
  @command_icon.opacity = 255
  pre_animate_in(@command_icon)
else
  @command_icon.opacity = 0
end
 end

 def pre_animate_in(command)
# // Method for pre_animate the window.
command.opacity -= 255
command.contents_opacity -= 255
 end

 def fade_animate(command, fade)
# // Method for fading in/out.
timer = XAIL::QUIT::ANIM_WINDOW_TIMER
while timer > 0
  Graphics.update
  case fade
  when :fade_in
  command.opacity += 255 / XAIL::QUIT::ANIM_WINDOW_TIMER unless command == @command_icon
  command.contents_opacity += 255 / XAIL::QUIT::ANIM_WINDOW_TIMER
  when :fade_out
  command.opacity -= 255 / XAIL::QUIT::ANIM_WINDOW_TIMER unless command == @command_icon
  command.contents_opacity -= 255 / XAIL::QUIT::ANIM_WINDOW_TIMER  
  end
  command.update
  timer -= 1
end
 end

 def post_start
# // Method for post_start.
super
unless XAIL::QUIT::ANIM_WINDOW_TIMER.nil?
  fade_animate(@command_window, :fade_in)
  fade_animate(@command_icon, :fade_in)
end
 end

 def close_command_window
# // Method for close_command_window.
unless XAIL::QUIT::ANIM_WINDOW_TIMER.nil?
  fade_animate(@command_icon, :fade_out)
  fade_animate(@command_window, :fade_out)
end
 end

 def fadeout_scene
time = XAIL::QUIT::ANIM_AUDIO_FADE
# // Method to fade out the scene.
RPG::BGM.fade(time)
RPG::BGS.fade(time)
RPG::ME.fade(time)
Graphics.fadeout(XAIL::QUIT::ANIM_SCENE_FADE * Graphics.frame_rate / 1000)
RPG::BGM.stop
RPG::BGS.stop
RPG::ME.stop
 end

 def command_new_game
 # // Method to call new game.
if $imported["XAIL-XS-TITLE"]
  return command_new_game_xail
end
DataManager.setup_new_game
close_command_window
fadeout_all
$game_map.autoplay
SceneManager.goto(Scene_Map)
 end

 def command_new_game_xail
# // Method to call new game (if XS-Title is imported).
DataManager.setup_new_game
close_command_window
fadeout_scene
$game_map.autoplay
if !XAIL::TITLE::SWITCHES.nil?
  for i in XAIL::TITLE::SWITCHES
	$game_switches[i] = true
  end
end
if !XAIL::TITLE::COMMON_EVENT.nil?
  $game_temp.reserve_common_event(XAIL::TITLE::COMMON_EVENT)
end
SceneManager.goto(Scene_Map)
 end

 def command_continue
# // Method to call load.
close_command_window
SceneManager.call(Scene_Load)
 end

 def command_custom
# // Method to call a custom command.
SceneManager.goto(@command_window.current_ext)
 end

 def perform_transition
# // Method to perform a transition.
if XAIL::QUIT::TRANSITION.nil?
  Graphics.transition(15)
else
  Graphics.transition(XAIL::QUIT::TRANSITION[0],XAIL::QUIT::TRANSITION[1],XAIL::QUIT::TRANSITION[2])
end
 end

end # END OF FILE

#=*==========================================================================*=#
# ** END OF FILE
#=*==========================================================================*=#

 

 

Core Script

Get it here.

Note: Some of these settings can be turned off simply by commenting it or removing it. This is just a quick script I made to simplify other scripts that needs the same methods.

 

Updates

None yet.

 

Credit

Do credit me, Nicke, if you are planning on using this script. Thanks.

Can be use in a commercial project.

Edited by Niclas

Share this post


Link to post
Share on other sites

Hey Crubitz,

It's probably up to Nicke or a Mod to fix the link, but if you're looking for a stand in, it's just a Google search away.

"Xail System Core" is what I looked up, here's hoping it stays up.

 

[link]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
Top ArrowTop Arrow Highlighted