Project1

标题: 物理防御和魔法防御的问题 [打印本页]

作者: 799167964    时间: 2009-12-27 13:06
标题: 物理防御和魔法防御的问题
各位高手新手,在数据库里的“敌人”这一项,物理防御和魔法防御是什么东东?是不是我把敌人的物理防御的数字设高一点,物理攻击就不能去他血了?魔法防御也一样吗?
作者: 夏季冰川    时间: 2009-12-27 16:14
本帖最后由 夏季冰川 于 2009-12-27 16:38 编辑

就是敌人抗我方打击的能力.
物理防御高的敌人,受到我方物理攻击的伤害低.
魔法防御高的敌人,受到我方魔法攻击的伤害低.
至于物理攻击,主要是看力量和攻击力.
魔法攻击主要看技能威力和魔力.

在技能设置里,有个 物理防御F 和 魔法防御 F,就是这个技能计算对方防御的百分比.
假设把 物理防御F 设置为 80,敌人防御为 300.那么这个技能在打到对手时只会计算 300*80/100=240的防御力. 魔法防御F 也是一个道理.

在 Game_Battler 3 的里面,有下面一段:
  1. power = skill.power + user.atk * skill.atk_f / 100
  2.       if power > 0
  3.         power -= self.pdef * skill.pdef_f / 200
  4.         power -= self.mdef * skill.mdef_f / 200
  5.         power = [power, 0].max
  6.       end
  7.       # 计算倍率
  8.       rate = 20
  9.       rate += (user.str * skill.str_f / 100)
  10.       rate += (user.dex * skill.dex_f / 100)
  11.       rate += (user.agi * skill.agi_f / 100)
  12.       rate += (user.int * skill.int_f / 100)
  13.       # 计算基本伤害
  14.       self.damage = power * rate / 20
  15.       # 属性修正
  16.       self.damage *= elements_correct(skill.element_set)
  17.       self.damage /= 100
复制代码
这段脚本就是计算技能伤害的.
在数据库里,有个力量F,灵巧F什么的,对应的就是skill.str_f 和skill.dex_f之类的东西.
拿阿尔西斯的十字斩来说:

假设主角的攻击力是200,力量也是200,十字斩的威力是20,用十字斩打防御力100的幽灵.
那么
  1. power = skill.power + user.atk * skill.atk_f / 100
复制代码
所以这个时候power = 20 + 200 * 100 / 100 = 220
然后:
  1. power -= self.pdef * skill.pdef_f / 200
  2.         power -= self.mdef * skill.mdef_f / 200
复制代码
power = 220 - 100 * 100 / 200 - 0 = 170
由于灵巧F什么的都是0,只有力量F是100,所以
  1. rate = 20
  2.       rate += (user.str * skill.str_f / 100)
复制代码
那么rate = 20 + 200 *100 / 100 = 220
然后:
  1. self.damage = power * rate / 20
复制代码
那么伤害 = 170 * 220 / 20 = 1870
最后是这个:
  1.       self.damage *= elements_correct(skill.element_set)
  2.       self.damage /= 100
复制代码
[/code]
由于幽灵怕十字斩,对不死是A级
搜索table:
  1. table = [0,200,150,100,50,0,-100]
复制代码
A 对应 200
那么那么最终伤害是:
1870 * 200 / 100 = 3740.
为了准确起间,我们把十字斩分散度调为 0,其余数据调整好:

然后得出伤害:


至于魔法技能什么的,LZ可以自己试着算算,然后就了解了.




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1