Résolu Besoin d'aide pour développer mon site web

l'unique crafteur

Aventurier
14 Septembre 2011
6
0
1
28
Salut tout le monde !
Je suis actuellement entrain de développer un site web pour un serveur Minecraft.
J'ai les connaissances qui faut en html/css/php (et un peu javascript) mais j'ai besoin d'aide sur un petit détail.
J'aimerais que les avatars des nouveaux membres sur mon site soient automatiquement la tête de leur skin. Un peut comme avec le logiciel Minecraft Char Avatars.
C'est simple à comprendre.
Quelqu'un aurait une idée ?
Merci d'avance.
Cordialement.
 

l'unique crafteur

Aventurier
14 Septembre 2011
6
0
1
28
Merci de ta réponse.
Mais tout ça je le sait déjà et j'en suis capable.
Il me faudrait en fait un moyen de récupérer juste la tête à partir de l'image du skin.
 

beubeulone

Feignant
19 Juillet 2011
281
56
134
www.tarti.fr
Il n'y a pas de base à connecter ou quoi que ça soit pour récupérer le skin, juste check une adresse.
Je te passe une fonction que j'ai sommairement commentée pour t'aider. Il te faudra adapter les dossiers.
Code:
function avatar ($pseudo) {
    $home = '/home/beubeulone/www/';    // dossier web, facultatif si tu restes à la racine
    if (isset($_GET['razavatar'])) {    // reinitialise l'image dans le dossier /avatars
        if(file_exists($home.'avatars/'.strtolower($pseudo).'.png')) {
            unlink('avatars/'.$pseudo.'.png');
            }
        }
    if (!file_exists($home.'avatars/'.strtolower($pseudo).'.png')) {    // verifie que l'avatar n'existe pas deja
        if ($source = @imagecreatefrompng('http://minecraft.net/skin/'.$pseudo.'.png')) {    // check si le pseudo est valide et a un skin
            $destination = imagecreate(8,8);
            $larg_source = imagesx($source);
            $haut_source = imagesy($source);
            $larg_destination = imagesx($destination);
            $haut_destination = imagesy($destination);
            $destx = $desty = 0;
            imagecopymerge($destination, $source, $destx, $desty, 8, 8, $larg_source, $haut_source, 60);
            imagepng($destination, $home.'avatars/'.strtolower($pseudo).'.png' );
 
            $src = imagecreatefrompng($home.'avatars/'.strtolower($pseudo).'.png');
            $dest = imagecreate(64, 64);
            imagecopyresized($dest, $src, 0, 0, 0, 0, 64, 64, 8, 8);
            imagepng($dest, $home.'avatars/'.strtolower($pseudo).'.png' );
            }
        else {
            copy($home.'avatars/steve.png', $home.'avatars/'.strtolower($pseudo).'.png');    // si pas de skin présent, prend un avatar par defaut, ici, steve
            }
        }
    if(file_exists($home.'avatars/'.strtolower($pseudo).'.png')) { // verifie que la fonction a fait son taff
        return true;
        }
    }
 
  • J'aime
Reactions: l'unique crafteur

l'unique crafteur

Aventurier
14 Septembre 2011
6
0
1
28
Merci beaucoup. Par contre là je ne suis pas sur mon ordi donc je peux pas tester ton code.
Pourrais-tu me mettre un aperçu de ce que ça donnera?
Merci.
 

beubeulone

Feignant
19 Juillet 2011
281
56
134
www.tarti.fr
Je n'ai pas/plus d'exemple, mais tu peux me croire sur parole :D
Ça générera la trombine du gars en PNG et en 64x64 dans un dossier avatars pour peu qu'il ai un skin défini et bien sûr un compte premium.
 

BamBam

Aventurier
4 Août 2011
56
0
1
Désolé d'avance du up .

Mais ne fonctionne pas , j'ai pourtant tout essayé et se script m'aurait été vraiment utile :(
 

beubeulone

Feignant
19 Juillet 2011
281
56
134
www.tarti.fr
Qu'est ce qui ne fonctionne pas ?

Rien n'est censé s'afficher à l'écran, en revanche, il faut la bibliothèque GD2 pour PHP (pour manipuler les images).
Tu dois aussi éditer les dossiers pour qu'ils correspondent aux tiens et appeler la fonction dans ton code :
Code:
avatar('pseudo_du_joueur');
Si tu as la moindre erreur ou avertissement, colle le(s) ici.