#============================================================================== # パーティ能力詳細設定 ver1.00 #------------------------------------------------------------------------------ #[特徴] # パーティ能力(エンカウント半減、先制攻撃率アップなど)を # 細かく設定できるようになります。 # #[設定方法] # アクター、クラス、武器、防具、ステートのメモ欄に記述する。 # # ・エンカウント率:<エンカウント率:80> # ・先制攻撃率  :<先制攻撃率:200> # ・不意打ち率  :<不意打ち率:50> # ・獲得金額率  :<獲得金額率:500> # ・アイテム入手率:<アイテム入手率:150> # # 作成:ぶちょー # URL :http://nyannyannyan.bake-neko.net/ # 著作:自分で作ったとか言わないで>< # 改造はご自由にどうぞ。 # リードミーとかに私の名前の載せたりするのは任意で。 #============================================================================== #============================================================================== # バージョンアップ情報 # ver1.00 公開 #============================================================================== #============================================================================== # 設定項目 #============================================================================== module Kazari module PartyAbility # 計算方法 # 0 : 加算 # 1 : 乗算 CALC = 0 end end #============================================================================== # ここまで #============================================================================== $kzr_imported = {} if $kzr_imported == nil $kzr_imported["PartyAbility"] = true #============================================================================== # ■ Game_Player #============================================================================== class Game_Player < Game_Character #-------------------------------------------------------------------------- # ● エンカウント進行値の取得 #-------------------------------------------------------------------------- alias kzr_party_ability_encounter_progress_value encounter_progress_value def encounter_progress_value value = kzr_party_ability_encounter_progress_value value *= $game_party.party_ability_rate(:encounter) value.to_i end end #============================================================================== # ■ Game_Party #============================================================================== class Game_Party < Game_Unit #-------------------------------------------------------------------------- # ● 先制攻撃の確率計算 #-------------------------------------------------------------------------- alias kzr_party_ability_rate_preemptive rate_preemptive def rate_preemptive(troop_agi) rate = kzr_party_ability_rate_preemptive(troop_agi) rate *= party_ability_rate(:preemptive) rate end #-------------------------------------------------------------------------- # ● 不意打ちの確率計算 #-------------------------------------------------------------------------- alias kzr_party_ability_rate_surprise rate_surprise def rate_surprise(troop_agi) return 0 if cancel_surprise? rate = kzr_party_ability_rate_surprise(troop_agi) rate *= party_ability_rate(:surprise) rate end #-------------------------------------------------------------------------- # ● 各種倍率の計算 #-------------------------------------------------------------------------- def party_ability_rate(symbol) if Kazari::PartyAbility::CALC == 0 rate = $game_party.members.inject(1.0) {|r, m| r += m.party_ability_rate(symbol) } else rate = $game_party.members.inject(1.0) {|r, m| r *= m.party_ability_rate(symbol) } end [rate, 0].max end end #============================================================================== # ■ Game_Troop #============================================================================== class Game_Troop < Game_Unit #-------------------------------------------------------------------------- # ● お金の合計計算 #-------------------------------------------------------------------------- alias kzr_party_ability_gold_total gold_total def gold_total gold = kzr_party_ability_gold_total gold *= $game_party.party_ability_rate(:gold) gold.to_i end end #============================================================================== # ■ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● ドロップアイテム取得率の倍率を取得 #-------------------------------------------------------------------------- alias kzr_party_ability_drop_item_rate drop_item_rate def drop_item_rate rate = kzr_party_ability_drop_item_rate rate *= $game_party.party_ability_rate(:item) rate end end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 各種倍率の計算 #-------------------------------------------------------------------------- def party_ability_rate(symbol) if Kazari::PartyAbility::CALC == 0 feature_objects.inject(0.0) {|r, obj| r += obj.party_ability_rate[symbol] - 1.0 } else feature_objects.inject(1.0) {|r, obj| r *= obj.party_ability_rate[symbol] } end end end #============================================================================== # ■ RPG::BaseItem #============================================================================== class RPG::BaseItem def party_ability_rate return @party_ability_rate if @party_ability_rate != nil @party_ability_rate = { :encounter => 1.0, :preemptive => 1.0, :surprise => 1.0, :gold => 1.0, :item => 1.0, } note.each_line {|line| case line when /<エンカウント率:(\d+)>/i @party_ability_rate[:encounter] = $1.to_i / 100.0 when /<先制攻撃率:(\d+)>/i @party_ability_rate[:preemptive] = $1.to_i / 100.0 when /<不意打ち率:(\d+)>/i @party_ability_rate[:surprise] = $1.to_i / 100.0 when /<取得金額率:(\d+)>/i @party_ability_rate[:gold] = $1.to_i / 100.0 when /<アイテム入手率:(\d+)>/i @party_ability_rate[:item] = $1.to_i / 100.0 end } return @party_ability_rate end end