# 確率調節可能版 B # お互いの先制攻撃率を完全固定にしたもの # # アクター側先制攻撃確率 # アクター先制攻撃率 # エネミー側先制攻撃確率 # エネミー先制攻撃率 # # またこれらの確率は変数として格納しているため、 # イベントを用いることで先制攻撃の確率を変更可能。 # ココから設定 module Annex # アクター側先制攻撃率を格納した変数のID ACTORS_FIRST_ATTACK_RATE = 2 # エネミー側先制攻撃率を格納した変数のID ENEMIES_FIRST_ATTACK_RATE = 3 end class Scene_Battle #-------------------------------------------------------------------------- # ◎ 追加:先制攻撃の計算式 # return 1 : アクター先制 # return 0 : 通常通り # return -1 : エネミー先制 #-------------------------------------------------------------------------- def first_attack_calculate # とりあえずサンプルとしての計算式 # 全員のステートによって確率変動 # アクター側 actor_correct = 0 for actor in $game_party.actors next if not actor.exist? # 生存していない場合はスルー # ステート補正チェック actor_correct += actor.first_attack_state_check end # 敵側 enemy_correct = 0 for enemy in $game_troop.enemies next if not enemy.exist? # 不可視の場合などはスルー # ステート補正チェック enemy_correct += actor.first_attack_state_check end # アクター先制率 actor_rate = $game_variables[ACTORS_FIRST_ATTACK_RATE] * actor_correct # エネミー先制率 enemy_rate = $game_variables[ENEMIES_FIRST_ATTACK_RATE] * enemy_correct # 先にアクター側の先制攻撃計算を実行 if rand(100) < actor_rate return 1 end # エネミー側の先制攻撃計算を実行 if rand(100) < enemy_rate return -1 end # 通常通り return 0 end end # ココまでが計算式設定