-
Avatar random
Salve, sto creando un browser game da alcune fonti open source.
E' da un pò che sbatto e non riesco a trovare la soluzione che funzioni. Praticamente devo assegnare un avatar ad ogni nuovo personaggio che si registra. L'avatar assegnato dovrebbe essere random dalle immagini che ho in una cartella.
Le immagini si trovano nella cartella /DK/images.
Mi sapreste dire quale è il codice php?
-
-
si ho già provato con questo suggerito da te:
Codice PHP:
<?php
$dir = "/DK/prova"; // Senza slash finale
$img = array();
$img = glob($dir."/*");
$con = count($img)-1;
$ran = rand(0,$con);
echo "<img src=\"".$img[$ran]."\" alt=\"\" />";
?>
ma praticamente non mi si visualizza nessuna immagine, solo pagina bianca, ho provato anche a eliminare lo slash dalla variabile $dir, ma niente. Eppure il percorso è corretto e ci sono immagini .png
poi ho provato con uno javascript e funziona solo che praticamente il mio problema è che l'immagine assegnata in modo casuale poi deve rimanere stabile, ovvero non deve cambiare ad ogni aggiornamento. Cosa dovrei cambiare in questo script?
Codice:
<SCRIPT LANGUAGE="JavaScript">
// qui di seguito i nomi delle immagini
var imgs = new Array ("/DK/prova/1.png", "/DK/prova/2.png", "/DK/prova/3.png", "/DK/prova/4.png")
// qui il numero delle immagini da visualizzare, dentro la parentesi
var toShow = new Array (1)
for (var i = 0; i < toShow.length; i++)
{
var ok = false
do
{
ok = true
// scegli un numero a caso
var x = Math.floor (imgs.length * Math.random ())
// è diverso dagli altri?
for (var j = 0; j < i; j++)
ok = ok && (x != toShow[j])
if (ok)
// sì? aggiungilo alla lista delle immagini da visualizzare
toShow[i] = x
// no? dichiara fallimento e ricomincia da capo, non serve specificarlo
}
while (!ok)
}
// scelti tutti i numeri? Adesso visualizza le immagini
for (var i = 0; i < toShow.length; i++)
document.write ('<IMG SRC="' + imgs[toShow[i]] + '">');
</script>
Riassumo un attimo mettendomi nei panni di un nuovo giocatore che si registra al mio browser game.
Io mi registro, mi viene assegnato un avatar casuale, che poi mi rimane in modo definitivo. Come si fà?
-
Lo salvi nel campo della tabella con l'url relativo! :wink:
Posta il tuo schema...basta aggiungere alla query:
Codice PHP:
$nome = "user"; $avatar = "avatar generato";
$query = mysql_query("INSERT INTO table (nome,avatar) VALUES ('$nome','$avatar');
-
scusa ma io sono purtroppo alle prime armi.
Allora ti posto praticamente tutto il codice dove mi appare un avatar che però cambia ad ogni aggiornamento.
Codice PHP:
<?php
$template = <<<THEVERYENDOFYOU
<table width="100%">
<tr><td class="title"><img src="http://forum.it.altervista.org/images/button_character.gif" alt="Character" title="Character" /></td></tr>
<tr><td>
<p>
<SCRIPT LANGUAGE="JavaScript">
// qui di seguito i nomi delle immagini
var imgs = new Array ("/DK/prova/1.png", "/DK/prova/2.png", "/DK/prova/3.png", "/DK/prova/4.png")
// qui il numero delle immagini da visualizzare, dentro la parentesi
var toShow = new Array (1)
for (var i = 0; i < toShow.length; i++)
{
var ok = false
do
{
ok = true
// scegli un numero a caso
var x = Math.floor (imgs.length * Math.random ())
// è diverso dagli altri?
for (var j = 0; j < i; j++)
ok = ok && (x != toShow[j])
if (ok)
// sì? aggiungilo alla lista delle immagini da visualizzare
toShow[i] = x
// no? dichiara fallimento e ricomincia da capo, non serve specificarlo
}
while (!ok)
}
// scelti tutti i numeri? Adesso visualizza le immagini
for (var i = 0; i < toShow.length; i++)
document.write ('<IMG SRC="' + imgs[toShow[i]] + '">');
</script>
<p>
<b>{{charname}}</b><br />
Level: {{level}}<br />
Exp: {{experience}}<br />
Gold: {{gold}}<br />
Bank: {{bank}}<br />
HP: {{currenthp}}<br />
MP: {{currentmp}}<br />
TP: {{currenttp}}<br />
{{statbars}}<br />
<a href="javascript:opencharpopup()">Estendi Statistiche</a>
</td></tr>
</table><br />
<table width="100%">
<tr><td class="title"><img src="http://forum.it.altervista.org/images/button_inventory.gif" alt="Inventory" title="Inventory" /></td></tr>
<tr><td>
<table width="100%">
<tr><td><img src="http://forum.it.altervista.org/images/icon_weapon.gif" alt="Weapon" title="Weapon" /></td><td width="100%">Weapon: {{weaponname}}</td></tr>
<tr><td><img src="http://forum.it.altervista.org/images/icon_armor.gif" alt="Armor" title="Armor" /></td><td width="100%">Armor: {{armorname}}</td></tr>
<tr><td><img src="http://forum.it.altervista.org/images/icon_shield.gif" alt="Shield" title="Shield" /></td><td width="100%">Shield: {{shieldname}}</td></tr>
</table>
Slot 1: {{slot1name}}<br />
Slot 2: {{slot2name}}<br />
Slot 3: {{slot3name}}
</td></tr>
</table><br />
<table width="100%">
<tr><td class="title"><img src="http://forum.it.altervista.org/images/button_fastspells.gif" alt="Fast Spells" title="Fast Spells" /></td></tr>
<tr><td>
{{magiclist}}
</td></tr>
</table><br />
THEVERYENDOFYOU;
?>
Allora il javascript mi associa l'avatar casuale.
Dove devo inserire questo script?
Codice PHP:
$nome = "user"; $avatar = "avatar generato";
$query = mysql_query("INSERT INTO table (nome,avatar) VALUES ('$nome','$avatar');
La tabella relativa agli utenti si chiama: dk_users
all'interno le query: username, avatarid.
EDIT: sicuramente bisogna cambiare lo script javascript per fare in modo che le immagini non si aggiornino ad ogni refresh della pagina.