mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-06-28 00:24:23 +00:00
fix: raid list counting down leaving units again
This commit is contained in:
+126
-84
@@ -15,92 +15,134 @@
|
||||
$t11 = 0;
|
||||
$villageOwner = $database->getVillageField($wref,'owner');
|
||||
$userAccess = $database->getUserField($villageOwner,'access',0);
|
||||
if($userAccess != '0' && $userAccess != '8' && ($userAccess != '9' || (ADMIN_ALLOW_INCOMING_RAIDS && $userAccess == '9'))){
|
||||
if($tribe == 1){ $uname = "u"; } elseif($tribe == 2){ $uname = "u1"; } elseif($tribe == 3){ $uname = "u2"; }elseif($tribe == 4){ $uname = "u3"; }else {$uname = "u4"; }
|
||||
if($tribe == 1){ $uname1 = "u1"; } elseif($tribe == 2){ $uname1 = "u2"; } elseif($tribe == 3){ $uname1 = "u3"; }elseif($tribe == 4){ $uname1 = "u4"; }else {$uname1 = "u5"; }
|
||||
if($tribe == 1){ $uname2 = ""; } elseif($tribe == 2){ $uname2 = "1"; } elseif($tribe == 3){ $uname2 = "2"; }elseif($tribe == 4){ $uname2 = "3"; }else {$uname2 = "4"; }
|
||||
if($sql1[$uname.'1']>=$t1 && $sql1[$uname.'2']>=$t2 && $sql1[$uname.'3']>=$t3 && $sql1[$uname.'4']>=$t4 && $sql1[$uname.'5']>=$t5 && $sql1[$uname.'6']>=$t6 && $sql1[$uname.'7']>=$t7 && $sql1[$uname.'8']>=$t8 && $sql1[$uname.'9']>=$t9 && $sql1[$uname1.'0']>=$t10 && $sql1['hero']>=$t11){
|
||||
if($_POST['slot'.$sid]=='on'){
|
||||
$ckey = $generator->generateRandStr(6);
|
||||
$id = $database->addA2b($ckey,time(),$wref,$t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10,$t11,4);
|
||||
|
||||
$data = $database->getA2b($ckey, time());
|
||||
|
||||
$eigen = $database->getCoor($getFLData['wref']);
|
||||
$from = array('x'=>$eigen['x'], 'y'=>$eigen['y']);
|
||||
$ander = $database->getCoor($data['to_vid']);
|
||||
$to = array('x'=>$ander['x'], 'y'=>$ander['y']);
|
||||
$start = ($tribe-1)*10+1;
|
||||
$end = ($tribe*10);
|
||||
|
||||
$speeds = array();
|
||||
$scout = 1;
|
||||
|
||||
//find slowest unit.
|
||||
for($i=1;$i<=10;$i++){
|
||||
if ($data['u'.$i]){
|
||||
if($data['u'.$i] != '' && $data['u'.$i] > 0){
|
||||
if($unitarray) { reset($unitarray); }
|
||||
$unitarray = $GLOBALS["u".(($tribe-1)*10+$i)];
|
||||
$speeds[] = $unitarray['speed'];
|
||||
|
||||
if ( $userAccess != '0' && $userAccess != '8' && ( $userAccess != '9' || ( ADMIN_ALLOW_INCOMING_RAIDS && $userAccess == '9' ) ) ) {
|
||||
if ( $tribe == 1 ) {
|
||||
$uname = "u";
|
||||
$uname1 = "u1";
|
||||
$uname2 = "";
|
||||
} elseif ( $tribe == 2 ) {
|
||||
$uname = "u1";
|
||||
$uname1 = "u2";
|
||||
$uname2 = "1";
|
||||
} elseif ( $tribe == 3 ) {
|
||||
$uname = "u2";
|
||||
$uname1 = "u3";
|
||||
$uname2 = "2";
|
||||
} elseif ( $tribe == 4 ) {
|
||||
$uname = "u3";
|
||||
$uname1 = "u4";
|
||||
$uname2 = "3";
|
||||
} else {
|
||||
$uname = "u4";
|
||||
$uname1 = "u5";
|
||||
$uname2 = "4";
|
||||
}
|
||||
|
||||
if (
|
||||
$sql1[ $uname . '1' ] >= $t1 &&
|
||||
$sql1[ $uname . '2' ] >= $t2 &&
|
||||
$sql1[ $uname . '3' ] >= $t3 &&
|
||||
$sql1[ $uname . '4' ] >= $t4 &&
|
||||
$sql1[ $uname . '5' ] >= $t5 &&
|
||||
$sql1[ $uname . '6' ] >= $t6 &&
|
||||
$sql1[ $uname . '7' ] >= $t7 &&
|
||||
$sql1[ $uname . '8' ] >= $t8 &&
|
||||
$sql1[ $uname . '9' ] >= $t9 &&
|
||||
$sql1[ $uname1 . '0' ] >= $t10 &&
|
||||
$sql1['hero'] >= $t11
|
||||
) {
|
||||
|
||||
if ( $_POST[ 'slot' . $sid ] == 'on' ) {
|
||||
$ckey = $generator->generateRandStr( 6 );
|
||||
$id = $database->addA2b( $ckey, time(), $wref, $t1, $t2, $t3, $t4, $t5, $t6, $t7, $t8, $t9, $t10, $t11, 4 );
|
||||
|
||||
$data = $database->getA2b( $ckey, time() );
|
||||
|
||||
$eigen = $database->getCoor( $getFLData['wref'] );
|
||||
$from = array( 'x' => $eigen['x'], 'y' => $eigen['y'] );
|
||||
|
||||
$ander = $database->getCoor( $data['to_vid'] );
|
||||
$to = array( 'x' => $ander['x'], 'y' => $ander['y'] );
|
||||
|
||||
$start = ( $tribe - 1 ) * 10 + 1;
|
||||
$end = ( $tribe * 10 );
|
||||
|
||||
$speeds = array();
|
||||
$scout = 1;
|
||||
|
||||
//find slowest unit.
|
||||
for ( $i = 1; $i <= 10; $i ++ ) {
|
||||
if ( $data[ 'u' . $i ] ) {
|
||||
if ( $data[ 'u' . $i ] != '' && $data[ 'u' . $i ] > 0 ) {
|
||||
if ( $unitarray ) {
|
||||
reset( $unitarray );
|
||||
}
|
||||
$unitarray = $GLOBALS[ "u" . ( ( $tribe - 1 ) * 10 + $i ) ];
|
||||
$speeds[] = $unitarray['speed'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$artefact = count( $database->getOwnUniqueArtefactInfo2( $getFLData['owner'], 2, 3, 0 ) );
|
||||
$artefact1 = count( $database->getOwnUniqueArtefactInfo2( $getFLData['wref'], 2, 1, 1 ) );
|
||||
$artefact2 = count( $database->getOwnUniqueArtefactInfo2( $getFLData['owner'], 2, 2, 0 ) );
|
||||
|
||||
if ( $artefact > 0 ) {
|
||||
$fastertroops = 3;
|
||||
} else if ( $artefact1 > 0 ) {
|
||||
$fastertroops = 2;
|
||||
} else if ( $artefact2 > 0 ) {
|
||||
$fastertroops = 1.5;
|
||||
} else {
|
||||
$fastertroops = 1;
|
||||
}
|
||||
|
||||
$time = round( $generator->procDistanceTime( $from, $to, min( $speeds ), 1 ) / $fastertroops );
|
||||
$foolartefact = $database->getFoolArtefactInfo( 2, $village->wid, $session->uid );
|
||||
|
||||
if ( count( $foolartefact ) > 0 ) {
|
||||
foreach ( $foolartefact as $arte ) {
|
||||
if ( $arte['bad_effect'] == 1 ) {
|
||||
$time *= $arte['effect2'];
|
||||
} else {
|
||||
$time /= $arte['effect2'];
|
||||
$time = round( $time );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( $data['u7'] > 0 ) {
|
||||
$ctar1 = 99;
|
||||
} else {
|
||||
$ctar1 = 0;
|
||||
}
|
||||
|
||||
$ctar2 = 0;
|
||||
$abdata = $database->getABTech( $getFLData['wref'] );
|
||||
$reference = $database->addAttack( ( $getFLData['wref'] ), $data['u1'], $data['u2'], $data['u3'], $data['u4'], $data['u5'], $data['u6'], $data['u7'], $data['u8'], $data['u9'], $data['u10'], $data['u11'], $data['type'], $ctar1, $ctar2, 0, $abdata['b1'], $abdata['b2'], $abdata['b3'], $abdata['b4'], $abdata['b5'], $abdata['b6'], $abdata['b7'], $abdata['b8'] );
|
||||
$totalunits = $data['u1'] + $data['u2'] + $data['u3'] + $data['u4'] + $data['u5'] + $data['u6'] + $data['u7'] + $data['u8'] + $data['u9'] + $data['u10'] + $data['u11'];
|
||||
|
||||
$units = [];
|
||||
$amounts = [];
|
||||
$modes = [];
|
||||
|
||||
for ( $u = 1; $u <= 10; $u ++ ) {
|
||||
$units[] = $uname2 . ($u < 10 ? $u : 0);
|
||||
$amounts[] = $data[ 'u' . ($u < 10 ? $u : 0) ];
|
||||
$modes[] = 0;
|
||||
}
|
||||
|
||||
$units[] = 'hero';
|
||||
$amounts[] = $data['u11'];
|
||||
$modes[] = 0;
|
||||
|
||||
$database->modifyUnit( $getFLData['wref'], $units, $amounts, $modes );
|
||||
$database->addMovement( 3, $getFLData['wref'], $data['to_vid'], $reference, time(), ( $time + time() ) );
|
||||
|
||||
// prevent re-use of the same attack via re-POSTing the same data
|
||||
$database->remA2b( $id );
|
||||
}
|
||||
}
|
||||
|
||||
$artefact = count($database->getOwnUniqueArtefactInfo2($getFLData['owner'],2,3,0));
|
||||
$artefact1 = count($database->getOwnUniqueArtefactInfo2($getFLData['wref'],2,1,1));
|
||||
$artefact2 = count($database->getOwnUniqueArtefactInfo2($getFLData['owner'],2,2,0));
|
||||
if($artefact > 0){
|
||||
$fastertroops = 3;
|
||||
}else if($artefact1 > 0){
|
||||
$fastertroops = 2;
|
||||
}else if($artefact2 > 0){
|
||||
$fastertroops = 1.5;
|
||||
}else{
|
||||
$fastertroops = 1;
|
||||
}
|
||||
$time = round($generator->procDistanceTime($from,$to,min($speeds),1)/$fastertroops);
|
||||
$foolartefact = $database->getFoolArtefactInfo(2,$village->wid,$session->uid);
|
||||
if(count($foolartefact) > 0){
|
||||
foreach($foolartefact as $arte){
|
||||
if($arte['bad_effect'] == 1){
|
||||
$time *= $arte['effect2'];
|
||||
}else{
|
||||
$time /= $arte['effect2'];
|
||||
$time = round($time);
|
||||
}
|
||||
}
|
||||
}
|
||||
if($data['u7'] > 0){
|
||||
$ctar1 = 99;
|
||||
}else{
|
||||
$ctar1 = 0;
|
||||
}
|
||||
$ctar2 = 0;
|
||||
$abdata = $database->getABTech($getFLData['wref']);
|
||||
$reference = $database->addAttack(($getFLData['wref']),$data['u1'],$data['u2'],$data['u3'],$data['u4'],$data['u5'],$data['u6'],$data['u7'],$data['u8'],$data['u9'],$data['u10'],$data['u11'],$data['type'],$ctar1,$ctar2,0,$abdata['b1'],$abdata['b2'],$abdata['b3'],$abdata['b4'],$abdata['b5'],$abdata['b6'],$abdata['b7'],$abdata['b8']);
|
||||
$totalunits = $data['u1']+$data['u2']+$data['u3']+$data['u4']+$data['u5']+$data['u6']+$data['u7']+$data['u8']+$data['u9']+$data['u10']+$data['u11'];
|
||||
|
||||
$units = [];
|
||||
$amounts = [];
|
||||
$modes = [];
|
||||
|
||||
for ($u = 1; $u <= 10; $u++) {
|
||||
$units[] = $uname2.$u;
|
||||
$amounts[] = $data['u'.$u];
|
||||
$modes[] = 0;
|
||||
}
|
||||
|
||||
$units[] = 'hero';
|
||||
$amounts[] = $data['u11'];
|
||||
$modes[] = 0;
|
||||
|
||||
$database->modifyUnit($getFLData['wref'], $uname2, $amounts, $modes);
|
||||
$database->addMovement(3,$getFLData['wref'],$data['to_vid'],$reference,time(),($time+time()));
|
||||
|
||||
// prevent re-use of the same attack via re-POSTing the same data
|
||||
$database->remA2b($data['id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user