[Ajuda] Timer
#1

Botei para setar o timer de 50 a 50 minutos para o player, da forma abaixo:
pawn Код:
SetTimerEx("Verificar", 10000*5, false, "i", playerid);
eu queria fazer este timer aparecer por exemplo num comando mostrando quanto tempo falta para ser executado a callback. Alguйm pode passar a lуgica? que depois irei aprimorar ele para salvamento tambйm.
Reply
#2

ver se isso ajuda... https://sampforum.blast.hk/showthread.php?tid=463255
Reply
#3

Quote:
Originally Posted by Coringa_Vilao
Посмотреть сообщение
Nгo consegui entender muito... e mesmo usando a lуgica dele na adaptaзгo nгo deu certo, queria algo mas explicado, passo a passo, pra mim entender bem o cуdigo.
Reply
#4

Quote:
Originally Posted by Caiton
Посмотреть сообщение
Nгo consegui entender muito... e mesmo usando a lуgica dele na adaptaзгo nгo deu certo, queria algo mas explicado, passo a passo, pra mim entender bem o cуdigo.
Nгo entendi muito bem oque vocк quer fazer.. Poderia explicar melhor?
Reply
#5

Quote:
Originally Posted by HaRdiiZin
Посмотреть сообщение
Nгo entendi muito bem oque vocк quer fazer.. Poderia explicar melhor?
Estou desenvolvendo um sisteminha de pagamento do player, a cada 50 minutos o player receber uma quantia de dinheiro. Bom atй ai creio q tudo esteja funcionando, porйm quero ter uma variбvel representativa, do tempo que ainda falta para o player receber o dinheiro.

Timer
pawn Код:
SetTimerEx("Dinheiro", 10000*5, false, "i", playerid);
pawn Код:
forward Dinheiro(playerid);
public Dinheiro(playerid)
{
    GivePlayerMoney(playerid,900);
    SetTimerEx("Dinheiro", 10000*5, false, "i", playerid);
}
Reply
#6

Quote:
Originally Posted by Caiton
Посмотреть сообщение
Estou desenvolvendo um sisteminha de pagamento do player, a cada 50 minutos o player receber uma quantia de dinheiro. Bom atй ai creio q tudo esteja funcionando, porйm quero ter uma variбvel representativa, do tempo que ainda falta para o player receber o dinheiro.

Timer
pawn Код:
SetTimerEx("Dinheiro", 10000*5, false, "i", playerid);
pawn Код:
forward Dinheiro(playerid);
public Dinheiro(playerid)
{
    GivePlayerMoney(playerid,900);
    SetTimerEx("Dinheiro", 10000*5, false, "i", playerid);
}
PHP код:
new TempoRestante[MAX_PLAYERS];
public 
OnPlayerConnect(playerid)
{
    
TempoRestante[playerid] = 50
    
SetTimerEx("TempoMoney"1000true"i"playerid);
    
SetTimerEx("Dinheiro"10000*5false"i"playerid);
    return 
1;
}
forward TempoMoney(playerid);
public 
TempoMoney(playerid)
{
    new 
str[100];
    
TempoRestante[playerid] --;
    
format(strsizeof str"Tempo restante: %d"TempoRestante[playerid]);
    
GameTextForPlayer(playeridstr20003);
    return 
1;
}
forward Dinheiro(playerid);
public 
Dinheiro(playerid)
{
    
GivePlayerMoney(playerid,900);
     
SetTimerEx("Dinheiro"10000*5false"i"playerid);

Uma pequena base.. Sу se inspirar, e melhorar que fica shoooooow!
obs:Foi a ъnica forma que pensei atй agora, pode ser que tenha um jeito melhor.
Reply
#7

Quote:
Originally Posted by HaRdiiZin
Посмотреть сообщение
PHP код:
new TempoRestante[MAX_PLAYERS];
public 
OnPlayerConnect(playerid)
{
    
TempoRestante[playerid] = 50
    
SetTimerEx("TempoMoney"1000true"i"playerid);
    
SetTimerEx("Dinheiro"10000*5false"i"playerid);
    return 
1;
}
forward TempoMoney(playerid);
public 
TempoMoney(playerid)
{
    new 
str[100];
    
TempoRestante[playerid] --;
    
format(strsizeof str"Tempo restante: %d"TempoRestante[playerid]);
    
GameTextForPlayer(playeridstr20003);
    return 
1;
}
forward Dinheiro(playerid);
public 
Dinheiro(playerid)
{
    
GivePlayerMoney(playerid,900);
     
SetTimerEx("Dinheiro"10000*5false"i"playerid);

Uma pequena base.. Sу se inspirar, e melhorar que fica shoooooow!
obs:Foi a ъnica forma que pensei atй agora, pode ser que tenha um jeito melhor.
Acho que ficaria muito mais Facil, na Callback TempoMoney, fazer uma verificaзгo para ver se TempoRestante й igual a zero, caso for, da o dinheiro, assim evitando um timer.
Reply
#8

Quote:
Originally Posted by Ever_SH
Посмотреть сообщение
Acho que ficaria muito mais Facil, na Callback TempoMoney, fazer uma verificaзгo para ver se TempoRestante й igual a zero, caso for, da o dinheiro, assim evitando um timer.
Mais pelo oque eu entendi ele quer saber quanto tempo falta pro player receber a grana.. Ata, agora li melhor e entendi oque quis dizer kkkk. Sim, seria muito melhor!
Reply
#9

Quote:
Originally Posted by HaRdiiZin
Посмотреть сообщение
Mais pelo oque eu entendi ele quer saber quanto tempo falta pro player receber a grana..
Ta, mais qual a diferenзa? Й sу criar um timer para ser chamado de segundo em segundo para atualizar, e criar uma variavel de valor 3000, cada vez que o timer й chamado, reduz a variavel e mostra para o player, e faz uma verificaзгo, se ela for 0, da o salario e volta pra 3000.
Reply
#10

Tente utilizar gettime dessa forma:

PHP код:
new Tempo[MAX_PLAYERS];
//Em OnPlayerConnect
SetTimerEx("UpdateMoney"1000false"i"playerid);
forward UpdateMoney(playerid);
public 
UpdateMoney(playerid) {
    if(
Tempo[playerid] < gettime()) Tempo[playerid] = gettime();
    else if(
Tempo[playerid] == gettime() + (60 5)) {
        
GivePlayerMoney(playerid,900);
        
Tempo[playerid] = gettime() + (60 5); //5 minutos
    
}
    return 
1;
}
GetTempoMoney(playerid) {
    return 
gettime() - Tempo[playerid];
}
//Modo de uso
new str[30];
format(str30"Tempo restante: %d:%d:%d"GetTempoMoney(playerid) / 60 60GetTempoMoney(playerid) / 60 60GetTempoMoney(playerid) % 60);
SendClientMessage(playerid, -1str); 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)