前言:
我玩磨队破关卡时 几乎都使用大圣居多
而大圣的缺点在于同时间遭受多次攻击时 减伤能力会下降超快
所以我写了个小程式来计算当遇到连击怪或同CD小怪时 大圣撑不撑得住
类似这样: http://i.imgur.com/ZRkB3DZ.jpg (完全用公式 考虑小数的版本)
作者:
f76588 (八斗么)
2014-06-05 22:08:00先推再说,管他看不看的懂
作者:
Nuaaukw (晨曦之憶ã€)
2014-06-05 22:10:00推,我之前也有想过扔excel出来,可是怎么算都会差一些
作者:
brian5pig (BRIlliANt)
2014-06-05 22:14:00数学之塔给推
作者:
inkbox (墨盒)
2014-06-05 22:16:00认真推
作者:
peja456 (肥宅界的霸主-还是肥宅)
2014-06-05 22:19:00Code之塔?
作者:
semajjj (龙哥)
2014-06-05 22:20:00先推再说
作者:
oToToT (å±å©)
2014-06-05 22:22:00大大用啥语言啊,虽然好像都没差XD
作者:
online135 (98分美元宇宙星尘)
2014-06-05 22:24:00有简易可用程式下载吗?
作者:
hkrist (豆)
2014-06-05 22:27:00有实测给推
作者: FOODtest (FOOD_R) 2014-06-05 22:30:00
推~
作者: breakingball 2014-06-05 22:31:00
完全不懂 好像很有道理
另外我在估算奥汀R2四只连打的时候,我个人是每只都无条件进位 (这样最保险,实际上游戏内会无条件舍去)
作者:
johnlei ( )
2014-06-05 22:33:00个人认为是 [(1+现有血量)/(总血量)]^3*60% = 减伤%rounddown(原始伤害 * (1-减伤%),0)
楼上说得好像有可能,就像奥汀极限压血就是2.5倍但是公式1+1.5*(损失血量%数),损失血量不可能100%所以大概也是(1+损失血量)/总血量
是旧的吗? 伊圣队打梅龙算是接近14000安全底线
我是说"越战越强"是旧的阿XD除非他后来有修改过,不然我之前去看是旧的@@
作者:
ice0514 (五å)
2014-06-05 22:43:00推实用实测文~
作者:
hkrist (豆)
2014-06-05 22:43:00刚刚算了一下johnlei大提供的公式,以原PO的实验来看减伤后分别打40和120,看起来还是不太对
作者:
hkrist (豆)
2014-06-05 22:45:00楼上何必呢@@ 只是实事求是而已...
H大,MH减伤后的小数点都会无条件舍去,所以J大那个看来没错@@
因为只看a版友大圣表 其他的可能可以请他更新或独立出来
作者:
chow365 (修)
2014-06-05 22:52:00推推
作者:
hkrist (豆)
2014-06-05 22:53:00红明显 W大你说的没错,是我算错了太自然的就用四舍五入XDD
我直接把神魔队长技金刚不坏的算式贴出来吧damage *= 1f - ((((CurrentHP / MaxHP) *(CurrentHP / MaxHP)) * (CurrentHP / MaxHP)) * 0.6f);三个变量都是浮点数 公式确实就是3次方没错
E大出现啦!! 现在的问题在CurrentHP是怎么取的0.0
我觉得问题在于CurrentHP跟MaxHP并非整数
卡片的三围只要不是1等跟满等 就是用公式跑的 所以中间
这个我有想过,但是不管是不是整数,满血时应该都是100%除非他MaxHP取整数,CurrentHP不是= =
会有很多小数 我猜测是这两个值造成的误差 你可以尝试用满等卡来测试看看还会不会有这状况
作者:
beavis77 (驹外杉筱舟渡岚)
2014-06-05 23:22:00有认真有推 大圣威武推推推!
我的猜测就是w大所说 我觉得是战斗初始化时其中一个有取
但是这样也蛮奇怪的,如果CurrentHP没取整数,难保不会有10001/10000 这种血量出现,毕竟六张卡小数点加起来破1好像不是太难@@
作者:
GOBS (GodOfBullShit)
2014-06-05 23:26:00其实 我知道给推就对了 内文啥太专业了
疴,我想错了,请忽略上面三行推文XD那这样的确有可能是忘了取= =
作者:
Nuaaukw (晨曦之憶ã€)
2014-06-06 00:03:00可以偷渡拆解请求吗?想知道火巫和升华IV异界龙的连动关系
作者:
laypeeq (没有什么正在死去)
2014-06-06 00:15:00谢谢大大
作者: VictorTom (鬼翼&娃娃鱼) 2014-06-06 02:54:00
公式如果是透过反编译取得无误, 那个另一个要考虑的就是电脑浮点数的储存与计算误差, 举一个简单的例子:VC里 拿 (1.0f - 0.6f) 与 (0.4f)相比, 结果是不相等:)同样VC(2005), (int)(100*(1.0f - 0.6f)) => 39(int)(300*(1.0f - 0.6f)) => 119, 和原po实验吻合@_@"
作者:
molopo (mmm)
2014-06-06 05:04:00推推 够专业
V大讲的我之前想过 但是我看所有运算都是float 转成int是显示在萤幕上才转的 当时我用CurrentHP-damage后转int仍然是正确的值 经原PO测试正确后我才去翻damage之后的使用 看到(float) ((int) alterValue) 就是这里造成误差以上的alterValue就是先前的damage 程式码用传址呼叫
作者: VictorTom (鬼翼&娃娃鱼) 2014-06-08 11:11:00
推e大研究精神....:)