[PREGUNTA] strlen(inputtext) - DIALOG_STYLE_INPUT
#1

Buenas mi duda es, que hago si necesito enviar 2 variables que se deben poner en strlen(inputtext) - DIALOG_STYLE_INPUT??
Es decir, quiero crearme un sistema de mensajes, solo por diбlogos, y quiero que primero pida el numero al cual se desea enviar, y luego que salga otro pidiendo el mensaje, eso lo se hacer, pero en la funcion de enviarse, como hago para que me distinga el numero del la variable de mensaje? Algo asн como strlen(inputtext1),strlen(inputtext2). Se que no es posible de esta manera, pero lo puse asн para que me entiendan, cualquier aporte me ayuda bastante, gracias de ante mano.
Reply
#2

їEs como un telйfono celular, no?
Reply
#3

Quote:
Originally Posted by Juance
Посмотреть сообщение
їEs como un telйfono celular, no?
Si, sera una de las opciones del telйfono celular.
Reply
#4

Espero halla sido bastante claro explicando el cуdigo, quizбs se me paso algo.

pawn Код:
#define DIALOGO_NUMERO  0
#define DIALOGO_MENSAJE 1


CMD:mensaje(playerid, params[]) // Cuando el usuario ejecute el comando /mensaje se le abrira el dialogo solicitando el numero.
{
    ShowPlayerDialog(playerid, DIALOGO_NUMERO, DIALOG_STYLE_INPUT, "Ingrese el numero", "Continuar", "Cancelar");
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch (dialogid)
    {
        case DIALOGO_NUMERO: // El jugador le dio al boton Continuar del dialogo donde pediamos el numero por lo tanto se ejecutara lo de abajo.
        {
            if(response) // Si responde el dialogo
            {
                // Proceso el numero | inputtext trae el numero en un string.
           
                // Luego de procesar el numero mostramos el siguiente dialogo.
                ShowPlayerDialog(playerid, DIALOGO_MENSAJE, DIALOG_STYLE_INPUT, "Ingrese el mensaje", "Enviar mensaje", "Cancelar"); // Muestro el dialogo en donde pido que ingrese el mensaje
            }
        }
       
        case DIALOGO_MENSAJE: // El jugador le dio al boton Enviar del dialogo donde ingresaba el mensaje por lo tanto se ejecuta lo de abajo.
        {
            if(response) // Si responde el dialogo
            {
                // Proceso el mensaje y lo envio | inputtext trae el mensaje en un string.
            }
        }
    }
}
Por cierto, strlen te devuelve el tamaсo (la cantidad de caracteres) de un string. NO LOS CARACTERES.

https://sampwiki.blast.hk/wiki/Strlen

EJ:
pawn Код:
new string = strlen("hola"); // La variable string es igual a 4.
Reply
#5

Bueno, yo he hecho una funciуn que quizбs pueda ser de mucha utilidad.

Lo que hago es mantener el nъmero al que enviaras en una variable para cada jugador.

pawn Код:
new EnviarNumero[MAX_PLAYERS];
Luego, el comando:

pawn Код:
CMD:sms(playerid,params[])
{
    ShowPlayerDialog(playerid,2000,DIALOG_STYLE_INPUT,"Telйfono celular","Ingrese el nъmero","Aceptar","Cancelar");
    return 1;
}
Y las funciones:

pawn Код:
switch(dialogid)
    {
        case 2000:
        {
            if(!response) return SendClientMessage(playerid,-1,"Menъ cerrado");
            new string[128];
            EnviarNumero[playerid] = strval(inputtext); // Acб guardo en la variable el nъmero al enviar el mensaje.
           
            ShowPlayerDialog(playerid,2001,DIALOG_STYLE_INPUT,"Telйfono celular","Ingrese el mensaje a enviar","Enviar","Cancelar"); //Activo el otro Dialog, para enviar el mensaje.
        }
    }
    switch(dialogid)
    {
        case 2001:
        {
            if(!response) return SendClientMessage(playerid,-1,"Menъ cerrado");
            new string[128];
            foreach(new i:Player)
            {
                if(PlayerInfo[i][pNumero] == EnviarNumero[playerid]) //Indico que si algъn jugador tiene el nъmero del telefono mismo al que se seleccionу anteriormente..
                {
                    SendClientMessage(i,-1,"Recibes un mensaje de texto");
                    format(string,sizeof(string),"[SMS]: %s . Tlf: %d",inputtext,PlayerInfo[playerid][pNumero]);
                    SendClientMessage(i,-1,string); //Si eso es positivo, envнo el mensaje a ese jugador.
                    SendClientMessage(playerid,-1,"El mensaje de texto ha sido enviado con йxito!");
                    EnviarNumero[playerid] = 0; //Seteo la variable en 0 para un futuro uso.
                }
                else SendClientMessage(playerid,-1,"Error al enviar mensaje. Nъmero fuera de cobertura"); //Envнo un error en caso de que el telйfono no pertenezca a ningъn usuario.
            }
        }
    }
Estб hecho con variables mнas, obviamente.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)