From bf091c2a0ce917cbc1fffcb5eeaca11365fb01ea Mon Sep 17 00:00:00 2001 From: iopietro Date: Tue, 17 Apr 2018 18:52:48 +0200 Subject: [PATCH] Fixed a bug while reinforcing +If you've already reinforced the target village, you'll troops will now be merged with the present troops --- GameEngine/Automation.php | 72 ++++++++++++++++----------------------- GameEngine/Database.php | 8 ++--- 2 files changed, 33 insertions(+), 47 deletions(-) diff --git a/GameEngine/Automation.php b/GameEngine/Automation.php index ca2f9083..80e3623f 100755 --- a/GameEngine/Automation.php +++ b/GameEngine/Automation.php @@ -3442,40 +3442,37 @@ class Automation { if($data['t11'] != 0 || $troopsPresent) { $temphero=$data['t11']; - if ($HeroTransfer) $data['t11']=0; + if ($HeroTransfer) $data['t11'] = 0; //check if there is defence from town in to town - $check=$database->getEnforce($data['to'],$data['from']); - if (!isset($check['id'])){ - //no: - $database->addEnforce($data); - } else{ + $check = $database->getEnforce($data['to'], $data['from']); + if (!isset($check['id'])) $database->addEnforce($data); + else + { //yes - $start = ($owntribe-1)*10+1; - $end = ($owntribe*10); + $start = ($owntribe - 1) * 10 + 1; + $end = ($owntribe * 10); + //add unit. - $j='1'; - for($i=$start;$i<=$end;$i++){ - if (!isset($t_units)) { - $t_units = ''; - } - $t_units .= "u".$i."=u".$i." + ".$data['t'.$j].(($j > 9) ? '' : ', ');$j++; + $t_units = ''; + for($i = $start, $j = 1; $i <= $end; $i++, $j++) + { + $t_units .= "u".$i." = u".$i." + ".$data['t'.$j].(($j > 9) ? '' : ', '); } + $q = "UPDATE ".TB_PREFIX."enforcement set $t_units where id =".(int) $check['id']; $database->query($q); - $database->modifyEnforce($check['id'],'hero',$data['t11'],1); + $database->modifyEnforce($check['id'], 'hero', $data['t11'], 1); } - $data['t11']=$temphero; + $data['t11'] = $temphero; } //send rapport $unitssend_att = ''.$data['t1'].','.$data['t2'].','.$data['t3'].','.$data['t4'].','.$data['t5'].','.$data['t6'].','.$data['t7'].','.$data['t8'].','.$data['t9'].','.$data['t10'].','.$data['t11'].''; $data_fail = ''.$from['wref'].','.$from['owner'].','.$owntribe.','.$unitssend_att.''; - if($isoasis == 0){ - $to_name=$to['name']; - }else{ - $to_name="Oasis ".$database->getVillageField($to['conqured'],"name"); - } + if($isoasis == 0) $to_name = $to['name']; + else $to_name = "Oasis ".$database->getVillageField($to['conqured'],"name"); + $database->addNotice($from['owner'],$from['wref'],(isset($ownally) ? $ownally : 0),8,''.addslashes($from['name']).' reinforcement '.addslashes($to_name).'',$data_fail,(isset($AttackArrivalTime) ? $AttackArrivalTime : time())); if($from['owner'] != $to['owner']) { $database->addNotice($to['owner'],$to['wref'],(isset($targetally) ? $targetally : 0),8,''.addslashes($from['name']).' reinforcement '.addslashes($to_name).'',$data_fail,(isset($AttackArrivalTime) ? $AttackArrivalTime : time())); @@ -3499,7 +3496,7 @@ class Automation { //check empty reinforcement in rally point $e_units=''; - for ($i=1;$i<=50;$i++) { + for ($i=1; $i <= 50; $i++) { $e_units.='u'.$i.'=0 AND '; } $e_units.='hero=0'; @@ -4145,34 +4142,23 @@ class Automation { $wood *= SPEED; return round($wood); } + private function bountyGetOWoodProd() { - global $session; - $wood = 0; - $wood += 40; - $wood *= SPEED; - return round($wood); + return round(SPEED * 40); } + private function bountyGetOClayProd() { - global $session; - $clay = 0; - $clay += 40; - $clay *= SPEED; - return round($clay); - }private function bountyGetOIronProd() { - global $session; - $iron = 0; - $iron += 40; - $iron *= SPEED; - return round($iron); + return round(SPEED * 40); + } + + private function bountyGetOIronProd() { + return round(SPEED * 40); } private function bountyGetOCropProd() { - global $session; - $crop = 0; - $clay += 40; - $crop *= SPEED; - return round($crop); + return round(SPEED * 40); } + private function bountyGetClayProd() { global $bid2,$bid6,$session; $clay = $brick = 0; diff --git a/GameEngine/Database.php b/GameEngine/Database.php index 101b632e..013ca07b 100755 --- a/GameEngine/Database.php +++ b/GameEngine/Database.php @@ -6170,7 +6170,7 @@ References: User ID/Message ID, Mode // first of all, check if we should be using cache and whether the field // required is already cached if ($use_cache && !$array_passed && isset(self::$villageFromReinforcementsCache[$vid[0].$from[0]]) && is_array(self::$villageFromReinforcementsCache[$vid[0].$from[0]]) && !count(self::$villageFromReinforcementsCache[$vid[0].$from[0]])) { - return $cachedValue; + return self::$villageFromReinforcementsCache[$vid[0].$from[0]]; } else if ($use_cache && $array_passed) { // check what we can return from cache $newVIDs = []; @@ -6193,11 +6193,11 @@ References: User ID/Message ID, Mode } else if ($use_cache && !$array_passed && ($cachedValue = self::returnCachedContent(self::$villageFromReinforcementsCache, $vid[0].$from[0])) && !is_null($cachedValue)) { return $cachedValue; } - + // build SELECT pairs $pairs = []; foreach ($vid as $index => $vidValue) { - $pairs[] = '(`from` = '.(int) $vidValue.' AND vref = '.(int) $from[$index].')'; + $pairs[] = '(`from` = '.(int) $from[$index].' AND vref = '.(int) $vidValue.')'; } $q = "SELECT * FROM " . TB_PREFIX . "enforcement WHERE ".implode(' OR ', $pairs); @@ -6209,7 +6209,7 @@ References: User ID/Message ID, Mode } else { if ($result && count($result)) { foreach ( $result as $record ) { - self::$villageFromReinforcementsCache[ $record['from'] . $record['vref'] ] = $record; + self::$villageFromReinforcementsCache[$record['vref'].$record['from']] = $record; } }