convertlog recreatelog potions plantes stats_clan zn_distance stats_kill cartfidel common_function sources outils

Source du fichier convertlog.php :


<?php $simplifie = isset($_GET['simpl']); ?>
<script type="text/javascript">
<!--
function afficheMask() {

    var style1 = document.getElementById('ibloc1').style.display;
    var style2 = document.getElementById('bloc1').style.display;
    
    var i,j;
    for (i=2 ; i<4 ; i++) {
        j='bloc'+i;
        document.getElementById(j).style.display=style1;
    }

    document.getElementById('ibloc1').style.display=style2;
}
-->
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
 <head>
    <link rel="stylesheet" href="css/designhc.css" type="text/css" />
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15" />
    <meta name="KEYWORDS" content="heroes,chronicles,HC,convertlog,convertisseur,calculateur,log,logs" />
        <title>Convertisseur de log HC</title>
        <?php require_once('common_function.php'); include('designhc.html'); ?>
 </head>
  <body><?php include('outils.php'); ?>
  <div id="title"><a href="<?php echo query_strip(); ?>"><img src="fp.gif" alt="Lien original" id="accueil" title="Retour au lien original" /></a>
     Convertisseur de log HC v2.001 <span id="by">(par LittleBoss)</span></div>
<div id="entete">     
  Cet outil permet de mettre en forme, ainsi que calculer automatiquement les PV gagnés/perdus des logs de <a href="http://heroeschronicles.nainwak.org/">Heroes Chronicles</a>.
  <br />Entrer votre log ci dessous, le log converti s'affichera au dessus de la zone de texte. 
  <br />Des options sont disponibles, passer la souris sur celles-ci pour plus de détail.
  <br /><a href="?config=1<?php if($simplifie) echo '&simpl=1'?>">Config 1</a> : balises standards, <a href="?config=2<?php if($simplifie) echo '&simpl=1'?>">Config 2</a> : aucune balise (pas de couleur) et <a href="?config=3<?php if($simplifie) echo '&simpl=1'?>">Config 3</a> : balises bbcode standards DTC
    <div id="ibloc1" style="display:<?php echo ($simplifie)? 'Inline':'none'// simplification inverse ?>">
    <br /><a href="#" style="font-size:12" onClick="afficheMask();return false;">Afficher les options sans rechargement</a> /
    <a style="font-size:12" href="<?php if (preg_match('`&simpl=1`',$_SERVER["REQUEST_URI"])) echo preg_replace('`&simpl=1`','',$_SERVER["REQUEST_URI"]);
                    elseif (
preg_match('`simpl=1&`',$_SERVER["REQUEST_URI"])) echo preg_replace('`simpl=1&`','',$_SERVER["REQUEST_URI"]);
                    elseif  (
preg_match('`\?simpl=1$`',$_SERVER["REQUEST_URI"])) echo preg_replace('`\?simpl=1$`','',$_SERVER["REQUEST_URI"]); ?>">
    Passer à la page complète</a>
    </div>
    <div id="bloc1" style="display:<?php echo ($simplifie)? 'none':'Inline'// simplification ?>" >
    <br />  <a href="<?php if (!$simplifie) echo $_SERVER["REQUEST_URI"].(preg_match('`\?`',$_SERVER["REQUEST_URI"])? '&':'?').'simpl=1'?>">Cliquer ici</a> pour masquer les options. 
    <br /><span id="whatnew">[NEW] Refonte graphique, suppression de la pub par défaut</span>
    </div>
</div>
<?php

// initialisation des valeurs par défaut des logs

$dsecact=600;

$pub=isset($_GET['pub'])? 'checked="check"' ''// activer pub
$statdet=isset($_GET['statdet'])? 'checked="check"' ''// activer stats+
$autostats=isset($_GET['stats'])? '' 'checked="check"'// désactiver stats

$dstatdet='';
if (!isset(
$_GET['config']) || secur_ent($_GET['config']) == 1) { 
    
$dcoup='[color=red]'$dfcoup='[/color]';
    
$dsoin='[color=green]'$dfsoin='[/color]';
    
$desquive='[color=cyan]'$dfesquive='[/color]';
    
$dpavois='[color=orange]'$dfpavois='[/color]';
    
$dpavoispartiel='[color=orange]'$dpavoispartiel='[/color]';
    
$dpoison='[color=purple]'$dfpoison='[/color]';
    
$dcharge='[color=red]'$dfcharge='[/color]';
    
$dbatiment='[color=red]'$dfbatiment='[/color]';
    
$dkill='[color=red]'$dfkill='[/color]';
    
$dmort='[color=yellow]'$dfmort='[/color]';
    
$dfeu='[color=orange]'$dffeu='[/color]';
    
$dgel='[color=blue]'$dfgel '[/color]';
    
$dstatsynt='[b]'$dfstatsynt='[/b]';
    
$dpub '';//'checked="check"';
    
$dautostats 'checked="check"';
}
else if (
secur_ent($_GET['config']) == 2) {
    
$dcoup=''$dfcoup='';
    
$dsoin=''$dfsoin='';
    
$desquive=''$dfesquive='';
    
$dpavois=''$dfpavois='';
    
$dpavoispartiel=''$dpavoispartiel='';
    
$dpoison=''$dfpoison='';
    
$dcharge=''$dfcharge='';
    
$dbatiment=''$dfbatiment='';
    
$dkill=''$dfkill='';
    
$dmort=''$dfmort='';
    
$dfeu=''$dffeu='';
    
$dgel=''$dfgel '';
    
$dstatsynt=''$dfstatsynt='';
    
$dautostats 'checked="check"'$dpub '';
}
else {
    
$dcoup='[coups]'$dfcoup='[/coups]';
    
$dsoin='[soins]'$dfsoin='[/soins]';
    
$desquive='[esquives]'$dfesquive='[/esquives]';
    
$dpavois='[pavois]'$dfpavois='[/pavois]';
    
$dpavoispartiel='[pavois]'$dpavoispartiel='[/pavois]';
    
$dpoison='[poisons]'$dfpoison='[/poisons]';
    
$dcharge='[coups]'$dfcharge='[/coups]';
    
$dbatiment='[coups]'$dfbatiment='[/coups]';
    
$dkill='[coups]'$dfkill='[/coups]';
    
$dmort='[color=yellow]'$dfmort='[/color]';
    
$dfeu='[color=orange]'$dffeu='[/color]';
    
$dgel='[color=turquoise]'$dfgel '[/color]';
    
$dstatsynt='[b]'$dfstatsynt='[/b]';
    
$dautostats 'checked="check"';
    
$dpub '';
}

if(isset(
$_POST['log']) && (strlen(trim($_POST['log'])) > || isset($_POST['logurl'])) && is_numeric($_POST['pvrest']))  // ne faire que si valider a été cliqué ET SI C'EST PAS VIDE ;)
{
  
    
// définition des variables contenant les balises, fonction secur_ent défini en bas du fichier
    
$log ''// variable qui contiendra le log final
    
$coup=secur_ent($_POST['coup']);
    
$fcoup=secur_ent($_POST['fcoup']);
    
$soin=secur_ent($_POST['soin']);
    
$fsoin=secur_ent($_POST['fsoin']);
    
$esquive=secur_ent($_POST['esquive']);
    
$fesquive=secur_ent($_POST['fesquive']);
    
$pavois=secur_ent($_POST['pavois']);
    
$fpavois=secur_ent($_POST['fpavois']);
    
$pavoispartiel=$pavois;
    
$fpavoispartiel=$fpavois;
    
$poison=secur_ent($_POST['poison']);
    
$fpoison=secur_ent($_POST['fpoison']);
    
$feu=secur_ent($_POST['feu']);
    
$ffeu=secur_ent($_POST['ffeu']);
    
$gel=secur_ent($_POST['gel']);
    
$fgel=secur_ent($_POST['fgel']);    
    
$charge=secur_ent($_POST['charge']);
    
$fcharge=secur_ent($_POST['fcharge']);
    
$mort=secur_ent($_POST['mort']);
    
$fmort=secur_ent($_POST['fmort']);
    
$pvrest=secur_ent($_POST['pvrest']);
    
$statsynt=secur_ent($_POST['statsynt']);
    
$fstatsynt=secur_ent($_POST['fstatsynt']);
    
$pvsynt=secur_ent($_POST['pvsynt']);
    
$batiment=secur_ent($_POST['batiment']);
    
$fbatiment=secur_ent($_POST['fbatiment']);
    
$kill=secur_ent($_POST['kill']);
    
$fkill=secur_ent($_POST['fkill']);
    
$secact=secur_ent($_POST['secact']);

    if (
$pvrest != 0) { $pv TRUE; } else $pv FALSE;
    if (isset(
$_POST['stat'])) { $stat TRUE; } else $stat FALSE;
    if (isset(
$_POST['statdet'])) { $statdet TRUE; } else $statdet FALSE;
    if (isset(
$_POST['secret'])) { $secret TRUE; } else $secret FALSE;
    if (isset(
$_POST['lignenlog'])) { $lignenlog TRUE; } else $lignenlog FALSE;
    if (isset(
$_POST['affpseudo'])) { $affpseudo TRUE; } else $affpseudo FALSE;
    if (isset(
$_POST['affpseudostat'])) { $affpseudostat TRUE; } else $affpseudostat FALSE;
    if (isset(
$_POST['affclan'])) { $affclan TRUE; } else $affclan FALSE;
    if (!isset(
$_POST['stat'])) { $autostats ''; } else $autostats 'checked="check"';
    if (isset(
$_POST['pub'])) { $pub 'checked="check"'; } else $pub '';
    
    
$fichier_log explode("\n"$_POST['log']);
    echo 
'________________________________''<br />';
    echo 
'Recopier le log ci dessous sur votre forum''<br />';
    echo 
'¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯''<br />';
    
// boucle qui étudie chaque ligne du log pour le mettre en forme
    
if (isset($_POST['quote'])) { $log.='[quote]'; }
    if (
$stat) {
        
$listeAction = Array('action','charge','soin','coup','charge','feu','gel','mort','kill','pavoispartiel','poison','esquive','pavois');
        
$listeActionPv = Array('charge','coup','soin','poison','feu');
        foreach(
$listeAction as $uneAction) { $cpt[$uneAction] = 0$my_cpt[$uneAction] = 0; }
        foreach(
$listeActionPv as $uneAction) { $cptpv[$uneAction] = 0$my_cptpv[$uneAction] = 0; }
        
$auto false// est-ce que c'est une action subit ou exécuté
        //$cptaction = 0; $cptcharge = 0; $cptsoin = 0; $cptcoup = 0; $cptcharge = 0; $cptfeu = 0; $cptmort = 0; $cptkill = 0; $cptpavoispartiel = 0;
        //$cptpoison = 0; $cptesquive = 0; $cptpavois = 0; $cptpvcharge = 0; $cptpvcoup = 0; $cptpvsoin = 0; $cptpvpoison = 0; $cptpvfeu = 0;
    
}
    
    if (
$affclan$lienclan 'http://heroeschronicles.nainwak.org/clans/ficheclan.php?clan=';
    if (
$affpseudo || $affpseudostat$lienpseudo 'http://heroeschronicles.nainwak.org/index.php?option=classement&user=';
    
    
$logactuel ''$flogactuel ''$i=0$lastauto 'init';  $lec=''$flec=''$auto=false;
    foreach(
$fichier_log as $lignei) {
        
$i++;
        if(
trim($lignei) != '') { // si la ligne i est non vide
            // lec => log en cours -- flec => fin log en cours -- kill et fkill => log spécial de kill
            
$pvsoin 1$pvresult ''$clan ''$pseudo ''$lignei $lignei";
            
$lignei str_replace('  ',' ',$lignei);
            if (
preg_match('`\[?([^\]]*)\]? *\[?([^ ]*?)\]? (.+) vous a attaqué`'$lignei$match)) { $lec $coup$flec $fcoup$action 'coup'$auto false;}
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez succombé`'$lignei)) { $lec $coup$flec $fcoup$action 'succombe'$auto false; }
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez été soignée? par ?\[?([^ ]*?)\]? (.+) qui vous`'$lignei$match)) { $lec $soin$flec $fsoin$pvsoin = -1$action 'soin'$auto false; }
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez esquivé l.{1,4}attaque de ?\[?([^ ]*?)\]? (.+)!`'$lignei$match)) { $lec $esquive$flec $fesquive$action 'esquive'$auto false; }
            elseif (
preg_match('`\[?([^\]]*)\]? *\[?([^ ]*?)\]? .*la monture de (.+) vous a chargé`'$lignei$match)) { $lec $charge$flec $fcharge$action 'charge'$auto false; }            
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez bloqué l.{1,4}attaque de ?\[?([^ ]*?)\]? (.+)!`'$lignei$match)) { $lec $pavois$flec $fpavois$action 'pavois'$auto false; }
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez partiellement bloqué l.{1,4}attaque de ?\[?([^ ]*?)\]? (.+)!`'$lignei$match)) { $lec $pavois$flec $fpavois$action 'pavoispartiel'$auto false; }
            elseif (
preg_match('`\[?([^\]]*)\]? Le poison vous fait perdre`'$lignei)) { $lec $poison$flec $fpoison$action 'poison'$auto false; }
            elseif (
preg_match('`\[?([^\]]*)\]? Le feu vous fait perdre`'$lignei)) { $lec $feu$flec $ffeu$action 'feu'$auto false; }
            elseif (
preg_match('`\[?([^\]]*)\]? La mort vous prend`'$lignei)) { /*$kill = $mort; $fkill = $fmort;*/ $action 'mort'$auto false; }
            elseif (
preg_match('`\[?([^\]]*)\]? Vous vous êtes prise? le`'$lignei)) { $lec $batiment$flec $fbatiment$action 'batiment'$auto false; }
            elseif (
preg_match('`\[?([^\]]*)\]? Brrrrrr`'$lignei$match)) { $lec $gel$flec $fgel$action 'gel'$auto false; }
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez attaqué (.+) avec `'$lignei$match)) { $lec $coup$flec $fcoup$action 'coup'$auto true; }
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez tué (.+) !`'$lignei$match)) { $lec $kill$flec $fkill$action 'kill'$auto true; }            
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez soigné ?p?a?r? (.+) en lui rendant`'$lignei$match)) { $lec $soin$flec $fsoin$pvsoin = -1$action 'soin'$auto true; }
            elseif (
preg_match('`\[?([^\]]*)\]? (.*) vous a esquivé`'$lignei$match)) { $lec $esquive$flec $fesquive$action 'esquive'$auto true; }
            elseif (
preg_match('`\[?([^\]]*)\]? (.*) a bloqué votre attaque`'$lignei$match)) { $lec $pavois$flec $fpavois$action 'pavois'$auto true; }
            elseif (
preg_match('`\[?([^\]]*)\]? (.*) a partiellement bloqué votre attaque`'$lignei$match)) { $lec $pavois$flec $fpavois$action 'pavoispartiel'$auto true; }            
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez chargez (.+) !`'$lignei$match)) { $lec $charge$flec $fcharge$action 'charge'$auto true; }    
            
//elseif (preg_match('`\[?([^\]]*)\]? *\[?([^ ]*?)\]? ?la monture de (.+) vous a chargé`', $lignei, $match)) { $lec = $charge; $flec = $fcharge; $action = 'charge'; }
            
else { $action 'suivant'; }
            
$lignei trim($lignei);
            
$varcpt = ($auto)? 'my_cpt':'cpt';
            if (isset(
$match[1])) { 
                
$heure_pr $match[1]; 
                if (!
$auto) { if (isset($match[2])) { $clan $match[2]; if (isset($match[3])) $pseudo $match[3]; } }
                elseif (isset(
$match[2])) { $pseudo $match[2]; }
                if (
$secact != && $action != 'poison' && $action != 'feu' && $action != 'gel' && traiter_heure($heure_pr,$heure_po,$secact)) $log.='<br />';
            }
            
//echo "$clan ---  $pseudo <br />";
            
if ($secret) { $lignei preg_replace('/\d+ PV/''** PV'$lignei); $cptpvsoin '**'$cptpvpoison '**'; }
            if (
$action == 'suivant') { // dans le cas d'une ligne qui ne correspondrait à aucun critère de mise en forme du log, la laisser telle quel
                
if ($lignenlog OR $log == '' AND $lignei == '*' || $lignei == '#') { $newline NULL; } // suppr les ligne non reconnu par les phrases de log
                
else { $newline $flec.$lignei.$lec; }
            }
            else { 
// sinon si c'est une ligne de texte de log normal
                
if ($lastauto == 'init'$lastauto $auto
                else { if (
$lastauto != $auto) { $lastauto $auto$log .= $flogactuel.'<br />########################<br /><br />'.$logactuel; } }
                if (
$statdet || $stat || $pv) {
                    
$nbpv ''$nbpv preg_replace("/.*(rendant|rendu|perdre) ([0-9]+) PV.*/""$2"$lignei);
                }
                if (
$stat || $pv AND $action != 'succombe') { // si un nombre de PV avant l'attaque a été initialisé -- nombre d'action total, ignore les actions non subit par un joueur
                    
if ($lec != 'suivant' && $action != 'kill' && $action != 'mort' && $action != 'pavoispartiel' && $action != 'poison' && $action != 'feu' && $action != 'gel') { ${$varcpt}['action']++; }
                    if (
is_numeric($nbpv)) {
                        ${
$varcpt}[$action]++; ${$varcpt.'pv'}[$action] += $nbpv;
                        if (
$pv) {  
                            
$pvrest -= $nbpv $pvsoin;
                            
$pvresult preg_replace('/XX/',$pvrest,$pvsynt);
                        }
                    }
                    else { ${
$varcpt}[$action]++; }
                }
                
//if ($statdet && $pseudo != '') {
                
if ($pseudo != '') {
                    
$varpscpt = ($auto)? 'my_pscpt':'pscpt';
                    if (
$action != 'pavoispartiel' && $action != 'kill' && $action != 'mort'
                        { 
inc(${$varpscpt}['Total']['Total']); inc(${$varpscpt}[$pseudo]['Total']); }    
                    
inc(${$varpscpt}['Total'][$action]);                        
                    
inc(${$varpscpt}[$pseudo][$action]);
                    if (
is_numeric($nbpv)) { 
                        
inc2(${$varpscpt.'pv'}['Total'][$action],$nbpv);
                        
inc2(${$varpscpt.'pv'}[$pseudo][$action],$nbpv);
                    }
                }
                else if (
$action != 'succombe') {
                    
$varpscpt = ($auto)? 'my_pscpt':'pscpt';
                    
inc(${$varpscpt}['Total'][$action]);
                    if (
is_numeric($nbpv)) {
                        
inc2(${$varpscpt.'pv'}['Total'][$action],$nbpv);
                    }
                }
                if (
$action != 'mort') {  // si ce n'est pas le cas d'un message de mort
                    
if ($lec == $logactuel && $flec == $flogactuel// si la balise ouverte en cours est la même que celle que l'on devrait mettre à la lignei, ne rien toucher
                    
$newline $lignei; }
                    else { 
// sinon ajouter au début de la ligne la fermeture de la balise en cours et l'ouverture de la nouvelle balise correspondant à la ligne
                        
$newline $flogactuel $lec $lignei;
                        
$logactuel $lec;
                        
$flogactuel $flec;
                    }
                }
                else { 
// dans le cas du message de mort
                    
$newline preg_replace('/vous prends*/''vous prend' $flogactuel $mort$lignei);
                    
$logactuel $mort//$kill = ''; // mettre n'importe quoi dans la variables contenant la balise ouverte en cours
                    
$flogactuel $fmort;
                }
            }
            
$newline.=$pvresult;
            
//$newline = addslashes($newline);
            
$clan_regex addcslashes($clan,'*?+[](){}.^$');
            
//echo htmlentities($clan_regex);
            //echo "$i - $clan<br />";
            
if ($affclan && $clan != ''$newline preg_replace("`\[$clan_regex\]`","\\[[url=$lienclan$clan\]$clan\[/url\]\]",$newline);
            if (
$affpseudo && $pseudo != ''$newline preg_replace("`$pseudo`","\[url=$lienpseudo$pseudo\]$pseudo\[/url\]",$newline);
            if (
$newline) { $log.=$newline '<br />'; } // ajout de la ligne traitée dans la variable $log
        
}
        elseif (isset(
$_POST['lignevide']) && !preg_match('`(<br />){2,}$`',$log)) { $log.='<br />'; }

    }

    
$log.=$flogactuel;
    if (
$stat) { // afichage des statistiques
        
$log.='<br />';
        if (
$cpt['action'] > 0) {
            
$log.= "Vous avez subi un total de $statsynt$cpt[action]$fstatsynt actions.".'<br />';
            if (
$cpt['coup'] || $cpt['charge']) {
                if (!
$secret) { $pvperdu $cptpv['coup'] + $cptpv['charge']; }
                else { 
$pvperdu '**'; }
                if (!
$cpt['charge']) $cpt['charge'] = 0; elseif (!$cpt['coup']) $cpt['coup'] = 0;
                
$log.="Vous avez encaissé $statsynt$coup$cpt[coup]$fcoup$fstatsynt attaque(s) et $statsynt$charge$cpt[charge]$fcharge$fstatsynt charge(s) pour un total de $statsynt$coup$pvperdu$fcoup$fstatsynt PV perdus".'<br />';
            }
            if (
$cpt['soin']) $log.="Vous avez reçu $statsynt$soin$cpt[soin]$fsoin$fstatsynt soin(s) pour un total de $statsynt$soin$cptpv[soin]$fsoin$fstatsynt PV soignés".'<br />';
            if (
$cpt['poison']) $log.="Le poison vous a frappé $statsynt$poison$cpt[poison]$fpoison$fstatsynt fois et vous a infligé un total de $statsynt$poison$cptpv[poison]$fpoison$fstatsynt PV".'<br />';
            if (
$cpt['feu']) $log.="Le feu vous a frappé $statsynt$feu$cpt[feu]$ffeu$fstatsynt fois et vous a infligé un total de $statsynt$feu$cptpv[feu]$ffeu$fstatsynt PV".'<br />';
            if (
$cpt['esquive']) $log.="Vous avez esquivé $statsynt$esquive$cpt[esquive]$fesquive$fstatsynt attaque(s)".'<br />';
            if (
$cpt['pavois']) $log.="Vous avez bloqué $statsynt$pavois$cpt[pavois]$fpavois$fstatsynt attaque(s)".'<br />';
            if (
$cpt['pavoispartiel']) $log.="Vous avez bloqué partiellement $statsynt$pavois$cpt[pavoispartiel]$fpavois$fstatsynt attaque(s)".'<br />';
            if (
$cpt['gel']) $log.="Vous avez été gelé $statsynt$gel$cpt[gel]$fgel$fstatsynt fois".'<br />';

        }
        if(
$my_cpt['action'] > || $my_cpt['kill'] > 0) {
            if (
$cpt['action'] > 0$log .= '<br />';
            if (
$my_cpt['action']) $log.= "Vous avez effectué un total de $statsynt$my_cpt[action]$fstatsynt actions.".'<br />';
            if (
$my_cpt['coup'] || $my_cpt['charge']) {
                if (!
$secret) { $pvperdu $my_cptpv['coup'] + $cptpv['charge']; }
                else { 
$pvperdu '**'; }
                if (!
$my_cpt['charge']) $my_cpt['charge'] = 0; elseif (!$my_cpt['coup']) $my_cpt['coup'] = 0;
                
$affCharge = ($my_cpt['charge'] == 0)? '':" et $statsynt$charge$my_cpt[charge]$fcharge$fstatsynt charge(s)";
                
$log.="Vous avez fait $statsynt$coup$my_cpt[coup]$fcoup$fstatsynt attaque(s)$affCharge pour un total de $statsynt$coup$pvperdu$fcoup$fstatsynt PV infligés".'<br />';
            }
            if (
$my_cpt['soin']) $log.="Vous avez donné $statsynt$soin$my_cpt[soin]$fsoin$fstatsynt soin(s) pour un total de $statsynt$soin$my_cptpv[soin]$fsoin$fstatsynt PV soignés".'<br />';
            if (
$my_cpt['esquive']) $log.="Vous vous êtes fait esquiver $statsynt$esquive$my_cpt[esquive]$fesquive$fstatsynt attaque(s)".'<br />';
            if (
$my_cpt['pavois']) $log.="Vous vous êtes fait bloquer $statsynt$pavois$my_cpt[pavois]$fpavois$fstatsynt attaque(s)".'<br />';
            if (
$my_cpt['pavoispartiel']) $log.="Vous vous êtes fait bloquer partiellement $statsynt$pavois$my_cpt[pavoispartiel]$fpavois$fstatsynt attaque(s)".'<br />';        
            if (
$my_cpt['kill']) $log.="Vous avez tué $statsynt$kill$my_cpt[kill]$fkill$fstatsynt héros".'<br />';    
        }
    }
    
$aff_stats_hors_cadre '<font color="blackgreen">';
    if (isset(
$pscpt)) {
        
$aff_stats_hors_cadre .= '[Actions reçues] ';
        if (isset(
$pscpt['Total']['Total']))
        {
            
$aff_stats_hors_cadre .= 'Total => '.$pscpt['Total']['Total'].' ';
        }
        foreach(
$pscpt['Total'] as $action => $detail) {
            if (
$action == 'Total') continue;
            
$aff_stats_hors_cadre .= "$action => $detail ";
            if (isset(
$pscptpv['Total'][$action])) {
                
$sig =($action == 'soin')?  '+':'-';
                
$aff_stats_hors_cadre .= "($sig".$pscptpv['Total'][$action].' PV) ';
            }
        }
        
$aff_stats_hors_cadre .= '<br />';
    }
    if (isset(
$my_pscpt)) {
        
$aff_stats_hors_cadre .= '[Actions données] ';
        if (isset(
$pscpt['Total']['Total']))
        {
            
$aff_stats_hors_cadre .= 'Total => '.$pscpt['Total']['Total'].' ';
        }        
        foreach(
$my_pscpt['Total'] as $action => $detail) {
            if (
$action == 'Total') continue;
            
$aff_stats_hors_cadre .= "$action => $detail ";
            if (isset(
$my_pscptpv['Total'][$action])) {
                
$sig =($action == 'soin')?  '+':'-';
                
$aff_stats_hors_cadre .= "($sig".$my_pscptpv['Total'][$action].' PV) ';
            }
        }    
        
$aff_stats_hors_cadre .= '<br />';
    }
    
$aff_stats_hors_cadre .= '</font>';
    
    if (
$statdet) {
        
/*print_r($pscpt);
        echo '<br />____<br />';
        print_r($pscptpv);*/
        
foreach(array('pscpt','my_pscpt') as $varpscpt) {
            if (isset($
$varpscpt)) {
                
$affichage_statdet '';
                
//echo 'pseudo - Action - Nombre [ - PV ]<br />';
                
foreach($$varpscpt as $pseudo => $tabaction) {
                    if (
$affpseudostat && $pseudo != 'Total'$affichage_statdet .= "\[url=$lienpseudo$pseudo\]$pseudo\[/url\] :    ";
                    else {
                        
$nbAction = (isset($tabaction['Total']))? $tabaction['Total']:0;
                        
$affichage_statdet .= "$pseudo ($nbAction actions) :    ";
                    }
                    
$intermed '';
                    foreach(
$tabaction as $action => $detail) {
                        if (
$action != 'Total') {
                            
$pv_act '';
                            if (isset(${
$varpscpt.'pv'}[$pseudo][$action])) { 
                                if (
$action == 'soin'$sig '+'; else $sig '-';
                                
$pv_act "($statsynt$sig".${$varpscpt.'pv'}[$pseudo][$action]."$fstatsynt PV)"
                            }
                            if (
$action == 'coup'$intermed "${$action}$action${'f'.$action} => $detail$pv_act    ".$intermed;
                            else 
$intermed .= "${$action}$action${'f'.$action} => $detail$pv_act    ";
                        }
                    }
                    
$affichage_statdet .= stripslashes($intermed);
                    
$affichage_statdet .= '<br />';
                }
                
//echo $affichage_statdet;
                
$log.="<br />$affichage_statdet";
            }
        }
        
$log.='<br />';
    }    
    if (isset(
$_POST['pub'])) { $log.='<br />[size=9][url=http://'.$_SERVER["SERVER_NAME"].end_url().']Généré par Log Converter v2.001[/url][/size]<br />'; }
    if (isset(
$_POST['quote'])) { $log.='[/quote]<br />'; }
    
//$log = trim("$log");
    
$log str_replace('<br />'"\n",$log);
    
    echo 
$aff_stats_hors_cadre;
    
?>
    <form>
         <p><textarea id="resultat" name="result" rows="20" cols="80" readonly="readonly" onClick="this.focus(); this.select();" ><?php echo stripslashes($log?></textarea></p>
    </form>
    <?php
    
if (isset($_POST['logurl'])) { // calcul l'url direct avec les paramètres de couleurs choisis
        
$et ''$url '?';
        if (
preg_match('`(config=\d)`',$_SERVER["REQUEST_URI"],$match)) { $url .= $et.$match[1]; $et '\&'; }
        if (
preg_match('`simpl=1`',$_SERVER["REQUEST_URI"])) { $url .= $et.'simpl=1'$et '\&'; }

        if (
$coup != $dcoup) { $url .= $et 'coup=' $coup$et '\&'; }
        if (
$fcoup != $dfcoup) { $url .= $et 'fcoup=' $fcoup$et '\&'; }
        if (
$soin != $dsoin) { $url .= $et 'soin=' $soin$et '\&'; }
        if (
$fsoin != $dfsoin) { $url .= $et 'fsoin=' $fsoin$et '\&'; }
        if (
$esquive != $desquive) { $url .= $et 'esquive=' $esquive$et '\&'; }
        if (
$fesquive != $dfesquive) { $url .= $et 'fesquive=' $fesquive$et '\&'; }
        if (
$pavois != $dpavois) { $url .= $et 'pavois=' $pavois$et '\&'; }
        if (
$fpavois != $dfpavois) { $url .= $et 'fpavois=' $fpavois$et '\&'; }
        if (
$poison != $dpoison) { $url .= $et 'poison=' $poison$et '\&'; }
        if (
$fpoison != $dfpoison) { $url .= $et 'fpoison=' $fpoison$et '\&'; }
        if (
$feu != $dfeu) { $url .= $et 'feu=' $feu$et '\&'; }
        if (
$ffeu != $dffeu) { $url .= $et 'ffeu=' $ffeu$et '\&'; }
        if (
$gel != $dgel) { $url .= $et 'gel=' $gel$et '\&'; }
        if (
$fgel != $dfgel) { $url .= $et 'fgel=' $fgel$et '\&'; }        
        if (
$charge != $dcharge) { $url .= $et 'charge=' $charge$et '\&'; }
        if (
$fcharge != $dfcharge) { $url .= $et 'fcharge=' $fcharge$et '\&'; }
        if (
$mort != $dmort) { $url .= $et 'mort=' $mort$et '\&'; }
        if (
$fmort != $dfmort) { $url .= $et 'fmort=' $fmort; }
        if (
$batiment != $dbatiment) { $url .= $et 'batiment=' $batiment$et '\&'; }
        if (
$fbatiment != $dfbatiment) { $url .= $et 'fbatiment=' $fbatiment$et '\&'; }
        if (
$kill != $dkill) { $url .= $et 'kill=' $kill$et '\&'; }
        if (
$fkill != $dfkill) { $url .= $et 'fkill=' $fkill$et '\&';  }
        if (
$secact != $dsecact) { $url .= $et 'secact=' $secact$et '\&';  }
        if (
$statdet != $dstatdet) { $url .= $et 'statdet=1'$et '\&';  }
        if (
$autostats != $dautostats) { $url .= $et 'stats=0'$et '\&';  }
        if (
$pub != $dpub) { $url.= $et 'pub=1'$et '\&';  }
        if (
$fstatsynt != $dfstatsynt) { $url.= $et 'fstatsynt=' $fstatsynt$et '\&';  }
        if (
$pvsynt != ' { PV restant : XX }') { $url.= $et 'pvsynt=' $pvsynt$et '\&';  }
        echo 
'________________________________''<br />';
        
$urlg query_strip();
        if (
preg_match('`.{3,}`'$url)) {
            
$urlg .= stripslashes($url);
            
?>
            Pour garder votre configuration, garder <a href="<?php echo $urlg ?>">ce lien</a> dans vos marques pages. <br /><br />
            <?php
        
}
        else {
            
?>
            Aucune différence avec la configuration utilisée détectée : <a href="<?php echo $urlg ?>">voici le lien</a><br /><br />
            <?php
        
}
    }
}
elseif (isset(
$_POST['log'])) {
    
//if(isset($_POST['log']) && strlen(trim($_POST['log'])) > 0 && is_numeric($_POST['pvrest']))  // ne faire que si valider a été cliqué ET SI C'EST PAS VIDE ;)
    
if (strlen(trim($_POST['log'])) == 0) { echo 'Erreur : vous n\'avez pas rempli le log<br />'; }
    if (!
is_numeric($_POST['pvrest'])) { echo 'Erreur : vous n\'avez pas mis un nombre dans le formulaire de calcul de PV<br />'; }
}
?>
<!-- Création de la zone de texte pour entrer le log  -->
<form id="form" action="<?php echo $_SERVER["REQUEST_URI"]; ?>" method="post">
  <p><input type="submit" value="Valider" /></p>
<table>
<tr><td><textarea id="input" name="log" rows="20" cols="60" ></textarea></td><td>
<div id="bloc2" class="margeleft" style="display:<?php echo ($simplifie)? 'none':'Inline'// simplification ?>">
  <div class="minititle">Options disponibles (ne rien toucher pour laisser la configuration par défaut) :</div>
  <label class="labelbox" title="Calcul de stats affichées à la fin du log résultat"><input type="checkbox" name="stat" value="1" <?php echo $autostats ?> /> Statistiques globales</label>
  <label class="labelbox" title="Détail les stats héros par héros"><input type="checkbox" name="statdet" value="1" <?php echo isset($statdet)? $statdet $dstatdet?> /> Statistiques par héros</label>
  <label class="labelbox" title="Masque les PV du log"><input type="checkbox" name="secret" value="1" /> Masquer les PV du log</label>
  <label class="labelbox" title="Ajoute le lien du convertisseur en fin de log"><input type="checkbox" name="pub" value="1" <?php echo isset($pub)? $pub $dpub?> /> Publicité en fin de log</label>  
  <label class="labelbox" title="Ajoute des balises de citations autour du log"><input type="checkbox" name="quote" value="1" /> Balise de citation</label>
  <label class="labelbox" title="Les pseudos ciblent (lien url) vers leur classement"><input type="checkbox" name="affpseudo" value="1" /> Linker les pseudos du log sur le classement</label>
  <label class="labelbox" title="Les pseudos ciblent (lien url) vers leur classement"><input type="checkbox" name="affpseudostat" value="1" /> Linker les pseudos des stats sur le classement</label>
  <label class="labelbox" title="Les clans ciblent (lien url) vers leur page IG"><input type="checkbox" name="affclan" value="1" /> Linker les clans sur leur page IG</label>
  <label class="labelbox" title="Supprime les lignes n'ayant rien à faire ici"><input type="checkbox" name="lignenlog" value="1" /> Supprimer les lignes non reconnues par le script</label>
  <label class="labelbox" title="Si des sauts de lignes sont présents, les maintiens (un maximum à suivre)"><input type="checkbox" name="lignevide" value="1" /> Maintenir les sauts de lignes</label>
  <label class="labelbox" title="Calcul l'url retrouvant vos paramétrages de balises"><input type="checkbox" name="logurl" value="1" /> Calcul de l'url pour reproduire la configuration utilisée</label>  
  <label class="labelbox" title="Entrer ici vos PV avant attaque pour calculer vos PV entre chaque action">PV possédés avant les attaque reçues : <input type="text" size="5" name="pvrest" value="0"></label>
  <label class="labelbox" title="Permet de modifier comment sont affichés les PV entre chaque action, où XX est remplacé par les PV restants">Affichage des PV restants entre chaque attaque : <input type="text" name="pvsynt" value="<?php echo isset($_GET['pvsynt']) ? secur_ent($_GET['pvsynt']) : ' { PV restant : XX }' ?>" ></label>
  <label class="labelbox" title="Choisir le nombre de secondes provoquant une séparation de deux actions (0 pour le désactiver)">Délais en seconde avant un saut de ligne entre deux logs : <input type="text" size="5" name="secact" value="<?php echo isset($_GET['secact']) ? secur_ent($_GET['secact']) : $dsecact ?>"></label>
</div>
</td></tr></table>
<div id="bloc3" style="display:<?php echo ($simplifie)? 'none':'Inline'// simplification ?>">
<div class="minititle">Pour modifier les balises entourant chaque ligne de log :</div>
  <span class="labelbox"><label>Log de coup : <input type="text" name="coup" value="<?php echo isset($_GET['coup']) ? secur_ent($_GET['coup']) : $dcoup ?>"></label> --
  <input type="text" name="fcoup" value="<?php echo isset($_GET['fcoup']) ? secur_ent($_GET['fcoup']) : $dfcoup ?>" ></span>
  <span class="labelbox"><label>Log de soin : <input type="text" name="soin" value="<?php echo isset($_GET['soin']) ? secur_ent($_GET['soin']) : $dsoin ?>"></label> --
  <input type="text" name="fsoin" value="<?php echo isset($_GET['fsoin']) ? secur_ent($_GET['fsoin']) : $dfsoin ?>" ></span>
  <span class="labelbox"><label>Log d'esquive : <input type="text" name="esquive" value="<?php echo isset($_GET['esquive']) ? secur_ent($_GET['esquive']) : $desquive ?>" ></label> --
  <input type="text" name="fesquive" value="<?php echo isset($_GET['fesquive']) ? secur_ent($_GET['fesquive']) : $dfesquive ?>" ></span>
  <span class="labelbox"><label>Log de pavois : <input type="text" name="pavois" value="<?php echo isset($_GET['pavois']) ? secur_ent($_GET['pavois']) : $dpavois ?>" ></label> --
  <input type="text" name="fpavois" value="<?php echo isset($_GET['fpavois']) ? secur_ent($_GET['fpavois']) : $dfpavois ?>" ></span>
  <span class="labelbox"><label>Log de poison : <input type="text" name="poison" value="<?php echo isset($_GET['poison']) ? secur_ent($_GET['poison']) : $dpoison ?>" ></label> --
  <input type="text" name="fpoison" value="<?php echo isset($_GET['fpoison']) ? secur_ent($_GET['fpoison']) : $dfpoison ?>" ></span>
  <span class="labelbox"><label>Log de brulure : <input type="text" name="feu" value="<?php echo isset($_GET['feu']) ? secur_ent($_GET['feu']) : $dfeu ?>" ></label> --
  <input type="text" name="ffeu" value="<?php echo isset($_GET['ffeu']) ? secur_ent($_GET['ffeu']) : $dffeu ?>" ></span>
  <span class="labelbox"><label>Log de gel : <input type="text" name="gel" value="<?php echo isset($_GET['gel']) ? secur_ent($_GET['gel']) : $dgel ?>" ></label> --
  <input type="text" name="fgel" value="<?php echo isset($_GET['fgel']) ? secur_ent($_GET['fgel']) : $dfgel ?>" ></span>
  <span class="labelbox"><label>Log de charge : <input type="text" name="charge" value="<?php echo isset($_GET['charge']) ? secur_ent($_GET['charge']) : $dcoup ?>" ></label> --
  <input type="text" name="fcharge" value="<?php echo isset($_GET['fcharge']) ? secur_ent($_GET['fcharge']) : $dfcoup ?>" ></span>
  <span class="labelbox"><label>Log de mort : <input type="text" name="mort" value="<?php echo isset($_GET['mort']) ? secur_ent($_GET['mort']) : $dmort ?>" ></label> --
  <input type="text" name="fmort" value="<?php echo isset($_GET['fmort']) ? secur_ent($_GET['fmort']) : $dfmort ?>" ></span>
  <span class="labelbox"><label>Log de bâtiment : <input type="text" name="batiment" value="<?php echo isset($_GET['batiment']) ? secur_ent($_GET['batiment']) : $dbatiment ?>" ></label> --
  <input type="text" name="fbatiment" value="<?php echo isset($_GET['fbatiment']) ? secur_ent($_GET['fbatiment']) : $dfbatiment ?>" ></span>
  <span class="labelbox"><label>Log de mes kill  : <input type="text" name="kill" value="<?php echo isset($_GET['kill']) ? secur_ent($_GET['kill']) : $dkill ?>" ></label> --
  <input type="text" name="fkill" value="<?php echo isset($_GET['fkill']) ? secur_ent($_GET['fkill']) : $dfkill ?>" ></span>
  <span class="labelbox"><label>'Nombre' dans les stats : <input type="text" name="statsynt" value="<?php echo isset($_GET['statsynt']) ? secur_ent($_GET['statsynt']) : $dstatsynt ?>" ></label> --
  <input type="text" name="fstatsynt" value="<?php echo isset($_GET['fstatsynt']) ? secur_ent($_GET['fstatsynt']) : $dfstatsynt ?>" ></span>
</div>
  <p><input type="submit" value="Valider" /></p>
</form>

<div id="changelog"><br />Changelog :
<br />2.001 :
<br />- L'url peut maintenant sauvegarder le stats détaillés
<br />- Correction d'un bug sur la sauvegarde de la suppression des stats globales
<br />- Le calcul de l'url passe même si on ne remplit pas le log
<br />2.000 :
<br />- Refonte graphique
<br />- Correction du log de feu
<br />1.895 :
<br />- Log de gel ajouté
<br />- Stats+ : ligne de total complétée avec les logs indépendants d'action de joueurs (poison, gel, brulure)
<a href="#" id="viewchangelog" onclick="javascript:document.getElementById('changelogsuite').style.display='inline';document.getElementById('viewchangelog').style.display='none';return false;"><br />Afficher la suite</a>
<span id="changelogsuite" style="display:none">
<br />1.894 :
<br />- Correction du total qui s'affichait plus en premier dans stats+
<br />- Suppression de la couleur en cours pour les lignes non de log
<br />1.890 à 1.893 :
<br />- Ajout du nombre d'actions dans les stats détaillées
<br />- Correction, le nombre de PV n'était pas affiché dans les stats+ de nos actions
<br />- Affichage du résultat Total (sous le format du stats+) avant le cadre afin de voir rapidement nos dégâts occassionnés
<br />- PV du poison de nouveau OK.
<br />1.888 et 1.889 :
<br />- Possibilité de rentrer ses propres logs
<br />- Mise à jour de l'affichage des stats pour l'affichage de ses logs
<br />1.887 :
<br />- Le poison ne compte plus dans le nombre d'actions reçues
<br />- Détection de l'heure et du clan améliorée lors d'une charge avec un nom de monture moisi
<br />1.886 :
<br />- ajout de la possibilité d'enlever la pub (faire un calcul de l'url en décochant la case de pub)
<br />- ajout d'une possibilité de simplification de l'affichage
<br />1.884 et 1.885 :
<br />- Ajout d'un saut de ligne quand deux actions sont espacées de 10 minutes
<br />- Certains noms de monture n'étaient pas reconnus, empêchant la détection de l'heure et du clan
<br />1.883 :
<br />- Ajout de la syntaxe des attaques partiellement bloquées
<br />1.881 et 1.882 :
<br />- Correction, les soins des personnages féminin n'étaient pas détectés.
<br />- Correction, le double espace causait problème parfois pour récupérer le clan/pseudo
<br />1.87 et 1.88 :
<br />- Légère modification de la présentation du stat+ : coup ramené toujours en premier, total calculé, et tabulation séparant les actions.
<br />1.86 :
<br />- Ajout des stats détaillées héros par héros (stat+)
<br />- Ajout du changelog
<br />1.85 :
<br />- Ajout de la possibilité de mettre les pseudos et les clans en lien vers leur page IG
<br />- Ajout d'une <a href="<?php echo query_strip().'?config=2' ?>">configuration</a> avec les entrées de formulaires vides
<br />Précédents ajouts :
<br />- Ajout du cas du log de kill
<br />- Traitement du log de la brulure de feufolay
<br />- Corrections de cas particuliers non gérés
</span>
<br /><font color=white> Mots clés : HC Heroes Chonicles convertisseur de log logs convertlog calculateur calcul </font>
<br />
</div>
</body>
</html>
<?php
    
    
function dateToTimestamp($heure)
    {
        
//[27/01 19 h 42 : 13]  
        
if (preg_match('`(\d+)/(\d+) (\d+) h (\d+) : (\d+)`',$heure,$match)) {
            return 
mktime($match[3], $match[4], $match[5], $match[2], $match[1], 2002); 
        }
        else return 
"erreur";
    }
    
    function 
traiter_heure(&$date1, &$date2, &$secact) {
        
//echo $date1.'<br>';
        
$date1 dateToTimestamp($date1);
        if (
$date1 $date2 $secact $ret true;
        else 
$ret false;
        
$date2 $date1;
        return 
$ret;
    }
    function 
inc2(&$var,$plus) {
        if (isset(
$var)) $var+=$plus;
        else 
$var $plus;
    }
    function 
inc(&$var) {
        if (isset(
$var)) $var++;
        else 
$var=1;
    }
    
    function 
end_url() {
        
$end $_SERVER['PHP_SELF'];
        
$end preg_replace('`[^/]+$`','',$end);
        
$end .= query_strip();
        return 
$end;
    }
?>