#============================================================================== # 防御時回復 ver1.00 #------------------------------------------------------------------------------ #[特徴] # 防御したとき、HPとかMPが回復するようにします。 # 常に回復するか、スキルで判断するか、装備品で判断するか、設定できます。 # #[設定方法] # スキルや装備品のメモ欄に # : HPが回復するようになる。 # : MPが回復するようになる。 # #[例] # と書くと、最大HPの10%回復する。 # 設定が複数被ると、一番大きい数値を採用します。 # # 作成:ぶちょー # ホム:http://nyannyannyan.bake-neko.net/ # 著作:自分で作ったとか言わないで>< # 改造はご自由にどうぞ。 # リードミーとかに私の名前の載せたりするのは任意で。 #============================================================================== #============================================================================== # バージョンアップ情報 # ver1.00 公開 #============================================================================== #============================================================================== # 設定項目 #============================================================================== module Kazari module GUARD_RECOVERY # スキルとか装備品とか関係なしに回復するなら、true ALWAYS = false # 上記を true にした場合の回復レート HP_RATE = 5 MP_RATE = 5 # スキルで判断するなら、true SKILL = true # 装備品で判断するなら、true EQUIP = true # 回復時の文章 HP_TEXT = "%sの%sが%s回復した!" MP_TEXT = "%sの%sが%s回復した!" end end #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 防御時回復の処理 #-------------------------------------------------------------------------- def guard_recovery end end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler include Kazari #-------------------------------------------------------------------------- # ● 防御時回復の処理 #-------------------------------------------------------------------------- def guard_recovery hp_recovery = 0 ; mp_recovery = 0 if guard_hp_recovery? if @hp < maxhp hp_recovery = maxhp * hp_recovery_rate / 100 @hp += hp_recovery end end if guard_mp_recovery? if @mp < maxmp mp_recovery = maxmp * mp_recovery_rate / 100 @mp += mp_recovery end end if hp_recovery > 0 || mp_recovery > 0 Sound.play_recovery @hp = [@hp, maxhp].min @mp = [@mp, maxmp].min end end #-------------------------------------------------------------------------- # ● 防御時HP回復判定 #-------------------------------------------------------------------------- def guard_hp_recovery? return true if GUARD_RECOVERY::ALWAYS if GUARD_RECOVERY::EQUIP for equip in equips.compact return true if equip.note.include?(" 0 text = sprintf(GUARD_RECOVERY::HP_TEXT, @active_battler.name, Vocab.hp, hp_recovery) @message_window.add_instant_text(text) end if mp_recovery > 0 text = sprintf(GUARD_RECOVERY::MP_TEXT, @active_battler.name, Vocab.mp, mp_recovery) @message_window.add_instant_text(text) end wait(45) if hp_recovery > 0 || mp_recovery > 0 end end module RPG class BaseItem def hp_recovery_rate note.each_line { |line| case line when //i ; return $1.to_i end } return 0 end def mp_recovery_rate note.each_line { |line| case line when //i ; return $1.to_i end } return 0 end end end