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