Merge pull request #440 from Shadowss/patch-105

fix finish all
This commit is contained in:
yi12345
2013-11-01 00:50:40 -07:00
+71 -68
View File
@@ -669,73 +669,76 @@ class Building {
return false; return false;
} }
public function finishAll() { public function finishAll() {
global $database,$session,$logging,$village,$bid18,$bid10,$bid11,$technology,$_SESSION; global $database,$session,$logging,$village,$bid18,$bid10,$bid11,$technology,$_SESSION;
if($session->access!=BANNED){ if($session->access!=BANNED){
$finish = 0; $finish = 0;
foreach($this->buildArray as $jobs) {
if($jobs['wid']==$village->wid){ foreach($this->buildArray as $jobs) {
$wwvillage = $database->getResourceLevel($jobs['wid']); if($jobs['wid']==$village->wid){
if($wwvillage['f99t']!=40){ $finish=2;
$level = $jobs['level']; $wwvillage = $database->getResourceLevel($jobs['wid']);
if($jobs['type'] != 25 AND $jobs['type'] != 26 AND $jobs['type'] != 40) { if($wwvillage['f99t']!=40){
$finish = 1; $level = $jobs['level'];
$resource = $this->resourceRequired($jobs['field'],$jobs['type']); if($jobs['type'] != 25 AND $jobs['type'] != 26 AND $jobs['type'] != 40) {
if($jobs['master'] == 0){ $finish = 1;
$q = "UPDATE ".TB_PREFIX."fdata set f".$jobs['field']." = ".$jobs['level'].", f".$jobs['field']."t = ".$jobs['type']." where vref = ".$jobs['wid']; $resource = $this->resourceRequired($jobs['field'],$jobs['type']);
}else{ if($jobs['master'] == 0){
$villwood = $database->getVillageField($jobs['wid'],'wood'); $q = "UPDATE ".TB_PREFIX."fdata set f".$jobs['field']." = ".$jobs['level'].", f".$jobs['field']."t = ".$jobs['type']." where vref = ".$jobs['wid'];
$villclay = $database->getVillageField($jobs['wid'],'clay'); }else{
$villiron = $database->getVillageField($jobs['wid'],'iron'); $villwood = $database->getVillageField($jobs['wid'],'wood');
$villcrop = $database->getVillageField($jobs['wid'],'crop'); $villclay = $database->getVillageField($jobs['wid'],'clay');
$type = $jobs['type']; $villiron = $database->getVillageField($jobs['wid'],'iron');
$buildarray = $GLOBALS["bid".$type]; $villcrop = $database->getVillageField($jobs['wid'],'crop');
$buildwood = $buildarray[$level]['wood']; $type = $jobs['type'];
$buildclay = $buildarray[$level]['clay']; $buildarray = $GLOBALS["bid".$type];
$buildiron = $buildarray[$level]['iron']; $buildwood = $buildarray[$level]['wood'];
$buildcrop = $buildarray[$level]['crop']; $buildclay = $buildarray[$level]['clay'];
if($buildwood < $villwood && $buildclay < $villclay && $buildiron < $villiron && $buildcrop < $villcrop){ $buildiron = $buildarray[$level]['iron'];
$newgold = $session->gold-1; $buildcrop = $buildarray[$level]['crop'];
$database->updateUserField($session->uid, "gold", $newgold, 1); if($buildwood < $villwood && $buildclay < $villclay && $buildiron < $villiron && $buildcrop < $villcrop){
$enought_res = 1; $newgold = $session->gold-1;
$q = "UPDATE ".TB_PREFIX."fdata set f".$jobs['field']." = ".$jobs['level'].", f".$jobs['field']."t = ".$jobs['type']." where vref = ".$jobs['wid']; $database->updateUserField($session->uid, "gold", $newgold, 1);
} $enought_res = 1;
} $q = "UPDATE ".TB_PREFIX."fdata set f".$jobs['field']." = ".$jobs['level'].", f".$jobs['field']."t = ".$jobs['type']." where vref = ".$jobs['wid'];
if($database->query($q) && ($enought_res == 1 or $jobs['master'] == 0)) { }
$database->modifyPop($jobs['wid'],$resource['pop'],0); }
$database->addCP($jobs['wid'],$resource['cp']); if($database->query($q) && ($enought_res == 1 or $jobs['master'] == 0)) {
$q = "DELETE FROM ".TB_PREFIX."bdata where id = ".$jobs['id']; $database->modifyPop($jobs['wid'],$resource['pop'],0);
$database->query($q); $database->addCP($jobs['wid'],$resource['cp']);
if($jobs['type'] == 18) { $q = "DELETE FROM ".TB_PREFIX."bdata where id = ".$jobs['id'];
$owner = $database->getVillageField($jobs['wid'],"owner"); $database->query($q);
$max = $bid18[$level]['attri']; if($jobs['type'] == 18) {
$q = "UPDATE ".TB_PREFIX."alidata set max = $max where leader = $owner"; $owner = $database->getVillageField($jobs['wid'],"owner");
$database->query($q); $max = $bid18[$level]['attri'];
} $q = "UPDATE ".TB_PREFIX."alidata set max = $max where leader = $owner";
} $database->query($q);
if(($jobs['field'] >= 19 && ($session->tribe == 1 || ALLOW_ALL_TRIBE)) || (!ALLOW_ALL_TRIBE && $session->tribe != 1)) { $innertimestamp = $jobs['timestamp']; } }
} }
} if(($jobs['field'] >= 19 && ($session->tribe == 1 || ALLOW_ALL_TRIBE)) || (!ALLOW_ALL_TRIBE && $session->tribe != 1)) { $innertimestamp = $jobs['timestamp']; }
} }
} }
if($finish == 1){ }
$database->finishDemolition($village->wid); }
$technology->finishTech(); if($finish == 1 or $finish==0){
$logging->goldFinLog($village->wid); $database->finishDemolition($village->wid);
$database->modifyGold($session->uid,2,0); $technology->finishTech();
$stillbuildingarray = $database->getJobs($village->wid); $logging->goldFinLog($village->wid);
if(count($stillbuildingarray) == 1) { $database->modifyGold($session->uid,2,0);
if($stillbuildingarray[0]['loopcon'] == 1) { $stillbuildingarray = $database->getJobs($village->wid);
$q = "UPDATE ".TB_PREFIX."bdata SET loopcon=0,timestamp=".(time()+$stillbuildingarray[0]['timestamp']-$innertimestamp)." WHERE id=".$stillbuildingarray[0]['id']; if(count($stillbuildingarray) == 1) {
$database->query($q); if($stillbuildingarray[0]['loopcon'] == 1) {
} //$q = "UPDATE ".TB_PREFIX."bdata SET loopcon=0,timestamp=".(time()+$stillbuildingarray[0]['timestamp']-$innertimestamp)." WHERE id=".$stillbuildingarray[0]['id'];
} $q = "UPDATE ".TB_PREFIX."bdata SET loopcon=0 WHERE id=".$stillbuildingarray[0]['id'];
} $database->query($q);
header("Location: ".$session->referrer); }
}else{ }
header("Location: banned.php"); }
} header("Location: ".$session->referrer);
} }else{
header("Location: banned.php");
}
}
public function resourceRequired($id,$tid,$plus=1) { public function resourceRequired($id,$tid,$plus=1) {
$name = "bid".$tid; $name = "bid".$tid;
@@ -792,4 +795,4 @@ class Building {
} }
}; };
?> ?>