#------------------------------------------------------------------------------# # Galv's Past Encounters #------------------------------------------------------------------------------# # For: RPGMAKER VX ACE # Version 1.0 # Requested by William C #------------------------------------------------------------------------------# # 2013-03-28 - version 1.0 - release #------------------------------------------------------------------------------# # This script allows you to specify regions with random encounters that are # chosen from any previously defeated troop. A comment can be added to troops # that you do not wish to appear (such as bosses perhaps). #------------------------------------------------------------------------------# #------------------------------------------------------------------------------# # COMMENT - First troop event page #------------------------------------------------------------------------------# # # <no_past> # Add a COMMENT with this tag on first troop event page if you # # do not wish that troop to appear in the past encounters # #------------------------------------------------------------------------------# #------------------------------------------------------------------------------# # SCRIPT CALL #------------------------------------------------------------------------------# # # past_battle # starts battle processing with a random past encounter # #------------------------------------------------------------------------------# ($imported ||= {})["Galvs_Past_Encounters"] = true module Galv_PE #------------------------------------------------------------------------------# # SETTINGS #------------------------------------------------------------------------------# REGIONS = [60,61] # Regions that will encounter any previously defeated troop #------------------------------------------------------------------------------# # END SETTINGS #------------------------------------------------------------------------------# end class Game_Interpreter def past_battle return if $game_party.in_battle troop_id = $game_player.make_past_encounter_troop_id if $data_troops[troop_id] BattleManager.setup(troop_id, @params[2], @params[3]) BattleManager.event_proc = Proc.new {|n| @branch[@indent] = n } $game_player.make_encounter_count SceneManager.call(Scene_Battle) end Fiber.yield end end # Game_Interpreter class Game_Player < Game_Character alias galv_past_enc_gp_make_encounter_troop_id make_encounter_troop_id def make_encounter_troop_id if Galv_PE::REGIONS.include?($game_map.region_id(@x, @y)) return make_past_encounter_troop_id end galv_past_enc_gp_make_encounter_troop_id end def make_past_encounter_troop_id return 0 if $game_system.past_encounters.empty? return $game_system.past_encounters.sample end end # Game_Player < Game_Character class Game_System attr_accessor :past_encounters alias galv_past_enc_gs_initialize initialize def initialize @past_encounters = [] galv_past_enc_gs_initialize end end # Game_System class Game_Troop < Game_Unit attr_reader :troop_id end # Game_Troop < Game_Unit module BattleManager class << self alias galv_past_enc_bm_process_victory process_victory end def self.process_victory past = true $data_troops[$game_troop.troop_id].pages[0].list.each { |cmd| if cmd.code == 108 && cmd.parameters.include?("<no_past>") past = false break end } if !$game_system.past_encounters.include?($game_troop.troop_id) && past $game_system.past_encounters << $game_troop.troop_id end galv_past_enc_bm_process_victory end end # BattleManager
Advertisements