等級:12 - 出類拔萃 經驗值:0 / 116 魔法值:852 / 4232 生命值:6%
升級
  100%
TA的每日心情 | 衰 2015-11-12 09:48 |
---|
簽到天數: 72 天 [LV.6]常住居民II
|
發表於 2015-10-5 07:34:43
|
顯示全部樓層
0 u3 m' R. d; t% l" f! N
關於你的疑問,下面將進行詳細的解答:
$ }9 m+ Y" }* p(不想看解釋請直接看結論)
6 p( D6 N, r8 G( q) m( ?% K, K6 N
3 e/ i0 G) G9 u; \% D- ]5 N7 l% O1 D [- ~$ _
1.技術頁面顯示的船艦/防禦三圍問題6 J3 e2 z9 A: y3 e5 i0 R, c K
首先要知道,在32位系統下integer的最大值是2,147,483,6478 F; C& |" x. a* W
若變量類型未進行聲明,PHP會根據變量的值自動轉換為正確的數據類型,& l* O+ O j: r7 K7 M9 ]! ^# {
因此可以看到," Q( j- G/ O1 P9 n& G- {3 K
太空基地"結構完整性(裝甲)"中未加成的數據雖然是超過了2,147,483,647
& a* Q s. X6 r7 Y9 p, c" m& M( S但也能正確地顯示出7,000,000,000
: ^$ C% y5 `* c! u/ v5 E/ C. u% ?至於受加成的數據,4 ?' F$ ]3 w, a
由於受加成的三圍數據在計算時採用了(int)來進行強制整型轉換,
! C# y# Y7 [; J( S因此當數值超過2,147,483,647時,數值就會溢出,結果就不能正確地顯示了4 {: Z7 A' I& \
推測使用(int)的原因:在計算受加成的數據時會有可能出現小數的情況,為避免出現過長的小數而影響美觀,因此使用(int)來把數值強制轉換成整數,原設計者當時並未考慮到未來會有數值這麼大的船艦/防禦出現,所以使用(int)在當時是沒問題的~
5 L0 K9 u* ~( @! h結論:只是顯示問題~!!5 R) a, C- ]0 Z' {
9 e2 D- V& J3 B3 z" _
% a: Y! F( C$ P+ e: \2.戰鬥時的三圍數值與技術頁面顯示的數值不同問題
$ U; \7 e8 S& H7 t Y這裡要公開以下戰鬥三圍數值計算公式才能說明:$ _6 m$ J) [2 a& ~7 r( k+ E/ o+ q
攻擊值 = 基礎攻擊 * 總攻擊加成 * (0.80~1.20)
% `* `+ u% r& h8 o( x* A6 ~ 防禦值(護盾) = 基礎防禦 * 總防禦加成" e8 n& {6 r! e V3 D7 p; N, \
裝甲值 = (船艦/防禦金屬花費 + 船艦/防禦晶體花費) / 10 * 總裝甲加成
1 T. \9 V7 K) [$ {由上面公式可見,攻擊值的最終結果包含一個80%~120%的隨機上下浮動變化,+ p; n X7 o+ a' A
裝甲值則是"結構完整性(裝甲)"的十分之一,# d8 i3 f$ h$ q- J3 d* h# e* I: |
以太空基地為例,
7 o- Z, b. R4 }& {2 L/ ]8 v需花費金屬5,000,000,000和晶體2,000,000,000,重氫花費不加入計算,+ h+ @0 _2 p7 S" W% c: c+ T
技術頁面顯示的"結構完整性(裝甲)" = 5,000,000,000 + 2,000,000,000 = 7,000,000,000
8 T. f6 x" _* p& ?6 o$ [" f* f; X戰鬥時真實裝甲值 = 7,000,000,000 /10 =700,000,000
# A7 c9 `' ^/ v4 O: R2 L結論:測試結果沒有任何問題,沒有逆向加成~!!0 q' `! r, \8 R/ m; V( e5 F
- X( r. r+ ] |6 B |
|