mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-07-09 22:26:10 +00:00
update admin panel
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
#################################################################################
|
||||
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
||||
## --------------------------------------------------------------------------- ##
|
||||
## Filename addABTroops.php ##
|
||||
## Developed by: ronix ##
|
||||
## License: TravianZ Project ##
|
||||
## Copyright: TravianZ (c) 2010-2014. All rights reserved. ##
|
||||
## ##
|
||||
#################################################################################
|
||||
|
||||
if(!isset($_SESSION)) session_start();
|
||||
if($_SESSION['access'] < 9) die("Access Denied: You are not Admin!");
|
||||
include_once("../../Database.php");
|
||||
|
||||
$id = $_POST['id'];
|
||||
$village = $database->getVillage($id);
|
||||
$user = $database->getUserArray($village['owner'],1);
|
||||
$atech="";
|
||||
$btech="";
|
||||
for($i=1; $i<9; $i++) {
|
||||
$atech.="a".$i."=".$_POST['a'.$i].", ";
|
||||
$btech.="b".$i."=".$_POST['b'.$i].(($i > 7) ? "" : ", ");
|
||||
}
|
||||
|
||||
$q = "UPDATE ".TB_PREFIX."abdata SET ".$atech.$btech." WHERE vref = $id";
|
||||
$database->query($q);
|
||||
$database->query("Insert into ".TB_PREFIX."admin_log values (0,".$_SESSION['id'].",'Changed troop anmount in village <a href=\'admin.php?p=village&did=$id\'>$id</a> ',".time().")");
|
||||
|
||||
header("Location: ../../../Admin/admin.php?p=village&did=".$id."&ab");
|
||||
|
||||
?>
|
||||
@@ -1,105 +1,37 @@
|
||||
<?php
|
||||
|
||||
#################################################################################
|
||||
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
||||
## --------------------------------------------------------------------------- ##
|
||||
## Filename addTroops.php ##
|
||||
## Developed by: Dzoki & Advocatie ##
|
||||
## License: TravianX Project ##
|
||||
## Thanks to: Dzoki & itay2277 (edit troops) ##
|
||||
## Copyright: TravianX (c) 2010-2011. All rights reserved. ##
|
||||
## License: TravianZ Project ##
|
||||
## Reworks by: ronix ##
|
||||
## Copyright: TravianZ (c) 2010-2014. All rights reserved. ##
|
||||
## ##
|
||||
#################################################################################
|
||||
if (!isset($_SESSION)) session_start();
|
||||
if($_SESSION['access'] < 9) die("Access Denied: You are not Admin!");
|
||||
include_once("../../Account.php");
|
||||
|
||||
mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
|
||||
mysql_select_db(SQL_DB);
|
||||
if(!isset($_SESSION)) session_start();
|
||||
if($_SESSION['access'] < 9) die(ACCESS_DENIED_ADMIN);
|
||||
include_once("../../Database.php");
|
||||
|
||||
$id = $_POST['id'];
|
||||
$village = $database->getVillage($id);
|
||||
$user = $database->getUserArray($village['owner'],1);
|
||||
$coor = $database->getCoor($village['wref']);
|
||||
$varray = $database->getProfileVillages($village['owner']);
|
||||
$type = $database->getVillageType($village['wref']);
|
||||
$fdata = $database->getResourceLevel($village['wref']);
|
||||
$units = $database->getUnit($village['wref']);
|
||||
$units="";
|
||||
$tribe = $user['tribe'];
|
||||
if($tribe ==1){ $u = 0;}
|
||||
if($tribe ==2){ $u = 10;}
|
||||
if($tribe ==3){ $u = 20;}
|
||||
if($tribe ==4){ $u = 30;}
|
||||
if($tribe ==5){ $u = 40;}
|
||||
if($tribe ==6){ $u = 50;}
|
||||
|
||||
$u1 = $_POST['u1'];
|
||||
$u2 = $_POST['u2'];
|
||||
$u3 = $_POST['u3'];
|
||||
$u4 = $_POST['u4'];
|
||||
$u5 = $_POST['u5'];
|
||||
$u6 = $_POST['u6'];
|
||||
$u7 = $_POST['u7'];
|
||||
$u8 = $_POST['u8'];
|
||||
$u9 = $_POST['u9'];
|
||||
$u10 = $_POST['u10'];
|
||||
////////////////////
|
||||
$u11 = $_POST['u11'];
|
||||
$u12 = $_POST['u12'];
|
||||
$u13 = $_POST['u13'];
|
||||
$u14 = $_POST['u14'];
|
||||
$u15 = $_POST['u15'];
|
||||
$u16 = $_POST['u16'];
|
||||
$u17 = $_POST['u17'];
|
||||
$u18 = $_POST['u18'];
|
||||
$u19 = $_POST['u19'];
|
||||
$u20 = $_POST['u20'];
|
||||
////////////////////
|
||||
$u21 = $_POST['u21'];
|
||||
$u22 = $_POST['u22'];
|
||||
$u23 = $_POST['u23'];
|
||||
$u24 = $_POST['u24'];
|
||||
$u25 = $_POST['u25'];
|
||||
$u26 = $_POST['u26'];
|
||||
$u27 = $_POST['u27'];
|
||||
$u28 = $_POST['u28'];
|
||||
$u29 = $_POST['u29'];
|
||||
$u30 = $_POST['u30'];
|
||||
////////////////////
|
||||
$u31 = $_POST['u31'];
|
||||
$u32 = $_POST['u32'];
|
||||
$u33 = $_POST['u33'];
|
||||
$u34 = $_POST['u34'];
|
||||
$u35 = $_POST['u35'];
|
||||
$u36 = $_POST['u36'];
|
||||
$u37 = $_POST['u37'];
|
||||
$u38 = $_POST['u38'];
|
||||
$u39 = $_POST['u39'];
|
||||
$u40 = $_POST['u40'];
|
||||
////////////////////
|
||||
$u41 = $_POST['u41'];
|
||||
$u42 = $_POST['u42'];
|
||||
$u43 = $_POST['u43'];
|
||||
$u44 = $_POST['u44'];
|
||||
$u45 = $_POST['u45'];
|
||||
$u46 = $_POST['u46'];
|
||||
$u47 = $_POST['u47'];
|
||||
$u48 = $_POST['u48'];
|
||||
$u49 = $_POST['u49'];
|
||||
$u50 = $_POST['u50'];
|
||||
|
||||
if($user['tribe'] == 1){
|
||||
$q = "UPDATE ".TB_PREFIX."units SET u1 = $u1, u2 = $u2, u3 = $u3, u4 = $u4, u5 = $u5, u6 = $u6, u7 = $u7, u8 = $u8, u9 = $u9, u10 = $u10 WHERE vref = $id";
|
||||
mysql_query($q);
|
||||
} else if($user['tribe'] == 2){
|
||||
$q = "UPDATE ".TB_PREFIX."units SET u11 = '$u11', u12 = '$u12', u13 = '$u13', u14 = '$u14', u15 = '$u15', u16 = '$u16', u17 = '$u17', u18 = '$u18', u19 = '$u19', u20 = '$u20' WHERE vref = $id";
|
||||
mysql_query($q);
|
||||
} else if($user['tribe'] == 3){
|
||||
$q = "UPDATE ".TB_PREFIX."units SET u21 = '$u21', u22 = '$u22', u23 = '$u23', u24 = '$u24', u25 = '$u25', u26 = '$u26', u27 = '$u27', u28 = '$u28', u29 = '$u29', u30 = '$u30' WHERE vref = $id";
|
||||
mysql_query($q);
|
||||
} else if($user['tribe'] == 4){
|
||||
$q = "UPDATE ".TB_PREFIX."units SET u31 = '$u31', u32 = '$u32', u33 = '$u33', u34 = '$u34', u35 = '$u35', u36 = '$u36', u37 = '$u37', u38 = '$u38', u39 = '$u39', u40 = '$u40' WHERE vref = $id";
|
||||
mysql_query($q);
|
||||
} else if($user['tribe'] == 5){
|
||||
$q = "UPDATE ".TB_PREFIX."units SET u41 = '$u41', u42 = '$u42', u43 = '$u43', u44 = '$u44', u45 = '$u45', u46 = '$u46', u47 = '$u47', u48 = '$u48', u49 = '$u49', u50 = '$u50' WHERE vref = $id";
|
||||
mysql_query($q);
|
||||
for($i=1; $i<11; $i++) {
|
||||
$units.="u".($u+$i)."=".$_POST['u'.($u+$i)].(($i < 10) ? ", " : "");
|
||||
}
|
||||
$q = "UPDATE ".TB_PREFIX."units SET ".$units." WHERE vref = $id";
|
||||
$database->query($q);
|
||||
$database->query("Insert into ".TB_PREFIX."admin_log values (0,".$_SESSION['id'].",'Changed troop anmount in village <a href=\'admin.php?p=village&did=$id\'>$id</a> ',".time().")");
|
||||
|
||||
mysql_query("Insert into ".TB_PREFIX."admin_log values (0,".$_SESSION['id'].",'Changed troop anmount in village <a href=\'admin.php?p=village&did=$id\'>$id</a> ',".time().")");
|
||||
|
||||
header("Location: ../../../Admin/admin.php?p=addTroops&did=".$id."&d");
|
||||
|
||||
header("Location: ../../../Admin/admin.php?p=village&did=".$id."&d");
|
||||
?>
|
||||
@@ -1,14 +1,13 @@
|
||||
<?php
|
||||
############################################################################
|
||||
## Filename addUsers.php ##
|
||||
## Created by: KFCSpike ##
|
||||
## Contributors: KFCSpike ##
|
||||
## License: TravianZ Project ##
|
||||
## Copyright: TravianZ (c) 2014. All rights reserved. ##
|
||||
## Filename addUsers.php ##
|
||||
## Created by: KFCSpike ##
|
||||
## Contributors: KFCSpike ##
|
||||
## License: TravianZ Project ##
|
||||
## Copyright: TravianZ (c) 2014. All rights reserved. ##
|
||||
############################################################################
|
||||
|
||||
if (!isset($_SESSION)) session_start();
|
||||
if($_SESSION['access'] < 9) die("Access Denied: You are not Admin!");
|
||||
|
||||
include_once("../../config.php");
|
||||
include_once("../../Session.php");
|
||||
include_once("../../Automation.php");
|
||||
@@ -50,7 +49,7 @@ else
|
||||
// Random passwords disallow admin logging in to use the accounts
|
||||
$password = $generator->generateRandStr(20);
|
||||
|
||||
// Leaving the line below but commented out - could be used to
|
||||
// Leaving the line below but commented out - could be used to
|
||||
// allow admin to log in to the generated accounts and play them
|
||||
// Easily guessed by players so should only be used for testing
|
||||
//$password = $baseName . $i . 'PASS';
|
||||
@@ -72,7 +71,7 @@ else
|
||||
$act = "";
|
||||
|
||||
// Check username not already registered
|
||||
if($database->checkExist($userName,0))
|
||||
if($database->checkExist($userName,0))
|
||||
{
|
||||
// Name already used, do nothing except update $skipped
|
||||
$skipped ++;
|
||||
@@ -81,24 +80,24 @@ else
|
||||
{
|
||||
// Register them and build the village
|
||||
$uid = $database->register($userName, md5($password), $email, $tribe ,$act);
|
||||
if($uid)
|
||||
if($uid)
|
||||
{
|
||||
/*
|
||||
* @TODO
|
||||
*
|
||||
* Allow option to create (random) bigger villages,
|
||||
* upgrade fields, granary, warehouse, wall etc
|
||||
*
|
||||
* Allow option to create (random) troops in some villages
|
||||
*
|
||||
* Don't directly access the DB, create a $database function
|
||||
* where required
|
||||
*/
|
||||
* @TODO
|
||||
*
|
||||
* Allow option to create (random) bigger villages,
|
||||
* upgrade fields, granary, warehouse, wall etc
|
||||
*
|
||||
* Allow option to create (random) troops in some villages
|
||||
*
|
||||
* Don't directly access the DB, create a $database function
|
||||
* where required
|
||||
*/
|
||||
|
||||
// Show the dove in User Profile - will show this even if
|
||||
// beginners protection is not checked
|
||||
// Need a $database function for this
|
||||
// (assuming we don't already have one as creating Natars also updates this way)
|
||||
// Need a $database function for this
|
||||
// (assuming we don't already have one as creating Natars also updates this way)
|
||||
$q = "UPDATE " . TB_PREFIX . "users SET desc2 = '[#0]' WHERE id = $uid";
|
||||
mysql_query($q) or die(mysql_error());
|
||||
|
||||
@@ -109,9 +108,9 @@ else
|
||||
// also used in editProtection.php so assuming no function
|
||||
// already exists
|
||||
$protection = time();
|
||||
mysql_query("UPDATE ".TB_PREFIX."users SET
|
||||
protect = '".$protection."'
|
||||
WHERE id = $uid") or die(mysql_error());
|
||||
mysql_query("UPDATE ".TB_PREFIX."users SET
|
||||
protect = '".$protection."'
|
||||
WHERE id = $uid") or die(mysql_error());
|
||||
}
|
||||
|
||||
$database->updateUserField($uid,"act","",1);
|
||||
@@ -133,4 +132,4 @@ else
|
||||
}
|
||||
header("Location: ../../../Admin/admin.php?p=addUsers&g=OK&bn=$baseName&am=$created&sk=$skipped&bp=$beginnersProtection&tr=$postTribe");
|
||||
}
|
||||
?>
|
||||
?>
|
||||
+532
-29
@@ -16,12 +16,12 @@
|
||||
## Source code: http://www.github.com/ZZJHONS/ZravianX ##
|
||||
## ##
|
||||
#################################################################################
|
||||
if($gameinstall == 1){
|
||||
include("../../GameEngine/config.php");
|
||||
include("../../GameEngine/Data/buidata.php");
|
||||
if(isset($gameinstall) && $gameinstall == 1){
|
||||
include_once("../../GameEngine/config.php");
|
||||
include_once("../../GameEngine/Data/buidata.php");
|
||||
}else{
|
||||
include("../GameEngine/config.php");
|
||||
include("../GameEngine/Data/buidata.php");
|
||||
include_once("../GameEngine/Data/unitdata.php");
|
||||
include_once("../GameEngine/Technology.php");
|
||||
}
|
||||
class adm_DB {
|
||||
var $connection;
|
||||
@@ -201,6 +201,9 @@ class adm_DB {
|
||||
for ($i = 0; $i <= count($villages)-1; $i++) {
|
||||
$this->DelVillage($villages[$i]['wref'], 1);
|
||||
}
|
||||
$q = "DELETE FROM ".TB_PREFIX."hero where uid = $uid";
|
||||
mysql_query($q, $this->connection);
|
||||
|
||||
$name = $database->getUserField($uid,"username",0);
|
||||
mysql_query("Insert into ".TB_PREFIX."admin_log values (0,$ID,'Deleted user <a>$name</a>',".time().")");
|
||||
$q = "DELETE FROM ".TB_PREFIX."users WHERE `id` = $uid;";
|
||||
@@ -227,33 +230,85 @@ class adm_DB {
|
||||
}
|
||||
|
||||
function DelVillage($wref, $mode=0){
|
||||
if($mode==0){
|
||||
$q = "SELECT * FROM ".TB_PREFIX."vdata WHERE `wref` = $wref and capital = 0";
|
||||
global $database;
|
||||
if($mode==0){
|
||||
$q = "SELECT * FROM ".TB_PREFIX."vdata WHERE `wref` = $wref and capital = 0";
|
||||
}else{
|
||||
$q = "SELECT * FROM ".TB_PREFIX."vdata WHERE `wref` = $wref";
|
||||
$q = "SELECT * FROM ".TB_PREFIX."vdata WHERE `wref` = $wref";
|
||||
}
|
||||
$result = mysql_query($q, $this->connection);
|
||||
if(mysql_num_rows($result) > 0){
|
||||
mysql_query("Insert into ".TB_PREFIX."admin_log values (0,".$_SESSION['id'].",'Deleted village <b>$wref</b>',".time().")");
|
||||
$q = "DELETE FROM ".TB_PREFIX."vdata WHERE `wref` = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."units WHERE `vref` = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."bdata WHERE `wid` = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."abdata WHERE `wid` = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."fdata WHERE `vref` = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."training WHERE `vref` = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."movement WHERE `from` = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "UPDATE ".TB_PREFIX."wdata SET `occupied` = '0' WHERE `id` = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
}
|
||||
}
|
||||
$result = mysql_query($q, $this->connection);
|
||||
if(mysql_num_rows($result) > 0){
|
||||
mysql_query("Insert into ".TB_PREFIX."admin_log values (0,".$_SESSION['id'].",'Deleted village <b>$wref</b>',".time().")");
|
||||
|
||||
$database->clearExpansionSlot($wref);
|
||||
|
||||
$q = "DELETE FROM ".TB_PREFIX."abdata where vref = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."bdata where wid = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."market where vref = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."odata where wref = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."research where vref = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."tdata where vref = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."fdata where vref = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."training where vref = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."units where vref = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."farmlist where wref = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
$q = "DELETE FROM ".TB_PREFIX."raidlist where towref = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
|
||||
$q = "DELETE FROM ".TB_PREFIX."movement where `from` = $wref and proc=0";
|
||||
mysql_query($q, $this->connection);
|
||||
|
||||
$getmovement = $database->getMovement(3,$wref,1);
|
||||
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);
|
||||
//$database->setMovementProc($movedata['moveid']);
|
||||
}
|
||||
|
||||
//check return enforcement from del village
|
||||
$this->returnTroops($wref);
|
||||
|
||||
$q = "DELETE FROM ".TB_PREFIX."vdata WHERE `wref` = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
|
||||
if (mysql_affected_rows()>0) {
|
||||
$q = "UPDATE ".TB_PREFIX."wdata set occupied = 0 where id = $wref";
|
||||
mysql_query($q, $this->connection);
|
||||
|
||||
$getprisoners = $database->getPrisoners($wref);
|
||||
foreach($getprisoners as $pris) {
|
||||
$troops = 0;
|
||||
for($i=1;$i<12;$i++){
|
||||
$troops += $pris['t'.$i];
|
||||
}
|
||||
$database->modifyUnit($pris['wref'],array("99o"),array($troops),array(0));
|
||||
$database->deletePrisoners($pris['id']);
|
||||
}
|
||||
$getprisoners = $database->getPrisoners3($wref);
|
||||
foreach($getprisoners as $pris) {
|
||||
$troops = 0;
|
||||
for($i=1;$i<12;$i++){
|
||||
$troops += $pris['t'.$i];
|
||||
}
|
||||
$database->modifyUnit($pris['wref'],array("99o"),array($troops),array(0));
|
||||
$database->deletePrisoners($pris['id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function DelBan($uid,$id){
|
||||
global $database;
|
||||
$name = addslashes($database->getUserField($uid,"username",0));
|
||||
@@ -344,7 +399,455 @@ class adm_DB {
|
||||
return mysql_query($query, $this->connection);
|
||||
}
|
||||
|
||||
public function getTypeLevel($tid,$vid) {
|
||||
global $village,$database;
|
||||
$keyholder = array();
|
||||
|
||||
if($vid == 0) {
|
||||
$resourcearray = $village->resarray;
|
||||
} else {
|
||||
$resourcearray = $database->getResourceLevel($vid);
|
||||
}
|
||||
foreach(array_keys($resourcearray,$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,$resourcearray['f'.$keyholder[$i]]);
|
||||
}
|
||||
foreach ($temparray as $key => $val) {
|
||||
if ($val == max($temparray))
|
||||
$target = $key;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$target = 0;
|
||||
for($i=1;$i<=$element-1;$i++) {
|
||||
if($resourcearray['f'.$keyholder[$i]] > $resourcearray['f'.$keyholder[$target]]) {
|
||||
$target = $i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if($element == 1) {
|
||||
$target = 0;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
if($keyholder[$target] != "") {
|
||||
return $resourcearray['f'.$keyholder[$target]];
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public function procDistanceTime($coor,$thiscoor,$ref,$vid) {
|
||||
global $bid28,$bid14;
|
||||
|
||||
$xdistance = ABS($thiscoor['x'] - $coor['x']);
|
||||
if($xdistance > WORLD_MAX) {
|
||||
$xdistance = (2 * WORLD_MAX + 1) - $xdistance;
|
||||
}
|
||||
$ydistance = ABS($thiscoor['y'] - $coor['y']);
|
||||
if($ydistance > WORLD_MAX) {
|
||||
$ydistance = (2 * WORLD_MAX + 1) - $ydistance;
|
||||
}
|
||||
$distance = SQRT(POW($xdistance,2)+POW($ydistance,2));
|
||||
$speed = $ref;
|
||||
if($this->getTypeLevel(14,$vid) != 0 && $distance >= TS_THRESHOLD) {
|
||||
$speed = $speed * ($bid14[$this->getTypeLevel(14,$vid)]['attri']/100) ;
|
||||
}
|
||||
|
||||
if($speed!=0){
|
||||
return round(($distance/$speed) * 3600 / INCREASE_SPEED);
|
||||
}else{
|
||||
return round($distance * 3600 / INCREASE_SPEED);
|
||||
}
|
||||
}
|
||||
public function returnTroops($wref) {
|
||||
global $database;
|
||||
|
||||
$getenforce=$database->getEnforceVillage($wref,0);
|
||||
|
||||
//if(($enforce['from']==$village->wid) || ($enforce['vref']==$village->wid)){
|
||||
foreach($getenforce as $enforce) {
|
||||
|
||||
$to = $database->getVillage($enforce['from']);
|
||||
$Gtribe = "";
|
||||
if ($database->getUserField($to['owner'],'tribe',0) == '2'){ $Gtribe = "1"; }
|
||||
else if ($database->getUserField($to['owner'],'tribe',0) == '3'){ $Gtribe = "2"; }
|
||||
else if ($database->getUserField($to['owner'],'tribe',0) == '4'){ $Gtribe = "3"; }
|
||||
else if ($database->getUserField($to['owner'],'tribe',0) == '5'){ $Gtribe = "4"; }
|
||||
|
||||
$start = ($database->getUserField($to['owner'],'tribe',0)-1)*10+1;
|
||||
$end = ($database->getUserField($to['owner'],'tribe',0)*10);
|
||||
|
||||
$from = $database->getVillage($enforce['from']);
|
||||
$fromcoor = $database->getCoor($enforce['from']);
|
||||
$tocoor = $database->getCoor($enforce['vref']);
|
||||
$fromCor = array('x'=>$tocoor['x'], 'y'=>$tocoor['y']);
|
||||
$toCor = array('x'=>$fromcoor['x'], 'y'=>$fromcoor['y']);
|
||||
|
||||
$speeds = array();
|
||||
|
||||
//find slowest unit.
|
||||
for($i=$start;$i<=$end;$i++){
|
||||
|
||||
if(intval($enforce['u'.$i]) > 0){
|
||||
if($unitarray) { reset($unitarray); }
|
||||
$unitarray = $GLOBALS["u".$i];
|
||||
$speeds[] = $unitarray['speed'];
|
||||
//echo print_r(array_keys($speeds))."unitspd\n".$i."trib\n";
|
||||
|
||||
|
||||
} else {
|
||||
$enforce['u'.$i]='0';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if( intval($enforce['hero']) > 0){
|
||||
$q = "SELECT * FROM ".TB_PREFIX."hero WHERE uid = ".$from['owner']."";
|
||||
$result = mysql_query($q);
|
||||
$hero_f=mysql_fetch_array($result);
|
||||
$hero_unit=$hero_f['unit'];
|
||||
$speeds[] = $GLOBALS['u'.$hero_unit]['speed'];
|
||||
} else {
|
||||
$enforce['hero']='0';
|
||||
}
|
||||
|
||||
$artefact = count($database->getOwnUniqueArtefactInfo2($from['owner'],2,3,0));
|
||||
$artefact1 = count($database->getOwnUniqueArtefactInfo2($enforce['from'],2,1,1));
|
||||
$artefact2 = count($database->getOwnUniqueArtefactInfo2($from['owner'],2,2,0));
|
||||
if($artefact > 0){
|
||||
$fastertroops = 3;
|
||||
}else if($artefact1 > 0){
|
||||
$fastertroops = 2;
|
||||
}else if($artefact2 > 0){
|
||||
$fastertroops = 1.5;
|
||||
}else{
|
||||
$fastertroops = 1;
|
||||
}
|
||||
$time = round($this->procDistanceTime($fromCor,$toCor,min($speeds),$enforce['from'])/$fastertroops);
|
||||
|
||||
$foolartefact2 = $database->getFoolArtefactInfo(2,$enforce['from'],$from['owner']);
|
||||
if(count($foolartefact2) > 0){
|
||||
foreach($foolartefact2 as $arte){
|
||||
if($arte['bad_effect'] == 1){
|
||||
$time *= $arte['effect2'];
|
||||
}else{
|
||||
$time /= $arte['effect2'];
|
||||
$time = round($time);
|
||||
}
|
||||
}
|
||||
}
|
||||
$reference = $database->addAttack($enforce['from'],$enforce['u'.$start],$enforce['u'.($start+1)],$enforce['u'.($start+2)],$enforce['u'.($start+3)],$enforce['u'.($start+4)],$enforce['u'.($start+5)],$enforce['u'.($start+6)],$enforce['u'.($start+7)],$enforce['u'.($start+8)],$enforce['u'.($start+9)],$enforce['hero'],2,0,0,0,0);
|
||||
$database->addMovement(4,$wref,$enforce['from'],$reference,time(),($time+time()));
|
||||
$database->deleteReinf($enforce['id']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function calculateProduction($wid,$uid,$b1,$b2,$b3,$b4,$fdata,$ocounter,$pop) {
|
||||
global $technology,$database;
|
||||
$normalA = $database->getOwnArtefactInfoByType($wid,4);
|
||||
$largeA = $database->getOwnUniqueArtefactInfo($uid,4,2);
|
||||
$uniqueA = $database->getOwnUniqueArtefactInfo($uid,4,3);
|
||||
$upkeep = $this->getUpkeep($this->getAllUnits($wid),0,$wid,$uid);
|
||||
|
||||
|
||||
$production=array();
|
||||
$production['wood'] = $this->getWoodProd($fdata, $ocounter,$b1);
|
||||
$production['clay'] = $this->getClayProd($fdata, $ocounter,$b2);
|
||||
$production['iron'] = $this->getIronProd($fdata, $ocounter,$b3);
|
||||
if ($uniqueA['size']==3 && $uniqueA['owner']==$uid){
|
||||
$production['crop'] = $this->getCropProd($fdata, $ocounter,$b4)-$pop-(($upkeep)-round($upkeep*0.50));
|
||||
}elseif ($normalA['type']==4 && $normalA['size']==1 && $normalA['owner']==$uid){
|
||||
$production['crop'] = $this->getCropProd($fdata, $ocounter,$b4)-$pop-(($upkeep)-round($upkeep*0.25));
|
||||
}else if ($largeA['size']==2 && $largeA['owner']==$uid){
|
||||
$production['crop'] = $this->getCropProd($fdata, $ocounter,$b4)-$pop-(($upkeep)-round($upkeep*0.25));
|
||||
}else{
|
||||
$production['crop'] = $this->getCropProd($fdata, $ocounter,$b4)-$pop-$upkeep;
|
||||
}
|
||||
return $production;
|
||||
}
|
||||
|
||||
private function getWoodProd($fdata,$ocounter,$b1) {
|
||||
global $bid1,$bid5;
|
||||
$basewood = $sawmill = 0;
|
||||
$woodholder = array();
|
||||
for($i=1;$i<=38;$i++) {
|
||||
if($fdata['f'.$i.'t'] == 1) {
|
||||
array_push($woodholder,'f'.$i);
|
||||
}
|
||||
if($fdata['f'.$i.'t'] == 5) {
|
||||
$sawmill = $fdata['f'.$i];
|
||||
}
|
||||
}
|
||||
for($i=0;$i<=count($woodholder)-1;$i++) { $basewood+= $bid1[$fdata[$woodholder[$i]]]['prod']; }
|
||||
$wood = $basewood + $basewood * 0.25 * $ocounter[0];
|
||||
if($sawmill >= 1) {
|
||||
$wood += $basewood / 100 * $bid5[$sawmill]['attri'];
|
||||
}
|
||||
if($b1 > time()) {
|
||||
$wood *= 1.25;
|
||||
}
|
||||
$wood *= SPEED;
|
||||
return round($wood);
|
||||
}
|
||||
|
||||
private function getClayProd($fdata,$ocounter,$b2) {
|
||||
global $bid2,$bid6,$session;
|
||||
$baseclay = $clay = $brick = 0;
|
||||
$clayholder = array();
|
||||
for($i=1;$i<=38;$i++) {
|
||||
if($fdata['f'.$i.'t'] == 2) {
|
||||
array_push($clayholder,'f'.$i);
|
||||
}
|
||||
if($fdata['f'.$i.'t'] == 6) {
|
||||
$brick = $fdata['f'.$i];
|
||||
}
|
||||
}
|
||||
for($i=0;$i<=count($clayholder)-1;$i++) { $baseclay+= $bid2[$fdata[$clayholder[$i]]]['prod']; }
|
||||
$clay = $baseclay + $baseclay * 0.25 * $ocounter[1];
|
||||
if($brick >= 1) {
|
||||
$clay += $baseclay / 100 * $bid6[$brick]['attri'];
|
||||
}
|
||||
if($b2 > time()) {
|
||||
$clay *= 1.25;
|
||||
}
|
||||
$clay *= SPEED;
|
||||
return round($clay);
|
||||
}
|
||||
|
||||
private function getIronProd($fdata,$ocounter,$b3) {
|
||||
global $bid3,$bid7;
|
||||
$baseiron = $foundry = 0;
|
||||
$ironholder = array();
|
||||
for($i=1;$i<=38;$i++) {
|
||||
if($fdata['f'.$i.'t'] == 3) {
|
||||
array_push($ironholder,'f'.$i);
|
||||
}
|
||||
if($fdata['f'.$i.'t'] == 7) {
|
||||
$foundry = $fdata['f'.$i];
|
||||
}
|
||||
}
|
||||
for($i=0;$i<=count($ironholder)-1;$i++) { $baseiron+= $bid3[$fdata[$ironholder[$i]]]['prod']; }
|
||||
$iron = $baseiron + $baseiron * 0.25 * $ocounter[2];
|
||||
if($foundry >= 1) {
|
||||
$iron += $baseiron / 100 * $bid7[$foundry]['attri'];
|
||||
}
|
||||
if($b3 > time()) {
|
||||
$iron *= 1.25;
|
||||
}
|
||||
$iron *= SPEED;
|
||||
return round($iron);
|
||||
}
|
||||
|
||||
private function getCropProd($fdata,$ocounter,$b4) {
|
||||
global $bid4,$bid8,$bid9;
|
||||
$basecrop = $grainmill = $bakery = 0;
|
||||
$cropholder = array();
|
||||
for($i=1;$i<=38;$i++) {
|
||||
if($fdata['f'.$i.'t'] == 4) {
|
||||
array_push($cropholder,'f'.$i);
|
||||
}
|
||||
if($fdata['f'.$i.'t'] == 8) {
|
||||
$grainmill = $fdata['f'.$i];
|
||||
}
|
||||
if($fdata['f'.$i.'t'] == 9) {
|
||||
$bakery = $fdata['f'.$i];
|
||||
}
|
||||
}
|
||||
for($i=0;$i<=count($cropholder)-1;$i++) { $basecrop+= $bid4[$fdata[$cropholder[$i]]]['prod']; }
|
||||
$crop = $basecrop + $basecrop * 0.25 * $ocounter[3];
|
||||
$jcrop=0;
|
||||
if($grainmill >= 1) $jcrop=$bid8[$grainmill]['attri'];
|
||||
if($bakery >= 1) $jcrop+=$bid9[$bakery]['attri'];
|
||||
$crop += $basecrop /100 * $jcrop;
|
||||
if($b4 > time()) {
|
||||
$crop *= 1.25;
|
||||
}
|
||||
$crop *= SPEED;
|
||||
return round($crop);
|
||||
}
|
||||
|
||||
function getAllUnits($base,$InVillageOnly=False,$mode=0) {
|
||||
global $database;
|
||||
$ownunit = $database->getUnit($base);
|
||||
$ownunit['u99'] -= $ownunit['u99'];
|
||||
$ownunit['u99o'] -= $ownunit['u99o'];
|
||||
$enforcementarray = $database->getEnforceVillage($base,0);
|
||||
if(count($enforcementarray) > 0) {
|
||||
foreach($enforcementarray as $enforce) {
|
||||
for($i=1;$i<=50;$i++) {
|
||||
$ownunit['u'.$i] += $enforce['u'.$i];
|
||||
}
|
||||
$ownunit['hero'] += $enforce['hero'];
|
||||
}
|
||||
}
|
||||
if ($mode==0) {
|
||||
$enforceoasis=$database->getOasisEnforce($base,0);
|
||||
if(count($enforceoasis) > 0) {
|
||||
foreach($enforceoasis as $enforce) {
|
||||
for($i=1;$i<=50;$i++) {
|
||||
$ownunit['u'.$i] += $enforce['u'.$i];
|
||||
}
|
||||
$ownunit['hero'] += $enforce['hero'];
|
||||
}
|
||||
}
|
||||
//$enforcementarray = $database->getEnforceVillage($base,1);
|
||||
$enforceoasis1=$database->getOasisEnforce($base,1);
|
||||
if(count($enforceoasis1) > 0) {
|
||||
foreach($enforceoasis1 as $enforce) {
|
||||
for($i=1;$i<=50;$i++) {
|
||||
$ownunit['u'.$i] += $enforce['u'.$i];
|
||||
}
|
||||
$ownunit['hero'] += $enforce['hero'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$prisoners = $database->getPrisoners($base,1);
|
||||
if(!empty($prisoners)) {
|
||||
foreach($prisoners as $prisoner){
|
||||
$owner = $database->getVillageField($base,"owner");
|
||||
$ownertribe = $database->getUserField($owner,"tribe",0);
|
||||
$start = ($ownertribe-1)*10+1;
|
||||
$end = ($ownertribe*10);
|
||||
for($i=$start;$i<=$end;$i++) {
|
||||
$j = $i-$start+1;
|
||||
$ownunit['u'.$i] += $prisoner['t'.$j];
|
||||
}
|
||||
$ownunit['hero'] += $prisoner['t11'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!$InVillageOnly) {
|
||||
$movement = $database->getVillageMovement($base);
|
||||
if(!empty($movement)) {
|
||||
for($i=1;$i<=50;$i++) {
|
||||
if (isset($movement['u'.$i])) {
|
||||
$ownunit['u'.$i] += $movement['u'.$i];
|
||||
}
|
||||
}
|
||||
$ownunit['hero'] += $movement['hero'];
|
||||
}
|
||||
}
|
||||
return $ownunit;
|
||||
}
|
||||
|
||||
public function getUpkeep($array,$type,$vid,$uid,$prisoners=0) {
|
||||
global $database;
|
||||
$buildarray = array();
|
||||
$buildarray = $database->getResourceLevel($vid);
|
||||
$upkeep = 0;
|
||||
switch($type) {
|
||||
case 0:
|
||||
$start = 1;
|
||||
$end = 50;
|
||||
break;
|
||||
case 1:
|
||||
$start = 1;
|
||||
$end = 10;
|
||||
break;
|
||||
case 2:
|
||||
$start = 11;
|
||||
$end = 20;
|
||||
break;
|
||||
case 3:
|
||||
$start = 21;
|
||||
$end = 30;
|
||||
break;
|
||||
case 4:
|
||||
$start = 31;
|
||||
$end = 40;
|
||||
break;
|
||||
case 5:
|
||||
$start = 41;
|
||||
$end = 50;
|
||||
break;
|
||||
}
|
||||
for($i=$start;$i<=$end;$i++) {
|
||||
$k = $i-$start+1;
|
||||
$unit = "u".$i;
|
||||
$unit2 = "t".$k;
|
||||
global $$unit;
|
||||
$dataarray = $$unit;
|
||||
for($j=19;$j<=38;$j++) {
|
||||
if($buildarray['f'.$j.'t'] == 41) {
|
||||
$horsedrinking = $j;
|
||||
}
|
||||
}
|
||||
if($prisoners == 0){
|
||||
if(isset($horsedrinking)){
|
||||
if(($i==4 && $buildarray['f'.$horsedrinking] >= 10)
|
||||
|| ($i==5 && $buildarray['f'.$horsedrinking] >= 15)
|
||||
|| ($i==6 && $buildarray['f'.$horsedrinking] == 20)) {
|
||||
$upkeep += ($dataarray['pop']-1) * $array[$unit];
|
||||
} else {
|
||||
$upkeep += $dataarray['pop'] * $array[$unit];
|
||||
}}else{
|
||||
$upkeep += $dataarray['pop'] * $array[$unit];
|
||||
}
|
||||
}else{
|
||||
if(isset($horsedrinking)){
|
||||
if(($i==4 && $buildarray['f'.$horsedrinking] >= 10)
|
||||
|| ($i==5 && $buildarray['f'.$horsedrinking] >= 15)
|
||||
|| ($i==6 && $buildarray['f'.$horsedrinking] == 20)) {
|
||||
$upkeep += ($dataarray['pop']-1) * $array[$unit2];
|
||||
} else {
|
||||
$upkeep += $dataarray['pop'] * $array[$unit2];
|
||||
}}else{
|
||||
$upkeep += $dataarray['pop'] * $array[$unit2];
|
||||
}
|
||||
}
|
||||
}
|
||||
// $unit = "hero";
|
||||
// global $$unit;
|
||||
// $dataarray = $$unit;
|
||||
if($prisoners == 0){
|
||||
$upkeep += (isset($array['hero'])? $array['hero'] * 6:0);
|
||||
}else{
|
||||
$upkeep += (isset($array['t11'])? $array['t11'] * 6:0);
|
||||
}
|
||||
$artefact = count($database->getOwnUniqueArtefactInfo2($uid,4,3,0));
|
||||
$artefact1 = count($database->getOwnUniqueArtefactInfo2($vid,4,1,1));
|
||||
$artefact2 = count($database->getOwnUniqueArtefactInfo2($uid,4,2,0));
|
||||
if($artefact > 0){
|
||||
$upkeep /= 2;
|
||||
$upkeep = round($upkeep);
|
||||
}else if($artefact1 > 0){
|
||||
$upkeep /= 2;
|
||||
$upkeep = round($upkeep);
|
||||
}else if($artefact2 > 0){
|
||||
$upkeep /= 4;
|
||||
$upkeep = round($upkeep);
|
||||
$upkeep *= 3;
|
||||
}
|
||||
$foolartefact = $database->getFoolArtefactInfo(4,$vid,$uid);
|
||||
if(count($foolartefact) > 0){
|
||||
foreach($foolartefact as $arte){
|
||||
if($arte['bad_effect'] == 1){
|
||||
$upkeep *= $arte['effect2'];
|
||||
}else{
|
||||
$upkeep /= $arte['effect2'];
|
||||
$upkeep = round($upkeep);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $upkeep;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$admin = new adm_DB;
|
||||
|
||||
Reference in New Issue
Block a user