Project1

标题: 攻击计算 [打印本页]

作者: awr110    时间: 2009-9-1 15:20
标题: 攻击计算
#--------------------------------------------------------------------------
  # ● 获取攻击力
  #--------------------------------------------------------------------------
  def atk
    n = base_atk + self.str
    for i in @states
      n *= $data_states[i].atk_rate / 100.0
    end
    return Integer(n)
  end
# 计算基本伤害
      atk = [attacker.atk - self.pdef].max
      self.damage = atk * 1.1
就是武器攻击+自己力量=最终攻击  (最终攻击-敌人防御)*1。1=最终伤害 改了这2个 我不太懂。。。  当敌人的防御超过你的攻击 你砍他是加血的 你防御超过敌人的攻击 敌人打你也是加血 怎么设定成防御超过攻击 伤害固定为1
作者: 片羽樱    时间: 2009-9-1 19:12
最后加上
self.damage = [self.damage, 1].max
作者: fofolee    时间: 2009-9-1 19:33
atk = [attacker.atk - self.pdef].max

这种语句的出现就说明没有理解max的意思,直接改为atk = attacker.atk - self.pdef就行了
解释下self.damage = [self.damage, 1].max
max这个东东就是在self.damage和1之间取最大值,那么当self.damage为负时(就是加血~)则和1比较,当然是1大,所以最终伤害为1。。
作者: 夏季冰川    时间: 2009-9-1 23:51
最简单的办法:在伤害计算完毕后self.damage+=1.




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