mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-09-04 09:27:17 +00:00
@@ -2246,9 +2246,14 @@ class Automation {
|
|||||||
//catapults look :D
|
//catapults look :D
|
||||||
$info_cat = $info_chief = $info_ram = $info_hero = ",";
|
$info_cat = $info_chief = $info_ram = $info_hero = ",";
|
||||||
//check to see if can destroy village
|
//check to see if can destroy village
|
||||||
if(count($varray)!='1' AND $to['capital']!='1'){
|
$hasArtefact = false;
|
||||||
|
if (count($varray) != 1 && $to['capital'] != 1 && !$database->villageHasArtefact($DefenderWref)) {
|
||||||
$can_destroy=1;
|
$can_destroy=1;
|
||||||
}else{
|
} else {
|
||||||
|
if ($database->villageHasArtefact($DefenderWref)) {
|
||||||
|
$hasArtefact = true;
|
||||||
|
}
|
||||||
|
|
||||||
$can_destroy=0;
|
$can_destroy=0;
|
||||||
}
|
}
|
||||||
if ($isoasis == 1) $can_destroy=0;
|
if ($isoasis == 1) $can_destroy=0;
|
||||||
@@ -2304,6 +2309,20 @@ class Automation {
|
|||||||
/**
|
/**
|
||||||
* FIRST CATAPULTS ROW
|
* FIRST CATAPULTS ROW
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// first of all, update data if we're targetting a Treasury in village with an artefact,
|
||||||
|
// since such village (and its Treasury) cannot be destroyed until that artefact is
|
||||||
|
// removed... don't worry about Treasury levels here either, that can be taken care of
|
||||||
|
// once the artefact is gone
|
||||||
|
if ($hasArtefact && $data['ctar1'] == 27) {
|
||||||
|
$data['ctar1'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($data['ctar2']) && $hasArtefact && $data['ctar2'] == 27) {
|
||||||
|
$data['ctar2'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// on to targetting
|
||||||
$basearray = $data['to'];
|
$basearray = $data['to'];
|
||||||
$bdo = $database->getResourceLevel($basearray, false);
|
$bdo = $database->getResourceLevel($basearray, false);
|
||||||
$catapultTarget = $data['ctar1'];
|
$catapultTarget = $data['ctar1'];
|
||||||
@@ -2359,7 +2378,10 @@ class Automation {
|
|||||||
if ($i==41) $i=99;
|
if ($i==41) $i=99;
|
||||||
if ($bdo['f'.$i] > 0 && $catapultTarget != 31 && $catapultTarget != 32 && $catapultTarget != 33)
|
if ($bdo['f'.$i] > 0 && $catapultTarget != 31 && $catapultTarget != 32 && $catapultTarget != 33)
|
||||||
{
|
{
|
||||||
$list[]=$i;
|
// don't allow to randomly select Treasury if there's an artefact in it
|
||||||
|
if (!$hasArtefact || ($hasArtefact && $bdo['f'.$i.'t'] != 27)) {
|
||||||
|
$list[] = $i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$catapultTarget = $list[ rand(0, count($list) - 1) ];
|
$catapultTarget = $list[ rand(0, count($list) - 1) ];
|
||||||
@@ -2421,7 +2443,10 @@ class Automation {
|
|||||||
if ($i==41) $i=99;
|
if ($i==41) $i=99;
|
||||||
if ($bdo['f'.$i] > 0)
|
if ($bdo['f'.$i] > 0)
|
||||||
{
|
{
|
||||||
$list[]=$i;
|
// don't allow to randomly select Treasury if there's an artefact in it
|
||||||
|
if (!$hasArtefact || ($hasArtefact && $bdo['f'.$i.'t'] != 27)) {
|
||||||
|
$list[] = $i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$catapultTarget2 = $list[ rand(0, count($list) - 1) ];
|
$catapultTarget2 = $list[ rand(0, count($list) - 1) ];
|
||||||
|
|||||||
@@ -7130,6 +7130,24 @@ References: User ID/Message ID, Mode
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function villageHasArtefact($vref) {
|
||||||
|
// this is a somewhat non-ideal, externally non-changeable way of caching
|
||||||
|
// but since we're only ever going to be calling this from a single point of Automation,
|
||||||
|
// this will more than suffice
|
||||||
|
static $cachedData = [];
|
||||||
|
$vref = (int) $vref;
|
||||||
|
|
||||||
|
if (isset($cachedData[$vref])) {
|
||||||
|
return $cachedData[$vref];
|
||||||
|
}
|
||||||
|
|
||||||
|
$q = "SELECT Count(*) as Total FROM " . TB_PREFIX . "artefacts WHERE vref = $vref";
|
||||||
|
$result = mysqli_fetch_array(mysqli_query($this->dblink, $q), MYSQLI_ASSOC);
|
||||||
|
$cachedData[$vref] = $result['Total'];
|
||||||
|
|
||||||
|
return $cachedData[$vref];
|
||||||
|
}
|
||||||
|
|
||||||
function claimArtefact($vref, $ovref, $id) {
|
function claimArtefact($vref, $ovref, $id) {
|
||||||
list($vref, $ovref, $id) = $this->escape_input((int) $vref, (int) $ovref, (int) $id);
|
list($vref, $ovref, $id) = $this->escape_input((int) $vref, (int) $ovref, (int) $id);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user