等級:12 - 出類拔萃 經驗值:0 / 116 魔法值:852 / 4546 生命值:6%
升級
  100%
TA的每日心情 | 衰 2015-11-12 09:48 |
|---|
簽到天數: 72 天 [LV.6]常住居民II
|
發表於 2015-10-5 07:34:43
|
顯示全部樓層
/ F3 \. q+ y4 D" G1 i) {
關於你的疑問,下面將進行詳細的解答:" f- a$ o1 w; q9 h) C
(不想看解釋請直接看結論)7 q- y% _9 ?6 ^* l
4 C8 l1 j$ ]3 X
; z6 K$ P' P( A8 ^- g5 T1 H1.技術頁面顯示的船艦/防禦三圍問題
9 q7 o1 N1 O7 M& D首先要知道,在32位系統下integer的最大值是2,147,483,647
/ R; o! Z9 f. }. W" j* m5 {若變量類型未進行聲明,PHP會根據變量的值自動轉換為正確的數據類型,1 E" o; I+ L0 m; t% S
因此可以看到,4 s4 M7 l, W' o6 Z: m
太空基地"結構完整性(裝甲)"中未加成的數據雖然是超過了2,147,483,647
* W6 z: }0 h/ M! w. g( }但也能正確地顯示出7,000,000,000
0 m R/ a9 F4 d4 [2 d7 r至於受加成的數據,: d1 w5 s$ e% K" s, K& K! C
由於受加成的三圍數據在計算時採用了(int)來進行強制整型轉換,
L/ ^# e; [' r& e8 g, z# _因此當數值超過2,147,483,647時,數值就會溢出,結果就不能正確地顯示了
& a. V' J# |! l( R推測使用(int)的原因:在計算受加成的數據時會有可能出現小數的情況,為避免出現過長的小數而影響美觀,因此使用(int)來把數值強制轉換成整數,原設計者當時並未考慮到未來會有數值這麼大的船艦/防禦出現,所以使用(int)在當時是沒問題的~8 d8 u+ W7 B& a1 `
結論:只是顯示問題~!!, k- z6 H3 ^0 G% o2 l
0 G: S' ~# D. w6 \" F4 O! Z, I; V5 ?
2.戰鬥時的三圍數值與技術頁面顯示的數值不同問題
- T# r, e% o9 T這裡要公開以下戰鬥三圍數值計算公式才能說明:
* S N! s g( d8 S 攻擊值 = 基礎攻擊 * 總攻擊加成 * (0.80~1.20)
. g" N' y+ d8 q3 B 防禦值(護盾) = 基礎防禦 * 總防禦加成5 c. t; c6 h3 Y) S7 P
裝甲值 = (船艦/防禦金屬花費 + 船艦/防禦晶體花費) / 10 * 總裝甲加成; y" @, A E1 u U/ W X7 K
由上面公式可見,攻擊值的最終結果包含一個80%~120%的隨機上下浮動變化,! z, O! s" H. |
裝甲值則是"結構完整性(裝甲)"的十分之一,
! J8 q- @/ w$ p6 v, }以太空基地為例,
6 K' M4 D0 u6 p8 E4 P$ D6 ]9 {9 n需花費金屬5,000,000,000和晶體2,000,000,000,重氫花費不加入計算,
! _# J/ j( H' [6 |5 L技術頁面顯示的"結構完整性(裝甲)" = 5,000,000,000 + 2,000,000,000 = 7,000,000,000* e. ?1 H3 ?+ t( l& N
戰鬥時真實裝甲值 = 7,000,000,000 /10 =700,000,000# c* ?! B1 G) I. m I9 m5 E
結論:測試結果沒有任何問題,沒有逆向加成~!!$ J! U. A N, C. n$ N
: _- @: }& Q Y1 U9 v% j# u |
|