antoine129
Messages postés64Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention 5 juin 2006 22 nov. 2004 à 13:30
ok j'ai pas tout lu mais ça m'a l'air sympathique ton code :)
je te conseille de poster un code à part entière pour plus de lisibiité des mises à jour ;)
oXid_FoX
Messages postés27Date d'inscriptionmercredi 4 février 2004StatutMembreDernière intervention13 mars 2007 22 nov. 2004 à 08:37
j'ai fait qq modif, surtout des ajouts ;-)
le nombre de matches enregistrés, le nom du type de jeu & du mod, et surtout virer les caractères de coloration du nom du joueur
au début du fichier :
$suppr = array("^1","^2","^3","^4","^5","^6","^7","^8","^9","^0","^b","^B"); //couleurs pour le pseudo du joueur
$gametype = array("DM","Tourney","Single player","TDM","CTF");
//rien a faire, c'est juste pour chercher le numero du mod
for($nom_mod=0;$str[$nom_mod]!="gamename";$nom_mod++){
}
$nom_mod += 1; //pour passer à la ligne d'apres (le nom du mod)
//rien a faire, c'est juste pour chercher le numero du type de jeu (0=DM, 1=Tourney, 2=single, 3=TDM, 4=CTF)
for($type_jeu=0;$str[$type_jeu]!="g_gametype";$type_jeu++){
}
$type_jeu += 1; //pour passer à la ligne d'apres (le nom du type de jeu)
echo "
SCORES de Quake 3 (scores individuels)
mod : ".$str[$nom_mod]."
";
plus loin, dans le for
// pour supprimer les caracteres de coloration du nom du joueur
$str2=str_replace($suppr,"",$str2);
après le for :
echo "".$n." matches loggés.
Affichage de la partie la plus récente à la plus ancienne :
<hr>";
oXid_FoX
Messages postés27Date d'inscriptionmercredi 4 février 2004StatutMembreDernière intervention13 mars 2007 19 nov. 2004 à 12:24
oups, on peut pas éditer....
la principale modif est pour chercher réellement le nom de la map (passke la ligne correspondant dans le tableau $str[] diffère en fonction des mods)
for($nom_map=0;$str[$nom_map]!="mapname";$nom_map++){
//rien a faire, c'est juste pour chercher le numero de la map
//car le numero de la ligne dans le tableau $str[] change en fonction des mods :
//36 -> OSP 1.03 , 34 -> defrag 1.9 , 38 -> defrag 1.7[mais le script ne fonctionne pas] et Quake3 1.32 [sans mod]
}
$nom_map += 1; //pour passer à la ligne d'apres (le nom de la map)
et pour afficher le nom de la map :
$final[$z] = "serveur : ".$str[18]." -- map : ".$str[$nom_map]." "; //case n°$nom_map : nom de la map
oXid_FoX
Messages postés27Date d'inscriptionmercredi 4 février 2004StatutMembreDernière intervention13 mars 2007 19 nov. 2004 à 12:21
j'ai travaillé un peu sur le code... je m'y remet ce week-end
voici mes modif :
<?php
/* = ======================================================
Q3 MINI log PARSER - by mOut
mouton_85@hotmail.com
======================================================= */
/* permet de connaitre les valeurs recuperees avec leur indice
for($i=0;$i<60;$i++){
echo $str[$i]." i=".$i." <hr>";
}
*/
for($nom_map =0;$str[$nom_map]!= "mapname";$nom_map++){
//rien a faire, c'est juste pour chercher le numero de la map
//car le numero de la ligne dans le tableau $str[] change en fonction des mods :
//36 -> OSP 1.03 , 34 -> defrag 1.9 , 38 -> defrag 1.7[mais le script ne fonctionne pas] et Quake3 1.32 [sans mod]
}
$nom_map += 1; //pour passer à la ligne d'apres (le nom de la map)
for($i=0;$i<$n;$i++){
$cle=key($test);
$final[$z] = " serveur : ".$str[18]." -- map : ".$str[$nom_map]." "; //case n°$nom_map : nom de la map
$str =next($test);
$cle_suiv=key($test);
$cle2=key($test2);
$winner=TRUE; //gagnant en rouge
while(($cle2<$cle_suiv || !$cle_suiv) && $cle2>$cle){
if($winner){
$final[$z] .= "".$str2."";
}else{
$final[$z] .= $str2;
}
$winner=FALSE;
$str2=next($test2);
$cle2=key($test2);
}
$z++;
}
for($i=count($final)-1;$i>=0;$i--){ //affichage a l'envers
if(substr_count($final[$i], "")>0){ //si pas de score pour la map (jeu pas fini), on n'affiche pas.
echo $final[$i]."<hr>";
}
}
?>
oXid_FoX
Messages postés27Date d'inscriptionmercredi 4 février 2004StatutMembreDernière intervention13 mars 2007 17 nov. 2004 à 18:09
merki !!!
;-)
antoine129
Messages postés64Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention 5 juin 2006 16 nov. 2004 à 16:07
lol laisse tomber :D
enlève la ligne correspondante :)
c'était au départ inclus dans une page web...
edit: je l'ai enlevé de la source
oXid_FoX
Messages postés27Date d'inscriptionmercredi 4 février 2004StatutMembreDernière intervention13 mars 2007 16 nov. 2004 à 13:30
23 nov. 2004 à 13:29
THX !!
je viens de le faire, il est là :
http://www.phpcs.com/code.aspx?ID=27762
22 nov. 2004 à 13:30
je te conseille de poster un code à part entière pour plus de lisibiité des mises à jour ;)
22 nov. 2004 à 08:37
le nombre de matches enregistrés, le nom du type de jeu & du mod, et surtout virer les caractères de coloration du nom du joueur
au début du fichier :
$suppr = array("^1","^2","^3","^4","^5","^6","^7","^8","^9","^0","^b","^B"); //couleurs pour le pseudo du joueur
$gametype = array("DM","Tourney","Single player","TDM","CTF");
//rien a faire, c'est juste pour chercher le numero du mod
for($nom_mod=0;$str[$nom_mod]!="gamename";$nom_mod++){
}
$nom_mod += 1; //pour passer à la ligne d'apres (le nom du mod)
//rien a faire, c'est juste pour chercher le numero du type de jeu (0=DM, 1=Tourney, 2=single, 3=TDM, 4=CTF)
for($type_jeu=0;$str[$type_jeu]!="g_gametype";$type_jeu++){
}
$type_jeu += 1; //pour passer à la ligne d'apres (le nom du type de jeu)
echo "
SCORES de Quake 3 (scores individuels)
mod : ".$str[$nom_mod]."
";
plus loin, dans le for
// pour supprimer les caracteres de coloration du nom du joueur
$str2=str_replace($suppr,"",$str2);
après le for :
echo "".$n." matches loggés.
Affichage de la partie la plus récente à la plus ancienne :
<hr>";
19 nov. 2004 à 12:24
la principale modif est pour chercher réellement le nom de la map (passke la ligne correspondant dans le tableau $str[] diffère en fonction des mods)
for($nom_map=0;$str[$nom_map]!="mapname";$nom_map++){
//rien a faire, c'est juste pour chercher le numero de la map
//car le numero de la ligne dans le tableau $str[] change en fonction des mods :
//36 -> OSP 1.03 , 34 -> defrag 1.9 , 38 -> defrag 1.7[mais le script ne fonctionne pas] et Quake3 1.32 [sans mod]
}
$nom_map += 1; //pour passer à la ligne d'apres (le nom de la map)
et pour afficher le nom de la map :
$final[$z] = "serveur : ".$str[18]." -- map : ".$str[$nom_map]."
"; //case n°$nom_map : nom de la map
19 nov. 2004 à 12:21
voici mes modif :
<?php
/* = ======================================================
Q3 MINI log PARSER - by mOut
mouton_85@hotmail.com
======================================================= */
$filename="D:\Program Files\Quake III Arena\osp\games.log"; //fichier contenant
$log=file($filename);
$n=count($log);
for($i=0;$i<$n;$i++){
if(ereg("InitGame:",$log[$i])){
$test[$i]=explode("\", $log[$i]);
}
while(ereg("score:",$log[$i])){
$test2[$i]=ereg_replace("(.*)score: (.*) ping: (.*) client: (.*) (.*)","\\5 : \\2 ",$log[$i]);
$i++;
}
}
echo "
SCORES de Quake 3 (scores individuels)
Affichage de la partie la plus récente à la plus ancienne :
<hr>";
$n =count($test);
$str= current($test); //pointeurs
$str2=current($test2);
$z=0;
/* permet de connaitre les valeurs recuperees avec leur indice
for($i=0;$i<60;$i++){
echo $str[$i]." i=".$i." <hr>";
}
*/
for($nom_map =0;$str[$nom_map]!= "mapname";$nom_map++){
//rien a faire, c'est juste pour chercher le numero de la map
//car le numero de la ligne dans le tableau $str[] change en fonction des mods :
//36 -> OSP 1.03 , 34 -> defrag 1.9 , 38 -> defrag 1.7[mais le script ne fonctionne pas] et Quake3 1.32 [sans mod]
}
$nom_map += 1; //pour passer à la ligne d'apres (le nom de la map)
for($i=0;$i<$n;$i++){
$cle=key($test);
$final[$z] = " serveur : ".$str[18]." -- map : ".$str[$nom_map]."
"; //case n°$nom_map : nom de la map
$str =next($test);
$cle_suiv=key($test);
$cle2=key($test2);
$winner=TRUE; //gagnant en rouge
while(($cle2<$cle_suiv || !$cle_suiv) && $cle2>$cle){
if($winner){
$final[$z] .= "".$str2."";
}else{
$final[$z] .= $str2;
}
$winner=FALSE;
$str2=next($test2);
$cle2=key($test2);
}
$z++;
}
for($i=count($final)-1;$i>=0;$i--){ //affichage a l'envers
if(substr_count($final[$i], "")>0){ //si pas de score pour la map (jeu pas fini), on n'affiche pas.
echo $final[$i]."<hr>";
}
}
?>
17 nov. 2004 à 18:09
;-)
16 nov. 2004 à 16:07
enlève la ligne correspondante :)
c'était au départ inclus dans une page web...
edit: je l'ai enlevé de la source
16 nov. 2004 à 13:30
c'est quoi inc.header.php ???