=begin --------------------------------------------- Random Common Event Occurance v1.0 by Drykul --------------------------------------------- Basically this acts similar to random battle events only it calls a specified Common Event instead of a battle. Simply set up your events below in the "Configuration Section", set up your common event in the database, and paint your terrain with the Region ID you specify below. *Special thanks to Adorna for writing the initial script and giving me the inspiration for this! -------------- Compatibility -------------- The update method in Scene_Map is aliased. Other than that you shouldn't have any issues with compatibility! -------------------------------- ToS -------------------------------- Completely free to use for commercial and non-commercial with no restrictions. Just a heads up to me that you're using it would be nice. -------------- Contacting me -------------- You can email me at drykul@cloud9studios.net, find me on the /r/RPGMaker subreddit, I'm shaynec1981 at www.rpgmakerweb.com=end################################################################################class Random_Event_Occuranceattr_reader :reo_region_idattr_accessor :random_eventsattr_accessor :steps_counting def reo_setup @random_events = {######################################################################################## DO NOT EDIT ABOVE THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING ################################# Configuration Section ################################ # :event_name => [ region id, # % chance of occurance, # enabled/disabled, # common event to run, # minimum number of steps taken to process ], :test1 => [ 1, 50, true, 4, 10 ], :test2 => [ 2, 20, true, 5, 40 ], ######################################################################################### DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING ####################################################################################### } end def initialize @regionid = nil @steps_counting = nil @numbers_to_proc = [] @steps = 0 reo_setup end def encounter_chance(region_id) for i in @random_events if i[1][0] == region_id && i[1][2] == true @steps += 1 chance = rand(101) while @numbers_to_proc.size < i[1][1] new_num = rand(101) if !@numbers_to_proc.include?(new_num) @numbers_to_proc[@numbers_to_proc.size] = new_num end end if @numbers_to_proc.include?(chance) && @steps >= i[1][4] $game_temp.reserve_common_event(i[1][3]) @steps = 0 end end end end def update reo_setup if @regionid != $game_map.region_id($game_player.x, $game_player.y) @regionid = $game_map.region_id($game_player.x, $game_player.y) @steps = 0 end encounter_chance(@regionid) @numbers_to_proc.clear end end################# UPDATED SCENE_MAP ############################################class Scene_Map < Scene_Base alias random_event_occurance_map_update update def update random_event_occurance_map_update for i in $reo.random_events if $game_map.region_id($game_player.x, $game_player.y) == i[1][0] if $reo.steps_counting != $game_party.steps $reo.steps_counting = $game_party.steps $reo.update end end end endend################# UPDATED DATAMANAGER###########################################module DataManager class << self unless self.method_defined?(:reo_GameObj_Alias) alias_method(:reo_GameObj_Alias, :create_game_objects) end unless self.method_defined?(:reo_MakeSaveAlias) alias_method(:reo_MakeSaveAlias, :make_save_contents) end unless self.method_defined?(:reo_ExtractSaveAlias) alias_method(:reo_ExtractSaveAlias, :extract_save_contents) end def create_game_objects reo_GameObj_Alias $reo = Random_Event_Occurance.new end def make_save_contents contents = reo_MakeSaveAlias contents[:reo] = $reo contents end def extract_save_contents(contents) reo_ExtractSaveAlias(contents) $reo = contents[:reo] end endend