等級:12 - 出類拔萃 經驗值:0 / 116 魔法值:852 / 4653 生命值:6%
升級
  100%
TA的每日心情 | 衰 2015-11-12 09:48 |
|---|
簽到天數: 72 天 [LV.6]常住居民II
|
發表於 2015-10-5 07:34:43
|
顯示全部樓層
lit212218 發表於 2015-10-5 01:37- _& ^5 F) _0 f: h" t9 G- |2 e
A大,這是約莫30分鐘前我在U2找I玩家直接測試的結果,裝甲值確實逆向加成了。
3 [2 O& h, S; R1 f W8 _! o U7 F0 j該玩家三圍加成值為攻擊510% ...
' W5 V! @% B3 l1 _. w6 r/ K$ c- u" L關於你的疑問,下面將進行詳細的解答:
% T& I) Z, |: q1 k' R(不想看解釋請直接看結論) V, q! F( c1 j
' W1 a0 |$ j) K& g) I) i
" A$ a8 N6 h* @" m8 e1.技術頁面顯示的船艦/防禦三圍問題
! m0 T/ j& q% g" {7 ]6 C首先要知道,在32位系統下integer的最大值是2,147,483,647! n; w8 L1 X% U- ^9 A
若變量類型未進行聲明,PHP會根據變量的值自動轉換為正確的數據類型,
( @; V. g& y$ o' y& v因此可以看到,
2 y+ X' N) N1 I9 u太空基地"結構完整性(裝甲)"中未加成的數據雖然是超過了2,147,483,647
, c( \1 J4 z- ^: o- c' t但也能正確地顯示出7,000,000,0000 i- _5 b n& g+ W
至於受加成的數據,
. P3 t; r' o: S- |2 K由於受加成的三圍數據在計算時採用了(int)來進行強制整型轉換,- V5 V& E0 B& f n
因此當數值超過2,147,483,647時,數值就會溢出,結果就不能正確地顯示了
* O3 r$ t+ z& b) b' h; [5 t推測使用(int)的原因:在計算受加成的數據時會有可能出現小數的情況,為避免出現過長的小數而影響美觀,因此使用(int)來把數值強制轉換成整數,原設計者當時並未考慮到未來會有數值這麼大的船艦/防禦出現,所以使用(int)在當時是沒問題的~/ R5 m- g% c; m$ v
結論:只是顯示問題~!!% \* t& B6 ?/ J
# e8 d( F5 o- x+ N
6 E$ d7 J9 _( y8 N7 `2.戰鬥時的三圍數值與技術頁面顯示的數值不同問題
! K8 a, [4 j: l; F0 T7 [6 w這裡要公開以下戰鬥三圍數值計算公式才能說明:
2 u9 ~: c+ D- Y* w6 H1 N$ c 攻擊值 = 基礎攻擊 * 總攻擊加成 * (0.80~1.20)
& J1 C; G/ v4 w/ M! s 防禦值(護盾) = 基礎防禦 * 總防禦加成
/ ?* F5 x1 ]! O! g1 o3 a4 K 裝甲值 = (船艦/防禦金屬花費 + 船艦/防禦晶體花費) / 10 * 總裝甲加成( @( o, T0 o& {8 w- b( n5 l0 |
由上面公式可見,攻擊值的最終結果包含一個80%~120%的隨機上下浮動變化,
& V) b, T. W. X3 M+ j# s裝甲值則是"結構完整性(裝甲)"的十分之一,
9 b. C4 _4 d% G w0 i以太空基地為例,5 c' ~9 z) N6 w% H
需花費金屬5,000,000,000和晶體2,000,000,000,重氫花費不加入計算,
) J+ L* t4 m! u5 a7 ]技術頁面顯示的"結構完整性(裝甲)" = 5,000,000,000 + 2,000,000,000 = 7,000,000,000
A" U; l t- a( s戰鬥時真實裝甲值 = 7,000,000,000 /10 =700,000,000
N1 j5 P! p& X5 B( r7 n/ |$ g4 C$ X結論:測試結果沒有任何問題,沒有逆向加成~!!3 I! m& A! I2 ?1 ^6 t! T
. j% ^% d6 p( P3 M* C6 ~
|
|