';
+
\ No newline at end of file
diff --git a/Admin/Templates/editResources.tpl b/Admin/Templates/editResources.tpl
index c51e60a5..f71c1522 100644
--- a/Admin/Templates/editResources.tpl
+++ b/Admin/Templates/editResources.tpl
@@ -10,16 +10,16 @@
#################################################################################
$id = $_GET['did'];
-$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']);
if(isset($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']);
+
include("search2.tpl"); ?>
-
5";
}
-if ($check1=="" && $check2=="") {$criteria="WHERE tribe NOT IN(1,2,3,4,5)";}
+if ($check1=="" && $check2=="") {$criteria="WHERE tribe=0)";}
?>
diff --git a/Admin/Templates/troopUpgrades.tpl b/Admin/Templates/troopUpgrades.tpl
index 8bb8b385..48967188 100644
--- a/Admin/Templates/troopUpgrades.tpl
+++ b/Admin/Templates/troopUpgrades.tpl
@@ -1,3 +1,6 @@
+
@@ -15,6 +18,10 @@
if($tribe ==1){ $img = ""; }
if($tribe ==2){ $img = "1";}
if($tribe ==3){ $img = "2";}
+ if($tribe ==4){ $img = "3";}
+ if($tribe ==5){ $img = "4";}
+ if($tribe ==6){ $img = "5";}
+
for($i=1; $i<9; $i++)
{
echo ' | ';
@@ -32,14 +39,26 @@
##A
for($i=1; $i<9; $i++)
{
- echo ''.$aupgrades['$i.'].' | ';
+ if($tribe==5) { $abtech['a'.$i]="?"; $abtech['b'.$i]="?";}
+ echo ''.$abtech['a'.$i].' | ';
} ##B
for($i=1; $i<9; $i++)
{
- echo ''.$bupgrades['$i'].' | ';
+ echo ''.$abtech['b'.$i].' | ';
}
?>
-
Edit Troop Upgrades
\ No newline at end of file
+ Upgrades Troops';}
+ else { echo '
Upgrades Troops';}
+ }
+ if(isset($_GET['ab'])){
+ echo '
AB Tech Troops upgrades
';
+ }
+ ?>
+
+
\ No newline at end of file
diff --git a/Admin/Templates/troops.tpl b/Admin/Templates/troops.tpl
index 17d1db4e..8533977d 100644
--- a/Admin/Templates/troops.tpl
+++ b/Admin/Templates/troops.tpl
@@ -271,6 +271,8 @@
if($_SESSION['access'] == ADMIN)
{
echo '
Edit Troops';
+ if(isset($_GET['d'])){
+ echo '
Troops edited
';
+ }
}
-
?>
\ No newline at end of file
diff --git a/Admin/Templates/village.tpl b/Admin/Templates/village.tpl
index 8646b4ee..fb28ff62 100644
--- a/Admin/Templates/village.tpl
+++ b/Admin/Templates/village.tpl
@@ -6,10 +6,11 @@
## Developed by: Dzoki & Advocatie ##
## License: TravianX Project ##
## Thanks to: Dzoki & itay2277(Edit some additions) ##
-## Copyright: TravianX (c) 2010-2011. All rights reserved. ##
+## Fix by: ronix (some additions) ##
+## Copyright: TravianZ (c) 2010-2014. All rights reserved. ##
## Improved: aggenkeech ##
#################################################################################
-error_reporting(0);
+if($_SESSION['access'] < 9) die("Access Denied: You are not Admin!");
$id = $_GET['did'];
if(isset($id))
{
@@ -20,6 +21,7 @@ if(isset($id))
$type = $database->getVillageType($village['wref']);
$fdata = $database->getResourceLevel($village['wref']);
$units = $database->getUnit($village['wref']);
+ $abtech = $database->getABTech($id); // Armory/blacksmith level
if($type == 1){ $typ = array(3,3,3,9); }
elseif($type == 2){ $typ = array(3,4,5,6); }
elseif($type == 3){ $typ = array(4,4,4,6); }
@@ -32,14 +34,31 @@ if(isset($id))
elseif($type == 10){ $typ = array(3,5,4,6); }
elseif($type == 11){ $typ = array(4,5,3,6); }
elseif($type == 12){ $typ = array(5,4,3,6); }
- $refreshicon = "

";
+ $ocounter = array();
+ $wood = $clay = $iron =$crop = 0;
+ $q = "SELECT o.*, w.x, w.y FROM ".TB_PREFIX."odata AS o LEFT JOIN ".TB_PREFIX."wdata AS w ON o.wref=w.id WHERE conqured = ".$village['wref'];
+ $result = $database->query_return($q);
+ if(count($result) >0)
+ {
+ foreach($result as $row)
+ {
+ $type = $row['type'];
+ if($type==1) { $type = '

+ 25%'; $wood+=1;}
+ elseif($type==2) { $type = '

+ 25%'; $wood+=1;}
+ elseif($type==3) { $type = '

+ 25%

+ 25%'; $wood+=1; $crop+=1;}
+ elseif($type==4) { $type = '

+ 25%'; $clay+=1;}
+ elseif($type==5) { $type = '

+ 25%'; $clay+=1;}
+ elseif($type==6) { $type = '

+ 25%

+ 25%'; $clay+=1;$crop+=1;}
+ elseif($type==7) { $type = '

+ 25%'; $iron+=1;}
+ elseif($type==8) { $type = '

+ 25%'; $iron+=1;}
+ elseif($type==9) { $type = '

+ 25%

+ 25%'; $iron+=1; $crop+=1;}
+ elseif($type==10){ $type = '

+ 25%'; $crop+=1;}
+ elseif($type==11){ $type = '

+ 25%'; $crop+=1;}
+ elseif($type==12){ $type = '

+ 50%'; $crop+=2;}
+ }
+ }
+ $ocounter = array($wood,$clay,$iron,$crop);
+ $production=$admin->calculateProduction($id,$user['id'],$user['b1'],$user['b2'],$user['b3'],$user['b4'],$fdata, $ocounter, $village['pop']);
$refreshiconfrm = "data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAAkAAAAKCAIAAADpZ+PpAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEQSURBVChTY/gPBkevHfRrtjMsU9bJ05+5eylE
@@ -48,6 +67,8 @@ if(isset($id))
91l+gRNDLzw6f+nepcsPrl14cPXW8wcMWqVaEYdtPdZYubUHww0AMs5cusygU68UtVUr87CPWbdd
9Ly83TcO7Lq2I7ozoXfZTAalCjWZemnlaYo2u0wVFkoJdwoyZDOZNDi//vqRwbkjac+dC827p2h3
Gyh3S6m0a0Qszrnz6RnQWAAxV5tT/VAiNQAAAABJRU5ErkJggg==";
+ $refreshicon = "

";
+
class Generator
{
public function getMapCheck($wref)
@@ -56,6 +77,7 @@ if(isset($id))
}
};
$generator = new Generator;
+
if($village and $user)
{
include("search2.tpl"); ?>
@@ -98,7 +120,7 @@ if(isset($id))
| Coordinates: |
- (|) |
+ () |
| Village ID |
@@ -129,22 +151,12 @@ if(isset($id))
- | Resources |
+ Resources  |
| Resource |
-
@@ -152,28 +164,24 @@ if(isset($id))
Lumber |
|
|
- ??? |
-  |
+ |
Clay |
|
- ??? |
-  |
+ |
Iron |
|
- ??? |
-  |
+ |
Crop |
|
|
- ??? |
-  |
+ |
@@ -225,7 +233,7 @@ if(isset($id))
- | Oases |
+ Oasis |
|
@@ -237,72 +245,21 @@ if(isset($id))
getOasis($id);
- $oases = count($oasisarray);
- for($o=0; $o<$oases; $o++)
+ if(count($result) >0)
{
- $oasiscoor = $database->getCoor($oasisarray['$o']['wref']);
- $type = $oasisarray['type'];
- if($type==1) { $type = '
+ 25%'; }
- elseif($type==2) { $type = '
+ 25%'; }
- elseif($type==3) { $type = '
+ 25%
+ 25%'; }
- elseif($type==4) { $type = '
+ 25%'; }
- elseif($type==5) { $type = '
+ 25%'; }
- elseif($type==6) { $type = '
+ 25%
+ 25%'; }
- elseif($type==7) { $type = '
+ 25%'; }
- elseif($type==8) { $type = '
+ 25%'; }
- elseif($type==9) { $type = '
+ 25%
+ 25%'; }
- elseif($type==10){ $type = '
+ 25%'; }
- elseif($type==11){ $type = '
+ 25%'; }
- elseif($type==12){ $type = '
+ 50%'; }
- echo '
-
- |
- '.$oasisarray['name'].' |
- ('.$oasiscoor['x'].'|'.$oasiscoor['y'].') |
- '.$oasisarray['loyalty'].' |
- '.$type.' |
-
';
- } */
- ?>
- getOasis($village['wref']);
- $isthere = count($oasisarray);
- if($isthere >0)
- {
- $query = "SELECT * FROM ".TB_PREFIX."odata WHERE conqured = ".$village['wref']."";
- $result = mysql_query($query);
- while($row = mysql_fetch_assoc($result))
+ foreach($result as $row)
{
- $oasiswref = $row['wref'];
- $oasisx = mysql_result(mysql_query("SELECT x FROM ".TB_PREFIX."wdata WHERE id = ".$oasiswref.""), 0);
- $oasisy = mysql_result(mysql_query("SELECT y FROM ".TB_PREFIX."wdata WHERE id = ".$oasiswref.""), 0);
-
- $type = $row['type'];
- if($type==1) { $type = '
+ 25%'; }
- elseif($type==2) { $type = '
+ 25%'; }
- elseif($type==3) { $type = '
+ 25%
+ 25%'; }
- elseif($type==4) { $type = '
+ 25%'; }
- elseif($type==5) { $type = '
+ 25%'; }
- elseif($type==6) { $type = '
+ 25%
+ 25%'; }
- elseif($type==7) { $type = '
+ 25%'; }
- elseif($type==8) { $type = '
+ 25%'; }
- elseif($type==9) { $type = '
+ 25%
+ 25%'; }
- elseif($type==10){ $type = '
+ 25%'; }
- elseif($type==11){ $type = '
+ 25%'; }
- elseif($type==12){ $type = '
+ 50%'; }
echo "
-  |
+  |
".$row['name']." |
- getMapCheck($row['wref'])."\" target=\"blank\">(".$oasisx."|".$oasisy.") |
+ getMapCheck($row['wref'])."\" target=\"blank\">(".$row['x']."|".$row['y'].") |
".$row['loyalty']."% |
$type |
";
- } ##".$row['wood']."  ".$row['clay']."  ".$row['iron']."  ".$row['crop']."  |
+ }
}
- elseif($isthere ==0)
+ elseif($result ==0)
{
echo 'This village has no oases | ';
}
@@ -315,7 +272,7 @@ if(isset($id))
?>
@@ -332,7 +289,7 @@ if(isset($id))
?>
-
-
+
@@ -408,48 +365,6 @@ if(isset($id))
-
-
-
-
-
-
-
-
-
-
-
@@ -500,4 +415,4 @@ else
include("404.tpl");
}
}
-?>
+?>
\ No newline at end of file
diff --git a/Admin/admin.php b/Admin/admin.php
index 49a94e09..4a29c2f2 100644
--- a/Admin/admin.php
+++ b/Admin/admin.php
@@ -11,11 +11,10 @@
#################################################################################
session_start();
-
include_once("../GameEngine/Database.php");
+include_once ("../GameEngine/Lang/" . LANG . ".php");
include_once("../GameEngine/Admin/database.php");
-include_once("../GameEngine/Data/buidata.php");
-include_once ("../GameEngine/Lang/" . LANG . ".php");
+include_once("../GameEngine/Data/buidata.php");
class timeFormatGenerator
{
diff --git a/GameEngine/Admin/Mods/addABTroops.php b/GameEngine/Admin/Mods/addABTroops.php
new file mode 100644
index 00000000..ba592bf5
--- /dev/null
+++ b/GameEngine/Admin/Mods/addABTroops.php
@@ -0,0 +1,32 @@
+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 $id ',".time().")");
+
+header("Location: ../../../Admin/admin.php?p=village&did=".$id."&ab");
+
+?>
\ No newline at end of file
diff --git a/GameEngine/Admin/Mods/addTroops.php b/GameEngine/Admin/Mods/addTroops.php
index 21f14b1e..a04a19fc 100644
--- a/GameEngine/Admin/Mods/addTroops.php
+++ b/GameEngine/Admin/Mods/addTroops.php
@@ -1,105 +1,37 @@
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 $id ',".time().")");
-mysql_query("Insert into ".TB_PREFIX."admin_log values (0,".$_SESSION['id'].",'Changed troop anmount in village $id ',".time().")");
-
-header("Location: ../../../Admin/admin.php?p=addTroops&did=".$id."&d");
-
+header("Location: ../../../Admin/admin.php?p=village&did=".$id."&d");
?>
\ No newline at end of file
diff --git a/GameEngine/Admin/Mods/addUsers.php b/GameEngine/Admin/Mods/addUsers.php
index e5fdda85..bc6996ad 100644
--- a/GameEngine/Admin/Mods/addUsers.php
+++ b/GameEngine/Admin/Mods/addUsers.php
@@ -1,14 +1,13 @@
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");
}
-?>
+?>
\ No newline at end of file
diff --git a/GameEngine/Admin/database.php b/GameEngine/Admin/database.php
index e5ee7b24..3604562b 100644
--- a/GameEngine/Admin/database.php
+++ b/GameEngine/Admin/database.php
@@ -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 $name',".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 $wref',".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 $wref',".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;