等級:12 - 出類拔萃 經驗值:0 / 116 魔法值:852 / 4325 生命值:6%
升級
  100%
TA的每日心情 | 衰 2015-11-12 09:48 |
|---|
簽到天數: 72 天 [LV.6]常住居民II
|
發表於 2015-10-5 07:34:43
|
顯示全部樓層
5 W P6 y) q1 }6 ^+ E" p0 j關於你的疑問,下面將進行詳細的解答:7 B6 g, l4 r' l4 @2 @8 p" y9 H d
(不想看解釋請直接看結論)
! J5 H2 r! d9 S5 Z( \: `) Z* o: r0 d( @) f# x, s, M
' A$ q3 f2 u# A$ _5 X) ?: I
1.技術頁面顯示的船艦/防禦三圍問題5 H' f" f' z& W- o: k: i( t6 N
首先要知道,在32位系統下integer的最大值是2,147,483,647
/ _( |& | g* g7 b# m若變量類型未進行聲明,PHP會根據變量的值自動轉換為正確的數據類型,
! o9 _4 n9 c9 G3 x6 B) c2 ]& l T$ g因此可以看到,9 a7 v0 d; {; k6 m; {0 j
太空基地"結構完整性(裝甲)"中未加成的數據雖然是超過了2,147,483,6475 `, V5 g! \1 E
但也能正確地顯示出7,000,000,000( |! ~* |7 N/ x. M/ ]/ i) J# [* f: } C0 p
至於受加成的數據,: g4 t8 i8 I3 ]5 i' Q' z- Q: O
由於受加成的三圍數據在計算時採用了(int)來進行強制整型轉換,1 r, x% }) u2 J, \4 v; H0 \4 a; r) q
因此當數值超過2,147,483,647時,數值就會溢出,結果就不能正確地顯示了, Z! d8 T# ^" m
推測使用(int)的原因:在計算受加成的數據時會有可能出現小數的情況,為避免出現過長的小數而影響美觀,因此使用(int)來把數值強制轉換成整數,原設計者當時並未考慮到未來會有數值這麼大的船艦/防禦出現,所以使用(int)在當時是沒問題的~
; |; p( w' Y1 Q結論:只是顯示問題~!!
4 K0 y& e; V, f0 K5 y7 z1 F3 U, H4 j* N Z9 t
8 x" j! e7 {3 p4 h) q4 j2.戰鬥時的三圍數值與技術頁面顯示的數值不同問題
6 Y/ y* @" M1 p這裡要公開以下戰鬥三圍數值計算公式才能說明:9 r; `; ]5 q2 s# t. |1 v
攻擊值 = 基礎攻擊 * 總攻擊加成 * (0.80~1.20)8 J5 \4 W8 a) \9 N) I1 J
防禦值(護盾) = 基礎防禦 * 總防禦加成
9 A: D8 g; R) X 裝甲值 = (船艦/防禦金屬花費 + 船艦/防禦晶體花費) / 10 * 總裝甲加成& Z9 g3 J. i. B3 T1 m/ ]) F* J
由上面公式可見,攻擊值的最終結果包含一個80%~120%的隨機上下浮動變化,' u7 n5 j% N$ G) ]0 j; x* W, i
裝甲值則是"結構完整性(裝甲)"的十分之一,6 @/ r8 {3 \; M
以太空基地為例,
T/ | w. l1 p# n2 `需花費金屬5,000,000,000和晶體2,000,000,000,重氫花費不加入計算,/ j: L% y; H' y6 U, F
技術頁面顯示的"結構完整性(裝甲)" = 5,000,000,000 + 2,000,000,000 = 7,000,000,000
. n9 \1 L# X. D' I; O3 f2 ?. z2 J0 u" f& V戰鬥時真實裝甲值 = 7,000,000,000 /10 =700,000,000
m! z* M3 x8 L% O- A結論:測試結果沒有任何問題,沒有逆向加成~!!
2 w( O+ U. a# r2 E* l) {' q$ x. k3 f0 x9 M
|
|