Dialog problema...
#1

Hola, tengo un problema que es el siguiente:
La persona pone el comando, pone en el dialog (inputtext) la palabra correcta (ejemplo: asd).
Anda perfecto. Si no pone la palabra correcta le dice Incorrecto, perfecto.
Mi problema es que no puedo solucionar cuando la persona NO escribe nada y pone aceptar (response).
Saludos aca el code ^^


pawn Код:
if(dialogid == 18832)
{
        if(response)
        {
            if(strlen(inputtext) > 120) SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Contraseсa demasiada larga !"); // Muy largo.
            if(!strcmp(inputtext, "asd", true))
            {
                SendClientMessage(playerid, 0xFFFFFFFF, "{33FF66}Correcto !");
                return 1;
            }
                SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Incorrecto !");
            }
            return 1;
}
Reply
#2

Literal de la wiki
pawn Код:
if(!response)
{
     SendClientMessage(playerid, 0xFF0000FF, "You cancelled.");
     return 1; // We processed it
}
https://sampwiki.blast.hk/wiki/OnDialogResponse
Reply
#3

Lo que pasa es que strcmp retorna 0 si una de las dos o las dos cadenas estan vacias
pawn Код:
if(!strcmp(inputtext, "asd", true) && strlen(inputtext))
EDIT: Fixed
pawn Код:
if(dialogid == 18832)
{
    if(response)
    {
        new length = strlen(string);
        if(length > 120) {
            SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Contraseсa demasiada larga !"); // Muy largo.
            return 1;
        }
        if(length == 0) {
            SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Debes ingresar una contraseсa");
            return 1;
        }
        if(!strcmp(inputtext, "asd", true))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "{33FF66}Correcto !");
            return 1;
        }
        SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Incorrecto !");
    }
    return 1;
}
Reply
#4

Quote:
Originally Posted by SuperMarioRol
Посмотреть сообщение
Literal de la wiki
pawn Код:
if(!response)
{
     SendClientMessage(playerid, 0xFF0000FF, "You cancelled.");
     return 1; // We processed it
}
https://sampwiki.blast.hk/wiki/OnDialogResponse
Pero eso es si "cancelas" o si clickeas a la derecha del dialog. Yo querнa otra cosa xD

Quote:
Originally Posted by Daniel-92
Посмотреть сообщение
Lo que pasa es que strcmp retorna 0 si una de las dos o las dos cadenas estan vacias
pawn Код:
if(!strcmp(inputtext, "asd", true) && strlen(inputtext))
Perfecto, me funciono de 10!
Gracias Daniel, siempre ayudando correctamente como no podrнa ser de otra forma
Saludos cierren ^^
Reply
#5

Perdуn, lo entendн mal.
Reply
#6

Quisiera agregar que hacer:
pawn Код:
if (!string[0])
Es lo mismo que:
pawn Код:
if (!strlen(string))
e incluso es mбs rбpido.


EDIT:
Explicaciуn:
Todos los strings (cadenas de texto) terminan con un caracter nulo (sirve para saber cuбndo termina el texto), el valor de йste es siempre 0. Si en el string el primer caracter es igual a 0 significa que no hay texto. їPor quй? Porque el primer caracter es el nulo, indicando el final del texto.

Aclaraciуn:
Cuando hablo de si el valor es 0, no me refiero a que saldra un "0", sino que el valor del caracter es 0. El caracter nulo junto con otros es invisible.
Reply
#7

Una aclaracion simple...
Es mas facil usar isnull...

if(isnull(inputtext)) return SendClientMessage(playerid, COLOR_WHITE, "[.root] Sos re grone i no respondiste.");
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)