=begin Switchless Common Events v1.1 by PK8 Created: 5/6/2012 Modified: 5/27/2012 ────────────────────────────────────────────────────────────────────────────── ■ Author's Notes This was a fairly quick script I wrote. It was an idea I had in my head for a little while. ────────────────────────────────────────────────────────────────────────────── ■ Introduction Remember how in RPG Maker 2000 and 2003, you didn't need to rely on switches in order for your common events to run on parallel process and autorun? Well, it's back. This script lets you set which common events are going to run in either parallel processing or automatically, without the use of conditional switches. ────────────────────────────────────────────────────────────────────────────── ■ Features o Set which common events are going to use autorun or parallel process triggering without a conditional switch. ────────────────────────────────────────────────────────────────────────────── ■ Methods Aliased Scene_Title.command_new_game Interpreter.setup_starting_event Game_CommonEvent.refresh ────────────────────────────────────────────────────────────────────────────── ■ Changelog v1 (05/06/2012): Initial Release v1.1 (05/27/2012): Removed Custom Conditionals feature because it was unnecessary and could easily be accomplished through conditional branches. I also reduced a lot of code. =end #============================================================================== # ** Configuration #============================================================================== module PK8 class Switchless_CommonEvents #-------------------------------------------------------------------------- # * Do not modify #-------------------------------------------------------------------------- Autorun, Parallel = [], [] #-------------------------------------------------------------------------- # * Decide which common events would autorun/process without a switch. # Autorun/Parallel = [Common Event IDs] #-------------------------------------------------------------------------- #Autorun = [10, 9] #Parallel = [8, 7] end end #============================================================================== # ** Scene_Title #------------------------------------------------------------------------------ # This class performs title screen processing. #============================================================================== class Scene_Title #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- unless method_defined?(:pk8_sce_command_new_game) alias_method(:pk8_sce_command_new_game, :command_new_game) end #-------------------------------------------------------------------------- # * Command: New Game #-------------------------------------------------------------------------- def command_new_game pk8_sce_command_new_game PK8::Switchless_CommonEvents::Autorun.each { | id | ceid = $data_common_events[id]; ceid.trigger, ceid.switch_id = 0, 0 } PK8::Switchless_CommonEvents::Parallel.each { | id | ceid = $data_common_events[id]; ceid.trigger, ceid.switch_id = 0, 0 } end end #============================================================================== # ** Interpreter #------------------------------------------------------------------------------ # This interpreter runs event commands. This class is used within the # Game_System class and the Game_Event class. #============================================================================== class Interpreter #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- unless method_defined?(:pk8_sce_setup_starting_event) alias_method(:pk8_sce_setup_starting_event, :setup_starting_event) end #-------------------------------------------------------------------------- # * Starting Event Setup #-------------------------------------------------------------------------- def setup_starting_event pk8_sce_setup_starting_event $data_common_events.compact.each { | ce | setup(ce.list, 0) if ( PK8::Switchless_CommonEvents::Autorun.include?(ce.id)) } end end #============================================================================== # ** Game_CommonEvent #------------------------------------------------------------------------------ # This class handles common events. It includes execution of parallel process # event. This class is used within the Game_Map class ($game_map). #============================================================================== class Game_CommonEvent #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- unless method_defined?(:pk8_sce_refresh) alias_method(:pk8_sce_refresh, :refresh) end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh pk8_sce_refresh if PK8::Switchless_CommonEvents::Parallel.include?(@common_event_id) @interpreter = Interpreter.new if @interpreter == nil end end end