RPG Maker Forums

Random Common Event Occurence v1.0
Drykul


Introduction
Basically this acts similar to random battle events only it calls a specified Common Event instead of a battle.

Features
- Process common events at random intervals depending on Region ID.
- Can adjust the % chance per event as well as minimum # of steps required before the event will proc.
- Disable/Enable any particular event by either setting to true/false, a $game_switch, or any other boolean.

Screenshots
No screenshots needed.

How to Use
Simply set up your events in the "Configuration Section", set up your common event in the database, and paint your terrain with the Region ID you specify.

Demo
No Demo Included (I will post one if requested but it's pretty easy to set up and use.)

Script

Code:
=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

FAQ


Credit and Thanks
- Drykul
- Adorna

Author's Notes
I'm fairly new to scripting and this is the first one that I thought would be easy enough to clean up and share and to get some feedback! Hopefully it comes in handy for someone. :)

Latest Threads

Latest Profile Posts

Day 9 of giveaways! 8 prizes today :D
He mad, but he cute :kaopride:

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.

Forum statistics

Threads
106,037
Messages
1,018,464
Members
137,821
Latest member
Capterson
Top