设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 972|回复: 3
打印 上一主题 下一主题

[已经解决] 攻击计算

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
65
在线时间
6 小时
注册时间
2008-5-23
帖子
119
跳转到指定楼层
1
发表于 2009-9-1 15:20:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
#--------------------------------------------------------------------------
  # ● 获取攻击力
  #--------------------------------------------------------------------------
  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

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2008-1-7
帖子
211
2
发表于 2009-9-1 19:12:47 | 只看该作者
最后加上
self.damage = [self.damage, 1].max
我是if-else党!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
5 小时
注册时间
2007-7-19
帖子
159
3
发表于 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。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

~琉璃の雪~<

梦石
0
星屑
49
在线时间
36 小时
注册时间
2008-11-6
帖子
3678
4
发表于 2009-9-1 23:51:40 | 只看该作者
最简单的办法:在伤害计算完毕后self.damage+=1.
~现在开始自绘头像~
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-10 03:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表