查看: 1837|回复: 3

[已经解决] 会心一击公式可不可以这么写有没有问题

[复制链接]
梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
回帖
693
发表于 2014-9-6 22:49:18 | 显示全部楼层 |阅读模式

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

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

×
我记得,必杀公式如果是与属性挂钩,是这么改

在Game_Battler找到
1.        value = apply_critical(value) if @result.critical

修改为
1.        value = apply_critical(value*user.luk/self.luk.to_f) if @result.critical


如果我想改成必杀伤害在1.5倍的最低基础上与角色的幸运相关,改成这样会不会有问题?

1.        value = apply_critical(value*(1.5 +[user.luk-self.luk*0.5, 0] *0.1  ).to_f) if @result.critical


梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2014-9-6 23:48:26 | 显示全部楼层
本帖最后由 喵呜喵5 于 2014-9-6 23:50 编辑

默认脚本中,apply_critical(value)的作用就是value*3,于是你的这段代码在必杀时的伤害实际上等同于:
  1. value = (value*(1.5 +[user.luk-self.luk*0.5, 0] *0.1  ).to_f )*3 if 必杀一击
复制代码
结果是4.5倍最低基础,而不是你所希望的1.5倍最低基础

另外,在你的公式中出现的:[user.luk-self.luk*0.5, 0]

如果你是希望最小值为0而不出现负数的话,应该改成这样:
[user.luk-self.luk*0.5, 0].max

(.to_f 貌似是没有必要的)

点评

默认的脚本里我已经改成*1了  发表于 2014-9-7 11:39

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
回帖
693
 楼主| 发表于 2014-9-7 11:49:09 | 显示全部楼层
喵呜喵5 发表于 2014-9-6 23:48
默认脚本中,apply_critical(value)的作用就是value*3,于是你的这段代码在必杀时的伤害实际上等同于:结果 ...

感谢,因为这个是人家告诉我的,我只是复制之后更改

to_f有什么作用?

然后那个为什么要加个.max?
回复

使用道具 举报

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2014-9-7 12:33:18 | 显示全部楼层
to_f : 转化成浮点数
首先你要理解,在电脑中,小数和整数是不一样的,整数间进行运算的结果永远只是整数,1和1.0在电脑中是不同的,因此如果几个整数间的运算希望结果是小数的话就要使用to_f,例如:
  1. (1/2) = 1
  2. (1/2).to_f = 1
  3. (1.to_f/2) = 0.5
  4. (1.0/2) = 0.5
复制代码
[user.luk-self.luk*0.5, 0]
这是一个数组,如果无法理解的话你可以这么想:

一个老太太 * 3 = 三个老太太,如何把三个老太太换成一个数字?

[user.luk-self.luk*0.5, 0].max
这是一个数字,数字的值是 user.luk-self.luk*0.5 和 0 中比较大的那个
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部