mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-07-15 00:56:09 +00:00
@@ -617,7 +617,9 @@ class Automation {
|
|||||||
foreach($res as $indi) {
|
foreach($res as $indi) {
|
||||||
$vilIDs[$indi['wid']] = true;
|
$vilIDs[$indi['wid']] = true;
|
||||||
}
|
}
|
||||||
$database->getProfileVillages(array_keys($vilIDs), 5);
|
$vilIDs = array_keys($vilIDs);
|
||||||
|
$database->getProfileVillages($vilIDs, 5);
|
||||||
|
$database->getEnforceVillage($vilIDs, 0);
|
||||||
|
|
||||||
// complete buildings
|
// complete buildings
|
||||||
foreach($res as $indi) {
|
foreach($res as $indi) {
|
||||||
@@ -1221,7 +1223,8 @@ class Automation {
|
|||||||
}
|
}
|
||||||
$vilIDs = array_keys($vilIDs);
|
$vilIDs = array_keys($vilIDs);
|
||||||
$database->getProfileVillages($vilIDs, 5);
|
$database->getProfileVillages($vilIDs, 5);
|
||||||
$database->getUnit($vilIDs);
|
$database->$
|
||||||
|
$database->getEnforceVillage($vilIDs, 0);
|
||||||
|
|
||||||
// calculate battles
|
// calculate battles
|
||||||
foreach($dataarray as $data) {
|
foreach($dataarray as $data) {
|
||||||
@@ -1306,7 +1309,7 @@ class Automation {
|
|||||||
$enforDefender = array();
|
$enforDefender = array();
|
||||||
$rom = $ger = $gal = $nat = $natar = 0;
|
$rom = $ger = $gal = $nat = $natar = 0;
|
||||||
$Defender = $database->getUnit($data['to'], false);
|
$Defender = $database->getUnit($data['to'], false);
|
||||||
$enforcementarray = $database->getEnforceVillage($data['to'], 0, false);
|
$enforcementarray = $database->getEnforceVillage($data['to'], 0);
|
||||||
if(count($enforcementarray) > 0) {
|
if(count($enforcementarray) > 0) {
|
||||||
|
|
||||||
foreach($enforcementarray as $enforce) {
|
foreach($enforcementarray as $enforce) {
|
||||||
@@ -1452,7 +1455,7 @@ class Automation {
|
|||||||
$enforDefender = array();
|
$enforDefender = array();
|
||||||
$rom = $ger = $gal = $nat = $natar = 0;
|
$rom = $ger = $gal = $nat = $natar = 0;
|
||||||
$Defender = $database->getUnit($data['to'], false);
|
$Defender = $database->getUnit($data['to'], false);
|
||||||
$enforcementarray = $database->getEnforceVillage($data['to'],0, false);
|
$enforcementarray = $database->getEnforceVillage($data['to'],0);
|
||||||
|
|
||||||
if(count($enforcementarray) > 0) {
|
if(count($enforcementarray) > 0) {
|
||||||
foreach($enforcementarray as $enforce) {
|
foreach($enforcementarray as $enforce) {
|
||||||
@@ -1643,7 +1646,7 @@ class Automation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// our reinforcements count could have changed at this point, thus the re-select
|
// our reinforcements count could have changed at this point, thus the re-select
|
||||||
$enforcementarray2 = $database->getEnforceVillage($data['to'],0, false);
|
$enforcementarray2 = $database->getEnforceVillage($data['to'],0);
|
||||||
if(count($enforcementarray2) > 0) {
|
if(count($enforcementarray2) > 0) {
|
||||||
foreach($enforcementarray2 as $enforce2) {
|
foreach($enforcementarray2 as $enforce2) {
|
||||||
$Defender['hero'] += $enforce2['hero'];
|
$Defender['hero'] += $enforce2['hero'];
|
||||||
@@ -1770,7 +1773,7 @@ class Automation {
|
|||||||
|
|
||||||
//kill other defence in village
|
//kill other defence in village
|
||||||
// ... once again, units could have changed, so we need to reselect
|
// ... once again, units could have changed, so we need to reselect
|
||||||
$enforcementarray3 = $database->getEnforceVillage($data['to'],0, false);
|
$enforcementarray3 = $database->getEnforceVillage($data['to'],0);
|
||||||
foreach ($enforcementarray3 as $enforce) {
|
foreach ($enforcementarray3 as $enforce) {
|
||||||
$life=''; $notlife=''; $wrong='0';
|
$life=''; $notlife=''; $wrong='0';
|
||||||
if($enforce['from'] != 0){
|
if($enforce['from'] != 0){
|
||||||
@@ -3897,7 +3900,7 @@ class Automation {
|
|||||||
global $database;
|
global $database;
|
||||||
|
|
||||||
$ownunit = $database->getUnit($base, $use_cache);
|
$ownunit = $database->getUnit($base, $use_cache);
|
||||||
$enforcementarray = $database->getEnforceVillage($base, 0, $use_cache);
|
$enforcementarray = $database->getEnforceVillage($base, 0);
|
||||||
|
|
||||||
if(count($enforcementarray) > 0) {
|
if(count($enforcementarray) > 0) {
|
||||||
foreach($enforcementarray as $enforce) {
|
foreach($enforcementarray as $enforce) {
|
||||||
@@ -4268,6 +4271,7 @@ class Automation {
|
|||||||
$database->getProfileVillages($vilIDs, 5);
|
$database->getProfileVillages($vilIDs, 5);
|
||||||
$database->cacheResourceLevels($vilIDs);
|
$database->cacheResourceLevels($vilIDs);
|
||||||
$database->getUnit($vilIDs);
|
$database->getUnit($vilIDs);
|
||||||
|
$database->getEnforceVillage($vilIDs, 0);
|
||||||
|
|
||||||
// calculate training updates
|
// calculate training updates
|
||||||
foreach($trainlist as $train){
|
foreach($trainlist as $train){
|
||||||
@@ -4847,6 +4851,14 @@ class Automation {
|
|||||||
|
|
||||||
$starvarray = array();
|
$starvarray = array();
|
||||||
$starvarray = $database->getStarvation();
|
$starvarray = $database->getStarvation();
|
||||||
|
|
||||||
|
$vilIDs = [];
|
||||||
|
foreach ($starvarray as $starv){
|
||||||
|
$vilIDs[$starv['wref']] = true;
|
||||||
|
}
|
||||||
|
$vilIDs = array_keys($vilIDs);
|
||||||
|
$database->getEnforceVillage($vilIDs, 0);
|
||||||
|
|
||||||
foreach ($starvarray as $starv){
|
foreach ($starvarray as $starv){
|
||||||
$unitarrays = $this->getAllUnits($starv['wref']);
|
$unitarrays = $this->getAllUnits($starv['wref']);
|
||||||
$howweeating=$this->getUpkeep($unitarrays, 0,$starv['wref']);
|
$howweeating=$this->getUpkeep($unitarrays, 0,$starv['wref']);
|
||||||
|
|||||||
+65
-9
@@ -6018,6 +6018,10 @@ References: User ID/Message ID, Mode
|
|||||||
|
|
||||||
$q = "UPDATE " . TB_PREFIX . "enforcement SET ".implode(', ', $pairs)." WHERE id = $id";
|
$q = "UPDATE " . TB_PREFIX . "enforcement SET ".implode(', ', $pairs)." WHERE id = $id";
|
||||||
mysqli_query($this->dblink,$q);
|
mysqli_query($this->dblink,$q);
|
||||||
|
|
||||||
|
// clear enforce cache
|
||||||
|
self::$villageReinforcementsCache = [];
|
||||||
|
self::$reinforcementsCache = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
function getEnforceArray($id, $mode, $use_cache = true) {
|
function getEnforceArray($id, $mode, $use_cache = true) {
|
||||||
@@ -6041,27 +6045,79 @@ References: User ID/Message ID, Mode
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getEnforceVillage($id, $mode, $use_cache = true) {
|
function getEnforceVillage($id, $mode, $use_cache = true) {
|
||||||
list($id, $mode) = $this->escape_input((int) $id, $mode);
|
$array_passed = is_array($id);
|
||||||
|
$mode = (int) $mode;
|
||||||
|
|
||||||
|
if (!$array_passed) {
|
||||||
|
$id = [(int) $id];
|
||||||
|
} else {
|
||||||
|
foreach ($id as $index => $idValue) {
|
||||||
|
$id[$index] = (int) $idValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!count($id)) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
// first of all, check if we should be using cache and whether the field
|
// first of all, check if we should be using cache and whether the field
|
||||||
// required is already cached
|
// required is already cached
|
||||||
if ($use_cache && ($cachedValue = self::returnCachedContent(self::$villageReinforcementsCache, $id.$mode)) && !is_null($cachedValue)) {
|
if ($use_cache && !$array_passed && ($cachedValue = self::returnCachedContent(self::$villageReinforcementsCache, $id[0].$mode)) && !is_null($cachedValue)) {
|
||||||
return $cachedValue;
|
return $cachedValue;
|
||||||
|
} else if ($use_cache && $array_passed) {
|
||||||
|
// check what we can return from cache
|
||||||
|
$newIDs = [];
|
||||||
|
foreach ($id as $key) {
|
||||||
|
if (!isset(self::$villageReinforcementsCache[$key.$mode])) {
|
||||||
|
$newIDs [] = $key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// everything's cached, just return the cache
|
||||||
|
if (!count($newIDs)) {
|
||||||
|
return self::$villageReinforcementsCache;
|
||||||
|
} else {
|
||||||
|
// update remaining IDs to select and cache
|
||||||
|
$id = $newIDs;
|
||||||
|
}
|
||||||
|
} else if ($use_cache && !$array_passed && is_array(self::$villageReinforcementsCache[$id[0].$mode]) && !count(self::$villageReinforcementsCache[$id[0].$mode])) {
|
||||||
|
// special case when we have empty arrays cached for this cache only
|
||||||
|
return self::$villageReinforcementsCache[$id[0].$mode];
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!$mode) {
|
if(!$mode) {
|
||||||
$q = "SELECT * from " . TB_PREFIX . "enforcement where vref = $id";
|
$q = "SELECT * from " . TB_PREFIX . "enforcement where vref IN(".implode(', ', $id).")";
|
||||||
} else if ($mode == 1) {
|
} else if ($mode == 1) {
|
||||||
$q = "SELECT * from " . TB_PREFIX . "enforcement where `from` = $id";
|
$q = "SELECT * from " . TB_PREFIX . "enforcement where `from` IN(".implode(', ', $id).")";
|
||||||
} else if ($mode == 2) {
|
} else if ($mode == 2) {
|
||||||
$q = "SELECT e.*, v.owner as ownerv, v1.owner as owner1 FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref LEFT JOIN ".TB_PREFIX."vdata as v1 ON e.vref=v1.wref where e.vref=$id AND v.owner<>v1.owner";
|
$q = "SELECT e.*, v.owner as ownerv, v1.owner as owner1 FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref LEFT JOIN ".TB_PREFIX."vdata as v1 ON e.vref=v1.wref where e.vref IN(".implode(', ', $id).") AND v.owner<>v1.owner";
|
||||||
} else if ($mode == 3) {
|
} else if ($mode == 3) {
|
||||||
$q = "SELECT e.*, v.owner as ownerv, v1.owner as owner1 FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref LEFT JOIN ".TB_PREFIX."vdata as v1 ON e.vref=v1.wref where e.vref=$id AND v.owner=v1.owner";
|
$q = "SELECT e.*, v.owner as ownerv, v1.owner as owner1 FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref LEFT JOIN ".TB_PREFIX."vdata as v1 ON e.vref=v1.wref where e.vref IN(".implode(', ', $id).") AND v.owner=v1.owner";
|
||||||
}
|
}
|
||||||
$result = mysqli_query($this->dblink,$q);
|
$result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q));
|
||||||
|
|
||||||
self::$villageReinforcementsCache[$id.$mode] = $this->mysqli_fetch_all($result);
|
// return a single value
|
||||||
return self::$villageReinforcementsCache[$id.$mode];
|
if (!$array_passed) {
|
||||||
|
self::$villageReinforcementsCache[$id[0].$mode] = $result;
|
||||||
|
} else {
|
||||||
|
foreach ( $result as $record ) {
|
||||||
|
if ( ! isset( self::$villageReinforcementsCache[ $record['vref'] . $mode ] ) ) {
|
||||||
|
self::$villageReinforcementsCache[ $record['vref'] . $mode ] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
self::$villageReinforcementsCache[ $record['vref'] . $mode ][] = $record;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check for any missing IDs and fill them in with blanks,
|
||||||
|
// since no reinforcements were found for these villages
|
||||||
|
foreach ($id as $key) {
|
||||||
|
if (!isset(self::$villageReinforcementsCache[$key.$mode])) {
|
||||||
|
self::$villageReinforcementsCache[$key.$mode] = [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ($array_passed ? self::$villageReinforcementsCache : self::$villageReinforcementsCache[$id[0].$mode]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function clearReinforcementsCache() {
|
public static function clearReinforcementsCache() {
|
||||||
|
|||||||
Reference in New Issue
Block a user