From 33368238d9b6add902fe27df914c2ee5dc7f436a Mon Sep 17 00:00:00 2001 From: Shadow Date: Sun, 17 Nov 2013 09:26:36 +0200 Subject: [PATCH] Update database.php --- Admin/database.php | 263 +++++++++++++++++++++++++++++++-------------- 1 file changed, 183 insertions(+), 80 deletions(-) diff --git a/Admin/database.php b/Admin/database.php index e5ee7b24..605a4139 100644 --- a/Admin/database.php +++ b/Admin/database.php @@ -17,11 +17,14 @@ ## ## ################################################################################# if($gameinstall == 1){ -include("../../GameEngine/config.php"); -include("../../GameEngine/Data/buidata.php"); +include_once("../../GameEngine/config.php"); +include_once("../../GameEngine/Data/buidata.php"); }else{ -include("../GameEngine/config.php"); -include("../GameEngine/Data/buidata.php"); +include_once("../GameEngine/config.php"); +include_once("../GameEngine/Data/buidata.php"); +include_once("../GameEngine/Data/unitdata.php"); +include_once("../GameEngine/Technology.php"); +include_once("../GameEngine/Units.php"); } class adm_DB { var $connection; @@ -52,7 +55,6 @@ class adm_DB { for ($i = 0; $i <= count($villages)-1; $i++) { $vid = $villages[$i]['wref']; $this->recountPop($vid); - $this->recountCP($vid); } } @@ -61,30 +63,15 @@ class adm_DB { $fdata = $database->getResourceLevel($vid); $popTot = 0; for ($i = 1; $i <= 40; $i++) { - $lvl = $fdata["f".$i]; - $building = $fdata["f".$i."t"]; - if($building){ + $lvl = $fdata["f".$i]; + $building = $fdata["f".$i."t"]; + if($building){ $popTot += $this->buildingPOP($building,$lvl); - } + } } $q = "UPDATE ".TB_PREFIX."vdata set pop = $popTot where wref = $vid"; mysql_query($q, $this->connection); } - - function recountCP($vid){ - global $database; - $fdata = $database->getResourceLevel($vid); - $popTot = 0; - for ($i = 1; $i <= 40; $i++) { - $lvl = $fdata["f".$i]; - $building = $fdata["f".$i."t"]; - if($building){ - $popTot += $this->buildingCP($building,$lvl); - } - } - $q = "UPDATE ".TB_PREFIX."vdata set cp = $popTot where wref = $vid"; - mysql_query($q, $this->connection); - } function buildingPOP($f,$lvl){ $name = "bid".$f; @@ -96,18 +83,6 @@ class adm_DB { } return $popT; } - - function buildingCP($f,$lvl){ - $name = "bid".$f; - global $$name; - $popT = 0; - $dataarray = $$name; - - for ($i = 0; $i <= $lvl; $i++) { - $popT += $dataarray[$i]['cp']; - } - return $popT; - } function getWref($x,$y) { $q = "SELECT id FROM ".TB_PREFIX."wdata where x = $x and y = $y"; @@ -193,19 +168,22 @@ class adm_DB { mysql_query($q, $this->connection); } - function DelPlayer($uid,$pass){ - global $database; - $ID = $_SESSION['id'];//$database->getUserField($_SESSION['username'],'id',1); - if($this->CheckPass($pass,$ID)){ - $villages = $database->getProfileVillages($uid); - for ($i = 0; $i <= count($villages)-1; $i++) { - $this->DelVillage($villages[$i]['wref'], 1); - } - $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;"; - mysql_query($q, $this->connection); - } + function DelPlayer($uid,$pass){ + global $database; + $ID = $_SESSION['id']; + if($this->CheckPass($pass,$ID)){ + $villages = $database->getProfileVillages($uid); + 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;"; + mysql_query($q, $this->connection); + } } function getUserActive() { @@ -226,37 +204,162 @@ class adm_DB { } } - function DelVillage($wref, $mode=0){ - 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"; - } - $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); - } - } + function DelVillage($wref, $mode=0){ + global $database, $units; + 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"; + } + $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 + $units->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']); + } + } + } +} + + 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); + } + } function DelBan($uid,$id){ global $database; - $name = addslashes($database->getUserField($uid,"username",0)); + $name = $database->getUserField($uid,"username",0); mysql_query("Insert into ".TB_PREFIX."admin_log values (0,".$_SESSION['id'].",'Unbanned user $name',".time().")"); $q = "UPDATE ".TB_PREFIX."users SET `access` = '".USER."' WHERE `id` = $uid;"; mysql_query($q, $this->connection); @@ -266,13 +369,13 @@ class adm_DB { function AddBan($uid,$end,$reason){ global $database; - $name = addslashes($database->getUserField($uid,"username",0)); + $name = $database->getUserField($uid,"username",0); mysql_query("Insert into ".TB_PREFIX."admin_log values (0,".$_SESSION['id'].",'Banned user $name',".time().")"); $q = "UPDATE ".TB_PREFIX."users SET `access` = '0' WHERE `id` = $uid;"; mysql_query($q, $this->connection); $time = time(); $admin = $_SESSION['id']; //$database->getUserField($_SESSION['username'],'id',1); - $name = addslashes($database->getUserField($uid,'username',0)); + $name = $database->getUserField($uid,'username',0); $q = "INSERT INTO ".TB_PREFIX."banlist (`uid`, `name`, `reason`, `time`, `end`, `admin`, `active`) VALUES ($uid, '$name' , '$reason', '$time', '$end', '$admin', '1');"; mysql_query($q, $this->connection); } @@ -349,4 +452,4 @@ class adm_DB { $admin = new adm_DB; include("function.php"); -?> \ No newline at end of file +?>