查看: 2196|回复: 2

中毒的伤害调整和持续回血

  [复制链接]
梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
回帖
1200
发表于 2008-8-1 01:24:24 | 显示全部楼层 |阅读模式

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

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

×
def slip_damage_effect
  if slip_damage? and @hp > 0
    @hp_damage = apply_variance(maxhp / 10, 10)
    @hp_damage = @hp - 1 if @hp_damage >= @hp
    self.hp -= @hp_damage
  end
end

前面得那个10是 每回合10%得掉血 后面那个10是干什么得啊?
用这个做持续回血技能只要判断状态 再把 self.hp+= @hp_damage 就行了么?

辉瑞中国首席研究员<

梦石
0
星屑
50
在线时间
142 小时
注册时间
2008-1-18
回帖
2059
发表于 2008-8-1 01:26:58 | 显示全部楼层
分散度

LZ看这个吧
def apply_variance(damage, variance)
    if damage != 0                                  # 若伤害不为0
      amp = [damage.abs * variance / 100, 0].max    # 计算极差
      damage += rand(amp+1) + rand(amp+1) - amp     # 执行分散度
    end
    return damage
  end
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
来6r就是等某位仁兄的巨坑

褴褛着身行无端,囊中羞涩空心酸。
平生几无得意事,倒塔泡面宅寝室。
惟羡隔壁高帅富,雨露春风月夜声。
青丝无处觅其踪,只有硬盘苍井空。
莫云男儿空悲愁,鸿鹄岂不天际游。
坐断天下执鹿首,千百金帛万兜鍪。
夜深忽梦某年月,再见女神欲语迟。
吊丝终有逆袭日,木耳再无回粉时。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
12 小时
注册时间
2006-5-21
回帖
731
发表于 2008-8-1 01:28:50 | 显示全部楼层
apply_variance(maxhp / 10, 10)
这个是定义过的方法
前面是生命的10% 后面是分散度  
  def apply_variance(damage, variance)
    if damage != 0                                  # 伤害为 0 以外的情况
      amp = [damage.abs * variance / 100, 0].max    # 计算分散幅度
      damage += rand(amp+1) + rand(amp+1) - amp     # 执行分散
    end
    return damage
  end

原方法是这样的 效果就是以生命值的1/10为基准浮动
这里的damage就是生命值的1/10 取绝对值乘上分散度再除以100 再和0比较大小 以大的作为amp的值
然后这个damamge加两次1-amp的随机数再减amp 得到最终结果
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
MadniMStudio|Beside
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部