El foro principal del servidor Pokemon Origins


    2.- Solucionario

    Comparte
    avatar
    Alipio
    Admin

    Mensajes : 26
    Fecha de inscripción : 18/10/2014
    Edad : 23

    2.- Solucionario

    Mensaje por Alipio el Miér Nov 05, 2014 10:22 am

    Solucionario del Capítulo 2.- Mensajes

    a) Comando Selector de Anuncios
    Hacer un comando que permita cambiar los anuncios mediante la selección de algunos ya creados y guardados internamente en el código. (4 anuncios como mínimo)

    Se recomienda crear variables almacenadoras de anuncio; por ejemplo:
    var Anuncio1 = "<img src=pokemon:16 align=left><b><font color=red size=32>Bienvenidos, espero se diviertan mucho en nuestro Servidor!</font></b><img src=pokemon:12 align=right>";

    ¿Qué requerimientos necesitan para ello, ya sea comandos o un canal privado?
    Necesitamos variables que contengan los mensajes de anuncios. Pero cuantas variables?

    ¿Qué opinan de los arreglos?
    Un arreglo es una variable que almacena más de un valor, por ejemplo: Anuncio = ["Bienvenido al foro","Bienvenido al servidor", "Bienvenido al solucionario del capítulo 2"]
    Así cuando eligamos un indice tendremos su valor, por ejemplo:

    Like a Star @ heaven Anuncio[0] = Bienvenido al foro
    Like a Star @ heaven Anuncio[1] = Bienvenido al servidor
    Like a Star @ heaven Anuncio[2] = Bienvenido al solucionario del capítulo 2

    Para evitar el uso exesivo de variables, lo que a la larga es mayor Costo Computacional (LAG) usaremos un arreglo que contendrá todos los anuncios que deseemos tener.

    ¿Y esto es ventajoso?
    Si, pues al tener un arreglo, este puede ser llenado de más y más valores; es decir, durante su estadía en el servidor podrían ser capaces de ir añadiendo terminos o valores al arreglo, como así modificarlos a su dispocisión. Y eso no lo puedo hacer creando variables? No! Pues tendrías que crear demasiadas variables y en muchos caso estarían almacenando memoria sin ser usados.

    Es tema se explica mucho más detallado en el capítulo 3 (Variables Globales), así que no se preocupen mucho por ahora.

    ¿Qué mensajes poner en nuestro anuncio?
    El que deseen, en nuestro caso usaremos el siguiente: var Anuncio=["<img src=pokemon:16 align=left><b><font color=red size=32>Bienvenidos, espero se diviertan mucho en nuestro Servidor!</font></b><img src=pokemon:12 align=right>","<img src=pokemon:185 align=left><b><font color=red size=32>Nosotros somos amantes del Mundo Pokemon!</font></b><img src=pokemon:132 align=right>","<img src=pokemon:122 align=left><b><font color=red size=32>Sabemos que pasaras un muy buen rato en nuestra compañía</font></b>","<img src=pokemon:1 align=left><b><font color=red size=32>Se el primero en registrarte!</font></b><img src=pokemon:4 align=right>"];

    ¿Y luego?
    Hacemos un diagrama de flujo que represente el bloque de suceso de comandos de selector de anuncios.

    Spoiler:
    Diagrama Comando: sbanner

    Ahora lo codificamos:[/font][/size]
    Spoiler:
    var Anuncio=["<img src=pokemon:16 align=left><b><font color=red size=32>Bienvenidos, espero se diviertan mucho en nuestro Servidor!</font></b><img src=pokemon:12 align=right>","<img src=pokemon:185 align=left><b><font color=red size=32>Nosotros somos amantes del Mundo Pokemon!</font></b><img src=pokemon:132 align=right>","<img src=pokemon:122 align=left><b><font color=red size=32>Sabemos que pasaras un muy buen rato en nuestra compañía</font></b>","<img src=pokemon:1 align=left><b><font color=red size=32>Se el primero en registrarte!</font></b><img src=pokemon:4 align=right>"];
    ({
    beforeChatMessage:function(ID, Msj, Canal ) {
    if (Msj[0] == '/' || Msj[0] == '!' && Msj.length>1) {
    sys.stopEvent(); //Esto paraliza el evento.
    var temp001 = Msj.indexOf(' ');
    var Msj_Comando = Msj.substring(1, temp001).toLowerCase();
    if (temp001 <0) { Msj_Comando = Msj.substr(1).toLowerCase(); }
    var Msj_Msj;
    if (temp001 >=0) { Msj_Msj = Msj.substr(temp001+1); }

    if (Msj_Comando == "sbanner") {
    if (Msj_Msj == undefined) {
    sys.sendHtmlMessage(ID, "Especifique el número del anuncio",Canal);
    return; }
    if (Msj_Msj <= Anuncio.length && Msj_Msj>=0) {
    sys.sendHtmlMessage(ID, " El Anuncio elegido ("+Msj_Msj+") ha sido mostrado con éxito.", Canal);
    sys.changeAnnouncement(Anuncio[Msj_Msj]);
    return; }
    sys.sendHtmlMessage(ID, "Especifique un número correcto de anuncio",Canal);
    return; }
    sys.sendMessage(ID, "El comando no existe", Canal);
    return;
    }
    },
    })

    b) Comando para conocer su IP

    Hacer un comando que devuelva la Ip, y que muestre este patrón:
    Su IP es XXXXXXXXX.

    Donde XXXXX será la Ip. Comando de devolución de Ip = sys.ip(ID);


    ¿Qué requerimientos necesitan para ello, ya sea comandos o un canal privado?
    Absolutamente nada, solo sería un mensaje con código HTML básico sumado al uso de una función propia de PO, la cual será explicada con más detalle en el cápitulo 4.

    El diagrama de flujo:

    Spoiler:
    Diagrama Comando: miip


    Ahora lo codificamos:

    Spoiler:
    ({
    beforeChatMessage:function(ID, Msj, Canal ) {
    if (Msj[0] == '/' || Msj[0] == '!' && Msj.length>1) {
    sys.stopEvent(); //Esto paraliza el evento.
    var temp001 = Msj.indexOf(' ');
    var Msj_Comando = Msj.substring(1, temp001).toLowerCase();
    if (temp001 <0) { Msj_Comando = Msj.substr(1).toLowerCase(); }
    var Msj_Msj;
    if (temp001 >=0) { Msj_Msj = Msj.substr(temp001+1); }

    if (Msj_Comando == "miip") {
    Msj_Msj = sys.ip(ID);
    sys.sendHtmlMessage(ID, "<font color=red>Su</font> <font color=green><b>IP</b></font> <font color=purple>es</font> <font color=#FFBCC9>"+Msj_Msj+"</font>.", Canal);
    return; }
    sys.sendMessage(ID, "El comando no existe", Canal);
    return;
    }
    },
    })

    c) Comando para tener un propio Anuncio

    Hacer un comando que permita cambiar el anuncio solo para el usuario que lo use; es decir, hacer un comando para tener un anuncio privado.


    Este comando es idéntico al descrito en el ejemplo aplicativo del cápitulo correspondiente a este solucionario. Por lo que solo mostraremos el diagrama de flujo, para que puedan comprenderlo graficamente.


    Spoiler:
    Diagrama Comando: mibanner


    Y su código sería el siguiente:


    Spoiler:
    ({
    beforeChatMessage:function(ID, Msj, Canal ) {
    if (Msj[0] == '/' || Msj[0] == '!' && Msj.length>1) {
    sys.stopEvent(); //Esto paraliza el evento.
    var temp001 = Msj.indexOf(' ');
    var Msj_Comando = Msj.substring(1, temp001).toLowerCase();
    if (temp001 <0) { Msj_Comando = Msj.substr(1).toLowerCase(); }
    var Msj_Msj;
    if (temp001 >=0) { Msj_Msj = Msj.substr(temp001+1); }

    if (Msj_Comando == "mibanner") {
    if (Msj_Msj == undefined) {
    sys.sendHtmlMessage(ID, "Específique su anuncio privado.", Canal);
    return; }
    sys.setAnnouncement(Msj_Msj, ID);
    sys.sendHtmlMessage(ID, "Ahora posee un anuncio privado solo para usted.", Canal);
    return; }
    sys.sendMessage(ID, "El comando no existe", Canal);
    return;
    }
    },
    })

    Comentarios:
    Haga usted mismo la prueba de este comando, logeando a su servidor por dos diferentes ventanas.
    Pero recuerde que esto es temporal; es decir, si sales del servidor se borrará el anuncio.
    Más adelante le enseñaremos como hacer para que ese anuncio sea privado y no se borre nunca.

      Fecha y hora actual: Sáb Sep 23, 2017 4:19 am