fix: maximum alliance members update on building demolition

Now saves correct data (was saving maximum for 1 level above the
after-demolition level).
This commit is contained in:
Martin Ambrus
2017-11-04 10:31:45 +01:00
parent a8383563fa
commit 962cbcc19b
2 changed files with 33 additions and 31 deletions
+28 -26
View File
@@ -205,32 +205,34 @@ class Alliance {
*****************************************/ *****************************************/
private function acceptInvite($get) { private function acceptInvite($get) {
global $form, $database, $session; global $form, $database, $session;
if($session->access != BANNED){
foreach($this->inviteArray as $invite) { if ($session->access != BANNED) {
if($session->alliance == 0){ foreach ($this->inviteArray as $invite) {
if($invite['id'] == $get['d'] && $invite['uid'] == $session->uid) { if ($session->alliance == 0) {
$memberlist = $database->getAllMember($invite['alliance']); if ($invite['id'] == $get['d'] && $invite['uid'] == $session->uid) {
$alliance_info = $database->getAlliance($invite['alliance']); $memberlist = $database->getAllMember($invite['alliance']);
if(count($memberlist) < $alliance_info['max']){ $alliance_info = $database->getAlliance($invite['alliance']);
$database->removeInvitation($get['d']); if (count($memberlist) < $alliance_info['max']) {
$database->updateUserField($invite['uid'], "alliance", $invite['alliance'], 1); $database->removeInvitation($get['d']);
$database->createAlliPermissions($invite['uid'], $invite['alliance'], '', '0', '0', '0', '0', '0', '0', '0', '0'); $database->updateUserField($invite['uid'], "alliance", $invite['alliance'], 1);
// Log the notice $database->createAlliPermissions($invite['uid'], $invite['alliance'], '', 0, 0, 0, 0, 0, 0, 0, 0);
$database->insertAlliNotice($invite['alliance'], '<a href="spieler.php?uid=' . $session->uid . '">' . addslashes($session->username) . '</a> has joined the alliance.'); // Log the notice
}else{ $database->insertAlliNotice($invite['alliance'], '<a href="spieler.php?uid=' . $session->uid . '">' . addslashes($session->username) . '</a> has joined the alliance.');
$accept_error = 1; } else {
$max = $alliance_info['max']; $accept_error = 1;
} $max = $alliance_info['max'];
} }
} }
} }
if($accept_error == 1){ }
$form->addError("ally_accept", "The alliance can contain only ".$max." peoples right now.");
}else{ if($accept_error == 1){
header("Location: build.php?id=" . $get['id']); $form->addError("ally_accept", "The alliance can contain only ".$max." members at this moment.");
exit; }else{
} header("Location: build.php?id=" . $get['id']);
}else{ exit;
}
} else{
header("Location: banned.php"); header("Location: banned.php");
exit; exit;
} }
+5 -5
View File
@@ -4238,9 +4238,6 @@ class Automation {
$q = "UPDATE ".TB_PREFIX."vdata SET `maxcrop`=800 WHERE `maxcrop`<=800 AND wref=".(int) $vil['vref']; $q = "UPDATE ".TB_PREFIX."vdata SET `maxcrop`=800 WHERE `maxcrop`<=800 AND wref=".(int) $vil['vref'];
$database->query($q); $database->query($q);
} }
if ($type==18){
Automation::updateMax($database->getVillageField($vil['vref'],'owner'));
}
if ($level==1) { $clear=",f".$vil['buildnumber']."t=0"; } else { $clear=""; } if ($level==1) { $clear=",f".$vil['buildnumber']."t=0"; } else { $clear=""; }
if ($village->natar==1 && $type==40) $clear=""; //fix by ronix if ($village->natar==1 && $type==40) $clear=""; //fix by ronix
$q = "UPDATE ".TB_PREFIX."fdata SET f".$vil['buildnumber']."=".($level-1).$clear." WHERE vref=".(int) $vil['vref']; $q = "UPDATE ".TB_PREFIX."fdata SET f".$vil['buildnumber']."=".($level-1).$clear." WHERE vref=".(int) $vil['vref'];
@@ -4249,6 +4246,9 @@ class Automation {
$database->modifyPop($vil['vref'],$pop[0],1); $database->modifyPop($vil['vref'],$pop[0],1);
$this->procClimbers($database->getVillageField($vil['vref'],'owner')); $this->procClimbers($database->getVillageField($vil['vref'],'owner'));
$database->delDemolition($vil['vref'], true); $database->delDemolition($vil['vref'], true);
if ($type==18){
Automation::updateMax($database->getVillageField($vil['vref'],'owner'));
}
} }
} }
if(file_exists("GameEngine/Prevention/demolition.txt")) { if(file_exists("GameEngine/Prevention/demolition.txt")) {
@@ -4880,8 +4880,8 @@ class Automation {
public static function updateMax($leader) { public static function updateMax($leader) {
global $bid18, $database; global $bid18, $database;
$q = mysqli_query($GLOBALS['link'],"SELECT * FROM " . TB_PREFIX . "alidata where leader = ". (int) $leader); $q = mysqli_fetch_array(mysqli_query($GLOBALS['link'],"SELECT Count(*) as Total FROM " . TB_PREFIX . "alidata where leader = ". (int) $leader), MYSQLI_ASSOC);
if(mysqli_num_rows($q) > 0){ if ($q['Total'] > 0) {
$villages = $database->getVillagesID2($leader); $villages = $database->getVillagesID2($leader);
$max = 0; $max = 0;
foreach($villages as $village){ foreach($villages as $village){