convertlog recreatelog potions plantes stats_clan zn_distance stats_kill cartfidel common_function sources outils

Source du fichier zn_distance.php :


<!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,potion,potions,PV,calculateur">
        <title>Distance en ZN 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>
     Distance en ZN HC v1.3 <span id="by">(par LittleBoss)</span></div>
  <div id="entete">Cet outil permet d'obtenir le nombre de PA minimum pour aller d'une case à une autre en Zone Neutre. 
  <br />Ne prend pas en compte la muraille, mais prend en compte les téléporteurs.
  <br />Synthaxe des positions : 'colonne ligne' (exemple : 40.35, 40-35, 40 35, ...)
  <br />Exemple de résultat : <a href="?pos1=55.50&pos2=40.48">clique</a></div>
  
<?php

if(isset($_GET['pos1']) && isset($_GET['pos2']))
{  


    
// définition des variables
    
$pos1 = array(); $pos2 = array(); $verif true;
    
$firstpos secur_ent($_GET['pos1']);
    
$secondpos secur_ent($_GET['pos2']);
    if (
preg_match('`(\d+)\D+(\d+)`',$firstpos,$match)) {
        
$pos1[0] = $match[1]; $pos1[1] = $match[2];
        
//echo "$match[0] # $match[1] # $match[2]<br />";
        
if (preg_match('`(\d+)\D+(\d+)`',$secondpos,$match2)) {
            
$pos2[0] = $match2[1]; $pos2[1] = $match2[2];
        }
        else 
$verif false;
    }
    else 
$verif false;
    
    if (
$verif) {
        
//$pos1 = explode('.',$_GET['pos1']);
        //$pos2 = explode('.',$_GET['pos2']);
        
        // distance directe
        
$dist0[0] = dist($pos1,$pos2); $dist0[1] = 2*$dist0[0];
        
// définition des téléporteurs :
        
$tp['SO'] = array(=> 38=> 53);
        
$tp['SE'] = array(=> 53=> 53);        
        
$tp['NO'] = array(=> 38=> 38);
        
$tp['NE'] = array(=> 53=> 38);
        
$tp['C'] = array(=> 45=> 45);
        
        
// distance du tp le plus proche
        //$disttp1 = min(dist($tpso),dist($tpse),dist($tpno),dist($tpne),dist($tpc));
        
$disttp1[0] = 100$disttp2[0] = 100;
        
        
// distance pos1 aux tp
        
$cpt 0;
        foreach(
$tp as $zone => $itp) {
            
$d dist($pos1,$itp);
            if (
$d $disttp1[0]) {
                
$disttp1[0] = $d;
                
$zonetp1 "$zone";
            }
            elseif (
$d == $disttp1[0]) {
                
$zonetp1 .= ",$zone";
            }
            
$cpt++;
        }
        
        
// distance pos2 aux tp
        
$cpt 0;
        foreach(
$tp as $zone => $itp) {
            
$d dist($itp,$pos2);
            if (
$d $disttp2[0]) {
                
$disttp2[0] = $d;
                
$zonetp2 $zone;
            }
            elseif (
$d == $disttp2[0]) {
                
$zonetp2 .= ",$zone";
            }
            
$cpt++;
        }
        
        
$disttp1[1] = 2*$disttp1[0]; $disttp2[1] = 2*$disttp2[0];
        
$distot $disttp1[1] + $disttp2[1] + 5;
        
        echo 
"<br />Position $pos1[0],$pos1[1] -> $pos2[0],$pos2[1]";
        echo 
"<br />Distance à pied : $dist0[0] cases ($dist0[1] PA)";
        echo 
"<br />Position 1 -> tp le(s) plus proche(s) $zonetp1 : $disttp1[0] cases ($disttp1[1] PA)";
        echo 
"<br />Position 2 -> tp le(s) plus proche(s) $zonetp2 : $disttp2[0] cases ($disttp2[1] PA)";
        echo 
"<br />Distance entre les deux cases via les tp $zonetp1 => $zonetp2 : $distot PA";
        
        echo 
"<br /><br />Position des TP :
        <br />NO : 38,38 - NE : 53,38
        <br />C : 45,45 (central)
        <br />SO : 38,53 - SE : 53,53"
;
        
    }
    else echo 
'Synthaxe non respectée';

 elseif (isset(
$_POST['log'])) {
    echo 
'Erreur : vous n\'avez pas rempli le log<br />';
}
?> 
<form action="<?php echo $_SERVER["REQUEST_URI"]; ?>" method="get">
    <p><label title="Premiere case">Position 1 : <input type="text" name="pos1" value='' size=6></label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <label title="Deuxieme case">Position 2 : <input type="text" name="pos2" value='' size=6></label>
    </p><p><input type="submit" value="Valider" /></p>
</form>
 <div id="changelog"><br />Changelog :
 <br />1.3 :
 <br />- Modification graphique
 <br />1.2
 <br />- Tout caractère séparateur autorisé
</h5>

<?php

function dist(&$p1,&$p2) {
    return 
max(abs($p1[0]-$p2[0]),abs($p1[1]-$p2[1]));
}

?>