mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-06-28 00:24:23 +00:00
@@ -62,6 +62,10 @@ else
|
||||
// Looks OK, let's go for it
|
||||
$created = 0;
|
||||
$skipped = 0;
|
||||
$addUnitsWrefs = [];
|
||||
$addTechWrefs = [];
|
||||
$addABTechWrefs = [];
|
||||
|
||||
for ($i= 1; $i <= $amount; $i++)
|
||||
{
|
||||
$userName = $baseName . $i;
|
||||
@@ -150,9 +154,9 @@ WHERE id = ".(int) $uid) or die(mysqli_error($database->dblink));
|
||||
mysqli_query($GLOBALS["link"], $q);
|
||||
$pop = $automation->recountPop($wid);
|
||||
$cp = $automation->recountPop($wid);
|
||||
$database->addUnits($wid);
|
||||
$database->addTech($wid);
|
||||
$database->addABTech($wid);
|
||||
$addUnitsWrefs[] = $wid;
|
||||
$addTechWrefs[] = $wid;
|
||||
$addABTechWrefs[] = $wid;
|
||||
$database->updateUserField($uid,"access",USER,1);
|
||||
|
||||
//insert units randomly generate the number of troops
|
||||
@@ -168,6 +172,11 @@ WHERE id = ".(int) $uid) or die(mysqli_error($database->dblink));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$database->addUnits($addUnitsWrefs);
|
||||
$database->addTech($addTechWrefs);
|
||||
$database->addABTech($addABTechWrefs);
|
||||
|
||||
header("Location: ../../../Admin/admin.php?p=addUsers&g=OK&bn=$baseName&am=$created&sk=$skipped&bp=$beginnersProtection&tr=$postTribe");
|
||||
}
|
||||
?>
|
||||
@@ -17,40 +17,44 @@ mysqli_select_db($GLOBALS["link"], SQL_DB);
|
||||
|
||||
$id = (int) $_POST['id'];
|
||||
$amt = (int) $_POST['vill_amount'];
|
||||
$addUnitsWrefs = [];
|
||||
|
||||
for($i=1;$i<=$amt;$i++) {
|
||||
for($i=1;$i<=$amt;$i++) {
|
||||
|
||||
$kid = $_POST['kid'];
|
||||
$wid = $database->generateBase($kid);
|
||||
$database->setFieldTaken($wid);
|
||||
$time = time();
|
||||
$q = "insert into ".TB_PREFIX."vdata (`wref`,`owner`,`name`,`capital`,`pop`,`cp`,`celebration`,`type`,`wood`,`clay`,`iron`,`maxstore`,`crop`,`maxcrop`,`lastupdate`,`loyalty`,`exp1`,`exp2`,`exp3`,`created`) values ('$wid','3','".PLANVILLAGE."',0,0,0,0,0,80000.00,80000.00,80000.00,80000,80000.00,80000,1314974534,100,0,0,0,1314968914)";
|
||||
mysqli_query($GLOBALS["link"], $q) or die(mysqli_error($database->dblink));
|
||||
$q = "insert into ".TB_PREFIX."fdata (`vref`,`f1`,`f1t`,`f2`,`f2t`,`f3`,`f3t`,`f4`,`f4t`,`f5`,`f5t`,`f6`,`f6t`,`f7`,`f7t`,`f8`,`f8t`,`f9`,`f9t`,`f10`,`f10t`,`f11`,`f11t`,`f12`,`f12t`,`f13`,`f13t`,`f14`,`f14t`,`f15`,`f15t`,`f16`,`f16t`,`f17`,`f17t`,`f18`,`f18t`,`f19`,`f19t`,`f20`,`f20t`,`f21`,`f21t`,`f22`,`f22t`,`f23`,`f23t`,`f24`,`f24t`,`f25`,`f25t`,`f26`,`f26t`,`f27`,`f27t`,`f28`,`f28t`,`f29`,`f29t`,`f30`,`f30t`,`f31`,`f31t`,`f32`,`f32t`,`f33`,`f33t`,`f34`,`f34t`,`f35`,`f35t`,`f36`,`f36t`,`f37`,`f37t`,`f38`,`f38t`,`f39`,`f39t`,`f40`,`f40t`,`f99`,`f99t`,`wwname`) values ($wid,0,1,0,4,0,1,0,3,0,2,0,2,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,1,0,4,0,2,0,1,0,2,20,17,20,11,10,27,20,10,10,22,10,25,0,0,20,15,10,19,0,0,0,0,0,0,10,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,16,0,0,0,0,'World Wonder')";
|
||||
mysqli_query($GLOBALS["link"], $q);
|
||||
$pop = $automation->recountPop($wid);
|
||||
$cp = $automation->recountPop($wid);
|
||||
$database->addUnits($wid);
|
||||
$database->addTech($wid);
|
||||
$database->addABTech($wid);
|
||||
$speed = NATARS_UNITS;
|
||||
$q = "UPDATE ".TB_PREFIX."units SET u41 = u41 + " . (1500 * $speed) . ", u42 = u42 + " . (1500 * $speed) . ", u43 = u43 + " . (1500 * $speed) . ", u44 = u44 + " . (1500 * $speed) . ", u45 = u45 + " . (1500 * $speed) . ", u46 = u46 + " . (1500 * $speed) . ", u47 = u47 + " . (1500 * $speed) . ", u48 = u48 + " . (1500 * $speed) . " , u49 = u49 + " . (1500 * $speed) . ", u50 = u50 + " . (1500 * $speed) . " WHERE vref = '".$wid."'";
|
||||
mysqli_query($GLOBALS["link"], $q);
|
||||
$desc = PLAN_DESC;
|
||||
$database->addArtefact($wid, 3, 11, 1, PLAN, $desc, '', 'type1.gif');
|
||||
}
|
||||
$myFile = "../../../Templates/text.tpl";
|
||||
$fh = fopen($myFile, 'w') or die("<br/><br/><br/>Can't open file: templates/text.tpl");
|
||||
$text = file_get_contents("../../../Templates/text_format.tpl");
|
||||
$text = preg_replace("'%TEKST%'",PLAN_INFO ,$text);
|
||||
fwrite($fh, $text);
|
||||
$kid = $_POST['kid'];
|
||||
$wid = $database->generateBase($kid);
|
||||
$database->setFieldTaken($wid);
|
||||
$time = time();
|
||||
$q = "insert into ".TB_PREFIX."vdata (`wref`,`owner`,`name`,`capital`,`pop`,`cp`,`celebration`,`type`,`wood`,`clay`,`iron`,`maxstore`,`crop`,`maxcrop`,`lastupdate`,`loyalty`,`exp1`,`exp2`,`exp3`,`created`) values ('$wid','3','".PLANVILLAGE."',0,0,0,0,0,80000.00,80000.00,80000.00,80000,80000.00,80000,1314974534,100,0,0,0,1314968914)";
|
||||
mysqli_query($GLOBALS["link"], $q) or die(mysqli_error($database->dblink));
|
||||
$q = "insert into ".TB_PREFIX."fdata (`vref`,`f1`,`f1t`,`f2`,`f2t`,`f3`,`f3t`,`f4`,`f4t`,`f5`,`f5t`,`f6`,`f6t`,`f7`,`f7t`,`f8`,`f8t`,`f9`,`f9t`,`f10`,`f10t`,`f11`,`f11t`,`f12`,`f12t`,`f13`,`f13t`,`f14`,`f14t`,`f15`,`f15t`,`f16`,`f16t`,`f17`,`f17t`,`f18`,`f18t`,`f19`,`f19t`,`f20`,`f20t`,`f21`,`f21t`,`f22`,`f22t`,`f23`,`f23t`,`f24`,`f24t`,`f25`,`f25t`,`f26`,`f26t`,`f27`,`f27t`,`f28`,`f28t`,`f29`,`f29t`,`f30`,`f30t`,`f31`,`f31t`,`f32`,`f32t`,`f33`,`f33t`,`f34`,`f34t`,`f35`,`f35t`,`f36`,`f36t`,`f37`,`f37t`,`f38`,`f38t`,`f39`,`f39t`,`f40`,`f40t`,`f99`,`f99t`,`wwname`) values ($wid,0,1,0,4,0,1,0,3,0,2,0,2,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,1,0,4,0,2,0,1,0,2,20,17,20,11,10,27,20,10,10,22,10,25,0,0,20,15,10,19,0,0,0,0,0,0,10,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,16,0,0,0,0,'World Wonder')";
|
||||
mysqli_query($GLOBALS["link"], $q);
|
||||
$pop = $automation->recountPop($wid);
|
||||
$cp = $automation->recountPop($wid);
|
||||
$addUnitsWrefs[] = $wid;
|
||||
$database->addTech($wid);
|
||||
$database->addABTech($wid);
|
||||
$speed = NATARS_UNITS;
|
||||
$q = "UPDATE ".TB_PREFIX."units SET u41 = u41 + " . (1500 * $speed) . ", u42 = u42 + " . (1500 * $speed) . ", u43 = u43 + " . (1500 * $speed) . ", u44 = u44 + " . (1500 * $speed) . ", u45 = u45 + " . (1500 * $speed) . ", u46 = u46 + " . (1500 * $speed) . ", u47 = u47 + " . (1500 * $speed) . ", u48 = u48 + " . (1500 * $speed) . " , u49 = u49 + " . (1500 * $speed) . ", u50 = u50 + " . (1500 * $speed) . " WHERE vref = '".$wid."'";
|
||||
mysqli_query($GLOBALS["link"], $q);
|
||||
$desc = PLAN_DESC;
|
||||
$database->addArtefact($wid, 3, 11, 1, PLAN, $desc, '', 'type1.gif');
|
||||
}
|
||||
|
||||
$query="SELECT * FROM ".TB_PREFIX."users ORDER BY id DESC";
|
||||
$result=mysqli_query($GLOBALS["link"], $query) or die (mysqli_error($database->dblink));
|
||||
for ($i=0; $row=mysqli_fetch_row($result); $i++) {
|
||||
$updateattquery = mysqli_query($GLOBALS["link"], "UPDATE ".TB_PREFIX."users SET ok = '1' WHERE id = '".$row[0]."'")
|
||||
or die(mysqli_error($database->dblink));
|
||||
}
|
||||
$database->addUnits($addUnitsWrefs);
|
||||
|
||||
$myFile = "../../../Templates/text.tpl";
|
||||
$fh = fopen($myFile, 'w') or die("<br/><br/><br/>Can't open file: templates/text.tpl");
|
||||
$text = file_get_contents("../../../Templates/text_format.tpl");
|
||||
$text = preg_replace("'%TEKST%'",PLAN_INFO ,$text);
|
||||
fwrite($fh, $text);
|
||||
|
||||
$query="SELECT * FROM ".TB_PREFIX."users ORDER BY id DESC";
|
||||
$result=mysqli_query($GLOBALS["link"], $query) or die (mysqli_error($database->dblink));
|
||||
for ($i=0; $row=mysqli_fetch_row($result); $i++) {
|
||||
$updateattquery = mysqli_query($GLOBALS["link"], "UPDATE ".TB_PREFIX."users SET ok = '1' WHERE id = '".$row[0]."'")
|
||||
or die(mysqli_error($database->dblink));
|
||||
}
|
||||
|
||||
mysqli_query($GLOBALS["link"], "Insert into ".TB_PREFIX."admin_log values (0,$id,'Added <b>$amt</b> WW Buildingplan Villages',".time().")");
|
||||
|
||||
|
||||
@@ -17,6 +17,9 @@ mysqli_select_db($GLOBALS["link"], SQL_DB);
|
||||
|
||||
$id = (int) $_POST['id'];
|
||||
$amt = (int) $_POST['vill_amount'];
|
||||
$addUnitsWrefs = [];
|
||||
$addTechWrefs = [];
|
||||
$addABTechWrefs = [];
|
||||
|
||||
for($i=1;$i<=$amt;$i++) {
|
||||
|
||||
@@ -31,9 +34,9 @@ for($i=1;$i<=$amt;$i++) {
|
||||
mysqli_query($GLOBALS["link"], $q);
|
||||
$pop = $automation->recountPop($wid);
|
||||
$cp = $automation->recountPop($wid);
|
||||
$database->addUnits($wid);
|
||||
$database->addTech($wid);
|
||||
$database->addABTech($wid);
|
||||
$addUnitsWrefs[] = $wid;
|
||||
$addTechWrefs[] = $wid;
|
||||
$addABTechWrefs[] = $wid;
|
||||
$speed = NATARS_UNITS;
|
||||
|
||||
//new with random amount of troops
|
||||
@@ -41,9 +44,11 @@ for($i=1;$i<=$amt;$i++) {
|
||||
mysqli_query($GLOBALS["link"], $q);
|
||||
}
|
||||
|
||||
$database->addUnits($addUnitsWrefs);
|
||||
$database->addTech($addTechWrefs);
|
||||
$database->addABTech($addABTechWrefs);
|
||||
|
||||
mysqli_query($GLOBALS["link"], "Insert into ".TB_PREFIX."admin_log values (0,$id,'Added <b>$amt</b> WW Villages',".time().")");
|
||||
|
||||
mysqli_query($GLOBALS["link"], "Insert into ".TB_PREFIX."admin_log values (0,$id,'Added <b>$amt</b> WW Villages',".time().")");
|
||||
|
||||
header("Location: ../../../Admin/admin.php?p=natarend&g");
|
||||
?>
|
||||
|
||||
+318
-119
@@ -2363,7 +2363,7 @@ class Automation {
|
||||
}
|
||||
|
||||
// clear resource levels cache, since we might have destroyed buildings/fields by now
|
||||
$database->clearResourseLevelsCache();
|
||||
call_user_func(get_class($database).'::clearResourseLevelsCache');
|
||||
}
|
||||
}
|
||||
} elseif (($data['t7']-$traped7)>0) {
|
||||
@@ -3147,12 +3147,30 @@ class Automation {
|
||||
$database->query($q);
|
||||
|
||||
$getmovement = $database->getMovement(3,$wref,1);
|
||||
|
||||
$moveIDs = [];
|
||||
$time = microtime(true);
|
||||
$types = [];
|
||||
$froms = [];
|
||||
$tos = [];
|
||||
$refs = [];
|
||||
$times = [];
|
||||
$endtimes = [];
|
||||
|
||||
foreach($getmovement as $movedata) {
|
||||
$time = microtime(true);
|
||||
$time2 = $time - $movedata['starttime'];
|
||||
$database->setMovementProc($movedata['moveid']);
|
||||
$database->addMovement(4,$movedata['to'],$movedata['from'],$movedata['ref'],$time,$time+$time2);
|
||||
$moveIDs[] = $movedata['moveid'];
|
||||
$types[] = 4;
|
||||
$froms[] = $movedata['to'];
|
||||
$tos[] = $movedata['from'];
|
||||
$refs[] = $movedata['ref'];
|
||||
$times[] = $time;
|
||||
$endtimes[] = $time+$time2;
|
||||
}
|
||||
|
||||
$database->setMovementProc(implode(', ', $moveIDs));
|
||||
$database->addMovement($types, $froms, $tos, $refs, $times, $endtimes);
|
||||
|
||||
$q = "DELETE FROM ".TB_PREFIX."enforcement WHERE `from` = $wref";
|
||||
$database->query($q);
|
||||
|
||||
@@ -3346,6 +3364,9 @@ class Automation {
|
||||
$dataarray = $database->query_return($q);
|
||||
|
||||
if ($dataarray && count($dataarray)) {
|
||||
|
||||
$movementProcIDs = [];
|
||||
|
||||
foreach($dataarray as $data) {
|
||||
$isoasis = $database->isVillageOases($data['to']);
|
||||
if($isoasis == 0){
|
||||
@@ -3370,7 +3391,7 @@ class Automation {
|
||||
$database->modifyEnforce($reinf['id'],31,1,1);
|
||||
$data_fail = '0,0,4,1,0,0,0,0,0,0,0,0,0,0';
|
||||
$database->addNotice($to['owner'],$to['wref'],(isset($targetally) ? $targetally : 0),8,'village of the elders reinforcement '.addslashes($to['name']).'',$data_fail,$AttackArrivalTime);
|
||||
$database->setMovementProc($data['moveid']);
|
||||
$movementProcIDs[] = $data['moveid'];
|
||||
if ($session->uid==$DefenderID) $reload=true;
|
||||
}else{
|
||||
//set base things
|
||||
@@ -3453,8 +3474,9 @@ class Automation {
|
||||
$database->addNotice($to['owner'],$to['wref'],(isset($targetally) ? $targetally : 0),8,''.addslashes($from['name']).' reinforcement '.addslashes($to_name).'',$data_fail,(isset($AttackArrivalTime) ? $AttackArrivalTime : time()));
|
||||
}
|
||||
//update status
|
||||
$database->setMovementProc($data['moveid']);
|
||||
$movementProcIDs[] = $data['moveid'];
|
||||
}
|
||||
|
||||
$crop = $database->getCropProdstarv($data['to']);
|
||||
$unitarrays = $this->getAllUnits($data['to']);
|
||||
$village = $database->getVillage($data['to']);
|
||||
@@ -3477,6 +3499,8 @@ class Automation {
|
||||
$q="DELETE FROM ".TB_PREFIX."enforcement WHERE ".$e_units." AND (vref=".(int) $data['to']." OR `from`=".(int) $data['to'].")";
|
||||
$database->query($q);
|
||||
}
|
||||
|
||||
$database->setMovementProc(implode(', ', $movementProcIDs));
|
||||
}
|
||||
|
||||
if(file_exists("GameEngine/Prevention/sendreinfunits.txt")) {
|
||||
@@ -3517,6 +3541,8 @@ class Automation {
|
||||
$wavesData = [];
|
||||
|
||||
if ($dataarray && count($dataarray)) {
|
||||
|
||||
$movementProcIDs = [];
|
||||
foreach($dataarray as $data) {
|
||||
if (!isset($wavesData[$data['from'].$data['to'].$data['starttime'].$data['endtime']])) {
|
||||
$tribe = $database->getUserField($database->getVillageField($data['to'],"owner"),"tribe",0);
|
||||
@@ -3528,7 +3554,7 @@ class Automation {
|
||||
array($data['t1'],$data['t2'],$data['t3'],$data['t4'],$data['t5'],$data['t6'],$data['t7'],$data['t8'],$data['t9'],$data['t10'],$data['t11']),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1)
|
||||
);
|
||||
$database->setMovementProc($data['moveid']);
|
||||
$movementProcIDs[] = $data['moveid'];
|
||||
$crop = $database->getCropProdstarv($data['to']);
|
||||
$unitarrays = $this->getAllUnits($data['to']);
|
||||
$village = $database->getVillage($data['to']);
|
||||
@@ -3546,15 +3572,20 @@ class Automation {
|
||||
$wavesData[$data['from'].$data['to'].$data['starttime'].$data['endtime']] = true;
|
||||
} else {
|
||||
// duplicate record, just mark it as processed
|
||||
$database->setMovementProc($data['moveid']);
|
||||
$movementProcIDs[] = $data['moveid'];
|
||||
}
|
||||
}
|
||||
|
||||
$database->setMovementProc(implode(', ', $movementProcIDs));
|
||||
}
|
||||
|
||||
// Recieve the bounty on type 6.
|
||||
|
||||
$q = "SELECT s.wood, s.clay, s.iron, s.crop, `to`, `from`, endtime, merchant, send, moveid FROM ".TB_PREFIX."movement m, ".TB_PREFIX."send s WHERE m.ref = s.id AND m.proc = 0 AND sort_type = 6 AND endtime < $time";
|
||||
|
||||
$dataarray = $database->query_return($q);
|
||||
$movementProcIDs = [];
|
||||
|
||||
foreach($dataarray as $data) {
|
||||
|
||||
if($data['wood'] >= $data['clay'] && $data['wood'] >= $data['iron'] && $data['wood'] >= $data['crop']){ $sort_type = "10"; }
|
||||
@@ -3566,7 +3597,7 @@ class Automation {
|
||||
$from = $database->getMInfo($data['from']);
|
||||
$database->modifyResource($data['to'],$data['wood'],$data['clay'],$data['iron'],$data['crop'],1);
|
||||
//$database->updateVillage($data['to']);
|
||||
$database->setMovementProc($data['moveid']);
|
||||
$movementProcIDs[] = $data['moveid'];
|
||||
$crop = $database->getCropProdstarv($data['to']);
|
||||
$unitarrays = $this->getAllUnits($data['to']);
|
||||
$village = $database->getVillage($data['to']);
|
||||
@@ -3581,21 +3612,24 @@ class Automation {
|
||||
}
|
||||
}
|
||||
|
||||
$database->setMovementProc(implode(', ', $movementProcIDs));
|
||||
$this->pruneResource();
|
||||
|
||||
// Settlers
|
||||
|
||||
$q = "SELECT `to`, moveid FROM ".TB_PREFIX."movement where ref = 0 and proc = '0' and sort_type = '4' and endtime < $time";
|
||||
|
||||
$dataarray = $database->query_return($q);
|
||||
$movementProcIDs = [];
|
||||
|
||||
if ($dataarray && count($dataarray)) {
|
||||
foreach($dataarray as $data) {
|
||||
|
||||
$tribe = $database->getUserField($database->getVillageField($data['to'],"owner"),"tribe",0);
|
||||
|
||||
$database->modifyUnit($data['to'],array($tribe."0"),array(3),array(1));
|
||||
$database->setMovementProc($data['moveid']);
|
||||
|
||||
$movementProcIDs[] = $data['moveid'];
|
||||
}
|
||||
|
||||
$database->setMovementProc(implode(', ', $movementProcIDs));
|
||||
}
|
||||
|
||||
if(file_exists("GameEngine/Prevention/returnunits.txt")) {
|
||||
@@ -3613,7 +3647,21 @@ class Automation {
|
||||
fclose($ourFileHandle);
|
||||
$time = microtime(true);
|
||||
$q = "SELECT `to`, `from`, moveid, starttime, ref FROM ".TB_PREFIX."movement where proc = 0 and sort_type = 5 and endtime < $time";
|
||||
|
||||
$dataarray = $database->query_return($q);
|
||||
$movementProcIDs = [];
|
||||
$fieldIDs = [];
|
||||
$addUnitsWrefs = [];
|
||||
$addTechWrefs = [];
|
||||
$addABTechWrefs = [];
|
||||
$time = microtime(true);
|
||||
$types = [];
|
||||
$froms = [];
|
||||
$tos = [];
|
||||
$refs = [];
|
||||
$times = [];
|
||||
$endtimes = [];
|
||||
|
||||
foreach($dataarray as $data) {
|
||||
$ownerID = $database->getUserField($database->getVillageField($data['from'],"owner"),"id",0);
|
||||
if ($session->uid==$ownerID) $reload=true;
|
||||
@@ -3621,13 +3669,13 @@ class Automation {
|
||||
$user = addslashes($database->getUserField($to['owner'],'username',0));
|
||||
$taken = $database->getVillageState($data['to']);
|
||||
if($taken != 1){
|
||||
$database->setFieldTaken($data['to']);
|
||||
$fieldIDs[] = $data['to'];
|
||||
$database->addVillage($data['to'],$to['owner'],$user,'0');
|
||||
$database->addResourceFields($data['to'],$database->getVillageType($data['to']));
|
||||
$database->addUnits($data['to']);
|
||||
$database->addTech($data['to']);
|
||||
$database->addABTech($data['to']);
|
||||
$database->setMovementProc($data['moveid']);
|
||||
$addUnitsWrefs[] = $data['to'];
|
||||
$addTechWrefs[] = $data['to'];
|
||||
$addABTechWrefs[] = $data['to'];
|
||||
$movementProcIDs[] = $data['moveid'];
|
||||
|
||||
$exp1 = $database->getVillageField($data['from'],'exp1');
|
||||
$exp2 = $database->getVillageField($data['from'],'exp2');
|
||||
@@ -3649,10 +3697,23 @@ class Automation {
|
||||
}
|
||||
else{
|
||||
// here must come movement from returning settlers
|
||||
$database->addMovement(4,$data['to'],$data['from'],$data['ref'],$time,$time+($time-$data['starttime']));
|
||||
$database->setMovementProc($data['moveid']);
|
||||
$types[] = 4;
|
||||
$froms[] = $data['to'];
|
||||
$tos[] = $data['from'];
|
||||
$refs[] = $data['ref'];
|
||||
$times[] = $time;
|
||||
$endtimes[] = $time+($time-$data['starttime']);
|
||||
$movementProcIDs[] = $data['moveid'];
|
||||
}
|
||||
}
|
||||
|
||||
$database->addMovement($types, $froms, $tos, $refs, $times, $endtimes);
|
||||
$database->setMovementProc(implode(', ', $movementProcIDs));
|
||||
$database->setFieldTaken($fieldIDs);
|
||||
$database->addUnits($addUnitsWrefs);
|
||||
$database->addTech($addTechWrefs);
|
||||
$database->addABTech($addABTechWrefs);
|
||||
|
||||
if(file_exists("GameEngine/Prevention/settlers.txt")) {
|
||||
unlink("GameEngine/Prevention/settlers.txt");
|
||||
}
|
||||
@@ -3668,24 +3729,55 @@ class Automation {
|
||||
|
||||
$ourFileHandle = fopen($autoprefix."GameEngine/Prevention/research.txt", 'w');
|
||||
fclose($ourFileHandle);
|
||||
|
||||
$time = time();
|
||||
$deleteIDs = [];
|
||||
$tdata = [];
|
||||
$abdata = [];
|
||||
|
||||
$q = "SELECT tech, vref, id FROM ".TB_PREFIX."research where timestamp < $time";
|
||||
$dataarray = $database->query_return($q);
|
||||
|
||||
foreach($dataarray as $data) {
|
||||
$sort_type = substr($data['tech'],0,1);
|
||||
switch($sort_type) {
|
||||
case "t":
|
||||
$q = "UPDATE ".TB_PREFIX."tdata set ".$data['tech']." = 1 where vref = ".(int) $data['vref'];
|
||||
if (!isset($tdata[$data['vref']])) {
|
||||
$tdata[$data['vref']] = [];
|
||||
}
|
||||
|
||||
$tdata[$data['vref']][] = $data['tech'].' = 1';
|
||||
break;
|
||||
case "a":
|
||||
case "b":
|
||||
$q = "UPDATE ".TB_PREFIX."abdata set ".$data['tech']." = ".$data['tech']." + 1 where vref = ".(int) $data['vref'];
|
||||
if (!isset($abdata[$data['vref']])) {
|
||||
$abdata[$data['vref']] = [];
|
||||
}
|
||||
|
||||
$abdata[$data['vref']][] = $data['tech']." = ".$data['tech']." + 1";
|
||||
break;
|
||||
}
|
||||
$database->query($q);
|
||||
$q = "DELETE FROM ".TB_PREFIX."research where id = ".(int) $data['id'];
|
||||
$database->query($q);
|
||||
$deleteIDs[] = (int) $data['id'];
|
||||
}
|
||||
|
||||
// execute queries with consolidated research data
|
||||
if (count($tdata)) {
|
||||
foreach ( $tdata as $vid => $preparedData ) {
|
||||
$q = "UPDATE ".TB_PREFIX."tdata SET ".implode(', ', $preparedData)." WHERE vref = ".$vid;
|
||||
$database->query($q);
|
||||
}
|
||||
}
|
||||
|
||||
if (count($abdata)) {
|
||||
foreach ( $abdata as $vid => $preparedData ) {
|
||||
$q = "UPDATE ".TB_PREFIX."abdata SET ".implode(', ', $preparedData)." WHERE vref = ".$vid;
|
||||
$database->query($q);
|
||||
}
|
||||
}
|
||||
|
||||
$q = "DELETE FROM ".TB_PREFIX."research where id IN(".implode(', ', $deleteIDs).")";
|
||||
$database->query($q);
|
||||
|
||||
if(file_exists("GameEngine/Prevention/research.txt")) {
|
||||
unlink("GameEngine/Prevention/research.txt");
|
||||
}
|
||||
@@ -3763,10 +3855,12 @@ class Automation {
|
||||
return array($wood,$clay,$iron,$crop);
|
||||
}
|
||||
|
||||
function getAllUnits($base) {
|
||||
function getAllUnits($base, $use_cache = true) {
|
||||
global $database;
|
||||
$ownunit = $database->getUnit($base);
|
||||
$enforcementarray = $database->getEnforceVillage($base,0);
|
||||
|
||||
$ownunit = $database->getUnit($base, $use_cache);
|
||||
$enforcementarray = $database->getEnforceVillage($base, 0, $use_cache);
|
||||
|
||||
if(count($enforcementarray) > 0) {
|
||||
foreach($enforcementarray as $enforce) {
|
||||
for($i=1;$i<=50;$i++) {
|
||||
@@ -3774,7 +3868,8 @@ class Automation {
|
||||
}
|
||||
}
|
||||
}
|
||||
$enforceoasis=$database->getOasisEnforce($base,0);
|
||||
|
||||
$enforceoasis=$database->getOasisEnforce($base, 0, $use_cache);
|
||||
if(count($enforceoasis) > 0) {
|
||||
foreach($enforceoasis as $enforce) {
|
||||
for($i=1;$i<=50;$i++) {
|
||||
@@ -3782,7 +3877,8 @@ class Automation {
|
||||
}
|
||||
}
|
||||
}
|
||||
$enforceoasis1=$database->getOasisEnforce($base,1);
|
||||
|
||||
$enforceoasis1=$database->getOasisEnforce($base, 1, $use_cache);
|
||||
if(count($enforceoasis1) > 0) {
|
||||
foreach($enforceoasis1 as $enforce) {
|
||||
for($i=1;$i<=50;$i++) {
|
||||
@@ -3790,6 +3886,7 @@ class Automation {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$movement = $database->getVillageMovement($base);
|
||||
if(!empty($movement)) {
|
||||
for($i=1;$i<=50;$i++) {
|
||||
@@ -3800,7 +3897,8 @@ class Automation {
|
||||
$ownunit['u'.$i] += (isset($movement['u'.$i]) ? $movement['u'.$i] : 0);
|
||||
}
|
||||
}
|
||||
$prisoners = $database->getPrisoners($base,1);
|
||||
|
||||
$prisoners = $database->getPrisoners($base, 1, $use_cache);
|
||||
if(!empty($prisoners)) {
|
||||
foreach($prisoners as $prisoner){
|
||||
$owner = $database->getVillageField($base,"owner");
|
||||
@@ -4140,9 +4238,9 @@ class Automation {
|
||||
if($train['amt'] == 0){
|
||||
$database->trainUnit($train['id'],0,0,0,0,1,1);
|
||||
}
|
||||
$crop = $database->getCropProdstarv($train['vref']);
|
||||
$unitarrays = $this->getAllUnits($train['vref']);
|
||||
$village = $database->getVillage($train['vref']);
|
||||
$crop = $database->getCropProdstarv($train['vref'], false);
|
||||
$unitarrays = $this->getAllUnits($train['vref'], false);
|
||||
$village = $database->getVillage($train['vref'], false);
|
||||
$upkeep = $village['pop'] + $this->getUpkeep($unitarrays, 0);
|
||||
$starv = $database->getVillageField($train['vref'],"starv");
|
||||
if ($crop < $upkeep){
|
||||
@@ -4205,23 +4303,28 @@ class Automation {
|
||||
}
|
||||
|
||||
private function getsort_typeLevel($tid,$resarray) {
|
||||
|
||||
|
||||
global $village;
|
||||
|
||||
$keyholder = array();
|
||||
|
||||
foreach(array_keys($resarray,$tid) as $key) {
|
||||
if(strpos($key,'t')) {
|
||||
$key = preg_replace("/[^0-9]/", '', $key);
|
||||
array_push($keyholder, $key);
|
||||
}
|
||||
}
|
||||
|
||||
$element = count($keyholder);
|
||||
|
||||
if($element >= 2) {
|
||||
|
||||
if($tid <= 4) {
|
||||
$temparray = array();
|
||||
|
||||
for($i=0;$i<=$element-1;$i++) {
|
||||
array_push($temparray,$resarray['f'.$keyholder[$i]]);
|
||||
}
|
||||
|
||||
foreach ($temparray as $key => $val) {
|
||||
if ($val == max($temparray))
|
||||
$target = $key;
|
||||
@@ -4242,6 +4345,7 @@ class Automation {
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if($keyholder[$target] != "") {
|
||||
return $resarray['f'.$keyholder[$target]];
|
||||
}
|
||||
@@ -4269,6 +4373,7 @@ class Automation {
|
||||
$database->clearCel($id);
|
||||
$database->setCelCp($user,$cp);
|
||||
}
|
||||
|
||||
if(file_exists("GameEngine/Prevention/celebration.txt")) {
|
||||
unlink("GameEngine/Prevention/celebration.txt");
|
||||
}
|
||||
@@ -4290,26 +4395,37 @@ class Automation {
|
||||
$type = $database->getFieldType($vil['vref'],$vil['buildnumber']);
|
||||
$level = $database->getFieldLevel($vil['vref'],$vil['buildnumber']);
|
||||
$buildarray = $GLOBALS["bid".$type];
|
||||
|
||||
if ($type==10 || $type==38) {
|
||||
$q = "UPDATE ".TB_PREFIX."vdata SET `maxstore`=`maxstore`-".$buildarray[$level]['attri']." WHERE wref=".(int) $vil['vref'];
|
||||
$database->query($q);
|
||||
$q = "UPDATE ".TB_PREFIX."vdata SET `maxstore`= ".STORAGE_BASE." WHERE `maxstore`<= ".STORAGE_BASE." AND wref=".(int) $vil['vref'];
|
||||
$database->query($q);
|
||||
$database->query("
|
||||
UPDATE ".TB_PREFIX."vdata
|
||||
SET
|
||||
`maxstore` = IF(`maxstore` - ".$buildarray[$level]['attri']." <= ".STORAGE_BASE.", ".STORAGE_BASE.", `maxstore` - ".$buildarray[$level]['attri']."),
|
||||
WHERE
|
||||
wref=".(int) $vil['vref']);
|
||||
}
|
||||
|
||||
if ($type==11 || $type==39) {
|
||||
$q = "UPDATE ".TB_PREFIX."vdata SET `maxcrop`=`maxcrop`-".$buildarray[$level]['attri']." WHERE wref=".(int) $vil['vref'];
|
||||
$database->query($q);
|
||||
$q = "UPDATE ".TB_PREFIX."vdata SET `maxcrop`= ".STORAGE_BASE." WHERE `maxcrop`<=800 AND wref=".(int) $vil['vref'];
|
||||
$database->query($q);
|
||||
$database->query("
|
||||
UPDATE ".TB_PREFIX."vdata
|
||||
SET
|
||||
`maxcrop` = IF(`maxcrop` - ".$buildarray[$level]['attri']." <= ".STORAGE_BASE.", ".STORAGE_BASE.", `maxcrop` - ".$buildarray[$level]['attri']."),
|
||||
WHERE
|
||||
wref=".(int) $vil['vref']);
|
||||
}
|
||||
|
||||
if ($level==1) { $clear=",f".$vil['buildnumber']."t=0"; } else { $clear=""; }
|
||||
|
||||
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'];
|
||||
$database->query($q);
|
||||
$pop=$this->getPop($type,$level-1);
|
||||
|
||||
$pop = $this->getPop($type,$level-1);
|
||||
$database->modifyPop($vil['vref'],$pop[0],1);
|
||||
$this->procClimbers($database->getVillageField($vil['vref'],'owner'));
|
||||
$database->delDemolition($vil['vref'], true);
|
||||
|
||||
if ($type==18){
|
||||
Automation::updateMax($database->getVillageField($vil['vref'],'owner'));
|
||||
}
|
||||
@@ -4337,6 +4453,12 @@ class Automation {
|
||||
$unitData = $database->getUnit($heroVillageIDs);
|
||||
|
||||
// now do the math
|
||||
$columns = [];
|
||||
$columnValues = [];
|
||||
$modes = [];
|
||||
$lastUpdateTime = time();
|
||||
$newHealth = -1;
|
||||
|
||||
foreach($harray as $hdata){
|
||||
if((time()-$hdata['lastupdate'])>=1){
|
||||
if($hdata['health']<100 and $hdata['health']>0){
|
||||
@@ -4347,33 +4469,86 @@ class Automation {
|
||||
}else{
|
||||
$speed = ceil(SPEED/100);
|
||||
}
|
||||
|
||||
$reg = $hdata['health']+$hdata['regeneration']*5*$speed/86400*(time()-$hdata['lastupdate']);
|
||||
|
||||
if($reg <= 100){
|
||||
$database->modifyHero("health",$reg,$hdata['heroid']);
|
||||
$newHealth = $reg;
|
||||
}else{
|
||||
$database->modifyHero("health",100,$hdata['heroid']);
|
||||
$newHealth = 100;
|
||||
}
|
||||
$database->modifyHero("lastupdate",time(),$hdata['heroid']);
|
||||
}
|
||||
}
|
||||
|
||||
$herolevel = $hdata['level'];
|
||||
for($i = $herolevel+1; $i < 100; $i++){
|
||||
$newLevel = -1;
|
||||
$scorePoints = false;
|
||||
for ($i = $herolevel+1; $i < 100; $i++){
|
||||
if($hdata['experience'] >= $hero_levels[$i]){
|
||||
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX ."hero SET level = $i WHERE heroid = '".(int) $hdata['heroid']."'");
|
||||
if($i < 99){
|
||||
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX ."hero SET points = points + 5 WHERE heroid = '".(int) $hdata['heroid']."'");
|
||||
$newLevel = $i;
|
||||
if ($i < 99) {
|
||||
$scorePoints = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// upgrade hero to a new level, if needed
|
||||
if ($newLevel > -1) {
|
||||
$columns[] = 'level';
|
||||
$columnValues[] = $newLevel;
|
||||
$modes[] = null;
|
||||
}
|
||||
|
||||
// add 5 points, if we're below level 100
|
||||
if ($scorePoints) {
|
||||
$columns[] = 'points';
|
||||
$columnValues[] = 5;
|
||||
$modes[] = 1;
|
||||
}
|
||||
|
||||
$villunits = $unitData[$hdata['wref']];
|
||||
if($villunits['hero'] == 0 && $hdata['trainingtime'] < time() && $hdata['inrevive'] == 1){
|
||||
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX . "units SET hero = 1 WHERE vref = ".(int) $hdata['wref']."");
|
||||
mysqli_query($GLOBALS['link'],"UPDATE ".TB_PREFIX."hero SET `dead` = '0', `inrevive` = '0', `health` = '100', `lastupdate` = ".(int) $hdata['trainingtime']." WHERE `heroid` = ".(int) $hdata['heroid']);
|
||||
|
||||
$columns[] = 'dead';
|
||||
$columnValues[] = 0;
|
||||
$modes[] = null;
|
||||
|
||||
$columns[] = 'inrevive';
|
||||
$columnValues[] = 0;
|
||||
$modes[] = null;
|
||||
|
||||
$columns[] = 'inrevive';
|
||||
$columnValues[] = 0;
|
||||
$modes[] = null;
|
||||
|
||||
$newHealth = 100;
|
||||
$lastUpdateTime = (int) $hdata['trainingtime'];
|
||||
}
|
||||
|
||||
if($villunits['hero'] == 0 && $hdata['trainingtime'] < time() && $hdata['intraining'] == 1){
|
||||
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX . "units SET hero = 1 WHERE vref = ".(int) $hdata['wref']);
|
||||
mysqli_query($GLOBALS['link'],"UPDATE ".TB_PREFIX."hero SET `intraining` = '0', `lastupdate` = ".(int) $hdata['trainingtime']." WHERE `heroid` = ".(int) $hdata['heroid']);
|
||||
|
||||
$columns[] = 'intraining';
|
||||
$columnValues[] = 0;
|
||||
$modes[] = null;
|
||||
|
||||
$lastUpdateTime = (int) $hdata['trainingtime'];
|
||||
}
|
||||
|
||||
// update health, if needed
|
||||
if ($newHealth > -1) {
|
||||
$columns[] = 'health';
|
||||
$columnValues[] = $newHealth;
|
||||
$modes[] = null;
|
||||
}
|
||||
|
||||
// last update timestamp
|
||||
$columns[] = 'lastupdate';
|
||||
$columnValues[] = $lastUpdateTime;
|
||||
$modes[] = null;
|
||||
|
||||
$database->modifyHero($columns, $columnValues, $hdata['heroid']);
|
||||
}
|
||||
}
|
||||
if(file_exists("GameEngine/Prevention/updatehero.txt")) {
|
||||
@@ -4440,30 +4615,21 @@ class Automation {
|
||||
|
||||
private function oasisResourcesProduce() {
|
||||
global $database;
|
||||
$time = time();
|
||||
$q = "SELECT wood, clay, iron, crop, lastupdated, maxstore, maxcrop, wref FROM ".TB_PREFIX."odata WHERE wood < 800 OR clay < 800 OR iron < 800 OR crop < 800";
|
||||
$array = $database->query_return($q);
|
||||
foreach($array as $getoasis) {
|
||||
$oasiswood = $getoasis['wood'] + (8*SPEED/3600)*(time()-$getoasis['lastupdated']);
|
||||
$oasisclay = $getoasis['clay'] + (8*SPEED/3600)*(time()-$getoasis['lastupdated']);
|
||||
$oasisiron = $getoasis['iron'] + (8*SPEED/3600)*(time()-$getoasis['lastupdated']);
|
||||
$oasiscrop = $getoasis['crop'] + (8*SPEED/3600)*(time()-$getoasis['lastupdated']);
|
||||
if($oasiswood > $getoasis['maxstore']){
|
||||
$oasiswood = $getoasis['maxstore'];
|
||||
}
|
||||
if($oasisclay > $getoasis['maxstore']){
|
||||
$oasisclay = $getoasis['maxstore'];
|
||||
}
|
||||
if($oasisiron > $getoasis['maxstore']){
|
||||
$oasisiron = $getoasis['maxstore'];
|
||||
}
|
||||
if($oasiscrop > $getoasis['maxcrop']){
|
||||
$oasiscrop = $getoasis['maxcrop'];
|
||||
}
|
||||
$q = "UPDATE " . TB_PREFIX . "odata set wood = $oasiswood, clay = $oasisclay, iron = $oasisiron, crop = $oasiscrop where wref = ".(int) $getoasis['wref']."";
|
||||
$database->query($q);
|
||||
$database->updateOasis($getoasis['wref']);
|
||||
}
|
||||
|
||||
$speedMultiplier = (8 * (SPEED/3600));
|
||||
$database->query("
|
||||
UPDATE " . TB_PREFIX . "odata
|
||||
SET
|
||||
lastupdated = UNIX_TIMESTAMP(),
|
||||
wood = IF(wood + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated)) > maxstore, maxstore, wood + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated))),
|
||||
clay = IF(clay + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated)) > maxstore, maxstore, clay + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated))),
|
||||
iron = IF(iron + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated)) > maxstore, maxstore, iron + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated))),
|
||||
crop = IF(crop + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated)) > maxcrop, maxcrop, crop + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated)))
|
||||
WHERE
|
||||
wood < 800 OR
|
||||
clay < 800 OR
|
||||
iron < 800 OR
|
||||
crop < 800");
|
||||
}
|
||||
|
||||
private function checkInvitedPlayes() {
|
||||
@@ -4486,20 +4652,21 @@ class Automation {
|
||||
|
||||
private function updateGeneralAttack() {
|
||||
global $database;
|
||||
$time = time();
|
||||
$q = "SELECT id, time FROM ".TB_PREFIX."general WHERE shown = 1";
|
||||
$array = $database->query_return($q);
|
||||
foreach($array as $general) {
|
||||
if(time() - (86400*8) > $general['time']){
|
||||
mysqli_query($GLOBALS['link'],"UPDATE ".TB_PREFIX."general SET shown = 0 WHERE id = ".(int) $general['id']."");
|
||||
}
|
||||
}
|
||||
|
||||
mysqli_query($database->dblink, "
|
||||
UPDATE ".TB_PREFIX."general
|
||||
SET
|
||||
shown = 0
|
||||
WHERE
|
||||
shown = 1 AND
|
||||
`time` < (UNIX_TIMESTAMP() - (86400 * 8))");
|
||||
}
|
||||
|
||||
private function MasterBuilder() {
|
||||
global $database;
|
||||
$q = "SELECT id, wid, type, level, field, timestamp FROM ".TB_PREFIX."bdata WHERE master = 1";
|
||||
$array = $database->query_return($q);
|
||||
|
||||
foreach($array as $master) {
|
||||
$owner = $database->getVillageField($master['wid'],'owner');
|
||||
$tribe = $database->getUserField($owner,'tribe',0);
|
||||
@@ -4515,42 +4682,56 @@ class Automation {
|
||||
$buildiron = $buildarray[$level]['iron'];
|
||||
$buildcrop = $buildarray[$level]['crop'];
|
||||
$ww = count($database->getBuildingByType($master['wid'],40));
|
||||
|
||||
if($tribe == 1){
|
||||
|
||||
if($master['field'] < 19){
|
||||
$bdata = count($database->getDorf1Building($master['wid']));
|
||||
$dorf1Buildings = $database->getDorf1Building($master['wid']);
|
||||
$bdata = count($dorf1Buildings);
|
||||
$bbdata = count($database->getDorf2Building($master['wid']));
|
||||
$bdata1 = $database->getDorf1Building($master['wid']);
|
||||
$bdata1 = $dorf1Buildings;
|
||||
}else{
|
||||
$dorf2Buildings = $database->getDorf2Building($master['wid']);
|
||||
$bdata = count($database->getDorf2Building($master['wid']));
|
||||
$bbdata = count($database->getDorf1Building($master['wid']));
|
||||
$bdata1 = $database->getDorf2Building($master['wid']);
|
||||
}
|
||||
|
||||
}else{
|
||||
$bdata = $bbdata = count($database->getDorf1Building($master['wid'])) + count($database->getDorf2Building($master['wid']));
|
||||
$bdata1 = $database->getDorf1Building($master['wid']);
|
||||
$dorf1Buildings = $database->getDorf1Building($master['wid']);
|
||||
$bdata = $bbdata = count($dorf1Buildings) + count($database->getDorf2Building($master['wid']));
|
||||
$bdata1 = $dorf1Buildings;
|
||||
}
|
||||
|
||||
if($database->getUserField($owner,'plus',0) > time() or $ww > 0){
|
||||
|
||||
if($bbdata < 2){
|
||||
$inbuild = 2;
|
||||
}else{
|
||||
$inbuild = 1;
|
||||
}
|
||||
|
||||
}else{
|
||||
$inbuild = 1;
|
||||
}
|
||||
|
||||
$usergold = $database->getUserField($owner,'gold',0);
|
||||
|
||||
if($bdata < $inbuild && $buildwood < $villwood && $buildclay < $villclay && $buildiron < $villiron && $buildcrop < $villcrop && $usergold > 0){
|
||||
$time = $master['timestamp']+time();
|
||||
|
||||
if(!empty($bdata1)){
|
||||
foreach($bdata1 as $master1) {
|
||||
$time += ($master1['timestamp']-time());
|
||||
}
|
||||
}
|
||||
|
||||
if($bdata == 0){
|
||||
$database->updateBuildingWithMaster($master['id'],$time,0);
|
||||
}else{
|
||||
$database->updateBuildingWithMaster($master['id'],$time,1);
|
||||
}
|
||||
|
||||
$gold = $usergold-1;
|
||||
$database->updateUserField($owner,'gold',$gold,1);
|
||||
$database->modifyResource($master['wid'],$buildwood,$buildclay,$buildiron,$buildcrop,0);
|
||||
@@ -4602,8 +4783,7 @@ class Automation {
|
||||
|
||||
|
||||
// get enforce other player from oasis
|
||||
$q = "SELECT e.*,o.conqured,o.wref,o.high, o.owner as ownero, v.owner as ownerv FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref where o.conqured=".(int) $starv['wref']." AND o.owner<>v.owner";
|
||||
$enforceoasis = $database->query_return($q);
|
||||
$enforceoasis = $database->getOasisEnforce($starv['wref'], 2);
|
||||
$maxcount=0;
|
||||
$totalunits=0;
|
||||
if(count($enforceoasis)>0){
|
||||
@@ -4625,8 +4805,7 @@ class Automation {
|
||||
}
|
||||
}else{
|
||||
//own troops from oasis
|
||||
$q = "SELECT e.*,o.conqured,o.wref,o.high, o.owner as ownero, v.owner as ownerv FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref where o.conqured=".(int) $starv['wref']." AND o.owner=v.owner";
|
||||
$enforceoasis = $database->query_return($q);
|
||||
$enforceoasis = $database->getOasisEnforce($starv['wref'], 3);
|
||||
if(count($enforceoasis)>0){
|
||||
foreach ($enforceoasis as $enforce){
|
||||
for($i=1;$i<=50;$i++){
|
||||
@@ -4645,8 +4824,7 @@ class Automation {
|
||||
}
|
||||
}else{
|
||||
//get enforce other player from village
|
||||
$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=".(int) $starv['wref']." AND v.owner<>v1.owner";
|
||||
$enforcearray = $database->query_return($q);
|
||||
$enforcearray = $database->getEnforceVillage($starv['wref'], 2);
|
||||
if(count($enforcearray)>0){
|
||||
foreach ($enforcearray as $enforce){
|
||||
for($i = 0 ; $i <= 50 ; $i++){
|
||||
@@ -4665,8 +4843,7 @@ class Automation {
|
||||
}
|
||||
}else{
|
||||
//get own reinforcement from other village
|
||||
$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=".(int) $starv['wref']." AND v.owner=v1.owner";
|
||||
$enforcearray = $database->query_return($q);
|
||||
$enforcearray = $database->getEnforceVillage($starv['wref'], 3);
|
||||
if(count($enforcearray)>0){
|
||||
foreach ($enforcearray as $enforce){
|
||||
for($i = 0 ; $i <= 50 ; $i++){
|
||||
@@ -4725,8 +4902,10 @@ class Automation {
|
||||
|
||||
if($difcrop > 0){
|
||||
global ${'u'.$maxtype};
|
||||
|
||||
$hungry=array();
|
||||
$hungry=${'u'.$maxtype};
|
||||
|
||||
if ($hungry['crop']>0 && $oldcrop <=0) {
|
||||
$killunits = intval($difcrop/$hungry['crop']);
|
||||
}else $killunits=0;
|
||||
@@ -4739,24 +4918,33 @@ class Automation {
|
||||
if (isset($enf)){
|
||||
if($killunits < $maxcount){
|
||||
$database->modifyEnforce($enf, $maxtype, $killunits, 0);
|
||||
$database->setVillageField($starv['wref'], 'starv', $upkeep);
|
||||
$database->setVillageField($starv['wref'], 'starvupdate', $time);
|
||||
$database->setVillageField(
|
||||
$starv['wref'],
|
||||
['starv', 'starvupdate'],
|
||||
[$upkeep, $time]
|
||||
);
|
||||
$database->modifyResource($starv['wref'],0,0,0,$hungry['crop'],1);
|
||||
|
||||
if($maxtype == "hero"){
|
||||
$heroid = $database->getHeroField($database->getVillageField($enf,"owner"),"heroid");
|
||||
$database->modifyHero("dead", 1, $heroid);
|
||||
}
|
||||
}else{
|
||||
$database->deleteReinf($enf);
|
||||
$database->setVillageField($starv['wref'], 'starv', $upkeep);
|
||||
$database->setVillageField($starv['wref'], 'starvupdate', $time);
|
||||
$database->setVillageField(
|
||||
$starv['wref'],
|
||||
['starv', 'starvupdate'],
|
||||
[$upkeep, $time]
|
||||
);
|
||||
}
|
||||
}else{
|
||||
if($killunits < $maxcount){
|
||||
die('vvvv');
|
||||
$database->modifyUnit($starv['wref'], array($maxtype), array($killunits), array(0));
|
||||
$database->setVillageField($starv['wref'], 'starv', $upkeep);
|
||||
$database->setVillageField($starv['wref'], 'starvupdate', $time);
|
||||
$database->setVillageField(
|
||||
$starv['wref'],
|
||||
['starv', 'starvupdate'],
|
||||
[$upkeep, $time]
|
||||
);
|
||||
$database->modifyResource($starv['wref'],0,0,0,$hungry['crop'],1);
|
||||
if($maxtype == "hero"){
|
||||
$heroid = $database->getHeroField($starv['owner'],"heroid");
|
||||
@@ -4765,8 +4953,12 @@ class Automation {
|
||||
}elseif($killunits > $maxcount){
|
||||
$killunits = $maxcount;
|
||||
$database->modifyUnit($starv['wref'], array($maxtype), array($killunits), array(0));
|
||||
$database->setVillageField($starv['wref'], 'starv', $upkeep);
|
||||
$database->setVillageField($starv['wref'], 'starvupdate', $time);
|
||||
$database->setVillageField(
|
||||
$starv['wref'],
|
||||
['starv', 'starvupdate'],
|
||||
[$upkeep, $time]
|
||||
);
|
||||
|
||||
if($maxtype == "hero"){
|
||||
$heroid = $database->getHeroField($starv['owner'],"heroid");
|
||||
$database->modifyHero("dead", 1, $heroid);
|
||||
@@ -4776,12 +4968,15 @@ class Automation {
|
||||
}
|
||||
}
|
||||
}
|
||||
$crop = $database->getCropProdstarv($starv['wref']);
|
||||
if ($crop > $upkeep){
|
||||
$database->setVillageField($starv['wref'], 'starv', 0);
|
||||
$database->setVillageField($starv['wref'], 'starvupdate', 0);
|
||||
}
|
||||
|
||||
$crop = $database->getCropProdstarv($starv['wref'], false);
|
||||
if ($crop > $upkeep){
|
||||
$database->setVillageField(
|
||||
$starv['wref'],
|
||||
['starv', 'starvupdate'],
|
||||
[0, 0]
|
||||
);
|
||||
}
|
||||
|
||||
unset ($starv,$unitarrays,$enforcearray,$enforce,$starvarray);
|
||||
}
|
||||
@@ -4935,13 +5130,17 @@ class Automation {
|
||||
|
||||
private function checkBan() {
|
||||
global $database;
|
||||
$time = time();
|
||||
$q = "SELECT id, uid FROM ".TB_PREFIX."banlist WHERE active = 1 AND end < $time AND end > 0";
|
||||
$array = $database->query_return($q);
|
||||
foreach($array as $banlist) {
|
||||
mysqli_query($GLOBALS['link'],"UPDATE ".TB_PREFIX."banlist SET active = 0 WHERE id = ".(int) $banlist['id']."");
|
||||
mysqli_query($GLOBALS['link'],"UPDATE ".TB_PREFIX."users SET access = 2 WHERE id = ".(int) $banlist['uid']."");
|
||||
}
|
||||
|
||||
mysqli_query($database->dblink, "
|
||||
UPDATE ".TB_PREFIX."banlist as b
|
||||
JOIN ".TB_PREFIX."users as u ON b.uid = u.id
|
||||
SET
|
||||
b.active = 0,
|
||||
u.access = 2
|
||||
WHERE
|
||||
b.active = 1 AND
|
||||
b.`end` < UNIX_TIMESTAMP() AND
|
||||
b.`end` > 0");
|
||||
}
|
||||
|
||||
private function regenerateOasisTroops() {
|
||||
|
||||
+129
-41
@@ -672,6 +672,7 @@ class MYSQLi_DB implements IDbConnection {
|
||||
*/
|
||||
public static function clearVillageCache() {
|
||||
self::$villageFieldsCache = [];
|
||||
self::$villageFieldsCacheByWorldID = [];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -994,8 +995,8 @@ class MYSQLi_DB implements IDbConnection {
|
||||
return $this->mysqli_fetch_all($result);
|
||||
}
|
||||
|
||||
function getVrefField($ref, $field) {
|
||||
return $this->getVillage($ref)[$field];
|
||||
function getVrefField($ref, $field, $use_cache = true) {
|
||||
return $this->getVillage($ref, $use_cache)[$field];
|
||||
}
|
||||
|
||||
// no need to cache this method
|
||||
@@ -1303,9 +1304,15 @@ class MYSQLi_DB implements IDbConnection {
|
||||
}
|
||||
|
||||
function setFieldTaken($id) {
|
||||
list($id) = $this->escape_input((int) $id);
|
||||
if (!is_array($id)) {
|
||||
$id = [$id];
|
||||
}
|
||||
|
||||
$q = "UPDATE " . TB_PREFIX . "wdata set occupied = 1 where id = ". $id;
|
||||
foreach ($id as $index => $idValue) {
|
||||
$id[$index] = (int) $idValue;
|
||||
}
|
||||
|
||||
$q = "UPDATE " . TB_PREFIX . "wdata SET occupied = 1 WHERE id IN(". implode(', ', $id).")";
|
||||
return mysqli_query($this->dblink,$q);
|
||||
}
|
||||
|
||||
@@ -1879,9 +1886,10 @@ class MYSQLi_DB implements IDbConnection {
|
||||
return self::$resourceLevelsCache[$vid];
|
||||
}
|
||||
|
||||
public function clearResourseLevelsCache() {
|
||||
public static function clearResourseLevelsCache() {
|
||||
self::$resourceLevelsCache = [];
|
||||
self::$fieldLevelsInVillageSearchCache = [];
|
||||
self::$fieldLevelsCache = [];
|
||||
}
|
||||
|
||||
function getAdminLog() {
|
||||
@@ -4948,13 +4956,27 @@ class MYSQLi_DB implements IDbConnection {
|
||||
$ref2 = [$ref2];
|
||||
}
|
||||
|
||||
$counter = 0;
|
||||
$pairs = [];
|
||||
|
||||
foreach ($type as $index => $typeValue) {
|
||||
$pairs[] = '(0, '.(int) $typeValue.', '.(int) $from[$index].', '.(int) $to[$index].', '.(int) $ref[$index].', '.(int) $ref2[$index].', '.(int) $time[$index].', '.(int) $endtime[$index].', 0, '.(int) $send[$index].', '.(int) $wood[$index].', '.(int) $clay[$index].', '.(int) $iron[$index].', '.(int) $crop[$index].')';
|
||||
|
||||
if ($counter++ > 25) {
|
||||
$q = "INSERT INTO " . TB_PREFIX . "movement VALUES ".implode(', ', $pairs);
|
||||
mysqli_query($this->dblink,$q);
|
||||
|
||||
$pairs = [];
|
||||
$counter = 0;
|
||||
}
|
||||
}
|
||||
|
||||
$q = "INSERT INTO " . TB_PREFIX . "movement VALUES ".implode(', ', $pairs);
|
||||
return mysqli_query($this->dblink,$q);
|
||||
if ($counter > 0) {
|
||||
$q = "INSERT INTO " . TB_PREFIX . "movement VALUES " . implode( ', ', $pairs );
|
||||
return mysqli_query( $this->dblink, $q );
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function addAttack($vid, $t1, $t2, $t3, $t4, $t5, $t6, $t7, $t8, $t9, $t10, $t11, $type, $ctar1, $ctar2, $spy,$b1=0,$b2=0,$b3=0,$b4=0,$b5=0,$b6=0,$b7=0,$b8=0) {
|
||||
@@ -5100,9 +5122,15 @@ class MYSQLi_DB implements IDbConnection {
|
||||
}
|
||||
|
||||
function addUnits($vid) {
|
||||
list($vid) = $this->escape_input((int) $vid);
|
||||
if (!is_array($vid)) {
|
||||
$vid = [$vid];
|
||||
}
|
||||
|
||||
$q = "INSERT into " . TB_PREFIX . "units (vref) values ($vid)";
|
||||
foreach ($vid as $index => $vidValue) {
|
||||
$vid[$index] = (int) $vidValue;
|
||||
}
|
||||
|
||||
$q = "INSERT into " . TB_PREFIX . "units (vref) values (".implode(', ', $vid).")";
|
||||
return mysqli_query($this->dblink,$q);
|
||||
}
|
||||
|
||||
@@ -5222,16 +5250,25 @@ class MYSQLi_DB implements IDbConnection {
|
||||
return self::$heroFieldCache[$uid.$field][$field];
|
||||
}
|
||||
|
||||
function modifyHero($column,$value,$heroid,$mode=0) {
|
||||
list($column,$value,$heroid,$mode) = $this->escape_input($column,$value,(int) $heroid,$mode);
|
||||
function modifyHero($column,$value,$heroid,$mode=null) {
|
||||
if (!is_array($column)) {
|
||||
$column = [$column];
|
||||
$value = [$value];
|
||||
$mode = [$mode];
|
||||
}
|
||||
|
||||
if(!$mode) {
|
||||
$q = "UPDATE `".TB_PREFIX."hero` SET $column = '$value' WHERE heroid = $heroid";
|
||||
} elseif($mode=1) {
|
||||
$q = "UPDATE `".TB_PREFIX."hero` SET $column = $column + ". (int) $value . " WHERE heroid = $heroid";
|
||||
} else {
|
||||
$q = "UPDATE `".TB_PREFIX."hero` SET $column = $column - ". (int) $value ." WHERE heroid = $heroid";
|
||||
}
|
||||
$pairs = [];
|
||||
foreach ($column as $index => $columnValue) {
|
||||
if($mode[$index] === null) {
|
||||
$pairs[] = "$columnValue = ".(Math::isInt($value[$index]) ? $value[$index] : '"'.$this->escape($value[$index]).'"');
|
||||
} elseif($mode[$index]=1) {
|
||||
$pairs[] = "$columnValue = $columnValue + ".(int) $value[$index];
|
||||
} else {
|
||||
$pairs[] = "$columnValue = $columnValue - ".(int) $value[$index];
|
||||
}
|
||||
}
|
||||
|
||||
$q = "UPDATE `".TB_PREFIX."hero` SET ".implode(', ', $pairs)." WHERE heroid = $heroid";
|
||||
return mysqli_query($this->dblink,$q);
|
||||
}
|
||||
|
||||
@@ -5256,16 +5293,28 @@ class MYSQLi_DB implements IDbConnection {
|
||||
}
|
||||
|
||||
function addTech($vid) {
|
||||
list($vid) = $this->escape_input((int) $vid);
|
||||
if (!is_array($vid)) {
|
||||
$vid = [$vid];
|
||||
}
|
||||
|
||||
$q = "INSERT into " . TB_PREFIX . "tdata (vref) values ($vid)";
|
||||
foreach ($vid as $index => $vidValue) {
|
||||
$vid[$index] = (int) $vidValue;
|
||||
}
|
||||
|
||||
$q = "INSERT INTO " . TB_PREFIX . "tdata (vref) VALUES (".implode(', ', $vid).")";
|
||||
return mysqli_query($this->dblink,$q);
|
||||
}
|
||||
|
||||
function addABTech($vid) {
|
||||
list($vid) = $this->escape_input((int) $vid);
|
||||
if (!is_array($vid)) {
|
||||
$vid = [$vid];
|
||||
}
|
||||
|
||||
$q = "INSERT into " . TB_PREFIX . "abdata (vref) values ($vid)";
|
||||
foreach ($vid as $index => $vidValue) {
|
||||
$vid[$index] = (int) $vidValue;
|
||||
}
|
||||
|
||||
$q = "INSERT INTO " . TB_PREFIX . "abdata (vref) VALUES (".implode(', ', $vid).")";
|
||||
return mysqli_query($this->dblink,$q);
|
||||
}
|
||||
|
||||
@@ -5433,11 +5482,12 @@ class MYSQLi_DB implements IDbConnection {
|
||||
if($unit == 121){$unit = 21;}
|
||||
if($unit =="hero"){$unit = 'hero';}
|
||||
else{$unit = 'u' . $unit;}
|
||||
++$i;
|
||||
//Fixed part of negativ troops (double troops) - by InCube
|
||||
$array_amt[$i] = (int) $array_amt[$i] < 0 ? 0 : $array_amt[$i];
|
||||
//Fixed part of negativ troops (double troops) - by InCube
|
||||
$units .= $unit.' = '.$unit.' '.(($array_mode[$i] == 1)? '+':'-').' '.($array_amt[$i] ? $array_amt[$i] : 0).(($number > $i+1) ? ', ' : '');
|
||||
|
||||
++$i;
|
||||
//Fixed part of negativ troops (double troops) - by InCube
|
||||
$array_amt[$i] = (int) $array_amt[$i] < 0 ? 0 : $array_amt[$i];
|
||||
//Fixed part of negativ troops (double troops) - by InCube
|
||||
$units .= $unit.' = '.$unit.' '.(($array_mode[$i] == 1)? '+':'-').' '.($array_amt[$i] ? $array_amt[$i] : 0).(($number > $i+1) ? ', ' : '');
|
||||
}
|
||||
$q = "UPDATE ".TB_PREFIX."units set $units WHERE vref = $vref";
|
||||
return mysqli_query($this->dblink,$q);
|
||||
@@ -5470,8 +5520,12 @@ class MYSQLi_DB implements IDbConnection {
|
||||
|
||||
if (!$mode) {
|
||||
$q = "SELECT e.*,o.conqured FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref where o.conqured = $ref AND e.from !=$ref";
|
||||
}else{
|
||||
}else if ($mode == 1) {
|
||||
$q = "SELECT e.*,o.conqured FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref where o.conqured = $ref";
|
||||
} else if ($mode == 2) {
|
||||
$q = "SELECT e.*,o.conqured,o.wref,o.high, o.owner as ownero, v.owner as ownerv FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref where o.conqured=$ref AND o.owner<>v.owner";
|
||||
} else if ($mode == 3) {
|
||||
$q = "SELECT e.*,o.conqured,o.wref,o.high, o.owner as ownero, v.owner as ownerv FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref where o.conqured=$ref AND o.owner=v.owner";
|
||||
}
|
||||
$result = mysqli_query($this->dblink,$q);
|
||||
|
||||
@@ -5509,13 +5563,24 @@ class MYSQLi_DB implements IDbConnection {
|
||||
$start = ($owntribe - 1) * 10 + 1;
|
||||
$end = ($owntribe * 10);
|
||||
//add unit
|
||||
$j = '1';
|
||||
$j = 1;
|
||||
$units = [];
|
||||
$amounts = [];
|
||||
$modes = [];
|
||||
|
||||
for($i = $start; $i <= $end; $i++) {
|
||||
$this->modifyEnforce($id, $i, $data['t' . $j . ''], 1);
|
||||
$units[] = $i;
|
||||
$amounts[] = $data['t' . $j . ''];
|
||||
$modes[] = 1;
|
||||
$j++;
|
||||
}
|
||||
$this->modifyEnforce($id,'hero',$data['t11'],1);
|
||||
return mysqli_insert_id($this->dblink);
|
||||
|
||||
// add hero
|
||||
$units[] = 'hero';
|
||||
$amounts[] = $data['t11'];
|
||||
$modes[] = 1;
|
||||
|
||||
$this->modifyEnforce($id,$units, $amounts, $modes);
|
||||
}
|
||||
|
||||
function addEnforce2($data,$tribe,$dead1,$dead2,$dead3,$dead4,$dead5,$dead6,$dead7,$dead8,$dead9,$dead10,$dead11) {
|
||||
@@ -5534,15 +5599,34 @@ class MYSQLi_DB implements IDbConnection {
|
||||
}
|
||||
$end2 = ($tribe * 10);
|
||||
//add unit
|
||||
$j = '1';
|
||||
$j = 1;
|
||||
|
||||
$units = [];
|
||||
$amounts = [];
|
||||
$modes = [];
|
||||
|
||||
for($i = $start; $i <= $end; $i++) {
|
||||
$this->modifyEnforce($id, $i, $data['t' . $j . ''], 1);
|
||||
$this->modifyEnforce($id, $i, ${'dead'.$j}, 0);
|
||||
$units[] = $i;
|
||||
$amounts[] = $data['t' . $j . ''];
|
||||
$modes[] = 1;
|
||||
|
||||
$units[] = $i;
|
||||
$amounts[] = ${'dead'.$j};
|
||||
$modes[] = 0;
|
||||
|
||||
$j++;
|
||||
}
|
||||
$this->modifyEnforce($id,'hero',$data['t11'],1);
|
||||
$this->modifyEnforce($id,'hero',$dead11,0);
|
||||
return mysqli_insert_id($this->dblink);
|
||||
|
||||
// process heroes
|
||||
$units[] = 'hero';
|
||||
$amounts[] = $data['t11'];
|
||||
$modes[] = 1;
|
||||
|
||||
$units[] = 'hero';
|
||||
$amounts[] = $dead11;
|
||||
$modes[] = 0;
|
||||
|
||||
$this->modifyEnforce($id,$units, $amounts, $modes);
|
||||
}
|
||||
|
||||
function modifyEnforce($id, $unit, $amt, $mode) {
|
||||
@@ -5596,9 +5680,13 @@ class MYSQLi_DB implements IDbConnection {
|
||||
|
||||
if(!$mode) {
|
||||
$q = "SELECT * from " . TB_PREFIX . "enforcement where vref = $id";
|
||||
} else {
|
||||
} else if ($mode == 1) {
|
||||
$q = "SELECT * from " . TB_PREFIX . "enforcement where `from` = $id";
|
||||
}
|
||||
} 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";
|
||||
} 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";
|
||||
}
|
||||
$result = mysqli_query($this->dblink,$q);
|
||||
|
||||
self::$villageReinforcementsCache[$id.$mode] = $this->mysqli_fetch_all($result);
|
||||
@@ -6342,7 +6430,7 @@ class MYSQLi_DB implements IDbConnection {
|
||||
$clay = 0;
|
||||
$iron = 0;
|
||||
$basecrop = $grainmill = $bakery = 0;
|
||||
$owner = $this->getVrefField($wref, 'owner');
|
||||
$owner = $this->getVrefField($wref, 'owner', $use_cache);
|
||||
$bonus = $this->getUserField($owner, 'b4', 0);
|
||||
|
||||
$buildarray = $this->getResourceLevel($wref);
|
||||
|
||||
@@ -542,8 +542,14 @@ class Technology {
|
||||
// global $$unit;
|
||||
// $dataarray = $$unit;
|
||||
if($prisoners == 0){
|
||||
if (!isset($array['hero'])) {
|
||||
$array['hero'] = 0;
|
||||
}
|
||||
$upkeep += $array['hero'] * 6;
|
||||
}else{
|
||||
if (!isset($array['t11'])) {
|
||||
$array['t11'] = 0;
|
||||
}
|
||||
$upkeep += $array['t11'] * 6;
|
||||
}
|
||||
$artefact = count($database->getOwnUniqueArtefactInfo2($session->uid,4,3,0));
|
||||
|
||||
@@ -47,6 +47,10 @@
|
||||
$uid = mysqli_insert_id($database->dblink);
|
||||
$admin_village_created = false;
|
||||
$xcoor = 50;
|
||||
$addUnitsWrefs = [];
|
||||
$addTechWrefs = [];
|
||||
$addABTechWrefs = [];
|
||||
|
||||
while (!$admin_village_created) {
|
||||
$wid = $admin->getWref($xcoor++, 50);
|
||||
$status = $database->getVillageState($wid);
|
||||
@@ -54,12 +58,16 @@
|
||||
$database->setFieldTaken($wid);
|
||||
$database->addVillage($wid, $uid, $_POST['aname'], 1);
|
||||
$database->addResourceFields($wid, $database->getVillageType($wid));
|
||||
$database->addUnits($wid);
|
||||
$database->addTech($wid);
|
||||
$database->addABTech($wid);
|
||||
$addUnitsWrefs[] = $wid;
|
||||
$addTechWrefs[] = $wid;
|
||||
$addABTechWrefs[] = $wid;
|
||||
$admin_village_created = true;
|
||||
}
|
||||
}
|
||||
|
||||
$database->addUnits($addUnitsWrefs);
|
||||
$database->addTech($addTechWrefs);
|
||||
$database->addABTech($addABTechWrefs);
|
||||
}
|
||||
|
||||
// set up MultiHunter
|
||||
|
||||
Reference in New Issue
Block a user