赞 | 3 |
VIP | 333 |
好人卡 | 91 |
积分 | 2 |
经验 | 55775 |
最后登录 | 2017-7-18 |
在线时间 | 2070 小时 |
Lv1.梦旅人 Mr.Gandum
- 梦石
- 0
- 星屑
- 226
- 在线时间
- 2070 小时
- 注册时间
- 2007-1-31
- 帖子
- 3039
|
- #--------------------------------------------------------------------------
- # ● 计算普通攻击伤害
- # attacker : 攻击者
- # 计算结果赋值入 @hp_damage
- #--------------------------------------------------------------------------
- def make_attack_damage_value(attacker)
- damage = attacker.atk * 4 - self.def * 2 # 基础计算
- damage = 0 if damage < 0 # 设负数伤害为 0
- damage *= elements_max_rate(attacker.element_set) # 属性校正
- damage /= 100
- if damage == 0 # 若伤害为 0
- damage = rand(2) # 一半机率伤害为1
- elsif damage > 0 # 若伤害为正数
- @critical = (rand(100) < attacker.cri) # 会心一击判断
- @critical = false if prevent_critical # 防止会心一击判断
- damage *= 3 if @critical # 会心一击校正
- end
- damage = apply_variance(damage, 20) # 分散度
- damage = apply_guard(damage) # 防御校正
- @hp_damage = damage # 体力伤害
- end
- #--------------------------------------------------------------------------
- # ● 计算技能/物品伤害
- # user : 技能或物品的使用者
- # obj : 使用的技能或物品
- # 计算结果赋值入 @hp_damage
- #--------------------------------------------------------------------------
- def make_obj_damage_value(user, obj)
- damage = obj.base_damage # 基础计算
- if damage > 0 # 若伤害为正
- 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 # 若伤害为负
- 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 # 伤害魔力
- else
- @hp_damage = damage # 伤害体力
- end
- end
复制代码 game_battler 629行左右,上面是普通攻击,下面是技能/物品
把分散度那个删了就可以固定了。
feizhaodan于2011-8-26 14:10补充以下内容:
可能是属性修正。
话说你用的是普通攻击还是技能
feizhaodan于2011-8-26 14:13补充以下内容:
可能是属性修正。
你试试把普通攻击的def和end之间写成这样- damage = attacker.atk - self.def
- @hp_damage = damage
复制代码 再试试 |
|