| 赞 | 0  | 
 
| VIP | 258 | 
 
| 好人卡 | 2 | 
 
| 积分 | 0 | 
 
| 经验 | 11030 | 
 
| 最后登录 | 2016-8-20 | 
 
| 在线时间 | 36 小时 | 
 
 
 
 
 
Lv1.梦旅人 ~琉璃の雪~< 
	- 梦石
 - 0 
 
        - 星屑
 - 49 
 
        - 在线时间
 - 36 小时
 
        - 注册时间
 - 2008-11-6
 
        - 帖子
 - 3678
 
 
 
 | 
	
 本帖最后由 夏季冰川 于 2009-12-27 16:38 编辑  
 
就是敌人抗我方打击的能力. 
物理防御高的敌人,受到我方物理攻击的伤害低. 
魔法防御高的敌人,受到我方魔法攻击的伤害低. 
至于物理攻击,主要是看力量和攻击力. 
魔法攻击主要看技能威力和魔力. 
 
在技能设置里,有个 物理防御F 和 魔法防御 F,就是这个技能计算对方防御的百分比. 
假设把 物理防御F 设置为 80,敌人防御为 300.那么这个技能在打到对手时只会计算 300*80/100=240的防御力. 魔法防御F 也是一个道理. 
 
在 Game_Battler 3 的里面,有下面一段:- power = skill.power + user.atk * skill.atk_f / 100
 
 -       if power > 0
 
 -         power -= self.pdef * skill.pdef_f / 200
 
 -         power -= self.mdef * skill.mdef_f / 200
 
 -         power = [power, 0].max
 
 -       end
 
 -       # 计算倍率
 
 -       rate = 20
 
 -       rate += (user.str * skill.str_f / 100)
 
 -       rate += (user.dex * skill.dex_f / 100)
 
 -       rate += (user.agi * skill.agi_f / 100)
 
 -       rate += (user.int * skill.int_f / 100)
 
 -       # 计算基本伤害
 
 -       self.damage = power * rate / 20
 
 -       # 属性修正
 
 -       self.damage *= elements_correct(skill.element_set)
 
 -       self.damage /= 100
 
  复制代码 这段脚本就是计算技能伤害的. 
在数据库里,有个力量F,灵巧F什么的,对应的就是skill.str_f 和skill.dex_f之类的东西. 
拿阿尔西斯的十字斩来说: 
 
 
假设主角的攻击力是200,力量也是200,十字斩的威力是20,用十字斩打防御力100的幽灵. 
那么- power = skill.power + user.atk * skill.atk_f / 100
 
  复制代码 所以这个时候power = 20 + 200 * 100 / 100 = 220 
然后:- power -= self.pdef * skill.pdef_f / 200
 
 -         power -= self.mdef * skill.mdef_f / 200
 
  复制代码 power = 220 - 100 * 100 / 200 - 0 = 170 
由于灵巧F什么的都是0,只有力量F是100,所以- rate = 20
 
 -       rate += (user.str * skill.str_f / 100)
 
  复制代码 那么rate = 20 + 200 *100 / 100 = 220 
然后:- self.damage = power * rate / 20
 
  复制代码 那么伤害 = 170 * 220 / 20 = 1870 
最后是这个:-       self.damage *= elements_correct(skill.element_set)
 
 -       self.damage /= 100
 
  复制代码 [/code] 
由于幽灵怕十字斩,对不死是A级 
搜索table:- table = [0,200,150,100,50,0,-100]
 
  复制代码 A 对应 200 
那么那么最终伤害是: 
1870 * 200 / 100 = 3740. 
为了准确起间,我们把十字斩分散度调为 0,其余数据调整好: 
 
 
然后得出伤害: 
 
 
 
至于魔法技能什么的,LZ可以自己试着算算,然后就了解了. |   
 
 
 
 |