前言:
我玩磨隊破關卡時 幾乎都使用大聖居多
而大聖的缺點在於同時間遭受多次攻擊時 減傷能力會下降超快
所以我寫了個小程式來計算當遇到連擊怪或同CD小怪時 大聖撐不撐得住
類似這樣:
![]()
(完全用公式 考慮小數的版本)
作者:
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大研究精神....:)