RMRK is retiring.
Server is paid up for the rest of 2026, but the forum may go after that. See here for more information. Please archive or save anything you would like to keep before 2027.
Main Menu

[RPGVX]Question about Yanfly's Variable Controlled Encounters

Started by lpz_Nq, October 05, 2011, 10:51:03 AM

0 Members and 1 Guest are viewing this topic.

lpz_Nq

Hi all,
(I hope you understand everything - my English isn't perfect.)

I use Yanfly's Variable Controlled Encounters and changed it a bit.
Here is the Code:
#===============================================================================
#
# Yanfly Engine RD - Variable Controlled Encounters
# Last Date Updated: 2009.04.20
# Level: Normal
#
# I got tired of terrible encounter rates when you would set the average rate
# to roughly "30" steps and every 4 steps, the game would enter a battle so I
# made this to augment the rate battles would appear and to give me more control
# over them. The control that's given are the number of times the steps are
# rolled before making an average, the minimum number of steps that are free of
# battle, the percentage rate of the encounters that is free of battle, and if
# used, an event variable to modify the encounter rate.
#
# In addition to that, I've recreated a system similar to the Pokemon Repel item
# which gets rid of encounters so long as the Repel item isn't spent. Note that
# this isn't anything too special, but it's something extra to stick into this
# script. Repel is bound to an event variable so that the player doesn't have to
# throw in extra coding to modify the Repel value. Just modify it through the
# event editor. Simple as that.
#
# Also, for the opposite of Repel, there is a lure variable. Although rather
# than initiating a battle every step, lure will cut down the encounter count
# by a certain amount, which can be controlled from within the game.
#
#===============================================================================
# Instructions
#===============================================================================
#
# By default, the variables are as follows:
#
# THE_STEPS_VARIABLE  = Variable 61 = Bonus steps added upon encounter. This
#                                     adds a control to the randomization.
# STEPS_REMAINING_VAR = Variable 62 = Steps remaining before battle. This can be
#                                     calculated with or without the repel
#                                     variable. Used for debugging purposes.
# REPEL_VARIABLE      = Variable 63 = Used like it is in Pokemon. How many steps
#                                     does the player get free of battles.
# LURE_VARIABLE       = Variable 64 = Used similar to the Repel variable. It
#                                     lowers the encounter countdown which uses
#                                     the following two variables to modify.
# LURE_DIV_VAR        = Variable 65 = Divides the encounter countdown by this
#                                     amount. Ignored if it's equal to zero.
# LURE_SUB_VAR        = Variable 66 = Subtracts the encounter countdown by
#                                     this amount. Make it negative to raise the
#                                     countdown timer if you want to do that
#                                     instead for whatever reason.
#
# Change the variables in the event editor to alter the encounter rates in your
# game. They will internally affect the game through external means.
#
#===============================================================================
# Updates:
# ----------------------------------------------------------------------------
# o 2009.04.20 - Bug fix.
# o 2009.04.11 - Started script.
#===============================================================================
#
# Compatibility
# - Alias: Scene_Map, update_encounter
# - Overwrites: Game_Player, make_encounter_count, update_encounter
#
#===============================================================================

module YE
  module EVENT
    module VARIABLE
     
      # These are modifiers for the default encounter countdown reduction.
      # Bush values are at the center of an autotile and not necessarily inside
      # something that looks like a bush. Well, now you can modify it.
      BUSH_REDUCTION = 3
      NORM_REDUCTION = 1
     
      # The number of times the encounter steps/3 are rolled.
      # Note: Setting this value to 0 will make your computer explode.
      STEPS_ROLLED = 2
     
      # This is the minimum amount of steps the player would have free of
      # encounters after a battle.
      MINIMUM_STEPS_FREE = 5
   
      # This is a percent of the map's encounter rate that the player would
      # get free after a battle. A value of 10 would be 10% of the rate. A
      # map with 30 steps an encounter rate would get an additional 3 steps
      # free of encounters.
      PERCENT_RATE_FREE = 10
   
      # If this is set to true, it will designate an event variable to modify
      # the encounter rate. The encounter rate would be added by however much
      # the variable equals. The variable can be set to a negative value to
      # raise the encounter rate if needed.
      USE_STEPS_VARIABLE  = true    # Needs to be set to true for next to work.
      THE_STEPS_VARIABLE  = 32      # Number of steps modified to encounter.
   
      # For debugging purposes, you can use this variable to keep track of how
      # many steps are remaining before a battle will ensue.
      STEPS_REMAINING_VAR = 33
      TOTAL_WITH_REPEL = false      # Set this to true to total it with Repel.
   
      # This is the Repel Variable. If this value is above zero, it will not
      # allow the encounter countdown to drop by even one step.
      REPEL_VARIABLE = 34
   
      # This is the Lure Variable and the variables that modify the encounter
      # rate. The DIV_VAR divides the encounter countdown by its value while
      # the SUB_VAR subtracts it by its value.
      LURE_VARIABLE = 35            # This is the variable representing the steps.
      LURE_DIV_VAR  = 36            # This is the variable dividing the countdown.
      LURE_SUB_VAR  = 37            # This is the variable subtracting the steps.
     
    end # module VARIABLE
  end # module EVENT
end # module YE

#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================

#===============================================================================
# Game Player
#===============================================================================

class Game_Player < Game_Character

  #--------------------------------------------------------------------------
  # make_encounter_count
  #--------------------------------------------------------------------------
  def make_encounter_count
    if $game_map.map_id != 0
      n = $game_map.encounter_step
      if YE::EVENT::VARIABLE::USE_STEPS_VARIABLE
        n += $game_variables[YE::EVENT::VARIABLE::THE_STEPS_VARIABLE]
      end
      m = 1
      for i in 0..YE::EVENT::VARIABLE::STEPS_ROLLED
        m += rand(n/2)
      end
      m /= YE::EVENT::VARIABLE::STEPS_ROLLED
      @encounter_count = 0
      @encounter_count += m + n
      @encounter_count -= n/4;
      @encounter_count = 1 if @encounter_count < 1
    end
  end
 
  #--------------------------------------------------------------------------
  # Update Encounter
  #--------------------------------------------------------------------------
  def update_encounter
    # Check for Repel
    if $game_variables[YE::EVENT::VARIABLE::REPEL_VARIABLE] > 0
      $game_variables[YE::EVENT::VARIABLE::REPEL_VARIABLE] -= 1
      $game_temp.common_event_id = 40 if $game_variables[YE::EVENT::VARIABLE::REPEL_VARIABLE] == 1
    end
    return if $game_variables[YE::EVENT::VARIABLE::REPEL_VARIABLE] > 0
   
    # The default stuff
    return if $TEST and Input.press?(Input::CTRL)
    return if in_vehicle?
    if $game_map.bush?(@x, @y)
      @encounter_count -= YE::EVENT::VARIABLE::BUSH_REDUCTION
    else
      @encounter_count -= YE::EVENT::VARIABLE::NORM_REDUCTION
    end
   
    # Check for Lure
    if $game_variables[YE::EVENT::VARIABLE::LURE_VARIABLE] > 0
      $game_variables[YE::EVENT::VARIABLE::LURE_VARIABLE] -= 1
      @encounter_count /= $game_variables[YE::EVENT::VARIABLE::LURE_DIV_VAR] if $game_variables[YE::EVENT::VARIABLE::LURE_DIV_VAR] != 0
      @encounter_count -= $game_variables[YE::EVENT::VARIABLE::LURE_SUB_VAR]
      $game_temp.common_event_id = 40 if $game_variables[YE::EVENT::VARIABLE::LURE_VARIABLE] == 1
    end
   
    # Update the Encounter Variable
    if @encounter_count != nil
      $game_variables[YE::EVENT::VARIABLE::STEPS_REMAINING_VAR] = @encounter_count
      $game_variables[YE::EVENT::VARIABLE::STEPS_REMAINING_VAR] += $game_variables[YE::EVENT::VARIABLE::REPEL_VARIABLE] if YE::EVENT::VARIABLE::TOTAL_WITH_REPEL
    end
  end
 
end

#===============================================================================
# Scene Map
#===============================================================================

class Scene_Map < Scene_Base
 
  #--------------------------------------------------------------------------
  # Update Encounter
  #--------------------------------------------------------------------------
  alias modifier_update_encounter update_encounter unless $@
  def update_encounter
    return if $game_variables[YE::EVENT::VARIABLE::REPEL_VARIABLE] > 0
    modifier_update_encounter
  end
 
end

#===============================================================================
#
# END OF FILE
#
#===============================================================================

I changed the formula for the Encounters and some little stuff.
My Question is about the Line:
$game_temp.common_event_id = 40 if $game_variables[YE::EVENT::VARIABLE::LURE_VARIABLE] == 1

And
$game_temp.common_event_id = 40 if $game_variables[YE::EVENT::VARIABLE::REPEL_VARIABLE] == 1

It's in the "Update Encounter" part.
The Original RPG-Project where this script was in had no Common Events. Is there any sense about this?
When yes can someone try to explain it to me?

Thank you.   :)
English isn't my first language, but I hope you understand what I mean.