等級:25 - 爐火純青 經驗值:0 / 246 魔法值:15007 / 15007 生命值:6%
升級
  100%
TA的每日心情 | 奮斗 18 小時前 |
|---|
簽到天數: 5969 天 [LV.Master]伴壇終老
|
發表於 2015-9-16 20:17:13
|
顯示全部樓層
- class MissionCaseDestruction extends MissionFunctions; M8 s4 W! h; d+ r4 Z d
- {
5 m6 k5 w& y5 z9 [- i% H V - function __construct($Fleet)
. I! | ]0 L- Z. x3 R - {
8 v5 j4 L' A0 N* E - $this->_fleet = $Fleet;
4 n% K$ p0 j! @5 ^4 M& U& v - }! A) H( E; C0 F5 D6 z# s/ i/ L
- ; r3 [8 V7 p8 J% a; c
- function TargetEvent()* Q& f% N3 V' n2 ~- c
- { / G$ @) F& j/ t4 u$ N+ ~6 p" c0 a e
- global $resource, $reslist;7 N/ h5 T H. u" b
-
; E0 _" r6 S# ^, ]' b1 H - $fleetAttack = array();
: ^2 g8 q- j9 I: O C' V - $fleetDefend = array();
1 B6 e& y% m% ^1 K! B& C6 e - % _) p, s N, W: o
- $userAttack = array();( B! r. V1 {8 I% i, o
- $userDefend = array();3 F3 N; ^6 z. u+ @" H2 h% E: R" \, \2 v
-
0 L( x) I @2 Q0 G* } - $stealResource = array(' z a& L, c/ c5 ~( T
- 901 => 0,
6 L `+ v- Q! S9 ?" D& t% a: t - 902 => 0,5 V g/ q& U# L0 S
- 903 => 0,
5 B1 \ c+ ?* y; z - );
& e6 |" i3 G# h9 V5 \) `9 A - ' t$ P1 O7 ]& V; ]( T P, o
- $debris = array();
, J$ K* }! v" h+ r - $planetDebris = array();% A) z6 u7 J4 D" ? @, V
-
2 \1 P/ H' N1 k7 h: ? - $raportInfo = array();
/ e9 ~3 ^# m8 M, z, f- K1 R% G -
( P( i u) Q8 [1 c0 H" Z - $debrisRessource = array(901, 902);
: W* W0 k$ \+ k3 | -
. i6 n1 n1 z+ J - $messageHTML = <<<HTML8 u; z! B9 P: a6 R3 V
- <div class="raportMessage">
9 m: M# v% P/ ?8 x! B, P7 o6 d; T - <table>/ P' {, l4 i: O, q
- <tr>
, [, ~ [( Z; ~2 K5 r - <td colspan="2"><a href="CombatReport.php?raport=%s" target="_blank"><span class="%s">%s %s (%s)</span></a></td>; [' E" }% A" \) @; L+ D9 ?
- </tr>4 }6 o1 e$ B- [* z- I8 X2 \- Q
- <tr>9 F8 d* c2 e# U& N/ j8 A
- <td>%s</td><td><span class="%s">%s: %s</span> <span class="%s">%s: %s</span></td>( I5 R7 C2 Q4 p) L% P
- </tr>
; G( W# L7 ?( s" r( k0 j2 u' D- ? - <tr>
+ _& |* v8 U$ m; u C* _+ D - <td>%s</td><td><span>%s: <span class="raportSteal element901">%s</span> </span><span>%s: <span class="raportSteal element902">%s</span> </span><span>%s: <span class="raportSteal element903">%s</span></span></td>5 b" c3 _- y B9 D! F: ]9 G4 y
- </tr>
3 D8 [1 A' `; F* P" f! i - <tr>8 `1 B" T1 x. w- |6 J j+ k/ l5 l8 S% w
- <td>%s</td><td><span>%s: <span class="raportDebris element901">%s</span> </span><span>%s: <span class="raportDebris element902">%s</span></span></td>3 H3 ?4 a7 l# F5 n8 {, p2 t
- </tr>9 l! T6 f3 x% i1 R; W
- </table>5 [5 v- L0 }: ~* ?$ m' n& o& Z& e' b
- </div>, w% x: q- v! J2 T- J
- HTML;
+ _+ A( F0 p9 H& w% C9 |; o - //Minize HTML
7 G! U6 f5 t) L' ? - $messageHTML = str_replace(array("\n", "\t", "\r"), "", $messageHTML);
2 C! D' I4 d. k. t; c \8 R -
, M8 V9 T( [: S' X5 W+ G# Y - $targetPlanet = $GLOBALS['DATABASE']->getFirstRow("SELECT * FROM ".PLANETS." WHERE id = '".$this->_fleet['fleet_end_id']."';");
r( w) N" |, T4 @- m- J - $targetUser = $GLOBALS['DATABASE']->getFirstRow("SELECT * FROM ".USERS." WHERE id = '".$targetPlanet['id_owner']."';");
4 [" x1 ^. ?2 F$ P; p2 R" j* i/ ]1 J - # M4 T& H2 g$ w' c& d& C" K
- $targetUser['factor'] = getFactors($targetUser, 'basic', $this->_fleet['fleet_start_time']);
- i$ F) L3 a6 S$ S$ W - $planetUpdater = new ResourceUpdate();! K) Y% F5 v& x8 w* h/ o$ S
- " X1 h: P8 ?7 V
- list($targetUser, $targetPlanet) = $planetUpdater->CalcResource($targetUser, $targetPlanet, true, $this->_fleet['fleet_start_time']);) P' u8 T6 e% S9 z9 H; R
- 8 e2 A6 U5 M0 o/ z+ b
- if($this->_fleet['fleet_group'] != 0)
- V4 F! F8 f( Q; }7 i* O7 c - {6 k, X# B7 N7 u
- $GLOBALS['DATABASE']->query("DELETE FROM ".AKS." WHERE id = '".$this->_fleet['fleet_group']."';");" C: j/ ~) E4 R6 s$ X- p3 K
- $incomingFleetsResult = $GLOBALS['DATABASE']->query("SELECT * FROM ".FLEETS." WHERE fleet_group = '".$this->_fleet['fleet_group']."';");
# L# b" ~1 Q; q -
% O; @6 E2 W# x& N# f - while ($incomingFleetsRow = $GLOBALS['DATABASE']->fetch_array($incomingFleetsResult))) p) d/ b( B4 E( B
- {
9 _. l$ P; h- y& \+ T - $incomingFleets[$incomingFleetsRow['fleet_id']] = $incomingFleetsRow; W' ?. w4 P3 ^# u1 N7 o
- }# O" ]* h7 l* _. o j
-
8 S4 u$ e* a5 `3 i - $GLOBALS['DATABASE']->free_result($incomingFleetsResult);
2 a E3 I4 B. D3 @0 ~9 ^ f( Q - }. B8 a X+ t6 M' {5 [; K
- else
9 b1 z8 }0 Q& A9 U5 ~7 p - {! b5 V8 n' \" c6 a# I% }3 F1 U
- $incomingFleets = array($this->_fleet['fleet_id'] => $this->_fleet);
" C$ e3 q7 L* B) \# U1 ? - }
4 R+ e5 Z1 r+ B- K, d$ [& s/ ~ - 1 o+ U; w6 f# l
- foreach($incomingFleets as $fleetID => $fleetDetail)5 q, n& h* ^5 X( o' Y! Y6 h
- {3 ? k) L( f* o! e! b! _4 _
- $fleetAttack[$fleetID]['fleetDetail'] = $fleetDetail;
, ]5 n" ]; G1 B7 O3 E: ` - $fleetAttack[$fleetID]['player'] = $GLOBALS['DATABASE']->getFirstRow("SELECT * FROM ".USERS." WHERE id = '".$fleetDetail['fleet_owner']."';");1 ^8 v6 W9 c% I2 X M# c1 k4 }
- $fleetAttack[$fleetID]['player']['factor'] = getFactors($fleetAttack[$fleetID]['player'], 'attack', $this->_fleet['fleet_start_time']);
9 f$ T4 T& E. `8 O- ~ - $fleetAttack[$fleetID]['unit'] = fleetAmountToArray($fleetDetail['fleet_array']);& t4 u$ h" E* w+ }
-
" ~' i$ O# d/ m3 [3 z - $userAttack[$fleetAttack[$fleetID]['player']['id']] = $fleetAttack[$fleetID]['player']['username'];8 m0 q2 Q% J; C* J
- }' y7 x# M7 r" @9 a$ J5 h& g% x
-
+ ^6 D" E1 [2 U& U( } n4 P& @# B - $targetFleetsResult = $GLOBALS['DATABASE']->query("SELECT * FROM ".FLEETS." WHERE fleet_mission = '5' AND fleet_end_id = '".$this->_fleet['fleet_end_id']."' AND fleet_start_time <= '".TIMESTAMP."' AND fleet_end_stay >= '".TIMESTAMP."';");5 k) z, W( e3 }7 S4 V$ I! X, N
- while ($fleetDetail = $GLOBALS['DATABASE']->fetch_array($targetFleetsResult)): k, T4 G8 u7 g4 s3 n8 u& k7 Y" v
- {1 m2 v% A3 `2 H' q
- $fleetID = $fleetDetail['fleet_id'];. \" R4 [& J0 \1 e+ H4 F, r
- , ] j8 T% p" q; c. Z3 m( i
- $fleetDefend[$fleetID]['fleetDetail'] = $fleetDetail;
8 d# x+ w2 d" u5 X, I - $fleetDefend[$fleetID]['player'] = $GLOBALS['DATABASE']->getFirstRow("SELECT * FROM ".USERS." WHERE id = '".$fleetDetail['fleet_owner']."';");
3 |1 U- y# k- X - $fleetDefend[$fleetID]['player']['factor'] = getFactors($fleetDefend[$fleetID]['player'], 'attack', $this->_fleet['fleet_start_time']);, R5 ?9 W! q+ Z# }( F% i
- $fleetDefend[$fleetID]['unit'] = fleetAmountToArray($fleetDetail['fleet_array']);( R- Z# l# |6 l; p: o- y5 w- @% s
- 1 C, c. x7 e T$ j* R
- $userDefend[$fleetDefend[$fleetID]['player']['id']] = $fleetDefend[$fleetID]['player']['username'];$ L% k! F4 ~- F: w/ b
- }! O% [1 L: X1 { |4 }
- 6 ]! E' m' O" Y$ j* K2 {
- $GLOBALS['DATABASE']->free_result($targetFleetsResult);: f6 r% N0 V" ]7 G5 U
-
) {# {6 j% R6 ^5 n$ w1 n - $fleetDefend[0]['player'] = $targetUser;. T7 x0 U% @' e$ q" S
- $fleetDefend[0]['player']['factor'] = getFactors($fleetDefend[0]['player'], 'attack', $this->_fleet['fleet_start_time']);
/ g5 ^3 E9 |5 t( S" B3 ^ - $fleetDefend[0]['fleetDetail'] = array(4 S1 x( w5 ]' u! H
- 'fleet_start_galaxy' => $targetPlanet['galaxy'],
6 ?8 @+ I" S3 }- p* u1 `% m3 w - 'fleet_start_system' => $targetPlanet['system'], , d) X; K3 s: n+ p' }
- 'fleet_start_planet' => $targetPlanet['planet'],
" t# n7 Z5 Q9 I1 @3 F - 'fleet_start_type' => $targetPlanet['planet_type'], 2 ]$ _! z" R3 w5 ?5 f# F: j; \
- );2 r. P3 E( X i0 I
- + }. J0 g$ @; i5 h
- $fleetDefend[0]['unit'] = array();
+ `1 a8 {7 v" ?* ^/ g -
! ?/ X" @1 \7 K( Z8 N. L/ M6 @ J - foreach(array_merge($reslist['fleet'], $reslist['defense']) as $elementID)# z: j4 t; x9 x8 V0 A C
- {
8 l$ K: r% p; ]0 `. w& t - if (empty($targetPlanet[$resource[$elementID]])) continue;! K" y, y7 V) m8 p# \8 n
# s2 V; G: t; H7 `! n% |5 E9 o- $fleetDefend[0]['unit'][$elementID] = $targetPlanet[$resource[$elementID]];" G ^. ?+ n' ~/ h
- }& V% Y+ E8 j* ~: t. g& w( u
-
! v8 @& `' t5 e& x3 r - $userDefend[$fleetDefend[0]['player']['id']] = $fleetDefend[0]['player']['username'];
$ O" t( z7 l" k2 _1 u - * g: X: O6 L) B. ]/ d7 W& D2 W
- require_once('calculateAttack.php');: A3 I E5 {# g2 C2 y
- % X5 ~9 l- g1 E a( S/ e
- $fleetIntoDebris = $GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['Fleet_Cdr'];
$ L) B) [% q) k - $defIntoDebris = $GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['Defs_Cdr'];, _; Y+ z- v$ N! B1 h
-
+ g3 u# e+ s$ F8 d( `2 }; f) z4 O' z - $combatResult = calculateAttack($fleetAttack, $fleetDefend, $fleetIntoDebris, $defIntoDebris);: o+ o6 s+ I$ s( E5 |9 @6 R
-
, ^9 w1 a9 j/ M& {2 a+ V" I: ~4 G/ X - $sqlQuery = "";
8 O3 G( X4 Q+ f7 c1 J: | -
/ p2 n4 D1 T: b8 k$ A - foreach ($fleetAttack as $fleetID => $fleetDetail)( j- |; T1 X& K a3 X E) ?
- {. i+ ]# h" e4 Q
- $fleetArray = '';
9 j( C3 U6 y+ D; g1 | - $totalCount = 0;
K& v5 Y# |6 k9 y) a8 C0 z -
4 `/ q* c# a# ~$ B; V" } - $fleetDetail['unit'] = array_filter($fleetDetail['unit']);
6 H0 v9 q( \6 F& [ _ - foreach ($fleetDetail['unit'] as $elementID => $amount)1 C4 r% X' K9 R, n
- { % h9 p9 T& o; ]+ @( f# i* M
- $fleetArray .= $elementID.','.floattostring($amount).';';1 I9 v7 Y( J6 r: E- g; i' E
- $totalCount += $amount;
$ ~, f9 {5 d* f# c* F - }1 {8 Y1 m" {5 T! @' V8 ^
- ' w# ?7 L5 l1 F) Z4 \% L
- if($totalCount == 0)
1 l5 v: _5 f7 o. ^5 f( j# U - {
) R. B+ q- }3 `) Y4 H( U - if($this->_fleet['fleet_id'] == $fleetID)+ r. Q/ |; b# l9 Y! W! H a
- {% _0 b' x# r: T* K
- $this->KillFleet();6 X1 z6 k4 X0 w/ H; a
- }
5 |: C/ y; I4 x4 f7 U2 J; ^. _# C2 E8 V - else
. v& s, C/ K1 V& ]2 u - {
- t% P, s$ y7 ]" Q, c - $sqlQuery .= "DELETE FROM ".FLEETS." WHERE fleet_id = ".$fleetID.";";8 l, j; F2 ]8 ^% R" S: x8 n/ Z
- $sqlQuery .= "DELETE FROM ".FLEETS_EVENT." WHERE fleetID = ".$fleetID.";";
0 i2 z4 R' r2 Q4 ^' c) C8 V - }) d- S# ^7 \) h2 E! D( a
- 8 L/ {4 B( ~4 G; O: \, ?( a
- $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_state = 2 WHERE fleet_id = '".$fleetID."';";
2 h8 `4 E4 f/ b. ?! { - }
4 F0 t& q; Z z6 @ - elseif($totalCount > 0)* r# X1 M- X6 p G2 V! ?
- {
8 n# b1 S# X1 S - $sqlQuery .= "UPDATE ".FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."' WHERE fleet_id = '".$fleetID."';";
2 u8 L3 s# E1 `/ t: j4 v6 g - $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."', fleet_state = 1 WHERE fleet_id = '".$fleetID."';";
( H. C/ }$ J" }+ s, z2 h3 i: A - }
9 r3 j7 x3 ]# ` - else
\/ m+ @8 B' j% s1 j - {' B+ H Y1 h' m$ l$ D
- throw new Exception("Negative Fleet amount ....");0 ]; e8 Z1 ~- {2 a& v( E4 m
- }
4 k, ^" |+ q2 J3 @% m - }
4 z* H; ~) k9 X2 L -
$ \+ L" d5 e/ R1 e; r: d' l+ O8 B - foreach ($fleetDefend as $fleetID => $fleetDetail)
: e* h) z5 R' e9 r9 I& U - {" z t$ u7 F" ?
- if($fleetID != 0)
6 M; L+ U$ s0 d" f" o, H( }# q- Q8 f/ s - {
0 G N6 H0 o/ N0 k4 I7 [2 B! S) d- H - $fleetArray = '';. b; m0 A5 W4 B/ S- i7 S
- $totalCount = 0; \, W$ e0 Z" {# j Z9 {
-
: z4 ]) E3 {+ s2 U+ ] - $fleetDetail['unit'] = array_filter($fleetDetail['unit']);
, |+ ^% M/ W+ e' D- |& {3 O i - foreach ($fleetDetail['unit'] as $elementID => $amount)( L1 Z4 J- Y1 L7 d2 {! a
- {
7 _! E [$ Z) U3 Y6 B7 r7 s y - $fleetArray .= $elementID.','.floattostring($amount).';';2 A7 P; j5 b# y+ J5 X4 D
- $totalCount += $amount;- A4 H6 r" V5 n5 v
- }
8 z* u$ R' u" M( v% X4 x -
4 M7 X8 q4 V" H* {. J - if($totalCount == 0)& j0 t; G$ t' _3 n2 T7 H5 d
- {" Y4 G1 G* q9 |- C6 c- @
- $sqlQuery .= "DELETE FROM ".FLEETS." WHERE fleet_id = ".$fleetID.";";
/ {& f" O4 C/ c4 Y$ s3 U - $sqlQuery .= "DELETE FROM ".FLEETS_EVENT." WHERE fleetID = ".$fleetID.";";% v$ C" `% y/ o, }& m" z
- $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_state = 2 WHERE fleet_id = '".$fleetID."';";4 q5 n- P& c+ J2 F# p9 F
- }7 \, I5 I# O" y8 @# ^
- elseif($totalCount > 0)
" c# F6 U5 D3 f2 ] - {* C) Q" k' f. ]/ y4 l
- $sqlQuery .= "UPDATE ".FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."' WHERE fleet_id = '".$fleetID."';";! R$ p5 ~6 a; F% g
- $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."', fleet_state = 1 WHERE fleet_id = '".$fleetID."';";
8 t K- ^: \5 Y; U - }/ P" t' P p, R" ] D
- else [$ u8 ]; S9 X. }* x! y5 a+ y
- {6 T- k- M) _, T" c( F5 S, @
- throw new Exception("Negative Fleet amount ....");' j% d5 m& Y0 E( a/ v
- }
8 c4 [% g0 X# S" a+ ^ - }; m5 G" f& y3 t4 _* ^. _, }
- else o: }1 k& p+ U
- {" s' L- h# M* @: u* M* u c
- $fleetArray = array();: z: `- |2 m" C; d# z
- foreach ($fleetDetail['unit'] as $elementID => $amount)
# w& U. |/ o. j* H3 ^. t - { & k$ `0 S4 w1 A: T( ], r
- $fleetArray[] = $resource[$elementID]." = ".$amount;
: W% h$ g! }' e# E" ?' g7 D9 z - }
/ n# T L7 t" h9 F/ [ -
p, _2 x. ^$ q, o" K# j - if(!empty($fleetArray))
/ f7 o: G) o, p* o: | - {
$ ^- q$ ^$ f2 u" ` W - $sqlQuery .= "UPDATE ".PLANETS." SET ".implode(', ', $fleetArray)." WHERE id = '".$this->_fleet['fleet_end_id']."';";$ o% x$ A2 O$ W6 P5 Z
- }
4 D3 F+ S3 I9 @' n$ U8 y - }
6 E- t: }% t! Z, @* M5 G - }! r& t" j' W, {# N6 Q
- + ^( K; x0 \4 j9 x$ H
- $GLOBALS['DATABASE']->multi_query($sqlQuery);
5 Z i. _- A! k$ a% r -
9 L9 ~& P, v. _& f: A( |, r9 ? - if ($combatResult['won'] == "a")
' p! W; D8 q. g0 U0 [0 {: { - {
{+ K3 J# k2 K# ?$ T0 B+ H3 W - require_once('calculateSteal.php');9 i. W- u5 X4 Q% V0 _( F
- $stealResource = calculateSteal($fleetAttack, $targetPlanet);
* ?8 m' e }' S - }
7 n4 F) l! E. E0 c -
. [1 t% ]5 H3 f- D - if($this->_fleet['fleet_end_type'] == 3)5 ]. ?3 q. e5 @2 t# l( ~
- {* A/ R8 [+ ?8 [2 B2 M
- // Use planet debris, if attack on moons
1 N M w- h! l$ m - $targetPlanet = array_merge(9 Y' `% n$ x8 w# [( ^2 w
- $targetPlanet,+ h* L. N$ r, ~9 l
- $GLOBALS['DATABASE']->getFirstRow("SELECT der_metal, der_crystal FROM ".PLANETS." WHERE id_luna = ".$this->_fleet['fleet_end_id'].";")" j! Y C4 m: b7 z, m' R* `/ u
- );
9 b- B( ^) I1 a5 {5 r - }. w' q: N7 s1 k% W. b/ v2 ]
- 9 A# T( ^- I1 ]
- foreach($debrisRessource as $elementID)
' Y: ~: V. M1 l$ i) G# l* [6 S) \ - {
& L7 [4 S" }1 F; u% L6 t& F6 D - $debris[$elementID] = $combatResult['debris']['attacker'][$elementID] + $combatResult['debris']['defender'][$elementID];, P' l/ u3 O4 y# W$ P/ l& D; x( U
- $planetDebris[$elementID] = $targetPlanet['der_'.$resource[$elementID]] + $debris[$elementID];
( M( E8 Z: l7 B8 N, n) r - }
4 r a3 ]( B! R2 a* N% D- ` - 0 U( I' M: L; M L
- $debrisTotal = array_sum($debris);$ E1 u8 d) ^, j$ h
- 0 Z3 a1 A. g7 O+ a# W( G) Y+ ]! R
- $raportInfo = array(" ?6 p( b8 w) E, Q3 K+ Y
- 'thisFleet' => $this->_fleet,8 } g2 {( \" P- L9 J; m& L
- 'debris' => $debris,
- B: I/ Q/ o s - 'stealResource' => $stealResource,1 u8 p3 {% H2 s7 n1 J+ \' d
- 'moonChance' => null,1 \ r! g. n. o! j- P1 U
- 'moonDestroy' => true,
, O3 _1 q7 c3 v4 A8 j8 f - 'moonName' => null,
* J* R6 N. S8 Z. G - 'moonDestroyChance' => null,6 L; y+ ?) H5 n* f5 r1 X! \. W
- 'moonDestroySuccess' => null,. t1 w" ^- L4 t9 W5 E
- 'fleetDestroyChance' => null,
( c3 P5 {/ C) x$ d7 f. \ - 'fleetDestroySuccess' => false,
* y* I& h% k* e0 u3 v" X - );! Z$ b: a) j/ H3 ^, y* V& {8 {
* ~+ M T8 K y2 [( n0 P9 {8 z- $destext = "";& @4 L' g D( T+ t/ T
-
" Y8 U, v8 O+ L - switch($combatResult['won'])! i. q/ I- Q% G0 z5 M! o3 L2 J
- {% C, e* X: ?7 K! {
- case "a":
2 l& V8 O. I9 {4 N1 r' S - $moonDestroyChance = round((100 - sqrt($targetPlanet['diameter'])) * sqrt($fleetAttack[$this->_fleet['fleet_id']]['unit'][214]), 1);
' ~* i* M) l5 A - ) ^) Z" u% ^( g, z5 B
- // Max 100% | Min 0%! p) Q- K0 i* j& U6 @+ e
- $moonDestroyChance = min($moonDestroyChance, 100);
]& P4 t& r6 W+ Z+ @, J9 f - $moonDestroyChance = max($moonDestroyChance, 0);- `! g6 H5 }2 m: k% D, c* `8 ?: s
-
% G8 E9 ^7 U3 { @ - $randChance = mt_rand(1, 100);
: |. K; t0 J# a( ? - if ($randChance <= $moonDestroyChance)
" i4 H9 F" I$ P3 u+ P! f& v# _ - {
& a J3 |5 }. }& b1 N) R - $planetID = $GLOBALS['DATABASE']->getFirstCell("SELECT id FROM ".PLANETS." WHERE id_luna = ".$targetPlanet['id'].";");
9 ^+ d# v) W* _' L - $GLOBALS['DATABASE']->multi_query("
$ s3 {* B; b. @2 D& q, e8 s - UPDATE ".FLEETS." SET 4 A9 E* s; P4 F% f
- fleet_start_type = 1, - c. s0 d7 {" n# O
- fleet_start_id = ".$planetID."$ y3 ^, g% x! V& h( C) _6 E
- WHERE fleet_start_id = ".$targetPlanet['id'].";
* B0 ]: f0 Q* _ - UPDATE ".FLEETS." SET - A( w3 @& S9 M2 C
- fleet_end_type = 1, ! U/ o. g3 }" ^
- fleet_end_id = ".$planetID."," Z1 M0 ~9 C( E; G" r
- fleet_mission = IF(fleet_mission = 9, 1, fleet_mission) " v9 j& }: e5 d3 A4 s9 [3 j& [
- WHERE fleet_end_id = ".$this->_fleet['fleet_end_id']."/ r- Y& v9 i3 N/ A
- AND fleet_id != ".$this->_fleet['fleet_id'].";) y4 b) U% A) b* ~8 N
- UPDATE ".PLANETS."
% F* f9 u7 z+ D8 z% I3 ?6 ~ - SET id_luna = 05 t% n$ \/ L6 R2 m, N$ u
- WHERE id_luna = ".$targetPlanet['id'].";; M% F$ E: w# |& H8 k. S8 W
- DELETE FROM ".PLANETS." 3 |$ d4 K+ Z) N' n
- WHERE id = ".$targetPlanet['id'].";");% K: B4 |% C& @1 U7 A+ W
-
$ z$ F% A! y. Q$ T/ M - $raportInfo['moonDestroySuccess'] = 1;
7 Q, H( M8 l: R2 W1 g( A - } else {
1 Q; G/ Z3 v) z3 J% ?6 ?5 M - $raportInfo['moonDestroySuccess'] = 0;& g- e% @# t% Z m+ w
- }8 C6 N5 S% N6 p# [
-
" |. o/ O1 b/ b' u - $fleetDestroyChance = round(sqrt($targetPlanet['diameter']) / 2);. D. w1 @1 v; {& f
- ( `) e: H% j- Y; B0 T# C
- $randChance = mt_rand(1, 100);. I, e" `/ u0 c9 C
- if ($randChance <= $fleetDestroyChance)
- ]! d! Y# H4 f9 K) q% ^ - {; I3 x' f' _! X( s
- $this->KillFleet();/ o1 f# a# v+ n+ @5 `( R/ z; e% G
- $raportInfo['fleetDestroySuccess'] = true;
$ X; |5 b) p+ a7 I- F3 U - }
: q( l& S, a4 j3 `+ o, N - else
( j% `2 d5 i" a% x* z) g/ @2 n9 K - {0 Q* |& P# a, l/ K' V) q, j
- $raportInfo['fleetDestroySuccess'] = false;. }$ {* r' r, \
- }$ D: g2 Z$ F8 \) x' c! G
- % G0 d+ g [- c2 o; k
-
. J7 v% |: v0 O7 X - $raportInfo['moonDestroyChance'] = $moonDestroyChance;
/ E- d* S {% I5 S/ ]9 C - $raportInfo['fleetDestroyChance'] = $fleetDestroyChance;9 ~8 i0 T( u$ j) h2 _1 `9 r9 C
-
' y( P/ @# \) S" p9 h# I* p - $attackStatus = 'wons';
! y: u C6 D; B5 Z - $defendStatus = 'loos';
1 j8 T! ]2 H) d - $attackClass = 'raportWin';* [1 q( L4 K- t" a0 F' H7 t) i
- $defendClass = 'raportLose';2 u! P [5 G! S* E
- break;- i$ {# y& U8 w. |4 G! `4 A
- case "w":
2 G5 `$ K) [+ j4 }$ }, }% t6 Y. U - $attackStatus = 'draws';2 a- e L" @1 A/ o
- $defendStatus = 'draws';& n4 u( z8 e4 q: ~* h
- $attackClass = 'raportDraw';" b; I2 c4 Y+ [* K' H/ `
- $defendClass = 'raportDraw';
: q; a) |' E" I. y- f - $raportInfo['moonDestroySuccess'] = -1;
& A h9 C) r7 T1 H - break;
h7 X- S& b8 ~ U8 |! Q$ U* U# w! t5 U - case "r":
N/ u7 w# I" @$ B7 k! u" [ - $attackStatus = 'loos';1 ^9 K- s' r$ V, d# q8 Y' R! f% }; k
- $defendStatus = 'wons';' ^5 k0 G6 B8 l0 Z; z* ]7 \: }
- $attackClass = 'raportLose';
1 r: Q5 C% N" D - $defendClass = 'raportWin';
1 i- w2 u. ]$ @3 r% g i3 N& j @ - $raportInfo['moonDestroySuccess'] = -1;
4 M" f- e: p8 o+ j - break;
$ O+ B1 C( q: y8 J! r - }* @% ?. P0 S) k# n% n, p+ _
- 7 G6 l* P. O* M, ]3 C' i
- require_once('GenerateReport.php');
5 a" W L; L* v* t# w& e - $raportData = GenerateReport($combatResult, $raportInfo);
- ?. I. B1 ?8 ]$ o- s' w8 O -
( \2 B# P* O/ ]4 I - $raportID = md5(uniqid('', true).TIMESTAMP);" b7 g0 n& N: L6 H6 f6 U, H. p
- $sqlQuery = "INSERT INTO ".RW." SET
! A- L2 {: S( n7 t. o - rid = '".$raportID."',
6 D4 J" U; p, z# O( m! i - raport = '".serialize($raportData)."',
4 v1 v3 @$ k$ {! Y, ] - time = '".$this->_fleet['fleet_start_time']."',
7 v4 m" E3 M8 S& L - attacker = '".implode(',', array_keys($userAttack))."',' Y2 k! q4 s& X' \
- defender = '".implode(',', array_keys($userDefend))."';";9 j. c2 g ~9 W3 J# d
- $GLOBALS['DATABASE']->query($sqlQuery);' m! k- g( p+ D6 V0 h2 v
-
" b! L" A. {) J& t) U - $sqlQuery = "";
! z/ ?* D# a* } - foreach($userAttack as $userID => $userName)# x. m: l6 a! i3 y. I# a4 {6 w3 a
- {
1 i8 ?8 v! v0 _# ?8 R- \ - $LNG = $this->getLanguage(NULL, $userID);+ ~6 r% ?$ k8 c0 r7 O
-
& _0 @1 J/ \9 [- G% e) j5 ~- M - $message = sprintf($messageHTML,* s4 B* I4 q' s# A
- $raportID,
8 B0 a7 A1 D) v2 G) x - $attackClass,' N3 X4 A; z8 P; ^# k* `
- $LNG['sys_mess_attack_report'],
: X0 j1 M% k5 {+ K - sprintf(
+ ]; _) v5 }& T0 n, I( M# g - $LNG['sys_adress_planet'], o, l- Z" t4 e
- $this->_fleet['fleet_end_galaxy']," B$ p; G9 V3 `2 J/ i
- $this->_fleet['fleet_end_system'],
$ q1 l2 g- L9 o4 Z+ R. M4 g$ J - $this->_fleet['fleet_end_planet']" @. k4 `% ?8 v6 F- F
- ),
& x' W8 Z" \+ F/ N - $LNG['type_planet_short'][$this->_fleet['fleet_end_type']],
( I8 M5 W% Z9 @: q5 E - $LNG['sys_lost'],
1 c# ]- e. z: ~0 {. P5 ^9 b3 k - $attackClass,. [# H' ?+ \* e1 S E, x
- $LNG['sys_attack_attacker_pos'],
6 p [) t. G A" q# q - pretty_number($combatResult['unitLost']['attacker']),
& R9 m! p4 k3 u - $defendClass,) d) N1 j2 @1 J: l9 H
- $LNG['sys_attack_defender_pos']," h* Y+ ~; \: q2 L0 a, L
- pretty_number($combatResult['unitLost']['defender']),
% M+ v Q( C! z. M - $LNG['sys_gain'],0 G1 A( X3 X v4 h
- $LNG['tech'][901],
: E8 B8 m& b/ O7 z' m* v% X9 N9 M% M - pretty_number($stealResource[901]),
& U9 M8 r, g7 ` - $LNG['tech'][902],7 G# A8 e; Y5 \8 X l# x
- pretty_number($stealResource[902]),0 o4 s D1 d2 |* t, L( n! Z
- $LNG['tech'][903],
+ m v. h- E: Q* u - pretty_number($stealResource[903]),1 @( j, v4 |$ u0 v
- $LNG['sys_debris'],
. P9 I% D- N0 K5 m' Y- O - $LNG['tech'][901],
$ U0 R$ c6 b2 w! V7 s - pretty_number($debris[901]),
. `" ]! n5 N/ K- @1 b! m u+ }: D - $LNG['tech'][902],
0 v/ S& N2 v" @" j* a0 \ - pretty_number($debris[902])* q* E2 q- V' |) Z
- );# I; N: y! q$ ~+ t5 ]8 W! g
- 7 ?7 H1 m# W H# L0 U
- SendSimpleMessage($userID, 0, $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_attack_report'], $message);
5 j( {7 ~+ H5 g" l- d2 s4 M2 N -
0 K! ]- t1 B) b# E4 g8 E7 ` - $sqlQuery .= "INSERT INTO ".TOPKB_USERS." SET ";
; \9 g5 k! z% M* T$ ^$ s6 [, a - $sqlQuery .= "rid = '".$raportID."', ";; `7 Q8 t0 Q" b( _
- $sqlQuery .= "role = 1, ";
4 @6 l# u& n; W7 k0 Y+ H - $sqlQuery .= "username = '".$GLOBALS['DATABASE']->escape($userName)."', ";
. D4 ?6 b' Z: b, o% E - $sqlQuery .= "uid = ".$userID.";";
2 N* S O% g) a+ f: c& x6 h3 J. d - }# w: u8 t+ ~% _' s
-
8 h! \. N' y8 r$ i1 e+ W$ Z - , [, S; s$ A: e4 N0 W4 {
- foreach($userDefend as $userID => $userName)
5 I4 a# c9 v4 E: Y2 E - {
# x8 J( a, e+ _, i6 y - $LNG = $this->getLanguage(NULL, $userID);
9 z& N/ |3 l! }4 J) X* @3 c7 ^ -
5 e( c8 S! o' X E - $message = sprintf($messageHTML,' u- S8 x. Q( I" _4 S5 d. Y
- $raportID,
& s( v1 w8 B6 N, N1 d% g$ f6 j - $defendClass,
: H/ W# C: [, K' U - $LNG['sys_mess_attack_report'],7 v$ M# y( I% K+ k
- sprintf(
; y; t1 U) r7 k* \6 H - $LNG['sys_adress_planet'],
4 i/ y2 l) X& `+ l+ L: l - $this->_fleet['fleet_end_galaxy'],9 ?1 c* V% d0 ?- U
- $this->_fleet['fleet_end_system'],6 a: p# ^) E4 [3 I' t7 G
- $this->_fleet['fleet_end_planet']3 a! w! Q5 c& q1 c g
- ),1 g5 Y+ M7 n c S) f
- $LNG['type_planet_short'][$this->_fleet['fleet_end_type']],
; f" ]3 B' k: | - $LNG['sys_lost'],* n; l6 U' F2 N
- $defendClass,
' E8 ~ M, f H7 I* o; L" y - $LNG['sys_attack_attacker_pos'],8 s2 C6 U+ K6 L0 b9 g, c
- pretty_number($combatResult['unitLost']['attacker']),9 u [' V! J' O' m# n
- $attackClass,
( w% Y/ B: D$ m% D - $LNG['sys_attack_defender_pos'],, ~; x8 q# B6 X+ W7 D; W
- pretty_number($combatResult['unitLost']['defender']),# S. s' z, y* {. _9 g; M
- $LNG['sys_gain'],
5 W( u5 m4 H6 m: e1 {' q - $LNG['tech'][901],$ h. T! ?% {5 ~2 s. m
- pretty_number($stealResource[901]),/ {( d2 i' I( H' s+ m4 X
- $LNG['tech'][902],
' M7 T' r2 y" K" y C3 ~5 G - pretty_number($stealResource[902]),
6 U! `% N, l2 b+ v2 M - $LNG['tech'][903],4 b% v/ m/ J7 j7 ~$ M/ S
- pretty_number($stealResource[903]),
+ Y" \$ P+ P+ T P. S; K4 p6 I - $LNG['sys_debris'],
* b* }& U' a/ C& k - $LNG['tech'][901],
6 r& t8 X0 Z( K8 ] - pretty_number($debris[901]), 4 r0 e. [- E c% o( h
- $LNG['tech'][902],1 K" `3 f% R2 f6 B" X
- pretty_number($debris[902]): R i# f$ b6 J
- );
7 n2 w" V( S3 w3 K" r -
4 ~$ z9 @( V3 c9 [$ G6 x - SendSimpleMessage($userID, 0, $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_attack_report'], $message);
3 g* l- s& o/ H" w Z! c' c -
7 {: }* w9 y1 G. L/ R0 ~' q - $sqlQuery .= "INSERT INTO ".TOPKB_USERS." SET ";8 t6 B2 z* `0 A P5 x8 d
- $sqlQuery .= "rid = '".$raportID."', ";
& g Y% a# \. z+ U6 P - $sqlQuery .= "role = 2, ";* @) }4 {, B7 ^4 r! s# V2 M
- $sqlQuery .= "username = '".$GLOBALS['DATABASE']->escape($userName)."', ";. X8 D5 M1 C q3 Z9 L7 @
- $sqlQuery .= "uid = ".$userID.";";( U9 }7 e' e4 h7 ?: g
- }( g3 ]4 R+ l2 O) d3 [; _
-
" [8 [ t. C- I& z6 |9 W7 a - if($this->_fleet['fleet_end_type'] == 3)/ ?. Q# y+ {0 ]2 {( Z3 t# x
- {1 @: _$ R- y _3 c
- $debrisType = 'id_luna';
/ J& j2 D5 u0 E: n X8 c" a - }/ N+ B3 ?/ g3 y5 d
- else
0 n1 S; u- F$ O1 D - {* v; r- ?6 {# l$ D9 b% F7 N
- $debrisType = 'id';
9 j4 x* R* }) |( N - }7 [7 Z ]8 i/ ~% n5 h, ~8 G
-
7 [6 S" ^0 C/ c/ N& V. ?# N - $sqlQuery .= "UPDATE ".PLANETS." SET% x, g3 v1 y, x/ a2 i& b
- der_metal = ".$planetDebris[901].",
% _( H n9 @# L# x - der_crystal = ".$planetDebris[902]."
2 A1 e( J5 o1 V# X- W - WHERE o9 C/ w0 m! G$ x1 \
- ".$debrisType." = ".$this->_fleet['fleet_end_id'].";
* ~' C/ b; k7 u( I1 j+ J) C - UPDATE ".PLANETS." SET5 _( x7 I) e2 y2 p1 E `: J$ `
- metal = metal - ".$stealResource[901].",& s/ V. z! s# Z g9 z) M1 Q
- crystal = crystal - ".$stealResource[902].",
& S. Y/ T% t( ?: U3 N5 R+ g - deuterium = deuterium - ".$stealResource[903].". ^4 C2 v1 B% Y! l
- WHERE3 D8 F& y$ r7 M- E
- id = ".$this->_fleet['fleet_end_id'].";, y- ^2 h: b2 @2 Q( s
- INSERT INTO ".TOPKB." SET
. Q: j2 t; [1 [" F$ g' I8 u1 E - units = ".($combatResult['unitLost']['attacker'] + $combatResult['unitLost']['defender']).",9 i+ _1 B, }4 K6 g" F' d
- rid = '".$raportID."',
; V) G- e, H' G3 Z& g2 ^: ^ - time = ".$this->_fleet['fleet_start_time'].",: q4 } o3 G. } M; d9 j8 h8 Y+ K4 |6 p
- universe = ".$this->_fleet['fleet_universe'].",1 g% |. ~# U# M; d
- result = '".$combatResult['won'] ."';
: L7 x9 i0 g% |/ F - UPDATE ".USERS." SET
9 P+ x4 B, K, W# g- U% J - ".$attackStatus." = ".$attackStatus." + 1,
) O: l2 U$ l3 ]% u9 Q( _& P - kbmetal = kbmetal + ".$debris[901].",. Q, ~/ t" n9 W6 Q( o( I
- kbcrystal = kbcrystal + ".$debris[902].",$ B/ N% b, c, V9 |8 E! ~' |7 t$ ]7 N
- lostunits = lostunits + ".$combatResult['unitLost']['attacker'].",
- c0 m/ P* F5 T - desunits = desunits + ".$combatResult['unitLost']['defender']."
& I$ B% I1 ~& O2 s( J/ h - WHERE
; N5 E' n! z7 |4 y. W1 v! V - id IN (".implode(',', array_keys($userAttack)).");1 z: }3 C6 G: O4 ]
- UPDATE ".USERS." SET
b9 D4 Z/ E! o5 @+ S$ R - ".$defendStatus." = ".$defendStatus." + 1,7 y8 Y7 e$ `; V9 C
- kbmetal = kbmetal + ".$debris[901].",
; f* O+ A1 r, W) t6 }1 l - kbcrystal = kbcrystal + ".$debris[902].",; f# c! S! m( v$ d7 u, D6 Q
- lostunits = lostunits + ".$combatResult['unitLost']['defender'].",
, Y8 N; l3 o4 i - desunits = desunits + ".$combatResult['unitLost']['attacker'].". o' g, t/ m# u! a" o
- WHERE
- E/ u" ^2 x0 a2 X; M+ r8 F - id IN (".implode(',', array_keys($userDefend)).");";; N l2 L4 V5 ]2 C( l
- % A# D% r; p* {1 r! W! x6 f
- $GLOBALS['DATABASE']->multi_query($sqlQuery);8 P, _* c4 ~, G7 \
- : M: p8 l x; V) I. z( M4 a ^
- $this->setState(FLEET_RETURN);# l0 Y! b# V9 T. ?( [2 ~: [
- $this->SaveFleet();( Y; S4 X2 [7 x; e4 Q
- }
) X, E5 R- T$ Y" y - 8 `2 n2 }- W, p
- function EndStayEvent()' Y4 f6 y* t# B
- {
4 C) ]) H) `. l( j. e6 ] - return;* ?4 s! K5 M8 b* O: J( q6 y
- }
! i6 v4 a1 x2 F1 o' v7 J -
N V; l2 z5 I) H& \& ~) n" W* K - function ReturnEvent(); J0 H* k: }6 t
- {
( k! x' [$ [+ X" l - $LNG = $this->getLanguage(NULL, $this->_fleet['fleet_owner']);
* m8 f* L# J$ R5 O ]0 q; p9 S) C5 [ - $TargetName = $GLOBALS['DATABASE']->getFirstCell("SELECT name FROM ".PLANETS." WHERE id = ".$this->_fleet['fleet_start_id'].";");
- `8 v/ o% L. Q- M% q/ P; D - $Message = sprintf($LNG['sys_fleet_won'], $TargetName, GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['tech'][901], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['tech'][902], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['tech'][903]);6 }( S9 Z4 m6 U1 y( x5 {
+ `) H6 M" y* P; Z- SendSimpleMessage($this->_fleet['fleet_owner'], 0, $this->_fleet['fleet_end_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_fleetback'], $Message);% L5 Y9 h0 Y: h& D- \3 ~, y; v# o/ m' f! s
-
0 @, O) Y! T' C$ j- o2 P - $this->RestoreFleet();/ P/ y: k/ A' n- [
- }
4 P7 t' I* L3 W G$ c1 U - }
複製程式碼 . v1 a8 B" u! v4 d. h
' o# a8 c0 v( f& a
|
|