15.07.2017, 10:54
Quote:
Abro sу um parenteses pelo uso da sua static, que irб gerar conflito. Por ser uma variбvel local indestrutнvel, cada chamada de OnPlayerUpdate a um jogador, irб fazer a manipulaзгo dessa static, e enquanto ela estiver sendo manipulada nessa chama, quando houver outra chamada de outro jogador, farб tambйm essa manipulaзгo e assim alterarб o valor no momento de execuзгo, alterando tambйm na outra chamada.
Pra ter uma ideia mais na prбtica, basta seguir esse cуdigo: PHP код:
|
A funзгo do 'gettime' й obter o tempo do servidor, ou seja, o tempo й global, nгo precisa ser obtido para cada player, necessita sim setar o tempo obtido em uma variбvel "playerid", contudo, serб verificado 1 em 1 segundos o AC para cada player. Acredito que vocк confundiu o gettickcount com gettime '-'
De uma olhada nesse tуpico, vк o post do Yashas, depois vai no link que ele sugeriu, vai ver que ele usa dessa forma. https://sampforum.blast.hk/showthread.php?tid=575349&page=2
F1NAL, acho melhor vocк usar da forma que dei como exemplo:
PHP код:
new VerificarAC[MAX_PLAYERS];
public OnPlayerUpdate(playerid)
{
static time;
time = gettime();
if(VerificarAC[playerid] < time)//Intervalo de 1 seg
{
VerificarAC[playerid] = time;
AntiXiter(playerid);
}
return 1;
}
O uso de SetTimerEx ou OnPlayerUpdate й muito melhor que SetTimer + Loop por que nunca serб verificado tudo
de uma vez, contudo nгo prejudicarб o intervalo do servidor. De uma olhada, achei um tуpico discutindo isso:
https://sampforum.blast.hk/showthread.php?tid=575349&page=2
@renatog
static: dentro ou fora dб no mesmo, static й como uma variбvel global se colocada no local, usando static evitarб que seja criada e destruida inъmeras vezes a mesma variбvel, pois como sabemos, а OnPlayerUpdate й chamada varias vezes por segundos para cada player, exceto se o mesmo estiver de ESC. Ou seja, sempre que possнvel use static em vez de new na OnPlayerUpdate. VIAJOU TAMBЙM HAHAHA