伤害计算公式(第一世代)

来自口袋百科
跳转至: 导航搜索

命中计算流程

命中判定

  1. 如果使用的招式是食梦,并且防御方没有处于睡眠状态,判定为没有命中。
  2. 如果使用的招式是高速星星,判定为命中。
  3. 如果防御方正在使用挖洞飞翔,判定为没有命中。
  4. 检查招式效果,如果被白雾免疫,判定为没有命中。
  5. 如果玩家使用了命中强化,判定为命中。

命中计算

  1. 读取A=招式命中。
  2. 读取攻击方命中等级,获得命中修正。
  3. 读取防御方闪避等级,用14-闪避等级,反向读取能力变化表,获得闪避修正。
  4. 求A=⌊A×命中修正分子÷命中修正分母⌋,如果A=0,命中=1。
  5. 求A=⌊A×闪避修正分子÷闪避修正分母⌋,如果A=0,命中=1。
  6. 如果A≥255,A=255。
  7. 从0~255中产生随机数R,如果R<A,判定为命中。
  • 由于A的上限是255,如果R随机到255,必定不能满足R<A的判定,所以即使是命中255的招式,也有1/256的几率不能命中。

伤害计算流程

  1. 读取能力值。
  2. 能力值修正。
  3. 计算基础伤害。
  4. 计算属性加成修正。
  5. 计算属性相克修正。
  6. 计算随机修正。

读取能力值

  1. 如果技能是物理属性,取攻击方攻击作为攻击力;如果技能是特殊属性,取攻击方特殊作为攻击力。
  2. 如果技能是物理属性,取防御方防御作为防御力;如果技能是特殊属性,取防御方特殊作为防御力。
  3. 读取攻击方等级。

能力值修正

  1. 如果出现会心一击,等级=等级×2。
  2. 如果技能是自爆大爆炸,防御力=⌊防御力÷2⌋。
  3. 如果防御方场上存在反射盾、技能是物理属性、且未出现会心一击,防御力=⌊防御力÷2⌋,攻击力=⌊攻击力÷4⌋。
  4. 如果防御方场上存在光之壁、技能是特殊属性、且未出现会心一击,防御力=⌊防御力÷2⌋,攻击力=⌊攻击力÷4⌋。
  5. 如果攻击力=0,攻击力=1;如果防御力=0,防御力=1。

计算基础伤害

  1. 基础伤害=⌊⌊⌊攻击方等级×2÷5+2⌋×技能威力×攻击力÷防御力⌋÷50⌋
  2. 如果基础伤害>997,基础伤害=997。
  3. 基础伤害=基础伤害+2。

属性加成修正

  1. 如果技能属性与攻击方属性之一相同,伤害=⌊伤害×1.5⌋。

属性相克修正

  1. 根据属性相克表取得属性相克倍率,伤害=⌊伤害×属性相克倍率⌋。

随机修正

  1. 从0~255中产生随机数R,如果R<217,重复循环,直到R≥217。
  2. 伤害=⌊伤害×R÷255⌋。

其它

能力值计算

在战斗中,宝可梦的攻击、防御、速度、特殊四项能力值是经过能力等级、异常状态与徽章效果修正后的数值,最低为1,最高为999。当宝可梦的能力等级变动或进入烧伤、麻痹状态时,所影响的能力值重新计算。

会心一击判定

  1. 设X=攻击方速度,如果X>255,X=255。
  2. 如果技能是空手刀飞叶快刀蟹钳锤切裂,X=X×4,如果X>255,X=255;否则X=⌊X÷2⌋。
  3. 从0~255中产生随机数R,如果R<X,发生会心一击。

相关链接