SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 13/11/2018, 05:48 PM   #1
matheusdorado
Big Clucker
 
Join Date: Mar 2016
Posts: 170
Reputation: 0
Default Me Ajude Entender Como usar o SetTimer(ex) com For ou Substituir SetTimer(ex) por For?

Olá pessoa boa tarde, estou tentando aprender como fazer contagem de tempo em minutos, como por exemplo para o tempo de contrato de uma profissão que ele deve cumprir mesmo deslogando para pegar outra ou tempo preso de um Player, e o Player ao desconectar o tempo restante para ser liberado é salvo.

O problema é que pesquisei bastante e não encontrei nada a respeito que fosse realmente bom para que fique claro em minha mente.

Por exemplo já vi pessoas usando settimer no OnGameModeInit(), para ficar rodando de 1 em um segundo jogando para uma public com For. Entretanto vejo muitas pessoas falando para não usar settimer para não exigir de mais do processador, e ate mesmo porque achei ilógico um settimer ficar rodando o tempo todo mesmo que não exista ninguém preso ou com contrato de serviço minimo etc.

Definitivamente alguém tem alguma maneira clara de me fazer entender como contar este tempo?

Desde já agradeço.

Atenciosamente, Matheus Dorado.
matheusdorado is offline   Reply With Quote
Old 13/11/2018, 06:26 PM   #2
RazorGuigo
Banned
 
Join Date: May 2016
Location: South is my Country
Posts: 1,139
Reputation: 104
Default Re: Me Ajude Entender Como usar o SetTimer(ex) com For ou Substituir SetTimer(ex) por For?

Usar timer global com looping de players é boa pratica, pela sua praticidade de não ter que destruir e criar timers por player, não afeta o desempenho, mas seria muito mais otimizado usar foreach ao invez de for
RazorGuigo is offline   Reply With Quote
Old 13/11/2018, 07:10 PM   #3
matheusdorado
Big Clucker
 
Join Date: Mar 2016
Posts: 170
Reputation: 0
Default Re: Me Ajude Entender Como usar o SetTimer(ex) com For ou Substituir SetTimer(ex) por For?

Quote:
Originally Posted by RazorGuigo View Post
Usar timer global com looping de players é boa pratica, pela sua praticidade de não ter que destruir e criar timers por player, não afeta o desempenho, mas seria muito mais otimizado usar foreach ao invez de for
Entendi, mas o que seria um Foreach, poderia me dar algum exemplo de como usá-lo?
matheusdorado is offline   Reply With Quote
Old 13/11/2018, 07:55 PM   #4
Gguiz
Huge Clucker
 
Join Date: Dec 2015
Location: Brazil
Posts: 354
Reputation: 20
Default Re: Me Ajude Entender Como usar o SetTimer(ex) com For ou Substituir SetTimer(ex) por For?

Cria uma variável para verificar se o player está preso ou não, fazendo isso atribua o valor de 0 = player solto, 1 = player preso e determina uma contagem, pode criar um loop.
__________________
Realidades do Brasil - Server SA-MP
Jogar - Site - Fórum
Gguiz is offline   Reply With Quote
Old 13/11/2018, 08:11 PM   #5
RazorGuigo
Banned
 
Join Date: May 2016
Location: South is my Country
Posts: 1,139
Reputation: 104
Default Re: Me Ajude Entender Como usar o SetTimer(ex) com For ou Substituir SetTimer(ex) por For?

Quote:
Originally Posted by matheusdorado View Post
Entendi, mas o que seria um Foreach, poderia me dar algum exemplo de como usá-lo?
exemplo 1 :
PHP Code:
public func(){
 foreach( new 
playerid Player ){
   if( ! 
IsPreso(playerid) )
     continue;
   
//code
 
}
 return 
1;

exemplo 2:
PHP Code:
public func(){
 foreach( new 
playerid Presos ){
  
//code
 
}
 return 
1;

RazorGuigo is offline   Reply With Quote
Old 13/11/2018, 08:50 PM   #6
JonathanFeitosa
High-roller
 
Join Date: Jan 2011
Location: Manaus/AM
Posts: 2,760
Reputation: 346
Default Re: Me Ajude Entender Como usar o SetTimer(ex) com For ou Substituir SetTimer(ex) por For?

https://forum.sa-mp.com/showthread.php?t=557107
__________________
Programador Java & Android
Instagram: jonathanfeitosajfs
JonathanFeitosa is offline   Reply With Quote
Old 13/11/2018, 09:07 PM   #7
rjjj
Huge Clucker
 
rjjj's Avatar
 
Join Date: Jan 2014
Location: Acre, Brasil
Posts: 261
Reputation: 203
Default Re: Me Ajude Entender Como usar o SetTimer(ex) com For ou Substituir SetTimer(ex) por For?

Esses sistemas podem ser feitos comparando retornos de gettime (UNIX Timestamp). É melhor do que criar timestamps personalizados com SetTimer e SetTimerEx, que têm períodos de execução naturalmente imprecisos .



Para passagens de tempo em minutos, horas ou até dias, basta fazer conversões a partir de segundos (unidade do resultado do gettime).



Espero ter ajudado .
__________________


rjjj is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] É possível usar Mysql e SQLite juntos? ChapN Português/Portuguese 13 23/09/2018 07:36 PM
[Ajuda] Como substituir registro de cmd por dialog NemesisBR Português/Portuguese 5 22/04/2018 10:58 PM
[ Duvida ] Te Como Substituir? Nice-.- Português/Portuguese 3 24/11/2012 01:01 PM
[Ajuda] Como substituir isso ? felipe_mr Português/Portuguese 4 16/11/2012 12:47 AM


All times are GMT. The time now is 09:04 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.