#============================================================================== # ■ エンカウント率変動装備 Ver 1.00                 By むー #------------------------------------------------------------------------------ # エンカウント率を変動させる装備品を作成します。 #------------------------------------------------------------------------------ # # ★簡単な仕様★ # # 装備品のメモ欄に <エンカウント:n> と記述します。nは数値(%)です。 # <エンカウント:50> → エンカウント率が50%(半分)になります。 # <エンカウント:200> → エンカウント率が200%(2倍)になります。 # # ★注意★ # # エンカウント率変動装備を複数した場合、全てを掛け合わせた倍率になります。 # <エンカウント:50> と <エンカウント:60> の装備をメンバー内でしていた場合、 # 50%×60%=30% となります。特徴のエンカウント半減を指定していた場合、 # さらに50%が掛けられます。乗船時にはさらに50%が掛けられるようです(デフォルト)。 # #============================================================================== $moo_encounter_count_change = true module MOO_ENCOUNTER_COUNT_CHANGE #-------------------------------------------------------------------------- # 以下、設定箇所です。 #-------------------------------------------------------------------------- # エンカウントを設定する文字(他と競合しない場合は変えないでください) ENCOUNT_WORD = "エンカウント" #-------------------------------------------------------------------------- # ここまで。 #-------------------------------------------------------------------------- end #============================================================================== # ■ Game_Player #------------------------------------------------------------------------------ #  プレイヤーを扱うクラスです。イベントの起動判定や、マップのスクロールなどの # 機能を持っています。このクラスのインスタンスは $game_player で参照されます。 #============================================================================== class Game_Player < Game_Character #-------------------------------------------------------------------------- # ○ エンカウント割合取得 #-------------------------------------------------------------------------- def moo_encounter_step # ワード取得 moo_encounter_step_word = MOO_ENCOUNTER_COUNT_CHANGE::ENCOUNT_WORD # 変数初期化 val = 1 # メンバーがいない場合は終了 return val if $game_party.members.size == 0 # パーティーメンバー分ループ for actor in $game_party.members # 装備スロット数分ループ for i in 0..4 # 装備品の取得 item = $game_actors[actor.id].equips[i] # 装備があった場合 if item != nil # メモ読み込み memo = item.note.scan((/<#{moo_encounter_step_word}[::](\S+)>/)) memo = memo.flatten # 該当ワードがあった場合 if memo != nil and not memo.empty? # 割合計算 val *= memo[0].to_f / 100 end end end end return val end #-------------------------------------------------------------------------- # ◎ エンカウントの更新 #-------------------------------------------------------------------------- alias moo_update_encounter update_encounter def update_encounter moo_update_encounter @encounter_count = 0 if @encounter_count < 0 # 追加 end #-------------------------------------------------------------------------- # ● エンカウント進行値の取得 #-------------------------------------------------------------------------- alias moo_encounter_progress_value encounter_progress_value def encounter_progress_value value = $game_map.bush?(@x, @y) ? 2 : 1 value *= 0.5 if $game_party.encounter_half? value *= 0.5 if in_ship? value *= moo_encounter_step # 追加 value end end