Fixed two population bugs

Automation.php:
Fixed the attacker population and defender population before a battle, now the account population will be considered instead of the single village population.
Fixed the attacker population and defender population while chiefing a village, now the account population will be considered instead of the single village population.

Database:
Added a function to get the total population of the account.
This commit is contained in:
Pietro
2018-04-05 21:09:16 +02:00
committed by GitHub
parent c3e2bae50b
commit 9869abe5ba
2 changed files with 33 additions and 5 deletions
+17 -5
View File
@@ -1434,8 +1434,8 @@ class Automation {
$att_tribe = $owntribe;
$def_tribe = $targettribe;
$residence = "0";
$attpop = $fromF['pop'];
$defpop = $toF['pop'];
$attpop = 0;
$defpop = 0;
$def_ab=array();
//get level of palace or residence
$residence = $database->getFieldLevelInVillage($data['to'], '25, 26', false);
@@ -1574,7 +1574,7 @@ class Automation {
$att_tribe = $owntribe;
$def_tribe = $targettribe;
$residence = 0;
$attpop = $fromF['pop'];
$attpop = 0;
$defpop = 100;
//type of attack
@@ -1607,6 +1607,18 @@ class Automation {
} else {
$varray1 = $database->getProfileVillages($from['owner'], 0, false);
}
// total population of the defender
if($isoasis == 0){
foreach($varray as $defenderVillage){
$defpop += $defenderVillage['pop'];
}
}
// total population of the attacker
foreach($varray1 as $attackerVillage){
$attpop += $attackerVillage['pop'];
}
//fix by ronix
for ($i=1;$i<=50;$i++) {
@@ -2603,8 +2615,8 @@ class Automation {
$newLevels_fieldNames = [];
$newLevels_fieldValues = [];
$pop1 = $database->getVillageField($data['from'],"pop");
$pop2 = $database->getVillageField($data['to'],"pop");
$pop1 = $database->getTotalPopulation($AttackerID);
$pop2 = $database->getTotalPopulation($DefenderID);
if($pop1 > $pop2){
$buildlevel = $database->getResourceLevel($data['to']);
+16
View File
@@ -1870,6 +1870,22 @@ class MYSQLi_DB implements IDbConnection {
}
}
/**
* Used to get the population of the whole account
*
* @param int $uid the user id
* @return int Returns the total population of the account
*/
function getTotalPopulation($uid){
list($uid) = $this->escape_input((int) $uid);
$q = "SELECT Sum(pop) FROM " . TB_PREFIX . "vdata WHERE owner = ".$uid."";
$result = mysqli_query($this->dblink, $q);
$row = mysqli_fetch_row($result);
return $row[0];
}
function getVillageByWorldID($vid, $use_cache = true) {
$array_passed = is_array($vid);