HB/game/cron/classement.php

81 lines
3.2 KiB
PHP
Raw Normal View History

2008-09-20 10:00:00 +00:00
<?php
if(!defined('CRON')) { header('Location: ../'); exit; }
print 'Début de la génération du classement ; il est : '.date('d/m/Y H:i:s');
2008-11-08 11:00:00 +00:00
require_once(_FCORE."../game/cron/class.user.php");
require_once(_FCORE."../game/cron/class.planete.php");
2008-09-20 10:00:00 +00:00
//*
//Classement Joueurs
$bdd->connexion();
$bdd->query("TRUNCATE TABLE $table_classement;");
$users = $bdd->query("SELECT * FROM $table_user;");
$bdd->deconnexion();
2008-11-08 11:00:00 +00:00
foreach($users as $queryUser){
$id_user = $queryUser['id'];
2008-09-20 10:00:00 +00:00
$pointsbat = 0;
$pointsterr = 0;
$pointsvais = 0;
$bdd->connexion();
$planetes = $bdd->query("SELECT * FROM $table_planete WHERE id_user = $id_user;");
$bdd->deconnexion();
2008-11-08 11:00:00 +00:00
//Calcul des points par planète
if (!empty($planetes)) {
foreach($planetes as $planete){
$plan = new Planete($planete, $queryUser);
$pointsbat += $plan->calculerBatiments();
$pointsterr += $plan->calculerTerrestres();
$pointsvais += $plan->calculerVaisseaux();
2008-09-20 10:00:00 +00:00
}
}
2008-11-08 11:00:00 +00:00
//Calcul des points du joueur
$pointstech = $plan->calculerTechnologies();
2008-09-20 10:00:00 +00:00
2008-11-08 11:00:00 +00:00
//Division par 1000
2008-09-20 10:00:00 +00:00
$pointstech /= 1000;
$pointsvais /= 1000;
$pointsterr /= 1000;
$pointsbat /= 1000;
2008-11-08 11:00:00 +00:00
//Calcul des points totaux
2008-09-20 10:00:00 +00:00
$points = $pointsbat + $pointsterr + $pointsvais + $pointstech;
2008-11-08 11:00:00 +00:00
//Mise à jour des points pour le joueur
2008-09-20 10:00:00 +00:00
$bdd->connexion();
$bdd->query("UPDATE $table_user SET points = $points, batiments = $pointsbat, recherches = $pointstech, flotte = $pointsvais, terrestre = $pointsterr WHERE id = $id_user;");
2008-11-08 11:00:00 +00:00
if ($queryUser['auth_level'] < 2 && $queryUser['mv'] < 2) $bdd->query("INSERT INTO $table_classement (id_user, pseudo, points, flottes, terrestres, recherches, batiments) VALUES ($id_user, '".$queryUser['pseudo']."', $points, $pointsvais, $pointsterr, $pointstech, $pointsbat);");
2008-09-20 10:00:00 +00:00
$bdd->deconnexion();
}
2008-11-08 11:00:00 +00:00
$p = 0;
2008-09-20 10:00:00 +00:00
$bdd->connexion();
$classement = $bdd->query("SELECT U.id, U.auth_level FROM $table_classement C INNER JOIN $table_user U ON C.id_user = U.id ORDER BY C.points DESC;");
2008-11-08 11:00:00 +00:00
foreach($classement as $ligne){
if ($ligne['auth_level'] < 2) {
2008-09-20 10:00:00 +00:00
$p++;
2008-11-08 11:00:00 +00:00
$bdd->query("UPDATE $table_user SET place_points = $p WHERE id = ".$ligne['id']);
2008-09-20 10:00:00 +00:00
}
2008-11-08 11:00:00 +00:00
else $bdd->query("UPDATE $table_user SET place_points = 0 WHERE id = ".$ligne['id']);
2008-09-20 10:00:00 +00:00
}
2008-11-08 11:00:00 +00:00
2008-09-20 10:00:00 +00:00
$bdd->deconnexion();
//*/
print '<br />Fin de la génération du classement joueur ; il est : '.date('d/m/Y H:i:s');
//Classement Alliances
$bdd->connexion();
$bdd->query("TRUNCATE TABLE $table_classement_alliances;");
$alliances = $bdd->query("SELECT U.id_alliance, SUM(U.id) AS nombre, SUM(U.points)/SUM(U.id) AS points, SUM(U.batiments)/SUM(U.id) AS batiments, SUM(U.recherches)/SUM(U.id) AS recherches, SUM(U.flotte)/SUM(U.id) AS flotte, SUM(U.terrestre)/SUM(U.id) AS terrestre FROM $table_user U GROUP BY U.id_alliance;");
2008-11-08 11:00:00 +00:00
foreach($alliances as $alliance){
if ($alliance['id_alliance'] != 0) $bdd->query("INSERT INTO $table_classement_alliances (id_alliance, nbr_membres, points, batiments, recherches, flottes, terrestres) VALUES (".$alliance['id_alliance'].", ".$alliance['nombre'].", ".$alliance['points'].", ".$alliance['batiments'].", ".$alliance['recherches'].", ".$alliance['flotte'].", ".$alliance['terrestre'].");");
2008-09-20 10:00:00 +00:00
}
$bdd->deconnexion();
print '<br />Fin de la génération du classement ; il est : '.date('d/m/Y H:i:s');
2008-11-08 11:00:00 +00:00
2008-09-20 10:00:00 +00:00
?>