vue [tuto] Actualisation automatique des points
Kommunauty
Connexion
Inscription

[tuto] Actualisation automatique des points


Alexou Messages : 2506

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)

dimanche 24 mai 2009 (Dernière édition dimanche 24 octobre 2010)

SiMax Messages : 7572

Merci pour le partage

lundi 25 mai 2009

Ullrik Messages : 10

bonjours j'ai un problème avec l'actualisation automatique des points car je l'ai mit pour certaine heures.

Au début cela marche bien mais je sais pas pourquoi après 2 jours sans rien avoir modifier il ne fonctionne plus.

help me  ?

lundi 24 aout 2009

Julianinho Messages : 5

Bonjour,

J'ai suivi le tuto mais après j'ai cette erreur sur mon jeu :

Parse error: syntax error, unexpected '=' in /home/a5575505/public_html/includes/vars.php on line 353

j'ai regardé à la ligne 353 de mon fichier vars.php et j'ai ce code :

Hourlycronjob  = array (
        1 => array( 'Heure' => '*', 'Type' => 1, 'Execute' => 'StatsManuelle', 'Parametres' =>'true')

    );

je vois pas ou est l'erreur, vous pouvez m'aidez ?

merci

bonne soirée

jeudi 15 avril 2010

SiMax Messages : 7572

Salut, essaye avec :

$Hourlycronjob  = array (
            1 => array( 'Heure' => '*', 'Type' => 1, 'Execute' => 'StatsManuelle', 'Parametres' =>'true')

        );
vendredi 16 avril 2010

trolx Messages : 274

bonjour quel ligne pour le fichier todofleetcontrol.php svp je trouve pas

vendredi 9 juillet 2010

Mizur Messages : 6615

Cherche avec l'outil de recherche de ton editeur de texte

Je peux pas avoir le code pour mieux t'aider en ce moment...

vendredi 9 juillet 2010

Répondre Pour répondre, tu dois d'abord t'inscrire rapidement sur Kommunauty. Rejoins-nous vite !