[MOD][V2.2.2][FUN]Creando avatar default con la letra inicial del nombre de usuario

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • [MOD][V2.2.2][FUN]Creando avatar default con la letra inicial del nombre de usuario

    Este es un pequeño MOD donde al registrarse el usuario se le asignara un avatar con la letra inicial de su nombre de usuario.

    en styles/ se crea una nueva carpeta donde se guardaran los avatares esta carpeta se va a llamar avatar

    en styles/resource se añade la carpeta gd-files que les voy a dejar en el comprimido al final de este post

    en includes/GeneralFunctions.php añadimos la siguiente función:

    PHP Source Code: GeneralFunctions.php

    1. function createAvatarImage($string)
    2. {
    3. $name = htmlspecialchars(stripslashes(trim($string)));
    4. $inicial = strtoupper($name[0]);
    5. $nameImage = md5(uniqid());
    6. $imgPath = "styles/avatar/".$nameImage .".png";
    7. $avatar = imagecreatetruecolor(60,60);
    8. $bg_color = imagecolorallocate($avatar, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
    9. imagefill($avatar,0,0,$bg_color);
    10. $avatar_text_color = imagecolorallocate($avatar, 0, 0, 0);
    11. $font = imageloadfont('styles/resource/gd-files/gd-font.gdf');
    12. imagestring($avatar, $font, 10, 10, strtoupper($inicial), $avatar_text_color);
    13. imagepng($avatar, $imgPath);
    14. imagedestroy($avatar);
    15. return $imgPath;
    16. }
    Display All
    en includes/classes/PlayerUtil.class.php

    dentro del array $params en la línea 137 añadimos:

    ':foto'=> createAvatarImage($userName),

    y cambiamos la línea 169 por:

    darkmatter= :darkmatter_start,
    foto = :foto;';

    Esto es todo aquí les voy a dejar los archivos ya con todos los cambios para los que deseen implementar esto en su juego

    Files
    • avatar.zip

      (18.45 kB, downloaded 18 times, last: )
  • The idee is nice, but can you not just create and host avatars (A-Z_1-9) to avoid having duplicates each time some one register with a username starting with the same first character, this to avoid having 10x the same file which is resource consuming (even if its small)
    Try the new Deployment module: More info
    V1.1.9 has been rolled out <3
  • Jbaukens wrote:

    The idee is nice, but can you not just create and host avatars (A-Z_1-9) to avoid having duplicates each time some one register with a username starting with the same first character, this to avoid having 10x the same file which is resource consuming (even if its small)
    Si claro puedes hacerlo como mas te crea conveniente yo solo publique esto aquí para el que quiera añadírselo a su juego :D
  • I like your code @Ala and seeing the problem raised by @Jbaukens, I made some modifications to your code. Istill find it tedious to create a manual avatar for all existing letters and numbers so there you go. I hope you like this "solution".

    PHP Source Code: GeneralFunctions.php

    1. function createAvatarImage($string)
    2. {
    3. $name = htmlspecialchars(stripslashes(trim($string)));
    4. $inicial = strtoupper($name[0]);
    5. $nameImage = 'avatar'.$inicial;
    6. $imgPath = "styles/avatar/".$nameImage .".png";
    7. if(!file_exists($imgPath)){
    8. $avatar = imagecreatetruecolor(60,60);
    9. $bg_color = imagecolorallocate($avatar, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
    10. imagefill($avatar,0,0,$bg_color);
    11. $avatar_text_color = imagecolorallocate($avatar, 0, 0, 0);
    12. $font = imageloadfont('styles/resource/gd-files/gd-font.gdf');
    13. imagestring($avatar, $font, 10, 10, strtoupper($inicial), $avatar_text_color);
    14. imagepng($avatar, $imgPath);
    15. imagedestroy($avatar);
    16. }
    17. return $imgPath;
    18. }
    Display All
    Files
    • avatar.zip

      (20.01 kB, downloaded 11 times, last: )
  • Jekill wrote:

    I like your code @Ala and seeing the problem raised by @Jbaukens, I made some modifications to your code. Istill find it tedious to create a manual avatar for all existing letters and numbers so there you go. I hope you like this "solution".

    PHP Source Code: GeneralFunctions.php

    1. function createAvatarImage($string)
    2. {
    3. $name = htmlspecialchars(stripslashes(trim($string)));
    4. $inicial = strtoupper($name[0]);
    5. $nameImage = 'avatar'.$inicial;
    6. $imgPath = "styles/avatar/".$nameImage .".png";
    7. if(!file_exists($imgPath)){
    8. $avatar = imagecreatetruecolor(60,60);
    9. $bg_color = imagecolorallocate($avatar, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
    10. imagefill($avatar,0,0,$bg_color);
    11. $avatar_text_color = imagecolorallocate($avatar, 0, 0, 0);
    12. $font = imageloadfont('styles/resource/gd-files/gd-font.gdf');
    13. imagestring($avatar, $font, 10, 10, strtoupper($inicial), $avatar_text_color);
    14. imagepng($avatar, $imgPath);
    15. imagedestroy($avatar);
    16. }
    17. return $imgPath;
    18. }
    Display All

    The fact about creating an avatar was a suggestion. I would definitely opt like you did for a if file_exists which is very izi to add like u did. The reviewed code is better and avoid unused repeatness of images.
    There some chance i implement it aswell in my xterium and reviewed new star template


    well done, both
    Try the new Deployment module: More info
    V1.1.9 has been rolled out <3
  • Jbaukens wrote:

    The fact about creating an avatar was a suggestion. I would definitely opt like you did for a if file_exists which is very izi to add like u did. The reviewed code is better and avoid unused repeatness of images.
    There some chance i implement it aswell in my xterium and reviewed new star template


    well done, both
    Thks!!
  • si pero lo que pasa con sus modificaciones al código inicial es que las imágenes siempre van a ser iguales mientras con mi código se van a ir creando imágenes totalmente distintas con un color de fondo totalmente distinto en el caso de los juegos que tienen el avatar a través de un link si es mejor ponerlo mediante una foto fija, pero en mi caso que tengo el avatar subiendo la foto deseada por el jugador a un directorio del servidor no, por que yo lo que hago es reemplazar la foto existente cada vez que el jugador quiera cambiar su avatar por la nueva foto que desee poner el jugador
  • Ala wrote:

    si pero lo que pasa con sus modificaciones al código inicial es que las imágenes siempre van a ser iguales mientras con mi código se van a ir creando imágenes totalmente distintas con un color de fondo totalmente distinto en el caso de los juegos que tienen el avatar a través de un link si es mejor ponerlo mediante una foto fija, pero en mi caso que tengo el avatar subiendo la foto deseada por el jugador a un directorio del servidor no, por que yo lo que hago es reemplazar la foto existente cada vez que el jugador quiera cambiar su avatar por la nueva foto que desee poner el jugador
    @Ala, no pretendo ofender con mi corrección. Digamos que, en sí, no reemplaza su imagen puesto que el codigo original genera un nombre mediante un unique_id() dentro de un md5() y, a menos que busque su nombre para luego cambiar la foto (lo cual veo engorroso aunque factible para lo que me explica), no veo que lo haga el codigo, dejando en claro que solo me tome la molestia de crear una variante a la funcion del post, no indague mas alla en su codigo. Valiendome de lo que me habla y de la opcion que genera para el usuario, mas adelante subiré un código que no ocuparía espacio en el servidor. En un rato lo genero y lo subo para quien lo desee. Aun con lo que me dice, considero su mod un buen trabajo.
  • Jekill wrote:

    Ala wrote:

    si pero lo que pasa con sus modificaciones al código inicial es que las imágenes siempre van a ser iguales mientras con mi código se van a ir creando imágenes totalmente distintas con un color de fondo totalmente distinto en el caso de los juegos que tienen el avatar a través de un link si es mejor ponerlo mediante una foto fija, pero en mi caso que tengo el avatar subiendo la foto deseada por el jugador a un directorio del servidor no, por que yo lo que hago es reemplazar la foto existente cada vez que el jugador quiera cambiar su avatar por la nueva foto que desee poner el jugador
    @Ala, no pretendo ofender con mi corrección. Digamos que, en sí, no reemplaza su imagen puesto que el codigo original genera un nombre mediante un unique_id() dentro de un md5() y, a menos que busque su nombre para luego cambiar la foto (lo cual veo engorroso aunque factible para lo que me explica), no veo que lo haga el codigo, dejando en claro que solo me tome la molestia de crear una variante a la funcion del post, no indague mas alla en su codigo. Valiendome de lo que me habla y de la opcion que genera para el usuario, mas adelante subiré un código que no ocuparía espacio en el servidor. En un rato lo genero y lo subo para quien lo desee. Aun con lo que me dice, considero su mod un buen trabajo.
    si colega yo te entiendo lo que te quiero decir es que en mi servidor las imágenes de los avatares no son mediante un link yo lo tengo configurado para que se suba la imagen que desee el jugador para poner de avatar este código que les compartí es solo para asignarle el avatar default una vez se halla registrado mas adelante el podrá cambiarla sustituyéndola por otra que desee pero no mediante un link si no subiendo la imagen que quieran ponerse a un directorio del servidor mediante un código que les voy a compartir mas adelante. No me has ofendido ni nada por el estilo yo solo expresaba que con sus modificaciones va a ser la misma imagen para todo el que tenga un Nick que comience con la misma letra, mientras que con el código inicial las imágenes no se van a repetir por q el color de fondo es aleatorio.
  • Ala wrote:

    si colega yo te entiendo lo que te quiero decir es que en mi servidor las imágenes de los avatares no son mediante un link yo lo tengo configurado para que se suba la imagen que desee el jugador para poner de avatar este código que les compartí es solo para asignarle el avatar default una vez se halla registrado mas adelante el podrá cambiarla sustituyéndola por otra que desee pero no mediante un link si no subiendo la imagen que quieran ponerse a un directorio del servidor mediante un código que les voy a compartir mas adelante. No me has ofendido ni nada por el estilo yo solo expresaba que con sus modificaciones va a ser la misma imagen para todo el que tenga un Nick que comience con la misma letra, mientras que con el código inicial las imágenes no se van a repetir por q el color de fondo es aleatorio.
    Si bro, entiendo, pues nada, te sirve mejor la tuya entonces.