// Inaktive Clans löschen (Clanräume werden automatisch gelöscht durch Fremdschlüssel)
mysql_query('delete from clan where id NOT IN(SELECT distinct(clan) from user )');
// Räume die Ticker auf (Massivster Datenmüll!!)
mysql_query('DELETE FROM clan_ticker WHERE date <TIMESTAMPADD(day,-7,now())');
mysql_query('DELETE FROM user_ticker WHERE date <TIMESTAMPADD(day,-7,now())');
// Benutze Clan items!!
// Folgende SQL-Anweisung ermittelt mit einer kleinen Hilfsfunktion die Summe der Miete und das Geld des Clans
$mindestchar = 12; // War vorher 40;
$sql = 'SELECT cw.id as clan_train, if(count(ch.id)<'.$mindestchar.','.$mindestchar.',count(ch.id)) * miete as mietkosten, c.id as clan, c.geld as geld from clan_ware cw inner join clan_item ci on cw.item_id = ci.id inner join clan c on cw.clan = c.id inner join user u on u.clan = c.id left join chars ch on ch.clan_train = cw.id and ch.besitzer = u.id group by c.id, cw.id order by c.id';
// SQL-Anweisung, wenn Ungenutzte items nicht beruecksichtigt werden sollen -> 'SELECT ch.clan_train, if(count(ch.id)<40,40,count(ch.id))*mieteasmietkosten,c.idasclan,c.geldasgeldfromuseruinnerjoinclanconu.clan =c.idinnerjoincharschonu.id =ch.besitzerinnerjoinclan_warecwoncw.clan =c.idinnerjoinclan_itemcioncw.item_id =ci.idandch.clan_train =cw.idgroupbyc.id,cw.idorderbyc.id'
// while ($row = mysql_fetch_assoc($clan_kosten)) {
foreach($clan_raum_array as $row){
// print_r($row);
// Ermittle das Vermoegen und die Useranzahl des Clans!
if ($row['mietkosten'] > $row['geld']) {
// Clan is pleite!
// echo 'Clan '.$row['clan'].' is Pleite!';
insertClanTickerMessage($row['clan'], 'Die Miete für die Räume ('.displayMoney($row['mietkosten']).') konnte nicht bezahlt werden!');
} else {
// Clan kann miete bezahlen, also in Trainingsliste aufnehmen
$clans[] = $row['clan'];
// Clan die Miete abziehen
mysql_query('UPDATE clan SET geld = geld - ' . $row['mietkosten'] . ' WHERE id = ' . $row['clan']);
insertClanTickerMessage($row['clan'], 'Die Miete für die Räume ('.displayMoney($row['mietkosten']).') wurde bezahlt!');
}
}
// Ermittle die Kosten fuer die Nutzer (es werden nur Chars beruecksichtigt, die genug TP haben)
$sql = 'select besitzer, user.geld, sum(1/(1+exp(3-level/12)) * nutzung) as nutzkosten from user inner join chars on chars.besitzer = user.id inner join clan_ware on chars.clan_train = clan_ware.id inner join clan_item on clan_ware.item_id = clan_item.id where user.clan = clan_ware.clan and user.clan IN (' . join(',', $clans) . ') and clan_item.tp <= chars.training_points group by besitzer order by besitzer';
$user_kosten = mysql_query($sql);
// echo '<br>'.$sql.'<br>';
$users = array ();
if (count($clans) != 0) {
while ($row = mysql_fetch_assoc($user_kosten)) {
if ($row['nutzkosten'] > $row['geld']) {
// User is pleite!
insertUserTickerMessage($row['besitzer'], 'Die Nutzungsgebühren ('.displayMoney($row['nutzkosten']).') für die Räume konnte nicht bezahlt werden!');
} else {
// User kann Nutzkosten bezahlen, also in Trainingsliste aufnehmen
$users[] = $row['besitzer'];
// Clan die Miete abziehen
mysql_query('UPDATE user SET geld = geld - ' . $row['nutzkosten'] . ' WHERE id = ' . $row['besitzer']);
insertUserTickerMessage($row['besitzer'], 'Die Nutzungsgebühren ('.displayMoney($row['nutzkosten']).') für die Räume wurde bezahlt!');
}
}
$sql = 'Update chars inner join user on chars.besitzer = user.id inner join clan_ware on chars.clan_train = clan_ware.id inner join clan_item on clan_ware.item_id = clan_item.id SET chars.starke = clan_item.staerke + chars.starke, chars.speed = chars.speed + clan_item.geschwindigkeit, chars.verteidigung = chars.verteidigung + clan_item.verteidigung, chars.glueck = chars.glueck + clan_item.glueck, chars.ausdauer = chars.ausdauer + clan_item.ausdauer, chars.training_points = chars.training_points - clan_item.tp WHERE user.clan = clan_ware.clan and chars.besitzer IN(' . join(',', $users) . ') and chars.training_points >= clan_item.tp';
mysql_query("UPDATE chars SET hp='$hp[1],$hp[1]', mp='$mp[1],$mp[1]' WHERE id='$row[id]' LIMIT 1");
} else {
if ($row[training_points] > 1) {
if ($trains[$i] == 'hp' OR $trains[$i] == 'mp') {
if ($trains[$i] == hp) {
$zu[$x] = $hp[1] + 20;
$zu[$x] = "$hp[0],$zu[$x]";
} else if ($trains[$i] == 'mp') {
$zu[$x] = $mp[1] + 10;
$zu[$x] = "$mp[0],$zu[$x]";
}
// echo "UPDATE chars SET $trains[$i]='$zu[$x]', training_points=training_points-2 WHERE id='$row[id]' LIMIT 1<br>";
mysql_query("UPDATE chars SET $trains[$i]='$zu[$x]', training_points=training_points-4 WHERE id='$row[id]' LIMIT 1");
} else {
$event = mysql_fetch_assoc(mysql_query('SELECT CURRENT_TIMESTAMP between TIMESTAMP(\'2009-04-25 00:00:00\') and TIMESTAMP(\'2009-05-02 23:59:59\') as betw'));
$step = 2 + ($event['betw']*3);
$news2 = $trains[$i];
$news[$x] = $row[$news2] + $step;
$step*=2;
$sql = "UPDATE chars SET $news2='$news[$x]', training_points=training_points-$step WHERE id='$row[id]' LIMIT 1";
// echo $sql.'<br>'."\n";
mysql_query($sql);
}
}
}
$x++;
}
mysql_query('DELETE FROM ag_chat where TIMESTAMPDIFF(Hour,zeit,now()) > 48');
mysql_query('DELETE FROM user_activation where TIMESTAMPDIFF(day, registerdate, now()) > 7');
// Loesche inaktive anons :)
mysql_query('DELETE FROM anon_chatter WHERE TIMESTAMPDIFF(day, online, now()) > 35'); // 5 Wochen
$sql = 'Select * from user where TIMESTAMPDIFF(week, online_zeit, now()) > 10 and id > 2 and id not in (SELECT user_id FROM user_gruppe_zuordnung WHERE gruppen_id = 7 AND user_id = id)';