mappacompleta.php cliccabile
mappacompleta.php cliccabile postato il 18/08/2009 10:54:59 nel forum programmazione, open source e hosting
Ragazzi questo è il codice del file mappacompleta.php del gdrcd 3.0 (semplicesemplice)
<? session_start();
error_reporting (E_ALL);
include ('inc/parametri.inc.php');
include ('inc/controllo.php');
include ('inc/open2.php');
include ('inc/header.html.inc.php');
$Partenza = 0 + $_GET['ID'];
$Stanze[0] = 0;
#preparazione matrice per la mappa
function scan($CodMappa, $x, $y) {
#Funzione ricorsiva per l'esplorazione automatica della mappa
Global $a;
Global $Stanze;
if (!isset($a[$x][$y])) {
#echo "$x.$y=$CodMappa<br>";
$MySql = "SELECT Mappa.*, CodAllineamento.DescrizioneAllineamento, CodAllineamento.Colore FROM Mappa LEFT JOIN CodAllineamento ON Mappa.Allineamento = CodAllineamento.IDAllineamento WHERE Mappa.ID = $CodMappa";
$Result = mysql_query($MySql);
if ($rs = mysql_fetch_array($Result)) {
array_push($Stanze, $CodMappa);
$a[$x][$y]['ID'] = $CodMappa;
$a[$x][$y]['Breve'] = $rs['Breve'];
$a[$x][$y]['Stato'] = $rs['Stato'];
$a[$x][$y]['Colore'] = $rs['Colore'];
$a[$x][$y]['DescrizioneAllineamento'] = $rs['DescrizioneAllineamento'];
$a[$x][$y]['Presenti'] = 0;
$a[$x][$y]['Entra'] = $rs['Entra'];;
$a[$x][$y]['Esci'] = $rs['Esci'];;
$MySql = "SELECT COUNT(Nome) AS Numero FROM Presenti WHERE StanzaApparente = $CodMappa AND OraUscita = '2037-12-31 00:00:00' AND Is_Invisibile=0";
$Result1 = mysql_query($MySql);
if ($rs1 = mysql_fetch_array($Result1)) {
if ($rs1['Numero'] != 0) {
$a[$x][$y]['Presenti'] = $rs1['Numero'];
}
}
if (0+$rs['E'] > 0) {
#$a[$x+1][$y] = $rs['E'];
scan($rs['E'], $x+1, $y);
}
if (0+$rs['O'] > 0) {
#$a[$x-1][$y] = $rs['O'];
scan($rs['O'], $x-1, $y);
}
if (0+$rs['N'] > 0) {
#$a[$x][$y-1] = $rs['N'];
scan($rs['N'], $x, $y-1);
}
if (0+$rs['S'] > 0) {
#$a[$x][$y+1] = $rs['S'];
scan($rs['S'], $x, $y+1);
}
}
}
}
scan($Partenza, 0,0);
if (count($a) == 0) {
echo '<font class=Warning>Mappa vuota</font><br><br>';
echo 'Forse volevi <b><a href="mappacompleta.php?ID=1">questa?</a></b>';
exit();
}
ksort($a, SORT_NUMERIC);
reset($a);
$minX = key($a);
$maxX = count($a)+$minX-1;
/*
foreach($a as $k1 => $v1) {
foreach ($v1 as $k2 => $v2) {
foreach ($v2 as $k3 => $v3) {
print "$k1.$k2.$k3 = $v3<br>";
}
}
}
*/
?>
<title>Mappa Completa</title>
</HEAD>
<body>
<p align="center"><img src="img/mappa.jpg" width="235" height="196"></p>
<p>
<?
function Mappa($x, $y) {
Global $a;
Global $Stanze;
$StrTemp = htmlspecialchars(trim($a[$x][$y]['Breve']));
$Stato = trim($a[$x][$y]['Stato']);
$Colore = $a[$x][$y]['Colore'];;
$MySql = "SELECT COUNT(Nome) AS Numero FROM Presenti WHERE StanzaApparente = ".$a[$x][$y]['ID']." AND OraUscita = '2037-12-31 00:00:00' AND Is_Invisibile=0";
$Result = mysql_query($MySql);
if ($rs = mysql_fetch_array($Result)) {
if ($rs['Numero'] != 0) {
$StrTemp = '('.$rs['Numero'].')<br>'.$StrTemp;
}
}
$StrTemp .= '<br>';
if ($Stato != '') {
$StrTemp .= '<a Title="Stato" href="javascript:alert(''.addslashes($Stato).'')")><img src="img/info.gif" border=0></a> ';
}
return($StrTemp);
$rs->close;
mysql_free_result();
}
function Casella($x, $y) {
Global $a;
Global $ID;
Global $Stanze;
$Temp = "<td width=120 align=center bgcolor='".$a[$x][$y]['Colore']."'><font class=Testo";
if ($_SESSION['Stanza'] == $a[$x][$y]['ID']) {
$Temp .= ' style={background:gold;color:black}';
}
$Temp .= '>';
if ($_SESSION['Stanza'] == $a[$x][$y]['ID']) {
$Temp .= "<IMG SRC='img/testamini".$_SESSION['Sesso_S'].".gif' width=8 height=8> ";
};
$Temp .= '</font>';
$Temp .= Mappa($x, $y);
if (($a[$x][$y]['Esci'] > 0) and (!in_array($a[$x][$y]['Esci'], $Stanze))) {
$Temp .= '<a Title="Uscita" href="mappacompleta.php?ID='.$a[$x][$y]['Esci'].'"><img src="img/exit.gif" border=0></a> ';
}
if ($a[$x][$y]['Entra'] > 0) {
$Temp .= '<a Title="Entrata" href="mappacompleta.php?ID='.$a[$x][$y]['Entra'].'"><img src="img/enter.gif" border=0></a> ';
}
$Temp .= '</td>';
return($Temp);
}
include ("inc/controlloesilio.php");
?>
</p>
<center>
<table border=1 cellpadding=2 cellspacing=0>
<?
for ($y = -10; $y<=20; $y++) {
$count = 0;
$riga = '<tr>';
for ($x = $minX; $x<=$maxX; $x++) {
if (isset($a[$x][$y])) {
$riga .= casella($x, $y);
$count++;
} else {
$riga .= '<td></td>';
}
}
$riga .= '</tr>';
if ($count > 0) {
echo $riga;
}
}
?>
</table>
<br><br>
<table border=0 cellpadding=2 cellspacing=2 class=tChiaro>
<tr>
<td colspan=2 align=center class=tTitolo><b>Legenda</b></td>
</tr>
<?
$MySql = "SELECT CodAllineamento.* FROM CodAllineamento ORDER BY IDAllineamento";
$Result = mysql_query($MySql);
while ($rs = mysql_fetch_array($Result)) {
echo '<tr class=tScuro><td><img src="img/spacer.gif" width=10 height=10 style={background:'.$rs['Colore'].'}></td><td>'.htmlspecialchars($rs['DescrizioneAllineamento']).'</td></tr>';
}
?>
<tr class=tScuro><td><img src="img/info.gif"></td><td>Stato del luogo</td></tr>
<tr class=tScuro><td><img src="img/enter.gif"></td><td>Apre la mappa entrando nel luogo</td></tr>
<tr class=tScuro><td><img src="img/exit.gif"></td><td>Apre la mappa uscendo dal luogo</td></tr>
</table>
</center>
</body>
</html>
Qualche anima pia saprebbe indicarmi che tipo di codice serve per poter rendere i luoghi della mappa cliccabili e quindi raggiungibili direttamente?
(sarebbe il massimo sapere anche dove poterlo inserire *_*) grazie e scusate il disturbo.
Pagine → 1
18/08/2009 18:40:07
vi ringrazio per le risposte, speravo di poterla utilizzare, ma va beh! :)
19/08/2009 00:17:04
In uno dei miei post precedenti ho detto che io sconsiglio l'uso della mappa clikkabile del gdr cd
ma che consiglio invece di metterne una più semplice da gestire in php
cerca sul forum e troverai anche il codice che serve per crearla
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
World of Warship ↗
Storie di Agarthi ↗
CRSED: F.O.A.D. ↗