|
等級:12 - 出類拔萃 經驗值:0 / 116 魔法值:852 / 4373 生命值:6%
升級
  100%
TA的每日心情 | 衰 2015-11-12 09:48 |
|---|
簽到天數: 72 天 [LV.6]常住居民II
|
發表於 2015-10-5 07:34:43
|顯示全部樓層
+ b* @( U, I$ Q! e. l5 b7 ? b" d, F8 s關於你的疑問,下面將進行詳細的解答:1 B5 A, `9 g8 i% u) h
(不想看解釋請直接看結論)5 M3 G5 [0 _5 ]" c
]( x! N9 H. \9 E5 `. x
( o7 `& B: ?+ m6 ?0 F
1.技術頁面顯示的船艦/防禦三圍問題
1 M3 a; ~ y+ ]0 `首先要知道,在32位系統下integer的最大值是2,147,483,647
' J+ q- @- p) x4 Z若變量類型未進行聲明,PHP會根據變量的值自動轉換為正確的數據類型,
# h" n% N8 q ^% P0 s! a* ^! w因此可以看到,9 y/ Q8 q$ ~# \) `3 F
太空基地"結構完整性(裝甲)"中未加成的數據雖然是超過了2,147,483,6474 i1 X& _3 C2 P0 L
但也能正確地顯示出7,000,000,000; h9 Y, Q2 r. X& v5 L; b: t; L1 _
至於受加成的數據,4 Q, d% V& b r: s8 l7 A+ T
由於受加成的三圍數據在計算時採用了(int)來進行強制整型轉換,
9 x) Y8 F, J. q8 h' c因此當數值超過2,147,483,647時,數值就會溢出,結果就不能正確地顯示了
3 m4 \0 n$ t% q$ l# _6 h推測使用(int)的原因:在計算受加成的數據時會有可能出現小數的情況,為避免出現過長的小數而影響美觀,因此使用(int)來把數值強制轉換成整數,原設計者當時並未考慮到未來會有數值這麼大的船艦/防禦出現,所以使用(int)在當時是沒問題的~7 w- G% k8 f, M1 ?( q9 f. c
結論:只是顯示問題~!!5 j+ p; E* c7 P/ w7 e% m6 \* b) V
, I3 P o& r8 b3 G) W
" R/ W# }3 q* h/ @* A1 l
2.戰鬥時的三圍數值與技術頁面顯示的數值不同問題: L1 F' c9 f7 i, P9 C9 O
這裡要公開以下戰鬥三圍數值計算公式才能說明:
5 u7 G- S! I5 T ?; Z, r 攻擊值 = 基礎攻擊 * 總攻擊加成 * (0.80~1.20)$ m) ]! h* H U' |5 o
防禦值(護盾) = 基礎防禦 * 總防禦加成
8 t$ V; o; q0 |5 E( k 裝甲值 = (船艦/防禦金屬花費 + 船艦/防禦晶體花費) / 10 * 總裝甲加成; r4 r* K/ v4 P, q. H, g
由上面公式可見,攻擊值的最終結果包含一個80%~120%的隨機上下浮動變化,: ]; K; j6 y1 f! S0 p# V# T1 P. M2 u
裝甲值則是"結構完整性(裝甲)"的十分之一,7 [) a0 v; c) x5 v; _! G
以太空基地為例,& r- P7 q8 S/ A. a) f
需花費金屬5,000,000,000和晶體2,000,000,000,重氫花費不加入計算,- H& t, X, h5 K" q2 F
技術頁面顯示的"結構完整性(裝甲)" = 5,000,000,000 + 2,000,000,000 = 7,000,000,0001 b5 v3 ^+ _$ {$ ?9 q d
戰鬥時真實裝甲值 = 7,000,000,000 /10 =700,000,000* o' `) W; p$ \) x$ z# X3 ^
結論:測試結果沒有任何問題,沒有逆向加成~!!$ r3 `- j% s. s
" [; o6 t( ?- u& _( X, S" | |
|