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