#!/usr/bin/php -q
<?
include("const.php");
include(
"funcs.php");

$startmicrotime getmicrotime();

function 
clanPoints($orderclause$magnitude) {
    global 
$playerdb$clanpts;
    
$count 20 $magnitude;
    
$listing dbquery("SELECT clan FROM $playerdb ORDER BY $orderclause LIMIT 20;");
    while (
$item mysql_fetch_array($listing)) {
        
$clanpts["$item[clan]"] += $count;
        
$count -= $magnitude;
    }
}

if ((
$REQUEST_URI) && ($giveturn_pass != "-------e")) {
    
HTMLbeginfull("Error");
    print 
"Access forbidden!<br>\n";
    
HTMLend();
    exit;
}
/**/
if (!$link = @mysql_connect($dbhost$dbuser$dbpass)) {
    print 
"Error! Database unavailable!\n";
    exit;
}
$tttime time();
$time time();
mysql_select_db($dbname);
$hour date("H"$tttime);
$min date("i"$tttime);
$wday date("w");
$theme loadaTheme();

if (
$lockdb) {
    print 
"Database is currently locked! No turns given...\n";
    
// so everyone doesnt get deleted when turns start running
    
dbquery("UPDATE $playerdb SET idle=$time;");
} else {
    
$server mysql_fetch_array(dbquery("SELECT * FROM servers WHERE name='$config[server]';"));
    
dbquery("UPDATE servers SET turns=(turns+1) WHERE name='$config[server]';");
    print 
"$datetime: Processing turns...";

    if ((
$server[turns] * $turnsper) % 450 $turnsper) {
        
// News ----------------------------------------------------------------------------------------------
        
$warlords dbquery("SELECT land,networth,empire,num,lrank,rank,lnetworth,idle,disabled FROM $playerdb ORDER BY networth DESC;");
        
$news "<div>News Last Generated " date('r') . "</div>\n";
        while (
$warlord mysql_fetch_array($warlords)) {
            if ((
$warlord[land] > 0) && ($warlord[disabled] == 0)) {
                if (
$warlord[rank] <= round(0.2913 pow($warlord[lrank], 1.0655)))//0.2913x1.0655
                    
$news .= "<div class='cgood'>$warlord[empire] (#$warlord[num]) has risen from $warlord[lrank] to $warlord[rank].</div>\n";
                else if (
$warlord[rank] <= round(0.4301 pow($warlord[lrank], 1.1689)))
                    
$news .= "<div>$warlord[empire] (#$warlord[num]) has risen from $warlord[lrank] to $warlord[rank].</div>\n";
                if (
$warlord[networth] >= round(1.1435 $warlord[lnetworth] + 6000000))
                    
$news .= "<div class='cgood'>$warlord[empire] (#$warlord[num]) has increased their networth by $" commas($warlord[networth] - $warlord[lnetworth]) . "</div>";
                if (
$warlord[networth] <= round(0.6089 $warlord[lnetworth] - 2000000))
                    
$news .= "<div class='cbad'>$warlord[empire] (#$warlord[num]) has been knocked down by $" commas($warlord[lnetworth] - $warlord[networth]) . "</div>";
                
//dbquery("UPDATE $playerdb SET lrank = $warlord[rank], lnetworth = $warlord[networth] WHERE num = $warlord[num];");
            
}
            if ((
$warlord[land] == 0) && ($warlord[idle] > time() - (3600 24)))
                
$news .= "<div class='cbad'>$warlord[empire] (#$warlord[num]) died.</div>\n";
        }
        unset(
$warlord$warlords);
        
$server[news] = $news;
        if (
dbquery("UPDATE servers SET news=\"$news\" WHERE name='$config[server]';"))
            print 
"News Saved!";
        
dbquery("UPDATE $playerdb SET lrank = rank, lnetworth = networth WHERE land > 0;");
    }

    if ((
$server[reset] <= $time) && ($server[round_name] != "") && ($server[reset] > 0)) {
        print 
"time to reset!<br>";
        
$r_name $server[round_name];

        
updateRankings();
        
updateNetworths();


        
$lr "";
        
$lr .= $config[servname] . "<br><br>";

        
$lr .= sqleval("SELECT COUNT(*) FROM $playerdb WHERE turnsused > 5 AND disabled = 0 AND land > 0 AND idle > " . (time() - (3600 24 14)) . ";") . " of the " sqleval("SELECT COUNT(*) FROM $playerdb;") . " Warlords in the game are considered active.<br><br>";

        
$lr .= sqleval("SELECT SUM(kills) FROM $playerdb;") . " Warlords have been destroyed, and " . (sqleval("SELECT COUNT(*) FROM $playerdb WHERE land=0;") - $killed) . " Warlords have been abandoned.<br>";
        
$lr .= sqleval("SELECT COUNT(*) FROM $playerdb WHERE disabled=3;") . " accounts have been disabled by Administration.<br>";
        
$lr .= "There are " sqleval("SELECT COUNT(*) FROM $clandb WHERE members > 0;") . " active Clans.<br><br>";

        
$topof array_merge($tplst, array("cash""wizards""runes""land""offtotal""deftotal"));
        
$top dbquery("SELECT rank, empire, num, land, networth FROM $playerdb WHERE rank <= " ceil(count($topof)) . " ORDER BY rank ASC;");
        while (
$player mysql_fetch_array($top)) {
            
$lr .= $player[rank] . ". " $player[empire] . " (#" $player[num] . ")<br>";
            
$lr .= "$" commas($player[networth]) . " with " commas($player[land]) . " " $cterms[acres] . "<br><br>";
        }

        
$uera loadEra(1);
        
$uera[cash] = $cterms[cash];
        
$uera[land] = $cterms[land];
        
$uera[offtotal] = "Total Offenses";
        
$uera[deftotal] = "Total Defenses";

        while (list(
$key$val) = each($topof)) {
            
$player mysql_fetch_array(dbquery("SELECT empire, num, $val FROM $playerdb WHERE land > 0 AND disabled = 0 ORDER BY $val DESC LIMIT 1;"));


            
$lr .= "Most " $uera[$val] . "<br>";
            
$lr .= $player[empire] . " (#" $player[num] . ")<br>";
            
$lr .= commas($player[$val]) . " " $uera[$val];
            
$lr .= "<br><br>";
        }

        
executeReset($r_name);

        
dbquery("UPDATE servers SET last_round='$lr' WHERE name='$config[server]';");

        
dbquery("UPDATE servers SET reset=0,round_name=\"\",last_round='$lr' WHERE name='$config[server]';");
        
dbquery("UPDATE $themedb SET signups=0;");
    }

    if (
$min 10) {

        if (
$hour == 12) {

            if (
$theme[storehouse]) {
                
$storedgoods dbquery("SELECT id, armtrp, lndtrp, flytrp, seatrp, food, cash, runes FROM storehouse where id>0;");


                while (
$clangoods mysql_fetch_assoc($storedgoods)) {
                    foreach (
$clangoods as $key => $value) {
                        if (
$key != "id") {
                            
$newvalue $value;
                            
$newvalue += $value 0.05;
                            
$newvalue ceil($newvalue);
                            print 
"$key => $value ... $newvalue<br>";
                            
dbquery("UPDATE storehouse SET $key=$newvalue where id=$clangoods[id];");
                        }
                    }
                    print 
"<br>";
                }
            }



            
randomize();
            print 
"Lottery Prize...";
            if (
mt_rand(0100) < 75) {
                
$lotterynum sqleval("SELECT ticket FROM $lotterydb WHERE contest = 0 ORDER BY RAND() LIMIT 1;");
            } else {
                
$lotterynum mt_rand(1sqleval("SELECT num FROM $playerdb ORDER BY num DESC LIMIT 1;"));
            }
            
$jackpot sqleval("SELECT cash FROM $lotterydb WHERE num=0 AND ticket=$tick_curjp AND contest = 0;");
            
$lastjackpot sqleval("SELECT cash FROM $lotterydb WHERE num=0 AND ticket=$tick_lastjp AND contest = 0;");

            
dbquery("UPDATE $lotterydb SET cash=$lotterynum WHERE num=0 AND ticket=$tick_lastnum AND contest = 0;");

            if (
$lastjackpot $jackpot)
                
$lastjackpot $config[jackpot];
            
dbquery("UPDATE $lotterydb SET cash=$jackpot WHERE num=0 AND ticket=$tick_lastjp AND contest = 0;");
            
dbquery("UPDATE $lotterydb SET cash=($jackpot-$lastjackpot) WHERE num=0 AND ticket=$tick_jpgrow AND contest = 0;");

            
$win sqleval("SELECT num FROM $lotterydb WHERE num>0 AND ticket=$lotterynum AND contest = 0;");
            if (
$win) {
                
$winner loadUser($win);
                
addNews(101$winner$winner"money:$jackpot");
                
$winner[cash] += $jackpot;
                
saveUserDataNet($winner"networth cash");
                
dbquery("UPDATE $lotterydb SET cash=$config[jackpot] WHERE num=0 AND ticket=$tick_curjp AND contest = 0;");
            }
            else
                
$win 0;
            
dbquery("UPDATE $lotterydb SET cash=$win WHERE num=0 AND ticket=$tick_lastwin AND contest = 0;");
            if ((
$wday == 1) || ($wday == 3) || ($wday == 5) || ($wday == 6)) {
                
// SKIFF RACES
                
$tteams dbquery("SELECT num, srace, sracewins FROM $playerdb WHERE srace = 1;");
                
$totalpts 0;
                
$teams = array();
                while (
$team mysql_fetch_array($tteams)) {
                    
$pts min(10$team[sracewins]);
                    if (
$team[sracewins] > 100) {
                        
$pts += floor($team[sracewins] / 100);
                    } else if (
$team[sracewins] > 10) {
                        
$pts += floor($team[sracewins] / 10);
                    }
                    
$totalpts += $pts;
                    
$teams["$team[num]"] = $pts;
                }
                
$win mt_rand(0100);
                
$sofar 0;
                while (list(
$key$val) = each($teams)) {
                    if ((
$win >= $sofar) && ($win <= $sofar + ($teams[$key] * 100 $totalpts))) {
                        
$win $key;
                        break;
                    }
                    
$sofar += $teams[$key] * 100 $totalpts;
                }
                
$winnerpool sqleval("SELECT sum(cash) FROM $lotterydb WHERE contest = 1 AND ticket = $win;");
                
$pool sqleval("SELECT sum(cash) FROM $lotterydb WHERE contest = 1;");
                
$wteam[num] = $win;
                
$wteam[clan] = 0;
                
$ssource[num] = 0;
                
$ssource[clan] = 0;
                if (
$pool 0)
                    
addNews(103$ssource$wteam"money:" floor($pool 0.2));
                
dbquery("UPDATE $playerdb SET cash = cash+" floor($pool 0.2) . ", sracewins = sracewins+1 WHERE num = $win;");
                
$pool *= 0.8;
                
$winners dbquery("SELECT * FROM $lotterydb WHERE contest = 1 AND ticket = $win;");
                while (
$winner mysql_fetch_array($winners)) {
                    
dbquery("UPDATE $playerdb SET cash = cash + " floor($pool * ($winner[cash] / $winnerpool)) . " WHERE num = $winner[num];");
                    
$wiplayer[num] = $winner[num];
                    
$wiplayer[clan] = 0;
                    
addNews(104$ssource$wiplayer"money:" floor($pool * ($winner[cash] / $winnerpool)));
                }
                
dbquery("UPDATE $playerdb SET srace = 0 WHERE srace != 0;");
                
dbquery("DELETE FROM $lotterydb WHERE num>0 AND contest = 1;");
                print 
"done! ";
            }

            
dbquery("DELETE FROM $lotterydb WHERE num>0 AND contest = 0;");


            if ((
$wday == 1) || ($wday == 4)) { /// CLAN RANK
                
print "Ranking clans...";
                
$clanpts = array();
                
// Most Troop/Product
                
reset($tplst);
                while (list(
$key$val) = each($tplst))
                    
clanPoints("$val DESC"1);
                
// Most Weasels
                
clanPoints("lndtrp DESC"1);
                
// Most Stoats
                
clanPoints("flytrp DESC"1);
                
// Most Skiffs
                
clanPoints("seatrp DESC"1);
                
// Most Leaders
                
clanPoints("wizards DESC"1);
                
// Most Workers
                
clanPoints("peasants DESC"1);
                
// Most Money
                
clanPoints("cash DESC"1);
                
// Most Leaders/Acre
                
clanPoints("((wizards)/(land)) DESC"1);
                
// Most Towers/Acre
                
clanPoints("((towers)/(land)) DESC"1);
                
// Most Workers/Acre
                
clanPoints("((peasants)/(land)) DESC"1);
                
// Most Rats/NW
                
clanPoints("((armtrp)/(networth)) DESC"1);
                
// Most Weasels/NW
                
clanPoints("((lndtrp)/(networth)) DESC"1);
                
// Most Stoats/NW
                
clanPoints("((flytrp)/(networth)) DESC"1);
                
// Most Skiffs/NW
                
clanPoints("((seatrp)/(networth)) DESC"1);
                
// Most Food/NW
                
clanPoints("((food)/(networth)) DESC"1);
                
// Most Successful Attacks
                
clanPoints("offsucc DESC"2);
                
// Most Successful Defenses
                
clanPoints("defsucc DESC"2);

                
//10 points are given for every time you are marked as an ally.
                
$listing dbquery("SELECT ally1, ally2, ally3 FROM $clandb WHERE members > 0;");
                while (
$item mysql_fetch_array($listing)) {
                    
$ally1 $item[ally1];
                    
$ally2 $item[ally2];
                    
$ally3 $item[ally3];
                    
$clanpts[$ally1] += 10;
                    
$clanpts[$ally2] += 10;
                    
$clanpts[$ally3] += 10;
                }
                while (list(
$clannum$clanrank) = each($clanpts))
                    
dbquery("UPDATE $clandb SET rank = $clanrank WHERE num = $clannum;");
                print 
"done! ";
            }

            
//land farm auto-scout
            
$landfarms dbquery("SELECT * FROM $playerdb WHERE password='farm';");
            while (
$farm mysql_fetch_array($landfarms)) {
                if (
$farm[turns] > 0) {
                    
takeAutoScoutTurns($farm[turns], land$farm);
                    print 
$farm[empire] . " (#" $farm[num] . ") scouted!\n";
                }
            }
        }
        
//dbquery("OPTIMIZE TABLE lottery, market;");    // the only tables that get deleted from

        
dbquery("UPDATE $playerdb SET aidcred=(aidcred+1) WHERE aidcred<$config[aidcred];");
        
dbquery("UPDATE $playerdb SET attacks=(attacks-1) WHERE attacks>0;");
        
//dbquery("UPDATE $playerdb SET attacks=0 WHERE attacks<0;");
        
        
if($theme[vacation] == 0){
            
dbquery("UPDATE $playerdb SET disabled=0 WHERE vacation>0;");
            
dbquery("UPDATE $playerdb SET vacation=0 WHERE vacation>0;");
        }else{
            
dbquery("UPDATE $playerdb SET vacation=(vacation+1) WHERE vacation>0;");
        }
        
        
        
        
dbquery("UPDATE $playerdb SET clantime=(clantime+1) WHERE clantime>0;");
        
dbquery("UPDATE $playerdb SET rations=(rations-1) WHERE rations>0;");

        
// income leakage
        
$incomers dbquery("SELECT num, income FROM $playerdb WHERE income > 0;");

        while (
$inc mysql_fetch_array($incomers)) {
            
$leak floor($inc[income] * 0.05);
            
dbquery("UPDATE $playerdb SET income=income-$leak WHERE num=$inc[num];");
            
dbquery("UPDATE $playerdb SET cash=cash+$leak WHERE num=$inc[num];");
        }
    }
    
    
// land leakage
    //first need current average land in the top ten
    
$landGoal 0;
    
$icount 0;
    
$landCheck dbquery("SELECT rank,land,vacation,disabled FROM $playerdb WHERE vacation < '$config[vacationdelay]' AND disabled = 0 ORDER BY rank LIMIT 10;");
    while(
$iland mysql_fetch_array($landCheck)){
        
$landGoal += $iland[land];
        
$icount += 1;
    }
    
$landGoal 20000 $landGoal $icount;
    print 
"\nAvg Land in the Top 10: " $landGoal;
    
//now, just load vacation'd players
    
$vacant dbquery("SELECT num,land,vacation,homes,shops,industry,barracks,labs,farms,towers,freeland FROM $playerdb WHERE vacation > '$config[vacationdelay]';");
    while(
$vacanteer mysql_fetch_array($vacant)){
        if(
$vacanteer[land] > $landGoal){
            print 
"\n , " $vacanteer[num] . " is on vacation with too much land ["$vacanteer[land] . "]";
            
$toTake 0;
            
$landMod .001;
            
$toTake += ceil($vacanteer[homes]*$landMod);
            
$vacanteer[homes] -= ceil($vacanteer[homes]*$landMod);
            
            
$toTake += ceil($vacanteer[shops]*$landMod);
            
$vacanteer[shops] -= ceil($vacanteer[shops]*$landMod);
            
            
$toTake += ceil($vacanteer[industry]*$landMod);
            
$vacanteer[industry] -= ceil($vacanteer[industry]*$landMod);
            
            
$toTake += ceil($vacanteer[barracks]*$landMod);
            
$vacanteer[barracks] -= ceil($vacanteer[barracks]*$landMod);
            
            
$toTake += ceil($vacanteer[labs]*$landMod);
            
$vacanteer[labs] -= ceil($vacanteer[labs]*$landMod);
            
            
$toTake += ceil($vacanteer[farms]*$landMod);
            
$vacanteer[farms] -= ceil($vacanteer[farms]*$landMod);
            
            
$toTake += ceil($vacanteer[towers]*$landMod);
            
$vacanteer[towers] -= ceil($vacanteer[towers]*$landMod);
            
            
$toTake += ceil($vacanteer[freeland]*$landMod);
            
$vacanteer[freeland] -= ceil($vacanteer[freeland]*$landMod);
            
            
$vacanteer[land] -= $toTake;
            
            print 
" Took " $toTake " acres";

            
saveUserData($vacanteer"land homes shops industry barracks labs farms towers freeland");
            if (
$catchland)
                
dbquery("UPDATE $playerdb SET freeland=$toTake+freeland, land = $toTake+land WHERE password = 'farm' ORDER BY RAND() LIMIT 1;");
                
        }
    }
    
    
//reload landfarm net
    
$allfarm dbquery("SELECT num,password FROM $playerdb WHERE password = 'farm';");
    while(
$afarm mysql_fetch_array($allfarm)){
        
$ifarm loadUser($afarm[num]);
        
saveUserDataNet($ifarm"networth");
    }

    
// leak 3% of extra savings into users cash
    
    
$bank_players dbquery("SELECT num, savings, networth, shops, land, cash FROM $playerdb WHERE land > 0;");
    
    while(
$player mysql_fetch_array($bank_players))
    {
        
//$maxsave = 100 * $player[networth] / calcSizeBonus($player[networth]);
        
$maxsave getMaxSave($player);
        if(
$player[savings] > $maxsave)
        {
            
$leak = ($player[savings] - $maxsave) * 0.03;
            
$player[cash] += $leak;
            
$player[savings] -= $leak;
            
dbquery("UPDATE $playerdb SET cash=$player[cash],savings=$player[savings] WHERE num=$player[num];");
        }
    }

    
dbquery("UPDATE servers SET turns=(turns+1) WHERE name='$config[server]'");

    
dbquery("UPDATE $playerdb SET turns=(turns+$turnsper) WHERE vacation=0 AND disabled<=2;");
    
// the following line fix the stored turns exploit
    
dbquery("UPDATE $playerdb SET turns=(turns+turnsstored),turnsstored=0 WHERE vacation=0 AND disabled<=2 AND turnsstored<$turnsper AND turnsstored>0;");
    
dbquery("UPDATE $playerdb SET turns=(turns+$turnsper),turnsstored=(turnsstored-$turnsper) WHERE vacation=0 AND disabled<=2 AND turnsstored>0;");
    
dbquery("UPDATE $playerdb SET turnsstored=(turnsstored+(turns-$config[maxturns])),turns=$config[maxturns] WHERE turns>$config[maxturns];");
    
dbquery("UPDATE $playerdb SET turnsstored=$config[maxstoredturns] WHERE turnsstored>$config[maxstoredturns];");

    
dbquery("UPDATE $playerdb SET msgcred=(msgcred+1) WHERE msgcred<20;");

    
dbquery("UPDATE $playerdb SET online_chat=0;");

    
dbquery("UPDATE $playerdb SET disabled=1 WHERE vacation>$config[minvacation]+$config[vacationdelay];");

    
reset($trplst);
    while (list(
$key$val) = each($trplst)) {
        
dbquery("UPDATE $playerdb SET bmper$val=(bmper$val-($turnsper*100*(1+shops/land))) WHERE bmper$val > (100*(1+shops/land));");
        
dbquery("UPDATE $playerdb SET bmper$val=0 WHERE bmper$val < (100*(1+shops/land));");
        
dbquery("UPDATE $playerdb SET pmkt_$val=(pmkt_$val+($turnsper*8*(land + barracks))) WHERE pmkt_$val < (250 * (land+(2 * barracks)));");
    }

    
reset($prdlst);
    while (list(
$key$val) = each($prdlst)) {
        
dbquery("UPDATE $playerdb SET pmkt_$val=(pmkt_$val+(50*(land + farms))) WHERE pmkt_$val < (2000 * (land + farms));");
    }
    
dbquery("UPDATE $playerdb SET online=0 WHERE idle<($time-(3600 / $perminutes));"); // set 'em offline after they're idle for 2 turns updates

    
dbquery("UPDATE $playerdb SET idle=$time WHERE password='farm';"); // so the land farms won't idle to death
    
dbquery("UPDATE $playerdb SET idle=$time WHERE emp=1;");

    
// Ladder
    
if ($theme[ladder]) {
        for (
$e 1$e <= 3$e++) {
            if (
mysql_num_rows(dbquery("SELECT num FROM $playerdb WHERE era = $e AND land > 0 AND disabled = 0;")) / mysql_num_rows(dbquery("SELECT num FROM $playerdb WHERE land > 0 AND disabled = 0;")) > 0.2) {
                
//dbquery("UPDATE $playerdb SET laddertime = (laddertime/laddertime)*(laddertime+($perminutes*3)) WHERE era = $e ORDER BY rank ASC LIMIT 10;");
                //dbquery("UPDATE $playerdb SET laddertime = laddertime-($perminutes*3) WHERE era = $e AND laddertime > 0;");
                
dbquery("UPDATE $playerdb SET laddertime = laddertime+$perminutes WHERE era = $e ORDER BY rank ASC LIMIT 10;");
            }
        }
        
$advancers dbquery("SELECT num, empire, era, laddertime FROM $playerdb WHERE laddertime >= (2+(2*(era-1)))*1440;");
        while (
$player mysql_fetch_array($advancers)) {
            
$server[news] .= "<div class=\"cgood\"><b>$player[empire] (#$player[num]) has advanced to the next $cterms[era]!</b></div>";
            if (
$player[era] < 4)
                
dbquery("UPDATE $playerdb SET era = era+1 WHERE num = $player[num];");
            
dbquery("UPDATE $playerdb SET laddertime = 0 WHERE num = $player[num];");
        }
        
dbquery("UPDATE servers SET news=\"$server[news]\" WHERE name='$config[server]';");
    }

    
/* new players must validate their accounts within 48 hours */
    /* you can not idle for more than 7 days unless you are on vacation or disabled */
    /* dead empires get deleted after 3 days */
    /* empires marked for deletion are deleted immediately */
    
if($theme[vacation] == 1){
        
$vacusers dbquery("SELECT * FROM $playerdb WHERE
            (validated=0 AND disabled=1 AND idle<(
$time-86400*2)) OR
            (disabled=0 AND vacation=0 AND land>0 AND idle<(
$time-86400*7))
                ;"
); //1128909796
        
while ($users mysql_fetch_array($vacusers)) {
            print 
"Vacationing user $users[empire] (#$users[num])...\n";

            
$users[disabled] = 1;
            
$users[vacation] = 168;
            
saveUserData($users"disabled vacation");
        }

        unset(
$users$vacusers);
    }
    
$delusers dbquery("SELECT * FROM $playerdb WHERE
            (land=0 AND disabled=1 AND ip!='0.0.0.0' AND idle<(
$time-86400*3)) OR
            (disabled=4)
                ;"
); //1128909796
    
while ($users mysql_fetch_array($delusers)) {
        print 
"Deleting user $users[empire] (#$users[num])...\n";
        if (
$users[clan]) {      // remove user from clan
            
$clan loadClan($users[clan]);
            if (
$clan[founder] == $users[num]) {       // transfer ownership if necessary
                
if ($newf mysql_fetch_array(dbquery("SELECT * FROM $playerdb WHERE clan=$clan[num] AND num!=$users[num] ORDER BY networth DESC;"))) {
                    
dbquery("UPDATE $clandb SET founder=$newf[num] WHERE num=$clan[num];");
                    
addNews(116$newf$newf0);
                }
            }
            
dbquery("UPDATE $clandb SET members=members-1 WHERE num=$clan[num];");
        }
        
dbquery("UPDATE $messagedb SET deleted=1 WHERE src=$users[num] OR dest=$users[num];");
        
// delete any messages to/from that user
        
dbquery("DELETE FROM $marketdb WHERE seller=$users[num];"); // any of the users items on the market
        
dbquery("DELETE FROM $lotterydb WHERE num=$users[num];"); // any lottery tickets
        
$users[name].= ".DEAD." $time "." $users[land] . "." $users[shops] . "." $users[homes] . "." $users[industry] . "." $users[barracks] . "." $users[labs] . "." $users[farms] . "." $users[towers] . "." $users[freeland];
        
$users[username] .= ".DEAD." $time;
        
$users[email] .= ".DEAD." $time;
        
$users[disabled] = $users[validated] = 1;
        
$users[land] = $users[shops] = $users[homes] = $users[industry] = $users[barracks] = $users[labs] = $users[farms] = $users[towers] = $users[freeland] = 0;
        
$users[ip] = "0.0.0.0";
        
$users[clan] = 0;
        
$users[idle] = $time;
        
// and kill the user
        
saveUserDataNet($users"networth name username password email disabled validated land shops homes industry barracks labs farms towers freeland ip clan idle");
    }

    unset(
$users$delusers);

    
$delclans dbquery("SELECT * FROM $clandb WHERE members=0;");
    while (
$clan mysql_fetch_array($delclans)) {    // remove all associations with         // empty clans and make clan
        
print "Deleting clan $clan[name] ($clan[tag])...\n";  // invisible to game
        
dbquery("UPDATE $clandb SET ally1=0 WHERE ally1=$clan[num];");
        
dbquery("UPDATE $clandb SET ally2=0 WHERE ally2=$clan[num];");
        
dbquery("UPDATE $clandb SET ally3=0 WHERE ally3=$clan[num];");
        
dbquery("UPDATE $clandb SET  war1=0 WHERE  war1=$clan[num];");
        
dbquery("UPDATE $clandb SET  war2=0 WHERE  war2=$clan[num];");
        
dbquery("UPDATE $clandb SET  war3=0 WHERE  war3=$clan[num];");
        
dbquery("UPDATE $clandb SET members=-1 WHERE num=$clan[num];");
        
// must keep for news
    
}
    unset(
$clan$delclans);
    print 
"...done!  ";
}
print 
"Updating ranks...";

updateRankings();

print 
"done!\n";

/* * * emperor tracking (must be done after rankings are updated) ** */

if ($theme[emp_tracking]) {

    
$timetoemp $config[emptime] * 3600;
    
$timetounemp $config[unemptime] * 3600;

    
// if its a new emperor, record the start time
    
if (sqleval("SELECT COUNT(*) FROM $playerdb WHERE rank=1 AND emptime=0;") > 0) {
        
dbquery("UPDATE $playerdb SET emptime=$time WHERE rank=1;");
        
dbquery("UPDATE $playerdb SET emptime=0, unemptime=0 WHERE emp!=1 AND rank!=1;");

        
$msg_body "if new emperor";
            
//dbquery("INSERT INTO $messagedb (time,src,dest,msg) VALUE ($time,4,1,\"$msg_body\");");
    
} else if (sqleval("SELECT COUNT(*) FROM $playerdb WHERE emp=0 AND rank=1 AND emptime <= ($time - $timetoemp);") > 0) { // if new emp has reached time-to-emp
        
if (sqleval("SELECT COUNT(*) FROM $playerdb WHERE rank!=1 AND emp=1;")) { // if there was a previous emp
            
$last_emp mysql_fetch_array(dbquery("SELECT num,emptime FROM $playerdb WHERE emp = 1;"));
            
dbquery("UPDATE $empdb SET end_time=$time WHERE player_id=$last_emp[num] ORDER BY id DESC LIMIT 1;");
            
dbquery("UPDATE $playerdb SET emp=0, emptime=0 WHERE num=$last_emp[num];");
            
addNews(107loadUser($last_emp[num]), loadUser($last_emp[num]), 0);
            
$msg_body "emp defeated";
            
//dbquery("INSERT INTO $messagedb (time,src,dest,msg) VALUE ($time,4,1,\"$msg_body\");");
        
}

        
$msg_body "emp risen";
            
//dbquery("INSERT INTO $messagedb (time,src,dest,msg) VALUE ($time,4,1,\"$msg_body\");");
        
$new_emp mysql_fetch_array(dbquery("SELECT num FROM $playerdb WHERE rank=1;"));
        
dbquery("UPDATE $playerdb SET emp=1, emptime=$time WHERE rank=1;");
        
dbquery("INSERT INTO $empdb (player_id, start_time) VALUES ($new_emp[num]$time);");
        
addNews(108loadUser($new_emp[num]), loadUser($new_emp[num]), 0);

        
// restart counter for everyone else
        
dbquery("UPDATE $playerdb SET emptime=0, unemptime=0 WHERE rank!=1;");
    }
    
// if current emperor dropped out of first but made a comeback
    
else if(sqleval("SELECT COUNT(*) FROM $playerdb WHERE emp=1 AND unemptime > 0 AND rank=1;"))
    {
        
$msg_body "emp comeback";
            
//dbquery("INSERT INTO $messagedb (time,src,dest,msg) VALUE ($time,4,1,\"$msg_body\");");
        
dbquery("UPDATE $playerdb SET unemptime=0 WHERE emp=1;");
    }
    
// if the current emperor has reach unemptime
    
else if(sqleval("SELECT COUNT(*) FROM $playerdb WHERE emp=1 AND unemptime <= ($time - $timetounemp) AND unemptime != 0;"))
    {
        
$msg_body "emp reached unemptime";
            
//dbquery("INSERT INTO $messagedb (time,src,dest,msg) VALUE ($time,4,1,\"$msg_body\");");
        
$last_emp mysql_fetch_array(dbquery("SELECT num,emptime FROM $playerdb WHERE emp = 1;"));
        
dbquery("UPDATE $empdb SET end_time=$time WHERE player_id=$last_emp[num] ORDER BY id DESC LIMIT 1;");
        
dbquery("UPDATE $playerdb SET emp=0, emptime=0, unemptime=0 WHERE num=$last_emp[num];");
        
addNews(107loadUser($last_emp[num]), loadUser($last_emp[num]), 0);
    }
    
// if current emp drops out of top 10
    
else if(sqleval("SELECT COUNT(*) FROM $playerdb WHERE emp=1 AND rank>10;"))
    {
        
$msg_body "emp dropped out of top 10";
            
//dbquery("INSERT INTO $messagedb (time,src,dest,msg) VALUE ($time,4,1,\"$msg_body\");");
        
$last_emp mysql_fetch_array(dbquery("SELECT num,emptime FROM $playerdb WHERE emp = 1;"));
        
dbquery("UPDATE $empdb SET end_time=$time WHERE player_id=$last_emp[num] ORDER BY id DESC LIMIT 1;");
        
dbquery("UPDATE $playerdb SET emp=0, emptime=0, unemptime=0 WHERE num=$last_emp[num];");
        
addNews(107loadUser($last_emp[num]), loadUser($last_emp[num]), 0);
    }
    else if(
sqleval("SELECT COUNT(*) FROM $playerdb WHERE emp=1 AND rank !=1 AND unemptime=0;"))
    {
        
dbquery("UPDATE $playerdb SET unemptime=$time WHERE emp=1;");
    }

}

print 
"[Queries: $stats[queries] ... Time: " . (getmicrotime() - $startmicrotime) . "]\n\n";
?>