ノーダメージで戦闘終了時にバトルイベント発動

効果

ノーダメージで敵を全滅させた時にバトルイベントを発動させることができます。
例えば、特定のスイッチや変数をいじったりして、プレイヤーに何か恩恵を与えたりすることもできます。
その他、色々な事ができると思います。

このスクリプトは、一度何らかの形でダメージを受けると、回復して全快の状態で戦闘を終わらせても
ノーダメージで勝利したことにはなりません

設定

【スクリプトの設定】
RX_T_NO_DAMAGE_END_NUM
ゲームスイッチの何番にノーダメージフラグ情報を格納するかを設定します。
バトルイベント編集画面で設定したバトルイベント発動用のスイッチIDを代入してください。

【バトルイベント設定】
発動条件を、上記で設定したノーダメージ判定用のスイッチIDがONの時にします。
後は、好きなようにバトルイベントを設定するだけです。
なお、全てのトループに対してバトルイベントを設定してやる必要はありません
なので、好きなトループを選んでバトルイベントを設定してください。

【スクリプトの導入】
このスクリプトをそのまま導入しても使えますが、いじっている所がいじっている所なので
他のスクリプトと競合する可能性が非常に高いです。

そこで、競合を極力回避できるバージョンも用意しました
これを導入するには、スクリプト導入後、Game_Battlerクラスの特定の場所に
次の一文を追加する必要があります。

rx_t_no_damage_judge(self)

追加する場所は以下の通りです(セクション・Game_Battler 3内を参照)
←この部分に追加してください」と指示している所に追加してください。
以下のスクリプトは丸々コピーしないでください(導入しても文法上、エラーが出ます)。
+ ...
 #--------------------------------------------------------------------------
 # ● 通常攻撃の効果適用
 # attacker : 攻撃者 (バトラー)
 #--------------------------------------------------------------------------
 def attack_effect(attacker)
  # クリティカルフラグをクリア
  self.critical = false

  (中略)

  # 命中の場合
  if hit_result == true
   # ステート衝撃解除
   remove_states_shock
   # HP からダメージを減算
   self.hp -= self.damage
   rx_t_no_damage_judge(self)  ←この部分に追加してください。
   # ステート変化
   @state_changed = false
   states_plus(attacker.plus_state_set)
   states_minus(attacker.minus_state_set)
  # ミスの場合

  (中略)

 end

 #--------------------------------------------------------------------------
 # ● スキルの効果適用
 # user : スキルの使用者 (バトラー)
 # skill : スキル
 #--------------------------------------------------------------------------
 def skill_effect(user, skill)
  # クリティカルフラグをクリア
  self.critical = false

  (中略)

  # 命中の場合
  if hit_result == true
   # 威力 0 以外の物理攻撃の場合
   if skill.power != 0 and skill.atk_f > 0
    # ステート衝撃解除
    remove_states_shock
    # 有効フラグをセット
    effective = true
   end
   # HP からダメージを減算
   self.hp -= self.damage
   rx_t_no_damage_judge(self)  ←この部分に追加してください。
   effective |= self.hp != last_hp
   # ステート変化
   @state_changed = false
   effective |= states_plus(skill.plus_state_set)
   effective |= states_minus(skill.minus_state_set)
   # 威力が 0 の場合

  (中略)

 end

 #--------------------------------------------------------------------------
 # ● スリップダメージの効果適用
 #--------------------------------------------------------------------------
 def skill_effect(user, skill)
  # ダメージを設定
  self.damage = self.maxhp / 10

  (中略)

  # HP からダメージを減算
  self.hp -= self.damage
  rx_t_no_damage_judge(self)  ←この部分に追加してください。
  # メソッド終了
  return true
 end

スクリプトのダウンロード

txtファイル:スクリプト(2つめ:競合回避版)
最終更新:2009年11月24日 01:26