convertlog recreatelog potions plantes stats_clan zn_distance stats_kill cartfidel common_function sources outils

Source du fichier recreatelog.php :


<?php $simplifie = isset($_GET['simpl']); ?>

<!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>
    <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>Recréateur 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>
     Recréateur de log HC v1.1 <span id="by">(par LittleBoss)</span></div>
  <div id="entete">Cet outil permet de permet de recréer le log reçu par un joueur en regroupant le log de ses attaquants.
  <br />Entrer les logs ci dessous en préfixant chaque log avec une ligne contenant uniquement le pseudo de l'attaquant, le log s'affichera au dessus de la zone de texte.
  <br />Il y a ensuite la possibilité de valider aussitôt le log résultat pour le faire passer par le convertisseur de log.
  </div>

<?php


if (isset($_POST['log']) && strlen(trim($_POST['log'])) > 2) {
    
// initialisation des valeurs par défaut des logs
    
$dsecact=600;

    
$pub=isset($_GET['pub'])? 'checked="check"' '';
    
$autostats=isset($_GET['stats'])? '' 'checked="check"';

    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 ''$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 '';
    }

    
$fichier_log explode("\n"$_POST['log']);
    
$log = array();
    
    
$coup 'coup';
    
$soin 'soin';
    
$esquive 'esquive';
    
$pavois 'pavois';
    
$pavoispartiel 'pavoispartiel';
    
$kill 'kill';    
    
$charge 'charge';
    
$mort 'mort';
    
    
$templatelog[$coup] = '{heure}{clan}{attaquant} vous a attaqué avec {arme} et vous a fait perdre {pv} PV !';
    
$templatelog[$soin] = '{heure}Vous avez été soigné par {clan}{attaquant} qui vous a rendu {pv} PV!';
    
$templatelog[$esquive] = '{heure}Vous avez esquivé l\'attaque de {clan}{attaquant}!';
    
$templatelog[$pavois] = '{heure}Vous avez bloqué l\'attaque de {clan}{attaquant}!';
    
$templatelog[$pavoispartiel] = '{heure}Vous avez partiellement bloqué l\'attaque de {clan}{attaquant}!';
    
$templatelog[$charge] = '{heure}{clan}{monture} la monture de {attaquant} vous a chargé et vous a fait perdre {pv} PV !';
    
$templatelog[$kill] = '{heure}Vous avez succombé aux attaques de {clan}{attaquant} !!';
    
$templatelog[$mort] = '{heure}La mort vous prend 10% de votre or et XX points d\'expérience !';
    
    
$attaquant 'Inconnu'$clan ''$cible 'the over mega cible';
    foreach(
$fichier_log as $lignei) {
        
        if(
$lignei) { // si la ligne i est non vide
            
$lignei ' '.trim(preg_replace('`:\s*$`','',$lignei));
            
$lignei str_replace('  ',' ',$lignei);
            
// définition du clan et de l'attaquant

            
if (preg_match('`^\s*(\[[^]]+\])\s*(\S+)\s*$`',$lignei,$match)) {
                
$clan "$match[1] "$attaquant $match[2];
                continue;
            }
            elseif (
preg_match('`^\s*(\S+)\s*(\[[^]]+\])\s*$`',$lignei,$match)) {
                
$clan "$match[2] "$attaquant $match[1];
                continue;
            }
            elseif (
preg_match('`^\s*(\S+)\s*$`',$lignei,$match)) {
                
$attaquant $match[1];
                continue;
            }

            if (
preg_match('`\[?([^\]]*)\]? Vous avez attaqué (.+) avec (.*) en lui faisant perdre`'$lignei$match)) { $action $coup;  }
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez tué (.+) !`'$lignei$match)) { $action $kill;  }            
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez soigné ?p?a?r? (.+) en lui rendant`'$lignei$match)) { $action $soin;  }
            elseif (
preg_match('`\[?([^\]]*)\]? (.*) vous a esquivé`'$lignei$match)) { $action $esquive;  }
            elseif (
preg_match('`\[?([^\]]*)\]? (.*) a bloqué votre attaque`'$lignei$match)) { $action $pavois;  }
            elseif (
preg_match('`\[?([^\]]*)\]? (.*) a partiellement bloqué votre attaque`'$lignei$match)) { $action $pavoispartiel;  }            
            elseif (
preg_match('`\[?([^\]]*)\]? Vous avez chargez (.+) !`'$lignei$match)) { $action $charge;  }    
            else { 
$action 'suivant'; }
            if (
$action != 'suivant') {
                
$i=($action == 'kill')? 90:0;
                
$match[2] = trim($match[2]);
                if (
$cible != $match[2]) { $cible $match[2]; }
                if (
$action == $coup) {
                    
//echo $lignei;
                    
$arme $match[3];
                }
                
$timestamp dateToTimestamp($match[1]).twodigits($i);
                while(isset(
$log[$cible][$timestamp.twodigits($i)])) { if ($action == 'kill'$i--; else $i++; }
                
                
$pv ''$pv preg_replace("/.*(rendant|rendu|perdre) ([0-9]+) PV.*/""$2"$lignei);
                
$heure preg_match('`\d+/\d+ \d+ h \d+ : \d+`',$match[1],$res)? '['.$res[0].'] ':'';
                
                
$addlog $templatelog[$action];
                
//echo $addlog;
                
while(preg_match('`({(\w+)})`',$addlog,$match)) {
                    
$addlog preg_replace("`$match[1]`",${$match[2]},$addlog);
                }
                
//echo $addlog;
                
$log[$cible][$timestamp.twodigits($i)] = $addlog;
                if (
$action == $kill) {
                    
$addlog $templatelog[$mort];
                    while(
preg_match('`({(\w+)})`',$addlog,$match)) {
                        
$addlog preg_replace("`$match[1]`",${$match[2]},$addlog);
                    }
                    
$i++;
                    
$log[$cible][$timestamp.twodigits($i)] = $addlog;
                }

            }
        }
    }
    
    
$resultat '';    
    foreach(
$log as $cible => $arraylog) {
        
$resultat .= "<br />$cible :<br />";
        
ksort($arraylog);
        foreach(
$arraylog as $line$resultat .= $line.'<br />';
        
//print_r($arraylog);echo '<br /><br />';
    
}
    
//$log = trim("$log");
    
$resultat str_replace('<br />'"\n",$resultat);    
    
    
?>
    <br />[RESULTAT]<br /><br />
        
<form id="form" action="convertlog.php" method="post">
  <input type="submit" value="Lancer le convertisseur de log sur le résultat" />
<table>
<tr><td><p><textarea name="log" rows="20" cols="60" readonly="readonly"><?php echo stripslashes($resultat?></textarea></p></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" /> 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 reconnu 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 restant 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="Lancer le convertisseur de log sur le résultat" /></p>
</form>
    [OU ENTRER UN NOUVEAU LOG]
    <?php

    
if (isset($_POST['logurl'])) { // calcul l'url direct avec les paramètres de couleurs choisis
        
$et ''$url '?';
        if (
preg_match('`normal=1`',$_SERVER["REQUEST_URI"])) { $url .= $et.'normal=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 'poison=' $feu$et '\&'; }
        if (
$ffeu != $dffeu) { $url .= $et 'fpoison=' $ffeu$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 (
$autostats != $dautostats) { $url .= $et 'autostats=0'$et '\&';  }
        if (
$pub != $dpub) { $url.= $et 'pub=0'$et '\&';  }
        if (
$fstatsynt != $dfstatsynt) { $url.= $et 'fstatsynt=' $fstatsynt$et '\&';  }
        if (
$pvsynt != ' { PV restant : XX }') { $url.= $et 'pvsynt=' $pvsynt$et '\&';  }
        if (
preg_match('`.{3,}`'$url)) {
            echo 
'________________________________''<br />';
            
$urlg query_strip();
            
$urlg .= stripslashes($url);
            
?>
            Pour garder votre configuration, garder <a href="<?php echo $urlg ?>">ce lien</a> dans vos marques pages. <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 ;)
    
echo 'Log incorrect<br />';
}
?>
<!-- Création de la zone de texte pour entrer le log  -->
<form action="<?php echo $_SERVER["REQUEST_URI"]; ?>" method="post">
    <p><input type="submit" value="Valider" /></p>
    <p><textarea name="log" rows="20" cols="80" ></textarea></p>
    <p><input type="submit" value="Valider" /></p>
</form>

<div id="changelog"><br />Changelog :

<br />1.1
<br />- Modification graphique
<br />1.0
<br />- Reprise du code de convertlog

<br /><font color=white> Mots clés : HC Heroes Chonicles convertisseur de log logs convertlog calculateur calcul recreateur recreatelog</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 
twodigits($i) {
        if (
$i 10) return "0$i";
        else return 
$i;
    }
    
?>