等級:12 - 出類拔萃 經驗值:0 / 116 魔法值:852 / 4519 生命值:6%
升級
  100%
TA的每日心情 | 衰 2015-11-12 09:48 |
|---|
簽到天數: 72 天 [LV.6]常住居民II
|
發表於 2015-10-5 07:34:43
|
顯示全部樓層
8 g" o& m9 E- \! |7 _2 D8 Z6 W4 ]% X
關於你的疑問,下面將進行詳細的解答:; }9 c5 E1 G. L$ T: {8 W" b: T' o
(不想看解釋請直接看結論)6 ]0 i. V6 D8 M, S! [0 e
# @4 @8 ~$ B a% n8 b- b$ G9 T. ^. W+ R; V/ [7 e1 I0 `1 E2 A; a
1.技術頁面顯示的船艦/防禦三圍問題
' x( f7 U( U2 e$ l% o7 H( K, F首先要知道,在32位系統下integer的最大值是2,147,483,647
: Y5 W: A8 C4 M! d4 v9 j若變量類型未進行聲明,PHP會根據變量的值自動轉換為正確的數據類型,* T: T9 K" [& j1 V6 R; }4 ?
因此可以看到,6 a1 Q! |1 \& M1 M+ O
太空基地"結構完整性(裝甲)"中未加成的數據雖然是超過了2,147,483,647& [, f: `9 d( n9 @4 O
但也能正確地顯示出7,000,000,000
7 v0 U0 W Y3 W+ }- i至於受加成的數據,* I" H" q; |; v$ w8 c
由於受加成的三圍數據在計算時採用了(int)來進行強制整型轉換,/ ]' k( T W) H& [
因此當數值超過2,147,483,647時,數值就會溢出,結果就不能正確地顯示了
5 d% y+ z! L# y. U$ _0 H( \推測使用(int)的原因:在計算受加成的數據時會有可能出現小數的情況,為避免出現過長的小數而影響美觀,因此使用(int)來把數值強制轉換成整數,原設計者當時並未考慮到未來會有數值這麼大的船艦/防禦出現,所以使用(int)在當時是沒問題的~* C' W: c/ B9 o+ j" b, C3 a" x
結論:只是顯示問題~!!
; p8 b1 R* x& _) p& Y2 @+ R) F% V c3 p/ @, p
: ^: T0 C! i: S' N% f2.戰鬥時的三圍數值與技術頁面顯示的數值不同問題
8 p4 W V3 a9 X這裡要公開以下戰鬥三圍數值計算公式才能說明:& [3 e. m6 T, z6 j! c& [
攻擊值 = 基礎攻擊 * 總攻擊加成 * (0.80~1.20)9 C1 k$ }: O9 `# q& }' A% c
防禦值(護盾) = 基礎防禦 * 總防禦加成: D3 |! e9 ]8 m: {1 l& J& I* Z
裝甲值 = (船艦/防禦金屬花費 + 船艦/防禦晶體花費) / 10 * 總裝甲加成* M4 L0 m4 D6 J* l
由上面公式可見,攻擊值的最終結果包含一個80%~120%的隨機上下浮動變化,
; ~- ^5 q6 [+ h5 }裝甲值則是"結構完整性(裝甲)"的十分之一,% w% e6 Q3 |9 Q4 u# v
以太空基地為例,: M4 F9 l/ k, j0 n- I* t
需花費金屬5,000,000,000和晶體2,000,000,000,重氫花費不加入計算,) T6 x+ [3 C2 H$ R4 G1 f
技術頁面顯示的"結構完整性(裝甲)" = 5,000,000,000 + 2,000,000,000 = 7,000,000,000% R I$ \8 q) `5 U4 j* Z
戰鬥時真實裝甲值 = 7,000,000,000 /10 =700,000,000& C$ t3 F, c$ B' v2 e7 Z
結論:測試結果沒有任何問題,沒有逆向加成~!!
, B5 X) r, N. O+ \! ?' V( E- k, _3 ]* ]% q) b" p; _2 n/ O
|
|