# # VX Ace風ダメージ計算設定(RGSS2) #  (C)2011 TYPE74RX-T # #============================================================================== # ■ Game_Battler #------------------------------------------------------------------------------ #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ★ スキルまたはアイテムによるダメージ計算(VX Ace風) # user : スキルまたはアイテムの使用者 # obj : スキルまたはアイテム # 結果は @hp_damage または @mp_damage に代入する。 #-------------------------------------------------------------------------- def rx2a_make_obj_damage_value(user, obj, dmflg) st2 = obj.note.gsub("RXU", "user") st2 = st2.gsub("RXS", "self") st2 = st2.gsub("RXO", "obj") st2 =~ /(.+)<\/rx>/ if dmflg == 1 st2 =~ /(.+)<\/rx2>/ if dmflg == 2 result = $+ damage = eval(result) if damage > 0 and dmflg == 2 # ダメージが正の数 damage += user.atk * 4 * obj.atk_f / 100 # 打撃関係度: 使用者 damage += user.spi * 2 * obj.spi_f / 100 # 精神関係度: 使用者 unless obj.ignore_defense # 防御力無視以外 damage -= self.def * 2 * obj.atk_f / 100 # 打撃関係度: 対象者 damage -= self.spi * 1 * obj.spi_f / 100 # 精神関係度: 対象者 end damage = 0 if damage < 0 # マイナスなら 0 に elsif damage < 0 and dmflg == 2 # ダメージが負の数 damage -= user.atk * 4 * obj.atk_f / 100 # 打撃関係度: 使用者 damage -= user.spi * 2 * obj.spi_f / 100 # 精神関係度: 使用者 end damage *= elements_max_rate(obj.element_set) # 属性修正 damage /= 100 damage = apply_variance(damage, obj.variance) # 分散 damage = apply_guard(damage) # 防御修正 if obj.damage_to_mp @mp_damage = damage # MP にダメージ else @hp_damage = damage # HP にダメージ end end #-------------------------------------------------------------------------- # ● スキルまたはアイテムによるダメージ計算 # user : スキルまたはアイテムの使用者 # obj : スキルまたはアイテム # 結果は @hp_damage または @mp_damage に代入する。 #-------------------------------------------------------------------------- alias rx2_111118_make_obj_damage_value make_obj_damage_value def make_obj_damage_value(user, obj) return rx2a_make_obj_damage_value(user, obj, 1) if obj.note.include?("") return rx2a_make_obj_damage_value(user, obj, 2) if obj.note.include?("") rx2_111118_make_obj_damage_value make_obj_damage_value(user, obj) end end