[AYUDA]No se desactiva la SPECIAL_ACTION
#1

Lo dicho en el titulo, he probado a crear un timer y hacerle tener la animacion de colgar, he probado a ponerle en el timer la special action none y he probado sin timer y nada.

Aunque no exista el numero de telefono no lo cuelga

pawn Код:
YCMD:llamar(playerid, params[], help)
{
    if(!sscanf(params, "i", params[0]))
    {
        SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE);
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(PlayerInfo[i][pTelefono] == params[0] && i != playerid)
            {
                new llamador[256], llamado[256];
                format(llamador, sizeof(llamador), "%s saca el telefono", GetName(playerid));
                ProxDetector2(30, playerid, llamador,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);
                if(!IsPlayerConnected(i))
                {
                    new noconectado[256];
                    format(noconectado, sizeof(noconectado), "%s guarda el telefono", GetName(playerid));
                    ProxDetector2(30, playerid, noconectado,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);
                    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
                    SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"El telefono se encuentra apagado o fuera de covertura, intentelo de nuevo mбs tarde");
                }
                else
                {
                    SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"Llamando");
                    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
                }
                break;
            }
            else
            {
                SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"El numero al que llama no existe");
                SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
                break;
            }
        }
    }
    else SendClientMessage(playerid, COL_AYUDA, "Uso: "COL_WHITE"/llamar [numero]");
    return 1;
}
Reply
#2

pawn Код:
YCMD:llamar(playerid, params[], help){
    new numero, data[200];
    if(sscanf(params, "d", numero)) return SendClientMessage(playerid, COL_AYUDA, "Uso: "COL_WHITE"/llamar [numero]");

    for(new player, user = GetMaxPlayers(); player != user; player++){
        if(player == playerid) continue;
        if(IsPlayerConnected(player)){
            if(PlayerInfo[player][pTelefono] == numero){
                format(data, sizeof(data), "%s saca el telefono", GetName(playerid));
                ProxDetector2(30, playerid, data,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);

                SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"Llamando");
                SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE);
                break;
            }else{
                format(data, sizeof(data), "%s guarda el telefono", GetName(playerid));
                ProxDetector2(30, playerid, data,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);

                SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"El numero al que llama no existe");
                SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
                 break;
            }
        }else{
            format(data, sizeof(data), "%s guarda el telefono", GetName(playerid));
            ProxDetector2(30, playerid, data,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);

            SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"El telefono se encuentra apagado o fuera de covertura, intentelo de nuevo mбs tarde");
            SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
             break;
        }
    }
    return true;
}
Reply
#3

Quote:
Originally Posted by OTACON
Посмотреть сообщение
pawn Код:
YCMD:llamar(playerid, params[], help){
    new numero, data[200];
    if(sscanf(params, "d", numero)) return SendClientMessage(playerid, COL_AYUDA, "Uso: "COL_WHITE"/llamar [numero]");

    for(new player, user = GetMaxPlayers(); player != user; player++){
        if(player == playerid) continue;
        if(IsPlayerConnected(player)){
            if(PlayerInfo[player][pTelefono] == numero){
                format(data, sizeof(data), "%s saca el telefono", GetName(playerid));
                ProxDetector2(30, playerid, data,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);

                SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"Llamando");
                SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE);
                break;
            }else{
                format(data, sizeof(data), "%s guarda el telefono", GetName(playerid));
                ProxDetector2(30, playerid, data,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);

                SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"El numero al que llama no existe");
                SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
                 break;
            }
        }else{
            format(data, sizeof(data), "%s guarda el telefono", GetName(playerid));
            ProxDetector2(30, playerid, data,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);

            SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"El telefono se encuentra apagado o fuera de covertura, intentelo de nuevo mбs tarde");
            SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
             break;
        }
    }
    return true;
}
Sabes que te digo XD que no me entero de nada, me has cambiado las varibles lo has echo todo a tu bola y no me has explicado cual fue mi error ni como solucionarlo. Asн no aprendo, se agradece la respuesta pero...
Reply
#4

Acabo de probar tu codigo y falla igual que el mio.
En realidad lo unico que has echo es cambiar las variables y mover las cosas
Reply
#5

Prueba a dejar esto asн, no se a que te refieres bien:

pawn Код:
YCMD:llamar(playerid, params[], help)
{
    if(!sscanf(params, "i", params[0]))
    {
        SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE);
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(PlayerInfo[i][pTelefono] == params[0] && i != playerid)
            {
                new llamador[256], llamado[256];
                format(llamador, sizeof(llamador), "%s saca el telefono", GetName(playerid));
                SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE); // animacion cogiendo telefono
                ProxDetector2(30, playerid, llamador,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);
                if(!IsPlayerConnected(i))
                {
                    new noconectado[256];
                    format(noconectado, sizeof(noconectado), "%s guarda el telefono", GetName(playerid));
                    ProxDetector2(30, playerid, noconectado,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);
                    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
                    SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"El telefono se encuentra apagado o fuera de covertura, intentelo de nuevo mбs tarde");
                }
                else
                {
                    SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"Llamando");
                    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
                }
                break;
            }
            else
            {
                SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"El numero al que llama no existe");
                SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
                break;
            }
        }
    }
    else SendClientMessage(playerid, COL_AYUDA, "Uso: "COL_WHITE"/llamar [numero]");
    return 1;
}
Reply
#6

La ъltima parte del cуdigo estб de mбs. Si el jugador no estб conectado nunca pTelefono serб igual a nъmero, por lo que el else dentro de la primera parte del cуdigo se ejecutarб.

No solucionarб tu problema (que de hecho no entendн cual es el problema), pero yo lo harнa asн:

pawn Код:
YCMD:llamar(playerid, params[], help)
{
    new numero, data[200];
    if(sscanf(params, "d", numero)) return SendClientMessage(playerid, COL_AYUDA, "Uso: "COL_WHITE"/llamar [numero]");
    for(new player, user = GetMaxPlayers(); player != user; player++)
    {
        if(player != playerid && IsPlayerConected(player) && PlayerInfo[player][pTelefono] == numero)
        {
            format(data, sizeof(data), "%s saca el telefono", GetName(playerid));
            ProxDetector2(30, playerid, data,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);
            SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"Llamando");
            SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
            break;
        }
        else
        {
            format(data, sizeof(data), "%s guarda el telefono", GetName(playerid));
            ProxDetector2(30, playerid, data,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);
            SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"El numero al que llama no existe");
            SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
            break;
        }
    }
    return 1;
}
Reply
#7

Me refiero a que cuando el numero al que llama no existe me envia solo el mensaje de "Operadora: "COL_WHITE"El numero al que llama no existe")

Pero la funcion
pawn Код:
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
no se ejecuta
Reply
#8

Ponlo asн:

pawn Код:
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
printf("act: %i", GetPlayerSpecialAction(playerid));
Y dinos que te sale en la consola. Si te sale 11 es que por alguna razуn no se estб ejecutando la nueva acciуn si te sale 13 o 0 se ejecuta pero no se ve.

EDIT: Pon el printf en un comando aparte. Si no mostrarб 11 siempre (la anterior).
Reply
#9

O sino pon dos veces lo mismo, prueba antes lo de [J]ulian
pawn Код:
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
Reply
#10

Me da 0

EDIT: He estado mirando y... me da acciones como 8 y coloque un timer y no lo ejecuta...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)