Ce tuto va vous permettre de mettre à jour vos points automatique à la facon d''ogame sans programme externe, ou interne. Il utilise uniquement le moteur de jeu. A noter que le code mise à jour des points n'est pas de moi mais de spytarget. De plus cette version a un bug, elle ne tient pas compte des flottes en vol. Donc je suis preneur si je dois mettre a jour le tuto Vous devez utiliser le système de planificateur de tache avant de faire ce tutoriel. Il est disponible ici : http://kommunauty.fr/forum/624-tuto-planificateur-de-tache-internet/ Créer un nouveau fichier (updatestats.php), que vous mettez dans Include/ Mettez ceci dedans: <?php
/** * SpyTarget * * @version 1 * @copyright 2008 */
// ---------------------------------------------------------------------------------------------------------------- // // SpyTarget // // $TargetPlanet -> Enregistrement 'planet' de la base de donnees // $Mode -> Ce que l'on va notifier // 0 -> Ressources, 1 -> Flotte, 2 ->Defenses, 3 -> Batiments, 4 -> Technologies // $TitleString -> Chaine definissant le titre ou la parcelle de titre a afficher // Modifier par Ze tazou (le header)
Function StatsManuelle($avecheader) { if ($avecheader==true) { $xnova_root_path = './'; define('IN_ADMIN', true); include_once($xnova_root_path . 'admin/statfunctions.php'); global $game_config; }
$StatDate = time(); //doquery ( "DELETE FROM {{table}} WHERE destruyed>0;"'); // Rotation des statistiques doquery ( "DELETE FROM {{table}} WHERE `stat_code` = '2';" , 'statpoints'); doquery ( "UPDATE {{table}} SET `stat_code` = `stat_code` + '1';" , 'statpoints'); $GameUsers = doquery("SELECT * FROM {{table}}", 'users');
while ($CurUser = mysql_fetch_assoc($GameUsers)) { // Recuperation des anciennes statistiques $OldStatRecord = doquery ("SELECT * FROM {{table}} WHERE `stat_type` = '1' AND `id_owner` = '".$CurUser['id']."';",'statpoints'); while($o = mysql_fetch_array($OldStatRecord)) { $OldTotalRank = $o['total_rank']; $OldTechRank = $o['tech_rank']; $OldBuildRank = $o['build_rank']; $OldDefsRank = $o['defs_rank']; $OldFleetRank = $o['fleet_rank']; // Suppression de l'ancien enregistrement doquery ("DELETE FROM {{table}} WHERE `stat_type` = '1' AND `id_owner` = '".$CurUser['id']."';",'statpoints'); }
// Total des unitées consommée pour la recherche $Points = GetTechnoPoints ( $CurUser ); $TTechCount = $Points['TechCount']; $TTechPoints = ($Points['TechPoint'] / $game_config['stat_settings']);
// Totalisation des points accumulés par planete $TBuildCount = 0; $TBuildPoints = 0; $TDefsCount = 0; $TDefsPoints = 0; $TFleetCount = 0; $TFleetPoints = 0; $GCount = $TTechCount; $GPoints = $TTechPoints; $UsrPlanets = doquery("SELECT * FROM {{table}} WHERE `id_owner` = '". $CurUser['id'] ."';", 'planets'); while ($CurPlanet = mysql_fetch_assoc($UsrPlanets) ) { $Points = GetBuildPoints ( $CurPlanet ); $TBuildCount += $Points['BuildCount']; $GCount += $Points['BuildCount']; $PlanetPoints = ($Points['BuildPoint'] / $game_config['stat_settings']); $TBuildPoints += ($Points['BuildPoint'] / $game_config['stat_settings']);
$Points = GetDefensePoints ( $CurPlanet ); $TDefsCount += $Points['DefenseCount'];; $GCount += $Points['DefenseCount']; $PlanetPoints += ($Points['DefensePoint'] / $game_config['stat_settings']); $TDefsPoints += ($Points['DefensePoint'] / $game_config['stat_settings']);
$Points = GetFleetPoints ( $CurPlanet ); $TFleetCount += $Points['FleetCount']; $GCount += $Points['FleetCount']; $PlanetPoints += ($Points['FleetPoint'] / $game_config['stat_settings']); $TFleetPoints += ($Points['FleetPoint'] / $game_config['stat_settings']);
$GPoints += $PlanetPoints; $QryUpdatePlanet = "UPDATE {{table}} SET "; $QryUpdatePlanet .= "`points` = '". $PlanetPoints ."' "; $QryUpdatePlanet .= "WHERE "; $QryUpdatePlanet .= "`id` = '". $CurPlanet['id'] ."';"; doquery ( $QryUpdatePlanet , 'planets'); }
$QryInsertStats = "INSERT INTO {{table}} SET "; $QryInsertStats .= "`id_owner` = '". $CurUser['id'] ."', "; $QryInsertStats .= "`id_ally` = '". $CurUser['ally_id'] ."', "; $QryInsertStats .= "`stat_type` = '1', "; // 1 pour joueur , 2 pour alliance $QryInsertStats .= "`stat_code` = '1', "; // de 1 a 2 mis a jour de maniere automatique $QryInsertStats .= "`tech_points` = '". $TTechPoints ."', "; $QryInsertStats .= "`tech_count` = '". $TTechCount ."', "; $QryInsertStats .= "`tech_old_rank` = '". $OldTechRank ."', "; $QryInsertStats .= "`build_points` = '". $TBuildPoints ."', "; $QryInsertStats .= "`build_count` = '". $TBuildCount ."', "; $QryInsertStats .= "`build_old_rank` = '". $OldBuildRank ."', "; $QryInsertStats .= "`defs_points` = '". $TDefsPoints ."', "; $QryInsertStats .= "`defs_count` = '". $TDefsCount ."', "; $QryInsertStats .= "`defs_old_rank` = '". $OldDefsRank ."', "; $QryInsertStats .= "`fleet_points` = '". $TFleetPoints ."', "; $QryInsertStats .= "`fleet_count` = '". $TFleetCount ."', "; $QryInsertStats .= "`fleet_old_rank` = '". $OldFleetRank ."', "; $QryInsertStats .= "`total_points` = '". $GPoints ."', "; $QryInsertStats .= "`total_count` = '". $GCount ."', "; $QryInsertStats .= "`total_old_rank` = '". $OldTotalRank ."', "; $QryInsertStats .= "`stat_date` = '". $StatDate ."';"; doquery ( $QryInsertStats , 'statpoints'); }
$Rank = 1; $RankQry = doquery("SELECT * FROM {{table}} WHERE `stat_type` = '1' AND `stat_code` = '1' ORDER BY `tech_points` DESC;", 'statpoints'); while ($TheRank = mysql_fetch_assoc($RankQry) ) { $QryUpdateStats = "UPDATE {{table}} SET "; $QryUpdateStats .= "`tech_rank` = '". $Rank ."' "; $QryUpdateStats .= "WHERE "; $QryUpdateStats .= " `stat_type` = '1' AND `stat_code` = '1' AND `id_owner` = '". $TheRank['id_owner'] ."';"; doquery ( $QryUpdateStats , 'statpoints'); $Rank++; }
$Rank = 1; $RankQry = doquery("SELECT * FROM {{table}} WHERE `stat_type` = '1' AND `stat_code` = '1' ORDER BY `build_points` DESC;", 'statpoints'); while ($TheRank = mysql_fetch_assoc($RankQry) ) { $QryUpdateStats = "UPDATE {{table}} SET "; $QryUpdateStats .= "`build_rank` = '". $Rank ."' "; $QryUpdateStats .= "WHERE "; $QryUpdateStats .= " `stat_type` = '1' AND `stat_code` = '1' AND `id_owner` = '". $TheRank['id_owner'] ."';"; doquery ( $QryUpdateStats , 'statpoints'); $Rank++; }
$Rank = 1; $RankQry = doquery("SELECT * FROM {{table}} WHERE `stat_type` = '1' AND `stat_code` = '1' ORDER BY `defs_points` DESC;", 'statpoints'); while ($TheRank = mysql_fetch_assoc($RankQry) ) { $QryUpdateStats = "UPDATE {{table}} SET "; $QryUpdateStats .= "`defs_rank` = '". $Rank ."' "; $QryUpdateStats .= "WHERE "; $QryUpdateStats .= " `stat_type` = '1' AND `stat_code` = '1' AND `id_owner` = '". $TheRank['id_owner'] ."';"; doquery ( $QryUpdateStats , 'statpoints'); $Rank++; }
$Rank = 1; $RankQry = doquery("SELECT * FROM {{table}} WHERE `stat_type` = '1' AND `stat_code` = '1' ORDER BY `fleet_points` DESC;", 'statpoints'); while ($TheRank = mysql_fetch_assoc($RankQry) ) { $QryUpdateStats = "UPDATE {{table}} SET "; $QryUpdateStats .= "`fleet_rank` = '". $Rank ."' "; $QryUpdateStats .= "WHERE "; $QryUpdateStats .= " `stat_type` = '1' AND `stat_code` = '1' AND `id_owner` = '". $TheRank['id_owner'] ."';"; doquery ( $QryUpdateStats , 'statpoints'); $Rank++; }
$Rank = 1; $RankQry = doquery("SELECT * FROM {{table}} WHERE `stat_type` = '1' AND `stat_code` = '1' ORDER BY `total_points` DESC;", 'statpoints'); while ($TheRank = mysql_fetch_assoc($RankQry) ) { $QryUpdateStats = "UPDATE {{table}} SET "; $QryUpdateStats .= "`total_rank` = '". $Rank ."' "; $QryUpdateStats .= "WHERE "; $QryUpdateStats .= " `stat_type` = '1' AND `stat_code` = '1' AND `id_owner` = '". $TheRank['id_owner'] ."';"; doquery ( $QryUpdateStats , 'statpoints'); $Rank++; }
// Statistiques des alliances ... $GameAllys = doquery("SELECT * FROM {{table}}", 'alliance');
while ($CurAlly = mysql_fetch_assoc($GameAllys)) { // Recuperation des anciennes statistiques $OldStatRecord = doquery ("SELECT * FROM {{table}} WHERE `stat_type` = '2' AND `id_owner` = '".$CurAlly['id']."';",'statpoints'); if ($OldStatRecord) { $OldTotalRank = $OldStatRecord['total_rank']; $OldTechRank = $OldStatRecord['tech_rank']; $OldBuildRank = $OldStatRecord['build_rank']; $OldDefsRank = $OldStatRecord['defs_rank']; $OldFleetRank = $OldStatRecord['fleet_rank']; // Suppression de l'ancien enregistrement doquery ("DELETE FROM {{table}} WHERE `stat_type` = '2' AND `id_owner` = '".$CurAlly['id']."';",'statpoints'); } else { $OldTotalRank = 0; $OldTechRank = 0; $OldBuildRank = 0; $OldDefsRank = 0; $OldFleetRank = 0; }
// Total des unitées consommée pour la recherche $QrySumSelect = "SELECT "; $QrySumSelect .= "SUM(`tech_points`) as `TechPoint`, "; $QrySumSelect .= "SUM(`tech_count`) as `TechCount`, "; $QrySumSelect .= "SUM(`build_points`) as `BuildPoint`, "; $QrySumSelect .= "SUM(`build_count`) as `BuildCount`, "; $QrySumSelect .= "SUM(`defs_points`) as `DefsPoint`, "; $QrySumSelect .= "SUM(`defs_count`) as `DefsCount`, "; $QrySumSelect .= "SUM(`fleet_points`) as `FleetPoint`, "; $QrySumSelect .= "SUM(`fleet_count`) as `FleetCount`, "; $QrySumSelect .= "SUM(`total_points`) as `TotalPoint`, "; $QrySumSelect .= "SUM(`total_count`) as `TotalCount` "; $QrySumSelect .= "FROM {{table}} "; $QrySumSelect .= "WHERE "; $QrySumSelect .= "`stat_type` = '1' AND "; $QrySumSelect .= "`id_ally` = '". $CurAlly['id'] ."';"; $Points = doquery( $QrySumSelect, 'statpoints', true);
$TTechCount = $Points['TechCount']; $TTechPoints = $Points['TechPoint']; $TBuildCount = $Points['BuildCount']; $TBuildPoints = $Points['BuildPoint']; $TDefsCount = $Points['DefsCount']; $TDefsPoints = $Points['DefsPoint']; $TFleetCount = $Points['FleetCount']; $TFleetPoints = $Points['FleetPoint']; $GCount = $Points['TotalCount']; $GPoints = $Points['TotalPoint'];
$QryInsertStats = "INSERT INTO {{table}} SET "; $QryInsertStats .= "`id_owner` = '". $CurAlly['id'] ."', "; $QryInsertStats .= "`id_ally` = '0', "; $QryInsertStats .= "`stat_type` = '2', "; // 1 pour joueur , 2 pour alliance $QryInsertStats .= "`stat_code` = '1', "; // de 1 a 5 mis a jour de maniere automatique $QryInsertStats .= "`tech_points` = '". $TTechPoints ."', "; $QryInsertStats .= "`tech_count` = '". $TTechCount ."', "; $QryInsertStats .= "`tech_old_rank` = '". $OldTechRank ."', "; $QryInsertStats .= "`build_points` = '". $TBuildPoints ."', "; $QryInsertStats .= "`build_count` = '". $TBuildCount ."', "; $QryInsertStats .= "`build_old_rank` = '". $OldBuildRank ."', "; $QryInsertStats .= "`defs_points` = '". $TDefsPoints ."', "; $QryInsertStats .= "`defs_count` = '". $TDefsCount ."', "; $QryInsertStats .= "`defs_old_rank` = '". $OldDefsRank ."', "; $QryInsertStats .= "`fleet_points` = '". $TFleetPoints ."', "; $QryInsertStats .= "`fleet_count` = '". $TFleetCount ."', "; $QryInsertStats .= "`fleet_old_rank` = '". $OldFleetRank ."', "; $QryInsertStats .= "`total_points` = '". $GPoints ."', "; $QryInsertStats .= "`total_count` = '". $GCount ."', "; $QryInsertStats .= "`total_old_rank` = '". $OldTotalRank ."', "; $QryInsertStats .= "`stat_date` = '". $StatDate ."';"; doquery ( $QryInsertStats , 'statpoints'); } }
?> Ensuite ouvrir le fichier includes/todofleetcontrol.php Chercher include($xnova_root_path . 'includes/functions/cronjob.'.$phpEx); Et ajouter apres include($xnova_root_path . 'includes/updatestats.'.$phpEx); 2eme étape nous allons planifier les heures de mises a jour Ouvrir le fichier includes/vars.php chercher $Hourlycronjob Maintenant je vais vous donner des exemples Par exemple une mise à jour toutes les heures On remplace par ceci Hourlycronjob = array ( 1 => array( 'Heure' => '*', 'Type' => 1, 'Execute' => 'StatsManuelle', 'Parametres' =>'true')
) ; Si vous voulez coller a l'esprit d'ogame. Par exemple une mise à jour toutes les 8 heures. On remplace par ceci Hourlycronjob = array ( 1 => array( 'Heure' => '0', 'Type' => 1, 'Execute' => 'StatsManuelle', 'Parametres' =>'true'), 2 => array( 'Heure' => '8', 'Type' => 1, 'Execute' => 'StatsManuelle', 'Parametres' =>'true'), 3 => array( 'Heure' => '16', 'Type' => 1, 'Execute' => 'StatsManuelle', 'Parametres' =>'true')
); Voila vous avez une mise à jour automatique a la ogame (attention il est lié a la fonction cronjob) |