#============================================================================== # ■ 小物集−その一 # アクターに関する小物集 # 1. 打撃関係度、精神関係度を変化させる # 通常打撃関係度、精神関係度は1/100にされて計算されるがこれを変更する # # 2. 回復量加算 # 基本ダメージがマイナス、つまり回復魔法などを使用したとき # 受ける側の防御力、精神力を打撃関係度、精神関係度で計算してその値を加算する # 要は受ける側の防御力、精神力が大きければ大きいほど回復魔法の威力が上がる # # 3. 防御倍加 # 防御時にはダメージが半減するが(強力防御時は1/4) # 受けるダメージを半減するのではなく計算する途中での防御力を倍加して計算する # 相手と攻撃力と自分の防御力が同じなら(強力防御の場合は半分)ダメージを0に出来る # # *月の下の宿 # URL:http://gekkasou.shiteyattari.com/ #============================================================================== module An_BSA #以下の文字列がメモに入ってるスキルにのみ1が影響する DSkill = "*DSkill" #打撃関係度、精神関係度の倍率。小さいほど威力は大きくなる(デフォルト:100) Tenfold = 50 #回復アイテム等の基本ダメージがマイナスの時 #受ける側の防御力、精神力も回復量に加算(防御力無視以外のスキル、アイテムのみ) Add_DandS = true #防御時に受けるダメージ判定の時、受けたダメージを半減しないで防御力を倍にして #計算する(強力防御時四倍) SDGuard = true end #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● スキルまたはアイテムによるダメージ計算 #-------------------------------------------------------------------------- def make_obj_damage_value(user, obj) damage = obj.base_damage if damage > 0 damage += user.atk * 4 * obj.atk_f / an_f(obj) damage += user.spi * 2 * obj.spi_f / an_f(obj) unless obj.ignore_defense damage -= self.def * an_g(obj) * obj.atk_f / an_f(obj) damage -= self.spi * an_g(obj) / 2 * obj.spi_f / an_f(obj) end damage = 0 if damage < 0 elsif damage < 0 damage -= user.atk * 4 * obj.atk_f / an_f(obj) damage -= user.spi * 2 * obj.spi_f / an_f(obj) if !obj.ignore_defense && An_BSA::Add_DandS damage -= self.def * 2 * obj.atk_f / an_f(obj) damage -= self.spi * 1 * obj.spi_f / an_f(obj) end end damage *= elements_max_rate(obj.element_set) damage /= 100 damage = apply_variance(damage, obj.variance) damage = apply_guard(damage) unless An_BSA::SDGuard if obj.damage_to_mp @mp_damage = damage else @hp_damage = damage end end def an_f(obj) return 100 unless obj.note.include?(An_BSA::DSkill) return An_BSA::Tenfold end def an_g(obj) result = (guarding? ? (super_guard ? 4 : 2) : 1) result *= 2 if An_BSA::Add_DandS return result end end