查看: 1121|回复: 3

[已经解决] 攻击计算

  [复制链接]
梦石
0
星屑
65
在线时间
6 小时
注册时间
2008-5-23
回帖
99
发表于 2009-9-1 15:20:19 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
#--------------------------------------------------------------------------
  # ● 获取攻击力
  #--------------------------------------------------------------------------
  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
梦石
0
星屑
50
在线时间
27 小时
注册时间
2008-1-7
回帖
177
发表于 2009-9-1 19:12:47 | 显示全部楼层
最后加上
self.damage = [self.damage, 1].max
我是if-else党!
回复

使用道具 举报

梦石
0
星屑
60
在线时间
5 小时
注册时间
2007-7-19
回帖
133
发表于 2009-9-1 19:33:04 | 显示全部楼层
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。。
回复

使用道具 举报

~琉璃の雪~<

梦石
0
星屑
49
在线时间
36 小时
注册时间
2008-11-6
回帖
3570
发表于 2009-9-1 23:51:40 | 显示全部楼层
最简单的办法:在伤害计算完毕后self.damage+=1.
~现在开始自绘头像~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部