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:
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 "'; -//print_r($founder); echo ''; ?> -