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