#-------------------------------------------------------------------------- # 敵撃破時MP回復スクリプト #-------------------------------------------------------------------------- =begin  敵を撃破した際、DEFEAT_CHECKのMP_RECOVER_FLAGスイッチがオンになっていれば、  MP_RECOVER_VALUEの値自動的に回復するスクリプトです。  スイッチの値、回復量の値は自由に設定可能です。  撃破時に、バトルログに回復が表示され、システムで設定した回復SEが鳴ります。 =end module DEFEAT_CHECK MP_RECOVER_FLAG = 89 # 敵撃破時、MP回復フラグ MP_RECOVER_VALUE = 7 # 敵撃破時、MP回復量 end module Vocab REWARD_TEXT_MP = "撃破ボーナス! %sの%sが %s 回復した!" end class Window_BattleLog #-------------------------------------------------------------------------- # ● スキル/アイテム使用の表示 - スキル・アイテム使用者の名前も追加取得 #-------------------------------------------------------------------------- alias old_display_use_item display_use_item def display_use_item(subject, item) old_display_use_item(subject, item) @attacker = subject.name #たった今、スキル攻撃したキャラの名前を取得 end #-------------------------------------------------------------------------- # ● ステート付加の表示 - 相手が死亡時、攻撃したキャラの名前を飛ばす #-------------------------------------------------------------------------- def display_added_states(target) target.result.added_state_objects.each do |state| state_msg = target.actor? ? state.message1 : state.message2 # 戦闘不能時処理 if state.id == target.death_state_id target.perform_collapse_effect # BattleManagerのdefeat_rewardへ@attacker(名前)を飛ばす BattleManager::defeat_reward(@attacker) end next if state_msg.empty? replace_text(target.name + state_msg) if $game_switches[DEFEAT_CHECK::MP_RECOVER_FLAG] == true wait Sound.play_recovery add_text(sprintf(Vocab::REWARD_TEXT_MP, @attacker, Vocab::mp, DEFEAT_CHECK::MP_RECOVER_VALUE)) end wait wait_for_effect end end end module BattleManager #-------------------------------------------------------------------------- # ● 対象のMPを指定量アップする。 #-------------------------------------------------------------------------- def self.mp_little_recover(actor) if actor.name == @attacker && $game_switches[DEFEAT_CHECK::MP_RECOVER_FLAG] == true actor.mp += DEFEAT_CHECK::MP_RECOVER_VALUE end end #-------------------------------------------------------------------------- # ● 敵を倒したとき、倒したキャラを特定して撃破褒賞を付与 #-------------------------------------------------------------------------- def self.defeat_reward(attacker) @attacker = attacker # 機能追加できるよう、新たにメソッドを組んであります $game_party.battle_members.each do |actor| mp_little_recover(actor) end end end