#============================================================================== # ■ RGSS3 エンカウント下限設定 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # ランダムエンカウント時、場所移動後や戦闘後に # 最低限エンカウントしない歩数を設定します。 # 全マップへの一括設定と、個別設定が可能です。 #------------------------------------------------------------------------------ # ★設定例(マップのメモ欄を使用します) #------------------------------------------------------------------------------ # <エンカウント下限:30> # # このマップでは30歩エンカウントしません。 #============================================================================== module ENCOUNT_BORDER #マップ別エンカウント下限設定が存在しないマップの #共通エンカウント下限を設定。 #デフォルトの状態にしたい場合は1にして下さい。 BORDER = 20 #マップ別エンカウント下限設定用キーワードを設定。 WORD = "エンカウント下限" end class Game_Player < Game_Character alias make_encounter_count_border make_encounter_count def make_encounter_count #本来の処理を実行。 make_encounter_count_border #エンカウント下限設定を用いてエンカウントカウントを変更する。 @encounter_count = [@encounter_count, $game_map.encounter_border].max end end class Game_Map #-------------------------------------------------------------------------- # セットアップ #-------------------------------------------------------------------------- alias setup_encounter_border setup def setup(map_id) #本来の処理を実行。 setup_encounter_border(map_id) #エンカウント下限設定を消去。 @encounter_border = nil end #-------------------------------------------------------------------------- # エンカウント下限設定 #-------------------------------------------------------------------------- def encounter_border #キャッシュが存在する場合はキャッシュを返す。 return @encounter_border if @encounter_border != nil #メモ欄からデータを取得。 @encounter_border = @map.note.scan(/<#{ENCOUNT_BORDER::WORD}[::](\S+)>/).flatten #データが存在する場合はデータを返し、そうでない場合はデフォルト値を返す。 if @encounter_border != nil && !@encounter_border.empty? @encounter_border = @encounter_border[0].to_i else @encounter_border = ENCOUNT_BORDER::BORDER end #データを返す。 @encounter_border end end