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