等級:12 - 出類拔萃 經驗值:0 / 116 魔法值:852 / 4748 生命值:6%
升級
  100%
TA的每日心情 | 衰 2015-11-12 09:48 |
|---|
簽到天數: 72 天 [LV.6]常住居民II
|
發表於 2015-10-5 07:34:43
|
顯示全部樓層
( I/ A! ^. W; {1 v關於你的疑問,下面將進行詳細的解答:# g8 _* v a3 s3 U7 |3 T
(不想看解釋請直接看結論)
7 n% U- {& N/ s. n, l) W7 ^( g4 y6 m+ K& H
F0 w* c/ V* \. |0 L
1.技術頁面顯示的船艦/防禦三圍問題( f( x, k9 B2 @ o+ m8 |4 ?% _
首先要知道,在32位系統下integer的最大值是2,147,483,647* D- [+ k, X; @/ u! z" l" Q
若變量類型未進行聲明,PHP會根據變量的值自動轉換為正確的數據類型,$ }) B! M7 [$ e1 Y# Z
因此可以看到,
. `) q1 B! `0 g太空基地"結構完整性(裝甲)"中未加成的數據雖然是超過了2,147,483,6477 n% h1 z2 |* z7 A- \; O
但也能正確地顯示出7,000,000,000; }/ _( \& |! {2 o4 S: X3 K
至於受加成的數據," V3 T) a9 S: G, ]8 U
由於受加成的三圍數據在計算時採用了(int)來進行強制整型轉換, P' k1 E/ n/ ]
因此當數值超過2,147,483,647時,數值就會溢出,結果就不能正確地顯示了& z7 M) [# |) W- I
推測使用(int)的原因:在計算受加成的數據時會有可能出現小數的情況,為避免出現過長的小數而影響美觀,因此使用(int)來把數值強制轉換成整數,原設計者當時並未考慮到未來會有數值這麼大的船艦/防禦出現,所以使用(int)在當時是沒問題的~3 P* k+ w( N2 C; d" x
結論:只是顯示問題~!!
- H! a( S! o" W; ~
* I% J8 _2 U- c8 n
, R5 p4 t. D; Z2.戰鬥時的三圍數值與技術頁面顯示的數值不同問題
( A: }5 t8 f5 N& d9 U1 A這裡要公開以下戰鬥三圍數值計算公式才能說明:) W. f/ d& M! `
攻擊值 = 基礎攻擊 * 總攻擊加成 * (0.80~1.20)
+ M' y. c" Q( f- t( a! S 防禦值(護盾) = 基礎防禦 * 總防禦加成: d$ @6 y2 p9 z: A3 |
裝甲值 = (船艦/防禦金屬花費 + 船艦/防禦晶體花費) / 10 * 總裝甲加成
6 B) M) U9 m5 t% M8 M5 H+ A' P由上面公式可見,攻擊值的最終結果包含一個80%~120%的隨機上下浮動變化,
2 q: _# ~" ~. _' m! D" n! k% G裝甲值則是"結構完整性(裝甲)"的十分之一,
/ m8 J4 k5 j% X* X( U以太空基地為例,
) ^, \. `) K9 _7 d/ G# G需花費金屬5,000,000,000和晶體2,000,000,000,重氫花費不加入計算,! J: T- w& R& g& X9 o* j
技術頁面顯示的"結構完整性(裝甲)" = 5,000,000,000 + 2,000,000,000 = 7,000,000,000
; Z+ @9 M9 V1 m. q4 A9 M$ o戰鬥時真實裝甲值 = 7,000,000,000 /10 =700,000,0003 T9 W) J( i; U6 c# W2 @ k0 X
結論:測試結果沒有任何問題,沒有逆向加成~!!
4 p0 ~& \3 V. I2 ~! H; s5 }1 {- y- p* s* C
|
|