[AJUDA]Tempo nas dialogs -
keller012 - 12.12.2010
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.
Re: [AJUDA]Tempo nas dialogs -
abestado - 12.12.2010
Iniciante falando -
Tenta colocar um SetTimer de 30 segundos
Re: [AJUDA]Tempo nas dialogs - rjjj - 12.12.2010
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
Re: [AJUDA]Tempo nas dialogs -
CyNiC - 12.12.2010
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;
}
Re: [AJUDA]Tempo nas dialogs -
SuB_ZeRo0_ - 13.12.2010
SetPVarInt, nгo й uma boa idйia.
Use vбriaveis.
Re: [AJUDA]Tempo nas dialogs -
CyNiC - 13.12.2010
Quote:
Originally Posted by SuB_ZeRo0_
SetPVarInt, nгo й uma boa idйia.
Use vбriaveis.
|
Por quк nгo seria uma boa ideia?
Re: [AJUDA]Tempo nas dialogs -
SuB_ZeRo0_ - 13.12.2010
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!
Re: [AJUDA]Tempo nas dialogs -
CyNiC - 13.12.2010
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.
Re: [AJUDA]Tempo nas dialogs -
SuB_ZeRo0_ - 13.12.2010
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.
Re: [AJUDA]Tempo nas dialogs -
CyNiC - 13.12.2010
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.