# # ダメージ吸収装備(RGSS2) #  (C)2007 TYPE74RX-T # # ★ MPダメージ武器スクリプトと併用する時は # 先にMPダメージ武器スクリプトを導入してください。 #-------------------------------------------------------------------------- # ★ システムワードの登録:ダメージ吸収 #-------------------------------------------------------------------------- module RPG class BaseItem alias rx_rgss2bo5_rx_extract_sys_str_from_note rx_extract_sys_str_from_note def rx_extract_sys_str_from_note rx_get_sys = RX_T.get_system_word_in_note(@note, "ダメージ吸収") @@rx_copy_str += rx_get_sys @note = @note.sub(rx_get_sys, "") @note = @note.sub("\r\n", "") @rx_sys_str = @@rx_copy_str # メソッドを呼び戻す rx_rgss2bo5_rx_extract_sys_str_from_note end end end #============================================================================== # ■ Game_Battler #------------------------------------------------------------------------------ #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 通常攻撃によるダメージ計算 # attacker : 攻撃者 # 結果は @hp_damage に代入する。 #-------------------------------------------------------------------------- alias rx_rgss2bo5_make_attack_damage_value make_attack_damage_value def make_attack_damage_value(attacker) # メソッドを呼び戻す rx_rgss2bo5_make_attack_damage_value(attacker) # ★ 攻撃者がアクターで武器を持っていれば if attacker.rx_weapon_equip? # 吸収効果の計算処理へ rx_make_attack_absorb_effect(attacker) end end #-------------------------------------------------------------------------- # ★ 吸収効果の計算(武器) # attacker : 攻撃者 # 呼び出し前に @hp_damage と @mp_damage が計算されていること。 #-------------------------------------------------------------------------- def rx_make_attack_absorb_effect(attacker) # 吸収の場合 if RX_T.check_system_word_in_equip(attacker.rx_sys_str, "ダメージ吸収") @hp_damage = [self.hp, @hp_damage].min # HP ダメージ範囲修正 @mp_damage = [self.mp, @mp_damage].min # MP ダメージ範囲修正 if @hp_damage > 0 or @mp_damage > 0 # ダメージが正の数の場合 @absorbed = true # 吸収フラグ ON end end end end