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