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

Project1

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

[已经解决] 关于脚本中的伤害公式

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2011-10-9
帖子
12
跳转到指定楼层
1
发表于 2013-8-31 21:25:45 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
我自己更改了普攻的计算方式且实际战斗伤害数值确实发生了变化,但是和我的公式理论结果差很多,不晓得为什么。。求帮忙。。是不是不能随便更改公式的
下面是我更改后的物理公式:
atk = Integer( [attacker.atk *(0.6 + ((attacker.str  - self.pdef)/attacker.str))  - rand(self.pdef/5),attacker.atk *0.1].max)
self.damage = rand(attacker.str/5) + atk
# 属性修正
      self.damage *= elements_correct(attacker.element_set)
      self.damage /= 100
      @kds_30 = nil
      @kds_32 = nil
# 分散
      if self.damage.abs > 0
        amp = [self.damage.abs * 15 / 100, 1].max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end
其余物理脚本均涉及状态和技能我实验的攻受双方不涉及这些状态和技能,以下是攻受双方的数值和实验结果:
攻方:atk -134 、str-  114
受方:pdef - 0
结果:伤害数值在70到100之间,更要命的是在攻方普攻pdef为55的敌人时。。伤害数值也在这个范围内。。
然后。。。然后就没有然后了。。菜鸟表示很揪心,,一直不知道为什么。。。-。-我不会说我法术伤害公式也更改了也出现了同样地问题、囧
=。=跪求原因。。是不是还有什么神奇的领域,,,

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2011-10-9
帖子
12
6
 楼主| 发表于 2013-9-2 20:50:29 | 只看该作者
wbsy8241 发表于 2013-8-31 23:03
atk = Integer( [attacker.atk *(0.6 + ((attacker.str  - self.pdef)/attacker.str))  - rand(self.pdef/5 ...

我把公式简化了一下。。然后发现OK了。。。0.0好不科学。。。

点评

不要连帖……  发表于 2013-9-2 20:52
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2011-10-9
帖子
12
5
 楼主| 发表于 2013-9-2 20:49:45 | 只看该作者
fox7171984 发表于 2013-9-1 12:48
尼玛太复杂~~~~~~~~~~~~

=。=神人。。。被你这个一说我就把公式简化了。。0.6 + ((attacker.str  - self.pdef)/attacker.str改为
1.6  - self.pdef/attacker.str。。。然后神奇的发现实际和理论对上了。。。果然太复杂了。。0.0
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2011-10-9
帖子
12
4
 楼主| 发表于 2013-9-2 14:17:08 | 只看该作者
wbsy8241 发表于 2013-8-31 23:03
atk = Integer( [attacker.atk *(0.6 + ((attacker.str  - self.pdef)/attacker.str))  - rand(self.pdef/5 ...

{:2_270:}对呀。。理论上应该是这个数值范围的,。。可是为什么实际伤害却只有70-100啊。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2013-3-17
帖子
18
3
发表于 2013-9-1 12:48:41 | 只看该作者
尼玛太复杂~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
帖子
590
2
发表于 2013-8-31 23:03:23 | 只看该作者
本帖最后由 wbsy8241 于 2013-8-31 23:21 编辑

atk = Integer( [attacker.atk *(0.6 + ((attacker.str  - self.pdef)/attacker.str))  - rand(self.pdef/5),attacker.atk *0.1].max)
atk = Integer( [134 *(0.6 + ((114  - 0)/114))  - rand(0/5),134 *0.1].max)
atk = Integer( [134 *(0.6 + 1) - (0~1), 13.4].max)
atk = Integer( [214.4 - (0~1), 13.4].max)
atk = Integer( [214.4~213.4, 13.4].max)
atk = 213~214

self.damage = rand(attacker.str/5) + atk
self.damage = rand(114/5) + 213~214
self.damage = rand(22) + 213~214
self.damage = 0~21 + 213~214
self.damage = 213~235

amp = [self.damage.abs * 15 / 100, 1].max
amp = [213~235 * 15 / 100, 1].max
amp = [31~35, 1].max
amp = 31~35

self.damage += rand(amp+1) + rand(amp+1) - amp
self.damage += rand(31~35+1) + rand(31~35+1) - 31~35
self.damage += 0~35 + 0~35 - 0~34
self.damage += -34~70

self.damage = 213~235 + (-34~70)
self.damage = 179~305

整数间运算得整数

评分

参与人数 1星屑 +105 收起 理由
弗雷德 + 105 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-29 22:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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