diff --git a/GameEngine/Automation.php b/GameEngine/Automation.php index 8417009b..a0f51d13 100644 --- a/GameEngine/Automation.php +++ b/GameEngine/Automation.php @@ -186,7 +186,7 @@ class Automation { } else { $value = 0; } - $newloyalty = min(100,$loyalty['loyalty']+$value*(time()-$loyalty['lastupdate'])*SPEED/(60*60)); + $newloyalty = min(100,$loyalty['loyalty']+$value*(time()-$loyalty['lastupdate'])/(60*60)); $q = "UPDATE ".TB_PREFIX."vdata SET loyalty = $newloyalty WHERE wref = '".$loyalty['wref']."'"; $database->query($q); } @@ -203,7 +203,7 @@ class Automation { } else { $value = 0; } - $newloyalty = min(100,$loyalty['loyalty']+$value*(time()-$loyalty['lastupdate'])*SPEED/(60*60)); + $newloyalty = min(100,$loyalty['loyalty']+$value*(time()-$loyalty['lastupdate'])/(60*60)); $q = "UPDATE ".TB_PREFIX."odata SET loyalty = $newloyalty WHERE wref = '".$loyalty['wref']."'"; $database->query($q); } @@ -522,15 +522,57 @@ class Automation { $fromcoor = $database->getCoor($data['to']); $targettribe = $database->getUserField($database->getVillageField($data['from'],"owner"),"tribe",0); $endtime = $this->procDistanceTime($tocoor,$fromcoor,$targettribe,0) + $data['endtime']; - $database->addMovement(2,$data['to'],$data['from'],$data['merchant'],time(),$endtime); - $database->setMovementProc($data['moveid']); + $database->addMovement(2,$data['to'],$data['from'],$data['merchant'],time(),$endtime,$data['send'],$data['wood'],$data['clay'],$data['iron'],$data['crop']); + $database->setMovementProc($data['moveid']); + } + $q1 = "SELECT * FROM ".TB_PREFIX."movement where proc = 0 and sort_type = 2 and endtime < $time"; + $dataarray1 = $database->query_return($q1); + foreach($dataarray1 as $data1) { + $database->setMovementProc($data1['moveid']); + if($data1['send'] > 1){ + $targettribe1 = $database->getUserField($database->getVillageField($data1['to'],"owner"),"tribe",0); + $send = $data1['send']-1; + $this->sendResource2($data1['wood'],$data1['clay'],$data1['iron'],$data1['crop'],$data1['to'],$data1['from'],$targettribe1,$send); + } } - $q = "UPDATE ".TB_PREFIX."movement set proc = 1 where endtime < $time and sort_type = 2"; - $database->query($q); if(file_exists("GameEngine/Prevention/market.txt")) { @unlink("GameEngine/Prevention/market.txt"); } } + + private function sendResource2($wtrans,$ctrans,$itrans,$crtrans,$from,$to,$tribe,$send) { + global $bid17,$bid28,$database,$generator,$logging; + $availableWood = $database->getWoodAvailable($from); + $availableClay = $database->getClayAvailable($from); + $availableIron = $database->getIronAvailable($from); + $availableCrop = $database->getCropAvailable($from); + if($availableWood >= $wtrans AND $availableClay >= $ctrans AND $availableIron >= $itrans AND $availableCrop >= $crtrans){ + $merchant2 = ($this->getTypeLevel(17,$from) > 0)? $this->getTypeLevel(17,$from) : 0; + $used2 = $database->totalMerchantUsed($from); + $merchantAvail2 = $merchant2 - $used2; + $maxcarry2 = ($tribe == 1)? 500 : (($tribe == 2)? 1000 : 750); + $maxcarry2 *= TRADER_CAPACITY; + if($this->getTypeLevel(28,$from) != 0) { + $maxcarry2 *= $bid28[$this->getTypeLevel(28,$from)]['attri'] / 100; + } + $resource = array($wtrans,$ctrans,$itrans,$crtrans); + $reqMerc = ceil((array_sum($resource)-0.1)/$maxcarry2); + if($merchantAvail2 != 0 && $reqMerc <= $merchantAvail2) { + $coor = $database->getCoor($to); + $coor2 = $database->getCoor($from); + if($database->getVillageState($to)) { + $timetaken = $generator->procDistanceTime($coor,$coor2,$tribe,0); + $res = $resource[0]+$resource[1]+$resource[2]+$resource[3]; + if($res!=0){ + $reference = $database->sendResource($resource[0],$resource[1],$resource[2],$resource[3],$reqMerc,0); + $database->modifyResource($from,$resource[0],$resource[1],$resource[2],$resource[3],0); + $database->addMovement(0,$from,$to,$reference,time(),time()+$timetaken,$send); + } + } + } + header("Location: build.php?gid=17"); + } else {} + } private function sendunitsComplete() { global $bid23,$bid34,$database,$battle,$village,$technology,$logging; @@ -1395,36 +1437,7 @@ class Automation { $pop=$this->recountPop($data['to']); if($pop=='0') { - $varray = $database->getProfileVillages($to['owner']); - if(count($varray)!='1' AND $to['capital']!='1'){ - $database->clearExpansionSlot($data['to']); - $q = "DELETE FROM ".TB_PREFIX."abdata where wref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."bdata where wid = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."enforcement where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."fdata where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."market where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."odata where wref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."research where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."tdata where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."training where vref =".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."units where vref =".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."vdata where wref = ".$data['to']; - $database->query($q); - $q = "UPDATE ".TB_PREFIX."wdata set occupied = 0 where id = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."movement where to = ".$data['to']." or from = ".$data['to']; - $database->query($q); - } + $village_destroyed = 1; } } elseif ($battlepart[4]==0) @@ -1550,33 +1563,7 @@ class Automation { { $varray = $database->getProfileVillages($to['owner']); if(count($varray)!='1' AND $to['capital']!='1'){ - $database->clearExpansionSlot($data['to']); - $q = "DELETE FROM ".TB_PREFIX."abdata where wref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."bdata where wid = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."enforcement where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."fdata where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."market where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."odata where wref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."research where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."tdata where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."training where vref =".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."units where vref =".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."vdata where wref = ".$data['to']; - $database->query($q); - $q = "UPDATE ".TB_PREFIX."wdata set occupied = 0 where id = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."movement where to = ".$data['to']." or from = ".$data['to']; - $database->query($q); + $village_destroyed = 1; } } } @@ -1701,33 +1688,7 @@ class Automation { { $varray = $database->getProfileVillages($to['owner']); if(count($varray)!='1' AND $to['capital']!='1'){ - $database->clearExpansionSlot($data['to']); - $q = "DELETE FROM ".TB_PREFIX."abdata where wref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."bdata where wid = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."enforcement where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."fdata where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."market where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."odata where wref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."research where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."tdata where vref = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."training where vref =".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."units where vref =".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."vdata where wref = ".$data['to']; - $database->query($q); - $q = "UPDATE ".TB_PREFIX."wdata set occupied = 0 where id = ".$data['to']; - $database->query($q); - $q = "DELETE FROM ".TB_PREFIX."movement where to = ".$data['to']." or from = ".$data['to']; - $database->query($q); + $village_destroyed = 1; } } } @@ -1834,9 +1795,13 @@ class Automation { } if(!isset($nochiefing)){ //$info_chief = "".$chief_pic.",You don't have enought CP to chief a village."; - if($this->getTypeLevel(37,$data['to']) > 0){ + if($this->getTypeLevel(35,$data['from']) == 0){ for ($i=0; $i<($data['t9']-$dead9); $i++){ - $rand+=rand(15,25); + if($owntribe == 1){ + $rand+=rand(20,30); + }else{ + $rand+=rand(20,25); + } } }else{ for ($i=0; $i<($data['t9']-$dead9); $i++){ @@ -2102,6 +2067,38 @@ $crannyimg = "addGeneralAttack($totalattackdead); } + if($village_destroyed == 1){ + $varray = $database->getProfileVillages($to['owner']); + if(count($varray)!='1' AND $to['capital']!='1'){ + $database->clearExpansionSlot($data['to']); + $q = "DELETE FROM ".TB_PREFIX."abdata where wref = ".$data['to']; + $database->query($q); + $q = "DELETE FROM ".TB_PREFIX."bdata where wid = ".$data['to']; + $database->query($q); + $q = "DELETE FROM ".TB_PREFIX."enforcement where vref = ".$data['to']; + $database->query($q); + $q = "DELETE FROM ".TB_PREFIX."fdata where vref = ".$data['to']; + $database->query($q); + $q = "DELETE FROM ".TB_PREFIX."market where vref = ".$data['to']; + $database->query($q); + $q = "DELETE FROM ".TB_PREFIX."odata where wref = ".$data['to']; + $database->query($q); + $q = "DELETE FROM ".TB_PREFIX."research where vref = ".$data['to']; + $database->query($q); + $q = "DELETE FROM ".TB_PREFIX."tdata where vref = ".$data['to']; + $database->query($q); + $q = "DELETE FROM ".TB_PREFIX."training where vref =".$data['to']; + $database->query($q); + $q = "DELETE FROM ".TB_PREFIX."units where vref =".$data['to']; + $database->query($q); + $q = "DELETE FROM ".TB_PREFIX."vdata where wref = ".$data['to']; + $database->query($q); + $q = "UPDATE ".TB_PREFIX."wdata set occupied = 0 where id = ".$data['to']; + $database->query($q); + $q = "DELETE FROM ".TB_PREFIX."movement where to = ".$data['to']." or from = ".$data['to']; + $database->query($q); + } + } }else{ //units attack string for battleraport $unitssend_att = ''.$data['t1'].','.$data['t2'].','.$data['t3'].','.$data['t4'].','.$data['t5'].','.$data['t6'].','.$data['t7'].','.$data['t8'].','.$data['t9'].','.$data['t10'].''; diff --git a/GameEngine/Battle.php b/GameEngine/Battle.php index 325129ed..0d36a592 100644 --- a/GameEngine/Battle.php +++ b/GameEngine/Battle.php @@ -208,7 +208,7 @@ class Battle { //1 raid 0 normal function calculateBattle($Attacker,$Defender,$def_wall,$att_tribe,$def_tribe,$residence,$attpop,$defpop,$type,$def_ab,$att_ab,$tblevel,$stonemason,$walllevel,$AttackerID,$DefenderID,$AttackerWref,$DefenderWref) { - global $database,$bid34,$bid35; + global $bid34,$bid35,$database; // Definieer de array met de eenheden $calvary = array(4,5,6,15,16,23,24,25,26,35,36,45,46); $catapult = array(8,18,28,38,48); diff --git a/GameEngine/Database/db_MYSQL.php b/GameEngine/Database/db_MYSQL.php index 7c16ce5c..6fad217e 100644 --- a/GameEngine/Database/db_MYSQL.php +++ b/GameEngine/Database/db_MYSQL.php @@ -2013,8 +2013,8 @@ } } - function addMovement($type, $from, $to, $ref, $time, $endtime) { - $q = "INSERT INTO " . TB_PREFIX . "movement values (0,$type,$from,$to,$ref,$time,$endtime,0)"; + function addMovement($type, $from, $to, $ref, $time, $endtime, $send = 1, $wood = 0, $clay = 0, $iron = 0, $crop = 0) { + $q = "INSERT INTO " . TB_PREFIX . "movement values (0,$type,$from,$to,$ref,$time,$endtime,0,$send,$wood,$clay,$iron,$crop)"; return mysql_query($q, $this->connection); } @@ -2797,12 +2797,12 @@ return mysql_fetch_array($result); } - function getMovementById($id){ - $q="SELECT * FROM ".TB_PREFIX."movement where moveid = ".$id; - $result=mysql_query($q); - $array=$this->mysql_fetch_all($result); - return $array; - } + function getMovementById($id){ + $q = "SELECT * FROM ".TB_PREFIX."movement WHERE moveid = ".$id.""; + $result = mysql_query($q); + $array = $this->mysql_fetch_all($result); + return $array; + } function getLinks($id){ $q = 'SELECT * FROM `' . TB_PREFIX . 'links` WHERE `userid` = ' . $id . ' ORDER BY `pos` ASC'; diff --git a/GameEngine/Market.php b/GameEngine/Market.php index 826ee7ab..3ae5e3f8 100644 --- a/GameEngine/Market.php +++ b/GameEngine/Market.php @@ -108,7 +108,7 @@ class Market { if($res!=0){ $reference = $database->sendResource($resource[0],$resource[1],$resource[2],$resource[3],$reqMerc,0); $database->modifyResource($village->wid,$resource[0],$resource[1],$resource[2],$resource[3],0); - $database->addMovement(0,$village->wid,$id,$reference,time(),time()+$timetaken); + $database->addMovement(0,$village->wid,$id,$reference,time(),time()+$timetaken,$post['send3']); $logging->addMarketLog($village->wid,1,array($resource[0],$resource[1],$resource[2],$resource[3],$id)); } } diff --git a/GameEngine/Units.php b/GameEngine/Units.php index 0e968952..ffde8f12 100644 --- a/GameEngine/Units.php +++ b/GameEngine/Units.php @@ -70,10 +70,29 @@ class Units { global $database,$village,$session,$generator,$logging,$form; // Busqueda por nombre de pueblo // Confirmamos y buscamos las coordenadas por nombre de pueblo - if($post['disabledr'] != ""){ + $oid = $database->getVilWref($post['x'],$post['y']); + if($database->isVillageOases($oid) != 0){ + $too = $database->getOasisField($oid,"conqured"); + if($too['conqured'] == 0){$disabledr ="disabled=disabled"; $disabled ="disabled=disabled";}else{ + $disabledr =""; + if($session->sit == 0){ + $disabled =""; + }else{ + $disabled ="disabled=disabled"; + } + } + }else{ + $disabledr =""; + if($session->sit == 0){ + $disabled =""; + }else{ + $disabled ="disabled=disabled"; + } + } + if($disabledr != "" && $post['c'] == 2){ $form->addError("error","You can't reinforce this village/oasis"); } - if($post['disabled'] != ""){ + if($disabled != "" && $post['c'] == 3){ $form->addError("error","You can't attack this village/oasis with normal attack"); } if( !$post['t1'] && !$post['t2'] && !$post['t3'] && !$post['t4'] && !$post['t5'] && @@ -290,7 +309,11 @@ class Units { if (isset($post['spy'])){$post['spy'] = $post['spy'];}else{ $post['spy'] = 0;} $abdata = $database->getABTech($village->wid); $reference = $database->addAttack(($village->wid),$data['u1'],$data['u2'],$data['u3'],$data['u4'],$data['u5'],$data['u6'],$data['u7'],$data['u8'],$data['u9'],$data['u10'],$data['u11'],$data['type'],$post['ctar1'],$post['ctar2'],$post['spy'],$abdata['b1'],$abdata['b2'],$abdata['b3'],$abdata['b4'],$abdata['b5'],$abdata['b6'],$abdata['b7'],$abdata['b8']); - $database->addMovement(3,$village->wid,$data['to_vid'],$reference,time(),($time+time())); + $checkexist = $database->checkVilExist($data['to_vid']); + $checkoexist = $database->checkOasisExist($data['to_vid']); + if($checkexist or $checkoexist){ + $database->addMovement(3,$village->wid,$data['to_vid'],$reference,time(),($time+time())); + } if($form->returnErrors() > 0) { $_SESSION['errorarray'] = $form->getErrors(); @@ -416,7 +439,7 @@ class Units { public function Settlers($post) { global $form, $database, $village, $session; - + if($session->access != BANNED){ $mode = CP; $total = count($database->getProfileVillages($session->uid)); $need_cps = ${'cp'.$mode}[$total]; @@ -437,7 +460,10 @@ class Units { } } else { header("Location: build.php?id=39"); - } + } + }else{ + header("Location: banned.php"); + } } public function Hero($uid) { diff --git a/Templates/Build/17.tpl b/Templates/Build/17.tpl index c2ad6583..cb4cc884 100644 --- a/Templates/Build/17.tpl +++ b/Templates/Build/17.tpl @@ -33,6 +33,7 @@ if(isset($_POST['ft'])=='check' && $allres!=0 && $allres <= $maxcarry && ($_POST + @@ -190,8 +191,12 @@ $coor['y'] = ""; Y: -
Lumber
-

merchantAvail()) { echo "DISABLED"; }?>/>

+ +
+goldclub == 1){?> +

go

+ +

merchantAvail()) { echo "DISABLED"; }?>/>

access != BANNED){ -if($session->gold >= 100 && $session->sit == 0) { +if($session->gold >= 100 && $session->sit == 0 && $session->goldclub == 0) { mysql_query("UPDATE ".TB_PREFIX."users set goldclub = 1, gold = gold - 100 where `username`='".$session->username."'"); } header("Location: plus.php?id=3"); diff --git a/Templates/Ranking/ally_top10.tpl b/Templates/Ranking/ally_top10.tpl index cca4ee91..e020ad52 100644 --- a/Templates/Ranking/ally_top10.tpl +++ b/Templates/Ranking/ally_top10.tpl @@ -192,7 +192,7 @@ = 0){ + if($row['RR'] >= 0) { if($row['id']==$session->alliance) { echo ""; } else { echo ""; } echo "".$i++.". "; diff --git a/Templates/a2b/newdorf.tpl b/Templates/a2b/newdorf.tpl index 745f74e1..cd6d61a2 100644 --- a/Templates/a2b/newdorf.tpl +++ b/Templates/a2b/newdorf.tpl @@ -8,12 +8,9 @@ $to = array('x'=>$newvillage['x'], 'y'=>$newvillage['y']); $time = $generator->procDistanceTime($from,$to,300,0); echo '
';
-//print_r($founder);
 echo '
'; ?> -

Found new village

-
diff --git a/install/data/sql.sql b/install/data/sql.sql index 19d1a23f..6ac7addc 100644 --- a/install/data/sql.sql +++ b/install/data/sql.sql @@ -957,6 +957,11 @@ CREATE TABLE IF NOT EXISTS `%PREFIX%movement` ( `starttime` int(11) unsigned NOT NULL DEFAULT '0', `endtime` int(11) unsigned NOT NULL DEFAULT '0', `proc` tinyint(1) unsigned NOT NULL DEFAULT '0', + `send` tinyint(1) unsigned NOT NULL, + `wood` int(11) unsigned NOT NULL, + `clay` int(11) unsigned NOT NULL, + `iron` int(11) unsigned NOT NULL, + `crop` int(11) unsigned NOT NULL, PRIMARY KEY (`moveid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;