F12 Pause with image script Version: 1.1
By: Zeriab
Description
This script changes the functionality of the F12 button so it toggles pause on and off instead of resetting the game.
It displays an image while paused.
Screenshots
Instructions
Copy+paste the script into the script editor. (Unsure? See this tutorial)
Import picture named pause to Graphics/Pictures. You can use the example picture below for trying it out.
Script
[ruby]#==============================================================================
# ** Pausing with F12
#------------------------------------------------------------------------------
# Zeriab
# Version 1.1
# 2009-05-25 (Year-Month-Day)
#------------------------------------------------------------------------------
# * Version History :
#
# Â Version 1.0 -------------------------------------------------- (2009-05-22)
# Â - First release
#
# Â Version 1.1 -------------------------------------------------- (2009-05-25)
# Â - The pause image now appears immediately when F12 is pressed.
# Â - Transitions are cut short rather than restarted when F12 is pressed.
#------------------------------------------------------------------------------
# * Description :
#
# Â This script changes the functionality of pressing F12 during the game
# Â from resetting the game to (un)pausing the game. A picture is displayed
# Â while the game is paused. (Having a picture is optional)
#------------------------------------------------------------------------------
# * License :
#
# Â Copyright (C) 2009 Â Zeriab
#
# Â This program is free software: you can redistribute it and/or modify
# Â it under the terms of the GNU Lesser Public License as published by
# Â the Free Software Foundation, either version 3 of the License, or
# Â (at your option) any later version.
#
# Â This program is distributed in the hope that it will be useful,
# Â but WITHOUT ANY WARRANTY; without even the implied warranty of
# Â MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Â See the
# Â GNU Lesser Public License for more details.
#
# Â For the full license see <http://www.gnu.org/licenses/>
# Â The GNU General Public License: http://www.gnu.org/licenses/gpl.txt
# Â The GNU Lesser General Public License: http://www.gnu.org/licenses/lgpl.txt
#------------------------------------------------------------------------------
# * Compatibility :
#
# Â Is most likely not compatible with other F12 prevention scripts.
#------------------------------------------------------------------------------
# * Instructions :
#
# Â Place this script anywhere above main.
# Â The image file 'pause' present in Graphics/Pictures is used.
# Â Note: No picture is shown if there is no 'pause' in Graphics/Pictures.
#==============================================================================
Â
#=============================================================================
# ** Reset class (because it won't be defined until F12 is pressed otherwise)
#=============================================================================
class Reset < Exception
Â
end
#=============================================================================
# ** Module Graphics
#=============================================================================
module Graphics
 class << self
  #-------------------------------------------------------------------------
  # * Aliases Graphics.update and Graphics.transition
  #-------------------------------------------------------------------------
  unless self.method_defined?
zeriab_f12_pause_update)
   alias_method
zeriab_f12_pause_update, :update)
   alias_method
zeriab_f12_pause_transition, :transition)
  end
  #-------------------------------------------------------------------------
  # Change the update method so F12 toggles pause
  #-------------------------------------------------------------------------
  def update(*args)
   # Try to update normally
   begin
    zeriab_f12_pause_update(*args)
    return
   rescue Reset
    # Do nothing
   end
   # F12 has been pressed
   done = false
   # Store frame count
   frame_count = Graphics.frame_count
   # Show pause image
   @sprite = Sprite.new
   @sprite.z = 9999
   begin
    @sprite.bitmap = RPG::Cache.picture('pause')
   rescue
    @sprite.bitmap = Bitmap.new(32,32)
   end
   # Keep trying to do the update
   while !done
    begin
     zeriab_f12_pause_update(*args)
     done = true
    rescue Reset
     # Do Nothing
    end
   end
   # F12 has been released, update until it is pressed again
   while done
    begin
     zeriab_f12_pause_update(*args)
    rescue Reset
     done = false
    end
   end
   # F12 has been pressed, keep trying to update
   while !done
    begin
     zeriab_f12_pause_update(*args)
     done = true
    rescue Reset
     # Do nothing
    end
   end
   # F12 has been released, dispose pause image
   @sprite.dispose
   # Set proper frame count
   Graphics.frame_count = frame_count
  end
  #-------------------------------------------------------------------------
  # Changes the transition so it is cut short if F12 is pressed
  #-------------------------------------------------------------------------
  def transition(*args)
   done = false
   # Keep trying to do the transition
   while !done
    begin
     zeriab_f12_pause_transition(*args)
     done = true
    rescue Reset
     # Set transition length to 0 frames.
     args[0] = 0
    end
   end
  end
 end
end
[/ruby]
Credit
Credits goes to Zeriab for writing the script and making the Paused picture.
Known Compatibility Issues
Will most like not work together with other scripts changing the functionality of the F12 button.
Author's Notes
Thanks goes to sixdd for suggesting pause toggling and showing a pause image.
Thanks goes to Kiriashi for inspiration on cutting the transitions short.
You can use the pause image and modify it any way you like. You don't have to provide credits or anything.
If F12 is pressed during a transition the transition is cut short.
Note that it does NOT work on VX.
Terms and Conditions
By: Zeriab
Description
This script changes the functionality of the F12 button so it toggles pause on and off instead of resetting the game.
It displays an image while paused.
Screenshots

Instructions
Copy+paste the script into the script editor. (Unsure? See this tutorial)
Import picture named pause to Graphics/Pictures. You can use the example picture below for trying it out.

Script
[ruby]#==============================================================================
# ** Pausing with F12
#------------------------------------------------------------------------------
# Zeriab
# Version 1.1
# 2009-05-25 (Year-Month-Day)
#------------------------------------------------------------------------------
# * Version History :
#
# Â Version 1.0 -------------------------------------------------- (2009-05-22)
# Â - First release
#
# Â Version 1.1 -------------------------------------------------- (2009-05-25)
# Â - The pause image now appears immediately when F12 is pressed.
# Â - Transitions are cut short rather than restarted when F12 is pressed.
#------------------------------------------------------------------------------
# * Description :
#
# Â This script changes the functionality of pressing F12 during the game
# Â from resetting the game to (un)pausing the game. A picture is displayed
# Â while the game is paused. (Having a picture is optional)
#------------------------------------------------------------------------------
# * License :
#
# Â Copyright (C) 2009 Â Zeriab
#
# Â This program is free software: you can redistribute it and/or modify
# Â it under the terms of the GNU Lesser Public License as published by
# Â the Free Software Foundation, either version 3 of the License, or
# Â (at your option) any later version.
#
# Â This program is distributed in the hope that it will be useful,
# Â but WITHOUT ANY WARRANTY; without even the implied warranty of
# Â MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Â See the
# Â GNU Lesser Public License for more details.
#
# Â For the full license see <http://www.gnu.org/licenses/>
# Â The GNU General Public License: http://www.gnu.org/licenses/gpl.txt
# Â The GNU Lesser General Public License: http://www.gnu.org/licenses/lgpl.txt
#------------------------------------------------------------------------------
# * Compatibility :
#
# Â Is most likely not compatible with other F12 prevention scripts.
#------------------------------------------------------------------------------
# * Instructions :
#
# Â Place this script anywhere above main.
# Â The image file 'pause' present in Graphics/Pictures is used.
# Â Note: No picture is shown if there is no 'pause' in Graphics/Pictures.
#==============================================================================
Â
#=============================================================================
# ** Reset class (because it won't be defined until F12 is pressed otherwise)
#=============================================================================
class Reset < Exception
Â
end
#=============================================================================
# ** Module Graphics
#=============================================================================
module Graphics
 class << self
  #-------------------------------------------------------------------------
  # * Aliases Graphics.update and Graphics.transition
  #-------------------------------------------------------------------------
  unless self.method_defined?
   alias_method
   alias_method
  end
  #-------------------------------------------------------------------------
  # Change the update method so F12 toggles pause
  #-------------------------------------------------------------------------
  def update(*args)
   # Try to update normally
   begin
    zeriab_f12_pause_update(*args)
    return
   rescue Reset
    # Do nothing
   end
   # F12 has been pressed
   done = false
   # Store frame count
   frame_count = Graphics.frame_count
   # Show pause image
   @sprite = Sprite.new
   @sprite.z = 9999
   begin
    @sprite.bitmap = RPG::Cache.picture('pause')
   rescue
    @sprite.bitmap = Bitmap.new(32,32)
   end
   # Keep trying to do the update
   while !done
    begin
     zeriab_f12_pause_update(*args)
     done = true
    rescue Reset
     # Do Nothing
    end
   end
   # F12 has been released, update until it is pressed again
   while done
    begin
     zeriab_f12_pause_update(*args)
    rescue Reset
     done = false
    end
   end
   # F12 has been pressed, keep trying to update
   while !done
    begin
     zeriab_f12_pause_update(*args)
     done = true
    rescue Reset
     # Do nothing
    end
   end
   # F12 has been released, dispose pause image
   @sprite.dispose
   # Set proper frame count
   Graphics.frame_count = frame_count
  end
  #-------------------------------------------------------------------------
  # Changes the transition so it is cut short if F12 is pressed
  #-------------------------------------------------------------------------
  def transition(*args)
   done = false
   # Keep trying to do the transition
   while !done
    begin
     zeriab_f12_pause_transition(*args)
     done = true
    rescue Reset
     # Set transition length to 0 frames.
     args[0] = 0
    end
   end
  end
 end
end
[/ruby]
Credit
Credits goes to Zeriab for writing the script and making the Paused picture.
Known Compatibility Issues
Will most like not work together with other scripts changing the functionality of the F12 button.
Author's Notes
Thanks goes to sixdd for suggesting pause toggling and showing a pause image.
Thanks goes to Kiriashi for inspiration on cutting the transitions short.
You can use the pause image and modify it any way you like. You don't have to provide credits or anything.
If F12 is pressed during a transition the transition is cut short.
Note that it does NOT work on VX.
Terms and Conditions
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser Public License for more details.
For the full license see <http://www.gnu.org/licenses/>
The GNU General Public License: http://www.gnu.org/licenses/gpl.txt
The GNU Lesser General Public License: http://www.gnu.org/licenses/lgpl.txt
it under the terms of the GNU Lesser Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser Public License for more details.
For the full license see <http://www.gnu.org/licenses/>
The GNU General Public License: http://www.gnu.org/licenses/gpl.txt
The GNU Lesser General Public License: http://www.gnu.org/licenses/lgpl.txt