- Joined
- Jun 10, 2014
- Messages
- 91
- Reaction score
- 22
- First Language
- English
- Primarily Uses
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
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.
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.
Last edited by a moderator: