SA-MP Forums Archive
[Ajuda] Comando com settimer - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Comando com settimer (/showthread.php?tid=617053)



Comando com settimer - FabioGTP - 15.09.2016

Fiz esse comando, estб executando a funзгo do settimerex corretamente rsrs, mais nгo aparece o dialog para o player responder, vc da /dialog id ele nгo aparece o dialog e dps dos 10 segundos ele executa a funзгo da public, pq nгo estб aparecendo o dialog para o player??
pawn Код:
CMD:dialog(playerid, params[]) {
    new id;
    if(sscanf(params, "u", id))
        return SendClientMessage(playerid, -1," /dialog [id]");
    ShowPlayerDialog(id, 589, DIALOG_STYLE_MSGBOX, "Dialog", "Vocк aceita os termos caso nгo concorde serб kikado.", "Sim", "Nгo");
    SetTimerEx("RT", 10000, false, "d", id);
    return 1;
}



Re: Comando com settimer - ipsLuan - 15.09.2016

PHP код:

CMD
:dialog(playeridparams[]) {
    new 
id;
    if(
sscanf(params"d"id))
        return 
SendClientMessage(playerid, -1," /dialog [id]");
     
ShowPlayerDialog(id589DIALOG_STYLE_MSGBOX"Dialog""Vocк aceita os termos caso nгo concorde serб kikado.""Sim""Nгo");
    
SetTimerEx("RT"10000false"d"id);
    return 
1;




Re: Comando com settimer - Bruno13 - 15.09.2016

Porque vocк estб usando os parвmetros errados...
Код:
ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[])
Logo...
PHP код:
ShowPlayerDialog(playerididDIALOG_STYLE_MSGBOX"Dialog""Vocк aceita os termos caso nгo concorde serб kikado.""Sim""Nгo"); 
Ah, e a sintaxe 'u' em sscanf й utilizada para id/nome de um jogador, o correto seria utilizar 'd' ou 'i' que sгo utilizados para nъmeros inteiros.


Re: Comando com settimer - FabioGTP - 15.09.2016

Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
PHP код:

CMD
:dialog(playeridparams[]) {
    new 
id;
    if(
sscanf(params"d"id))
        return 
SendClientMessage(playerid, -1," /dialog [id]");
     
ShowPlayerDialog(id589DIALOG_STYLE_MSGBOX"Dialog""Vocк aceita os termos caso nгo concorde serб kikado.""Sim""Nгo");
    
SetTimerEx("RT"10000false"d"id);
    return 
1;

continua nгo mostrando...


Re: Comando com settimer - FabioGTP - 15.09.2016

Quote:
Originally Posted by Bruno13
Посмотреть сообщение
Porque vocк estб usando os parвmetros errados...
Код:
ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[])
Logo...
PHP код:
ShowPlayerDialog(playerididDIALOG_STYLE_MSGBOX"Dialog""Vocк aceita os termos caso nгo concorde serб kikado.""Sim""Nгo"); 
Ah, e a sintaxe 'u' em sscanf й utilizada para id/nome de um jogador, o correto seria utilizar 'd' ou 'i' que sгo utilizados para nъmeros inteiros.
alterei e continua nгo aparecendo


Re: Comando com settimer - Bruno13 - 15.09.2016

Quote:
Originally Posted by FabioGTP
Посмотреть сообщение
alterei e continua nгo aparecendo
...
PHP код:
CMD:dialog(playeridparams[]) {
    new 
id;
    if(
sscanf(params"d"id))
        return 
SendClientMessage(playerid, -1," /dialog [id]");
    
ShowPlayerDialog(playerididDIALOG_STYLE_MSGBOX"Dialog""Vocк aceita os termos caso nгo concorde serб kikado.""Sim""Nгo");
    
    
SetTimerEx("RT"10000false"d"id);
    return 
1;




Re: Comando com settimer - FabioGTP - 15.09.2016

Quote:
Originally Posted by Bruno13
Посмотреть сообщение
...
PHP код:
CMD:dialog(playeridparams[]) {
    new 
id;
    if(
sscanf(params"d"id))
        return 
SendClientMessage(playerid, -1," /dialog [id]");
    
ShowPlayerDialog(playerididDIALOG_STYLE_MSGBOX"Dialog""Vocк aceita os termos caso nгo concorde serб kikado.""Sim""Nгo");
    
    
SetTimerEx("RT"10000false"d"id);
    return 
1;

Funcionou obrigado, se nгo for pedir muito, eu fiz a funзгo do settimer mais mesmo ele concordando passando dos 10 seg ele kika oque pode ser ?
cуdigo da public do settimer e do ondialogresponse:

pawn Код:
forward RT();
public RT()
{
    new id, string[128];
    format(string,128,"O %s foi kikado por nгo concordar com as regras.", nome(id));
       SendClientMessageToAll(COR_AMARELO, string);
    Kick(id);
    return 1;
}
Ondialogresponse:
pawn Код:
if(dialogid == DIALOG_RT)
    {
        if(response)
        {
            new id, string[128];
            format(string, 128,"O %s concordou com as regras.", nome(id));
       SendClientMessageToAll(COR_AZUL, string);
            return 1;
        }
    }



Re: Comando com settimer - ViDaLoKa1 - 15.09.2016

Quote:
Originally Posted by FabioGTP
Посмотреть сообщение
Funcionou obrigado, se nгo for pedir muito, eu fiz a funзгo do settimer mais mesmo ele concordando passando dos 10 seg ele kika oque pode ser ?
cуdigo da public do settimer e do ondialogresponse:
1 - Crie uma vбriavel para identificar seu timer:

Код:
//Topo do GM/FS
new TimerKick[MAX_PLAYERS];
2 - No comando ficarб assim:

Код:
CMD:dialog(playerid, params[]) { 
    new id; 
    if(sscanf(params, "d", id)) 
        return SendClientMessage(playerid, -1," /dialog [id]"); 

    ShowPlayerDialog(playerid, id, DIALOG_STYLE_MSGBOX, "Dialog", "Vocк aceita os termos caso nгo concorde serб kikado.", "Sim", "Nгo"); 
     
    TimerKick[playerid] = SetTimerEx("RT", 10000, false, "d", id); 
    return 1; 
}
3 - Na public OnDialogResponse ficarб assim:

Код:
if(dialogid == DIALOG_RT)
{
       if(response)
       {
             new id, string[128];
             format(string, 128,"O %s concordou com as regras.", nome(id));
             SendClientMessageToAll(COR_AZUL, string);
	     KillTimer(TimerKick[playerid]);
       }
       else
       {
       //
       }
}
Espero ter ajudado


Re: Comando com settimer - JhowWatkins - 15.09.2016

Quote:

new id, string[128];
format(string,128,"O %s foi kikado por nгo concordar com as regras.", nome(id));
SendClientMessageToAll(COR_AMARELO, string);
Kick(id);

Jб tentou por essa funзгo aqui...
Quote:

if(dialogid == DIALOG_RT)
{
if(response)
{
new id, string[128];
format(string, 128,"O %s concordou com as regras.", nome(id));
SendClientMessageToAll(COR_AZUL, string);
KillTimer(TimerKick[playerid]);
}
else
{
new id, string[128];
format(string,128,"O %s foi kikado por nгo concordar com as regras.", nome(id));
SendClientMessageToAll(COR_AMARELO, string);
Kick(id);
}
}

Sou novato OBS: se eu tiver errado me corrijam Grato!

Existe um site pra indentar o codigo se vocк nгo conhece aqui ! http://tabulador.medianewsonline.com/

@EDIT


Re: Comando com settimer - FabioGTP - 15.09.2016

Quote:
Originally Posted by JhowWatkins
Посмотреть сообщение
Jб tentou por essa funзгo aqui... Sou novato OBS: se eu tiver errado me corrijam Grato!

Existe um site pra indentar o codigo se vocк nгo conhece aqui ! http://tabulador.medianewsonline.com/

@EDIT
parceiro йo fуrum que tira a identaзгo , a public jб executa a funзгo pelo timer...