[AJUDA]Tempo nas dialogs
#1

Tem como eu colocar um tempo para que o player fexe a dialog??
Tipo, ele abre uma dialog de texto e tem que esperar 30s para clicar em OK ou Fechar.
Antes dos 30s nao da pra fechar a dialog clicando em OK ou Fechar.
Reply
#2

Iniciante falando -

Tenta colocar um SetTimer de 30 segundos
Reply
#3

Bem, fiz um cуdigo pra vocк espero que resolva seu problema :

Coloque:


pawn Код:
//No Topo do GM:

new Koe[MAX_PLAYERS]; //Cria uma variбvel para restringir algo б um player
new TempoVar; //Variбvel para corresponder ao SetTimerEx




//Final do GM:



forward ClicaAe();
public ClicaAe() //Funзгo a ser ativa com SetTimerEx, essa vai fazer o Koe do jogador ficar 0.
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        Koe[i] = 0;
    }
}




//No OnDialogResponse:


if(dialogid == DIALOG_LOL)
    {
        Koe[playerid] = 1;//Koe vale agora 1
        TempoVar = SetTimerEx("ClicaAe", 30000, 1, "i", playerid); //Coloca pra 30 segundos o Koe (que й 1) virar 0 graзas б funзгo
        if(response == 0 && Koe[playerid] == 0) //Se o Koe[playerid] for 0 (depois de 30 segundos)
        {
            //Fechou xD
            KillTimer(TempoVar); //Continua aqui
            return 1;
        }
        if(response >= 1 && Koe[playerid] == 0) //Se o Koe[playerid] for 0 (depois de 30 segundos)
        {
            //Fechou xD
            KillTimer(TempoVar);  //Continua aqui
            return 1;
        }
        return 1;
    }


Espero ter ajudado
Reply
#4

pawn Код:
new bool: EmDialog[MAX_PLAYERS];

//Onde mostra o dialog:

ShowPlayerDialog(playerid, DIALOG_LOL, \* Parametros *\);
EmDialog[playerid] = true;
SetPVarInt(playerid, "Timer", SetTimerEx("ClicaAe", 30000, false, "db", playerid, false));

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_LOL)
    {
        if((!response || response) && EmDialog[playerid])
        {
            ShowPlayerDialog(playerid, DIALOG_LOL, \* Parametros *\);
            return 1;
        }
        else
        {                
            KillTimer(GetPVarInt(playerid, "Timer"));
            DeletePVar(playerid, "Timer");
            return 1;
        }  
    }

    return 1;
}

forward ClicaAe(playerid, bool: Status);
public ClicaAe(playerid, bool: Status)
{
    EmDialog[playerid] = Status;
    return 0;
}
Reply
#5

SetPVarInt, nгo й uma boa idйia.
Use vбriaveis.
Reply
#6

Quote:
Originally Posted by SuB_ZeRo0_
Посмотреть сообщение
SetPVarInt, nгo й uma boa idйia.
Use vбriaveis.
Por quк nгo seria uma boa ideia?
Reply
#7

Quote:
Originally Posted by cynic
Посмотреть сообщение
Por quк nгo seria uma boa ideia?
Pois o SetPVarInt foi criado para ser melhor que as vбriaveis, mas jб foi provado que seu uso й mais demorado.
O que prejudica o GameMode, use as PVars apenas quando realmente necessбrio.

Irei criar um tutorial, para mostrar um jeito ъtil de utiliza-las!
Reply
#8

Pra mim, milisegundos pra mais ou pra menos nгo fazem diferenзa quando se ganha atй 499 cйlulas a menos pra ser enviadas ao amx.
Reply
#9

Quote:
Originally Posted by cynic
Посмотреть сообщение
Pra mim, milisegundos pra mais ou pra menos nгo fazem diferenзa quando se ganha atй 499 cйlulas a menos pra ser enviadas ao amx.
Bom alйm de demorar mais para serem acessadas, elas gastam uma parte do sistema local para serem armazenadas. (O que nгo deve ser muito bom para o servidor)
Tutorial, de como utilizar as PVars de modo mais eficiente: https://sampforum.blast.hk/showthread.php?tid=198731

Para somente utilizar em seu GameMode utilize variбveis, caso precise acessб-las em um Fs, use PVars.
Reply
#10

Esse teste diz o contrбrio:
http://forum.sa-mp.com/showpost.php?...1&postcount=34

A diferenзa de velocidade de PVars pra o uso de variбveis foi de 3 segundos, quanto a alocaзгo de memуria, acontece quando ela assume valores muito altos, entгo pra esse caso, PVars sгo mais eficientes.
No meu entendimento, pra a soma de pontos, dinheiro, etc, do jogador, usa-se variбveis, pra coisas pequenas, como ID de veнculo, timer, outro player, etc, usa-se PVars.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)