#============================================================================== # 「混乱のリアリティ強化」(ACE) Ver.1.0 # 製作者:奈々(なな) # へぷたなすくろーる http://heptanas.mamagoto.com/ # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # スクリプトの改変は自由に行って頂いて構いませんが # その場合も元のスクリプトの作成者として名前を載せて下さい。 # また配布前に必ず、ブログにある利用規約を確認して下さい。 # #------------------------------------------------------------------------------ # # デフォルトの「混乱」(敵か味方を攻撃する)は # まず1/2の確率で敵に攻撃するか味方に攻撃するかを判定し # その上で狙われ率に応じて誰に攻撃が当たるかを決めていました。 # # これを、自分自身を除いた敵味方全員に対して # 狙われ率に応じて判定するよう変更します。 # # つまり、人数が多い方により攻撃が当たりやすくなり # かばうなどで味方からの攻撃も防げるようになり # 1人しかいない相手には混乱の有効性が下がるようになります。 # # 使い方は、スクリプトをリストに追加するだけです。 # (特にスクリプトの設定をする必要はありません) # #============================================================================== #============================================================================== # ■ Game_Action #------------------------------------------------------------------------------ # 戦闘行動を扱うクラスです。このクラスは Game_Battler クラスの内部で使用され # ます。 #============================================================================== class Game_Action #-------------------------------------------------------------------------- # ● 混乱時のターゲット #-------------------------------------------------------------------------- def confusion_target case subject.confusion_level when 1 opponents_unit.random_target when 2 random_target_without_self else friends_random_target_without_self end end #Game_Unitの処理を移植改変 #-------------------------------------------------------------------------- # ● 無差別ターゲットのランダムな決定 #-------------------------------------------------------------------------- def random_target_without_self o = opponents_unit f = friends_unit s = subject tgr_rand = rand * (o.tgr_sum + f.tgr_sum - s.tgr) o.alive_members.each do |member| tgr_rand -= member.tgr return member if tgr_rand < 0 end f.alive_members.each do |member| next if member == s tgr_rand -= member.tgr return member if tgr_rand < 0 end o.alive_members[0] end #-------------------------------------------------------------------------- # ● 味方ターゲットのランダムな決定 #-------------------------------------------------------------------------- def friends_random_target_without_self f = friends_unit s = subject tgr_rand = rand * (f.tgr_sum - s.tgr) f.alive_members.each do |member| next if member == s tgr_rand -= member.tgr return member if tgr_rand < 0 end f.alive_members[0] end end