# # 割合ダメージ(RGSS2) #  (C)2007 TYPE74RX-T # #-------------------------------------------------------------------------- # ★ システムワードの登録:割合ダメージ・現HP割合D #-------------------------------------------------------------------------- module RPG class BaseItem alias rx_rgss2sp1_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-SYS") @@rx_copy_str += rx_get_sys @note = @note.sub(rx_get_sys, "") @note = @note.sub("\r\n", "") @rx_sys_str = @@rx_copy_str 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_get_sys = RX_T.get_system_word_in_note(@note, "現HP割合D") @@rx_copy_str += rx_get_sys @note = @note.sub(rx_get_sys, "") @note = @note.sub("\r\n", "") @rx_sys_str = @@rx_copy_str # メソッドを呼び戻す rx_rgss2sp1_rx_extract_sys_str_from_note end end end #============================================================================== # ■ Game_Battler #------------------------------------------------------------------------------ #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ★ スキルまたはアイテムに付加されている拡張システムフラグの取得 # obj : スキルまたはアイテム #-------------------------------------------------------------------------- alias rx_rgss2sp1_rx_set_system_flag rx_set_system_flag def rx_set_system_flag(obj) # 割合ダメージが含まれているかチェック @rx_ratio_damage = RX_T.check_system_word_in_sys_str(obj, "割合ダメージ") # 現HP割合Dが含まれているかチェック @rx_ratio_damage2 = RX_T.check_system_word_in_sys_str(obj, "現HP割合D") # メソッドを呼び戻す rx_rgss2sp1_rx_set_system_flag(obj) end #-------------------------------------------------------------------------- # ★ 特殊ダメージフラグ群をセット #-------------------------------------------------------------------------- alias rx_rgss2sp1_rx_set_special_damage_flag rx_set_special_damage_flag def rx_set_special_damage_flag # メソッドを呼び戻す rx_rgss2sp1_rx_set_special_damage_flag # 割合ダメージフラグ状態をセット @rx_special_damage_flags.push(@rx_ratio_damage) @rx_special_damage_flags.push(@rx_ratio_damage2) end #-------------------------------------------------------------------------- # ★ 特殊ダメージ計算 # user : スキルまたはアイテムの使用者 # obj : スキルまたはアイテム #-------------------------------------------------------------------------- alias rx_rgss2sp1_rx_damage_calculation rx_damage_calculation def rx_damage_calculation(user, obj) # 割合ダメージ処理(魔法反射ステート用) if @rx_ratio_damage and @rx_refrex_flag if obj.damage_to_mp damage = obj.base_damage * user.maxmp / 100 else damage = obj.base_damage * user.maxhp / 100 end @damage2 = obj.base_damage * user.maxmp / 100 return damage end # 現HP割合ダメージ処理(魔法反射ステート用) if @rx_ratio_damage2 and @rx_refrex_flag if obj.damage_to_mp damage = obj.base_damage * user.mp / 100 else damage = obj.base_damage * user.hp / 100 end @damage2 = obj.base_damage * user.mp / 100 return damage end # 割合ダメージ処理 if @rx_ratio_damage if obj.damage_to_mp damage = obj.base_damage * self.maxmp / 100 else damage = obj.base_damage * self.maxhp / 100 end @damage2 = obj.base_damage * self.maxmp / 100 return damage end # 現HP割合ダメージ処理 if @rx_ratio_damage2 if obj.damage_to_mp damage = obj.base_damage * self.mp / 100 else damage = obj.base_damage * self.hp / 100 end @damage2 = obj.base_damage * self.mp / 100 return damage end # メソッドを呼び戻す rx_rgss2sp1_rx_damage_calculation(user, obj) end #-------------------------------------------------------------------------- # ● 分散度の適用 # damage : ダメージ # variance : 分散度 #-------------------------------------------------------------------------- alias rx_rgss2sp1_apply_variance apply_variance def apply_variance(damage, variance) # ★ 割合ダメージ効果があれば無視 if @rx_ratio_damage @rx_ratio_damage = false return damage end if @rx_ratio_damage2 @rx_ratio_damage2 = false return damage end # メソッドを呼び戻す rx_rgss2sp1_apply_variance(damage, variance) end end