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