幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1749|回复: 4

[求助]关于伤害公式

[复制链接]

2

主题

4

帖子

168

积分

③业余

积分
168
发表于 2004-12-29 09:06:03 | 显示全部楼层 |阅读模式
我用公式1代替原本的公式0
公式1: atk=(attacker.atk+attacker.str)
            if atk>240
            atk=[(atk-240)*0.3+240,240].max
            else atk = [attacker.atk + attacker.str, 0].max
            end
           self.damage=3*atk**2/(atk+3*p.def)

公式0: atk = [attacker.atk - self.pdef / 2, 0].max
      self.damage = atk * (20 + attacker.str) / 20

按照公式1计算,无论双方的攻防(只要atk不是0)是多少,都会造成伤害。
按照公式0计算,当防御是攻击2倍的时候,攻击不会造成伤害。
我自己改的公式有作用,但是当我把敌人的防御调到很高的时候,我的攻击又只打0点伤害了。
请问如何解决?

还有就是:# 防御修正
        if self.guarding?
          self.damage /= 2
        end

我把数值2改为其他数字,例如5,不起作用,为什么?如何能起作用?

[此贴子已经被作者于2004-12-31 10:02:57编辑过]
回复

使用道具 举报

carol3 该用户已被删除
发表于 2004-12-30 21:13:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

2

主题

4

帖子

168

积分

③业余

积分
168
 楼主| 发表于 2004-12-31 10:08:35 | 显示全部楼层
感谢你对程序简写的帮助,不过我的意思是:
当我攻击100,敌人防御500,按照公式1计算应该有18.75的伤害,无论怎么取整都不是0呀,但是显示伤害为0。
而且当我的攻击为敌人防御一半的时候,这种情况就会出现,但是它原来的公式已经不在了。
还有防御问题,也解决不了
回复 支持 反对

使用道具 举报

carol3 该用户已被删除
发表于 2004-12-31 13:20:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

2

主题

4

帖子

168

积分

③业余

积分
168
 楼主| 发表于 2005-1-1 17:52:26 | 显示全部楼层
self是什么意思?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-19 01:37 , Processed in 0.012274 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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