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