Portal SAMP
[Ajuda] Ajuda com SetTimerEx - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Ajuda com SetTimerEx (/showthread.php?tid=4773)



Ajuda com SetTimerEx - Alfarr Heimrik - 18/05/2024

Olá. Desde já deixo avisado que não entendo muito e não tenho muito conhecimento sobre a função SetTimerEx, então por favor, me socorram Sad

Código PHP:
public OnPlayerConnect(playerid)
{
    new String[50]; // Whitelist
    
format(String49"WhiteList/%s.ini"pName(playerid));
    if(!
DOF2_FileExists(String))
    {
        
ShowPlayerDialog(playeridDialog_WhitelistDIALOG_STYLE_MSGBOX"WhiteList""Sua conta nao foi encontrada na whitelist (lista de permissao para jogar)!\nVa ate o nosso discord para realizar gratuitamente o registro.""Entendido""");
          SetTimerEx("DelayKick"3000false"d"playerid);
        return 
1;
    }
    
// Verificar se o SetTimerEx ta funcionando.
    
SetTimerEx("TestTimer"2000false"d"playerid);
    printf("Timer de teste configurado para o jogador %d"playerid);
    return 
1;
}

forward TestTimer(playerid);
public 
TestTimer(playerid)
{
    printf("TestTimer chamado para o jogador %d"playerid);
    return 1;
}

forward DelayKick(playerid);
public 
DelayKick(playerid)
{
    Kick(playerid);
    return 1;


O testtimer funciona normalmente, mas o kick da whitelist não funciona. Eu estava mexendo e vi que funcionou 1 ou 2 vezes, mas não consegui deixar funcionando. Tem a possibilidade de eu estar usando alguma coisa desatualizada, não sei.

Eu fiz um pequeno vídeo, creio que está com 2 minutos.
https://youtu.be/Zoc7rXI_c7Y


RE: Ajuda com SetTimerEx - xbruno1000x - 18/05/2024

Primeiro sugiro que tente assim:
Código:
if(!DOF2_FileExists(String))
    {
        SetTimerEx("DelayKick", 3000, false, "d", playerid);
        ShowPlayerDialog(playerid, Dialog_Whitelist, DIALOG_STYLE_MSGBOX, "WhiteList", "Sua conta nao foi encontrada na whitelist (lista de permissao para jogar)!\nVa ate o nosso discord para realizar gratuitamente o registro.", "Entendido", "");
        return 1;
    }
Dessa forma o timer seria ativado antes da dialog ser exibida. Talvez funcione... mas se não funcionar use o modelo abaixo:

Código:
if(!DOF2_FileExists(String))
    {
        ShowPlayerDialog(playerid, Dialog_Whitelist, DIALOG_STYLE_MSGBOX, "WhiteList", "Sua conta nao foi encontrada na whitelist (lista de permissao para jogar)!\nVa ate o nosso discord para realizar gratuitamente o registro.", "Entendido", "");
        return 1;
    }

//na OnDialogResponse
if(dialogid == Dialog_Whitelist)
{
    return Kick(playerid);
}



RE: Ajuda com SetTimerEx - Alfarr Heimrik - 18/05/2024

(18/05/2024 16:49)xbruno1000x Escreveu: Primeiro sugiro que tente assim:
Código:
    if(!DOF2_FileExists(String))
    {
        SetTimerEx("DelayKick", 3000, false, "d", playerid);
        ShowPlayerDialog(playerid, Dialog_Whitelist, DIALOG_STYLE_MSGBOX, "WhiteList", "Sua conta nao foi encontrada na whitelist (lista de permissao para jogar)!\nVa ate o nosso discord para realizar gratuitamente o registro.", "Entendido", "");
        return 1;
    }
Dessa forma o timer seria ativado antes da dialog ser exibida. Talvez funcione... mas se não funcionar use o modelo abaixo:

Código:
    if(!DOF2_FileExists(String))
    {
        ShowPlayerDialog(playerid, Dialog_Whitelist, DIALOG_STYLE_MSGBOX, "WhiteList", "Sua conta nao foi encontrada na whitelist (lista de permissao para jogar)!\nVa ate o nosso discord para realizar gratuitamente o registro.", "Entendido", "");
        return 1;
    }

//na OnDialogResponse
if(dialogid == Dialog_Whitelist)
{
    return Kick(playerid);
}

A segunda forma funcionou, já que se trata de uma dialog.
Você sabe o que está acontecendo com o meu codigo? Eu fiz um timer para descarregar o caminhao em uma profissao e ta acontecendo a mesma coisa. Eu preciso ter alguma include para fazer funionar? Eu baixei um pacote que me indicaram ...


Eu fiz isso aqui agora
Código PHP:
CMD:testsay(playerid)
{
    
SetTimerEx("TestSay"6000false"d"playerid);
    
GameTextForPlayer(playerid"Testando"60004);
    return 
1;
}

forward TestSay(playerid);
public 
TestSay(playerid)
{
    
SendClientMessage(playerid, -1"Deu certo.");
    return 
1;


A mensagem da forward n está aparecendo.


RE: Ajuda com SetTimerEx - White_Blue - 18/05/2024

(18/05/2024 20:48)Alfarr Heimrik Escreveu:
(18/05/2024 16:49)xbruno1000x Escreveu: Primeiro sugiro que tente assim:
Código:
    if(!DOF2_FileExists(String))
    {
        SetTimerEx("DelayKick", 3000, false, "d", playerid);
        ShowPlayerDialog(playerid, Dialog_Whitelist, DIALOG_STYLE_MSGBOX, "WhiteList", "Sua conta nao foi encontrada na whitelist (lista de permissao para jogar)!\nVa ate o nosso discord para realizar gratuitamente o registro.", "Entendido", "");
        return 1;
    }
Dessa forma o timer seria ativado antes da dialog ser exibida. Talvez funcione... mas se não funcionar use o modelo abaixo:

Código:
    if(!DOF2_FileExists(String))
    {
        ShowPlayerDialog(playerid, Dialog_Whitelist, DIALOG_STYLE_MSGBOX, "WhiteList", "Sua conta nao foi encontrada na whitelist (lista de permissao para jogar)!\nVa ate o nosso discord para realizar gratuitamente o registro.", "Entendido", "");
        return 1;
    }

//na OnDialogResponse
if(dialogid == Dialog_Whitelist)
{
    return Kick(playerid);
}

A segunda forma funcionou, já que se trata de uma dialog.
Você sabe o que está acontecendo com o meu codigo? Eu fiz um timer para descarregar o caminhao em uma profissao e ta acontecendo a mesma coisa. Eu preciso ter alguma include para fazer funionar? Eu baixei um pacote que me indicaram ...


Eu fiz isso aqui agora
Código PHP:
CMD:testsay(playerid)
{
    
SetTimerEx("TestSay"6000false"d"playerid);
    
GameTextForPlayer(playerid"Testando"60004);
    return 
1;
}

forward TestSay(playerid);
public 
TestSay(playerid)
{
    
SendClientMessage(playerid, -1"Deu certo.");
    return 
1;


A mensagem da forward n está aparecendo.

Não, não é necessário nenhum include para que a função SetTimerEx funcione, já que é uma função nativa.

Seu código me parece correto e deveria estar retornando a mensagem corretamente.

P.S.: Acabo de testar o seu código no meu ambiente e funcionou corretamente, verifique se você não esqueceu de compilar o código para aplicar as alterações.

[Imagem: GcNk7x7.png]


RE: Ajuda com SetTimerEx - xbruno1000x - 18/05/2024

É como o White falou, seu código está totalmente correto. O mais estranho é que é uma função nativa do SA-MP, então não precisa instalar nada pra funcionar.


RE: Ajuda com SetTimerEx - Alfarr Heimrik - 19/05/2024

(18/05/2024 22:29)xbruno1000x Escreveu: É como o White falou, seu código está totalmente correto. O mais estranho é que é uma função nativa do SA-MP, então não precisa instalar nada pra funcionar.

Eu vou tentar reinstalar o servidor. Como eu já tenho essa pasta tem um tempo, você poderia me enviar o link do servidor e também das includes?
Eu acabei de ver que tem um site News - San Andreas Multiplayer (sa-mp.mp) , mas eu não sei se é oficial.[url=https://www.sa-mp.mp/][/url]


RE: Ajuda com SetTimerEx - BitSain - 19/05/2024

(19/05/2024 07:44)Alfarr Heimrik Escreveu:
(18/05/2024 22:29)xbruno1000x Escreveu: É como o White falou, seu código está totalmente correto. O mais estranho é que é uma função nativa do SA-MP, então não precisa instalar nada pra funcionar.

Eu vou tentar reinstalar o servidor. Como eu já tenho essa pasta tem um tempo, você poderia me enviar o link do servidor e também das includes?
Eu acabei de ver que tem um site News - San Andreas Multiplayer (sa-mp.mp) , mas eu não sei se é oficial.[url=https://www.sa-mp.mp/][/url]

O oficial foi desativado, e esse é uma das opções pra instalar.
Também tem aqui no fórum esses downloads na aba de Notícias e Atualizações: https://portalsamp.com/showthread.php?tid=4021


RE: Ajuda com SetTimerEx - Alfarr Heimrik - 19/05/2024

(19/05/2024 08:23)BitSain Escreveu:
(19/05/2024 07:44)Alfarr Heimrik Escreveu:
(18/05/2024 22:29)xbruno1000x Escreveu: É como o White falou, seu código está totalmente correto. O mais estranho é que é uma função nativa do SA-MP, então não precisa instalar nada pra funcionar.

Eu vou tentar reinstalar o servidor. Como eu já tenho essa pasta tem um tempo, você poderia me enviar o link do servidor e também das includes?
Eu acabei de ver que tem um site News - San Andreas Multiplayer (sa-mp.mp) , mas eu não sei se é oficial.[url=https://www.sa-mp.mp/][/url]

O oficial foi desativado, e esse é uma das opções pra instalar.
Também tem aqui no fórum esses downloads na aba de Notícias e Atualizações: https://portalsamp.com/showthread.php?tid=4021

Entendi.

Apenas uma atualização. Eu reinstalei o servidor e a função SetTimerEx passou a funcionar.
Eu havia deixado o servidor em um pendrive e havia muito movimento nele, talvez tenha corrompido alguma coisa ... Está tudo ok agora. Obrigado aos que me ajudaram.


RE: Ajuda com SetTimerEx - samuelmatheus0502 - 19/05/2024

Seria legal guardar o backup do server em uma nuvem então


RE: Ajuda com SetTimerEx - Alfarr Heimrik - 25/05/2024

(19/05/2024 12:38)samuelmatheus0502 Escreveu: Seria legal guardar o backup do server em uma nuvem então

Certamente.