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
+4 -2
View File
@@ -205,6 +205,7 @@ class Alliance {
*****************************************/ *****************************************/
private function acceptInvite($get) { private function acceptInvite($get) {
global $form, $database, $session; global $form, $database, $session;
if ($session->access != BANNED) { if ($session->access != BANNED) {
foreach ($this->inviteArray as $invite) { foreach ($this->inviteArray as $invite) {
if ($session->alliance == 0) { if ($session->alliance == 0) {
@@ -214,7 +215,7 @@ class Alliance {
if (count($memberlist) < $alliance_info['max']) { if (count($memberlist) < $alliance_info['max']) {
$database->removeInvitation($get['d']); $database->removeInvitation($get['d']);
$database->updateUserField($invite['uid'], "alliance", $invite['alliance'], 1); $database->updateUserField($invite['uid'], "alliance", $invite['alliance'], 1);
$database->createAlliPermissions($invite['uid'], $invite['alliance'], '', '0', '0', '0', '0', '0', '0', '0', '0'); $database->createAlliPermissions($invite['uid'], $invite['alliance'], '', 0, 0, 0, 0, 0, 0, 0, 0);
// Log the notice // Log the notice
$database->insertAlliNotice($invite['alliance'], '<a href="spieler.php?uid=' . $session->uid . '">' . addslashes($session->username) . '</a> has joined the alliance.'); $database->insertAlliNotice($invite['alliance'], '<a href="spieler.php?uid=' . $session->uid . '">' . addslashes($session->username) . '</a> has joined the alliance.');
} else { } else {
@@ -224,8 +225,9 @@ class Alliance {
} }
} }
} }
if($accept_error == 1){ if($accept_error == 1){
$form->addError("ally_accept", "The alliance can contain only ".$max." peoples right now."); $form->addError("ally_accept", "The alliance can contain only ".$max." members at this moment.");
}else{ }else{
header("Location: build.php?id=" . $get['id']); header("Location: build.php?id=" . $get['id']);
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){