public OnPlayerUpdate -
matheusspohr - 10.07.2016
Fala galera, entгo, foi mal o abandono de novo, mas jб voltei.
Quero saber de vocкs, a public OnPlayerUpdate й chamada frequentemente? Mais ou menos quando ela й chamada?
Causaria algum 'lag' eu colocar loop's nela para todos os players para eu poder atualizar apenas 1 dado em todos?
E respondendo essas perguntas, surgirгo outras, entгo deixo o tуpico em aberto. Qualquer duvida vou postando abaixo.
Obrigado.
Abraзos.
Re: public OnPlayerUpdate -
pWesley - 10.07.2016
Como o wilton havia me dito uma vez, OnPlayerUpdate й chamada frequentemente e causa lag em determinadas situaзхes na qual ela й chamada.
Re: public OnPlayerUpdate -
n0minal - 10.07.2016
Depende da quantidade de dados enviados e recebidos pelo player, se nгo me engano a cada 40ms
Re: public OnPlayerUpdate -
matheusspohr - 10.07.2016
Em questгo de tempo, quantos minutos/segundos?
Re: public OnPlayerUpdate -
Dayvison_ - 10.07.2016
Vai depender do fps do player, vocк mesmo pode testar com muito fps ae, eu aqui com 20 fps cheguei a 21 chamadas por segundo.
http://prntscr.com/br3tg0
PHP код:
new tempo;
new time;
new calls;
public OnPlayerUpdate(playerid)
{
time = gettime();
if(tempo != time)
{
printf("Callback called %d times, at %d time.", calls, tempo);
tempo = time;
calls = 1;
return true;
}
++calls;
return true;
}
Re: public OnPlayerUpdate -
willttoonn - 10.07.2016
Geralmente ela й chamada sempre que o player atualiza-se. Se vocк for trabalhar com atualizaзгo de dados que precisam ser atualizados sempre, recomendo usar timers de 1s para algum dado rбpido ou de 1min para dados mais lentos.
O OnPlayerUpdate vai influenciar muito quando vocк tiver uma mйdia de 100+ e a mбquina estiver consumindo muito devido a essas atualizaзхes constantes. Vocк colocando as mesmas funзхes em timers com intervalos maiores, como 1s ou 2s, ajudarб a diminuir o consumo e a necessidade dele ser chamado vбrias vezes no mesmo segundo.
Re: public OnPlayerUpdate -
XandyMello - 10.07.2016
Mano, й sу vocк colocar "printf("Passado na public OnPlayerUpdate");" no fim da public OnPlayerUpdate. Eu me lembro que a ultima vez que eu testei, floodou o CMD. E cada vez que eu andava, chamava mais rбpido ainda.
Acho melhor vocк usar uma contagem de 1 seg para ser chamado com "loop".
Exemplo:
pawn Код:
public OnGameModeInit()
{
SetTimer("Atualizar", 1000, true);
return true;
}
forward Atualizar();
public Atualizar()
{
for(new i = 0; i <MAX_PLAYERS; ++i)
{
//Funзгo
}
}
No caso, irб atualizar 1 em 1 segundos para todos os players.
Mas se for o caso, e se vocк souber oque realmente estб fazendo, utilize a public OnPlayerUpdate.
Re: public OnPlayerUpdate -
Cleyson - 11.07.2016
Com as informaзхes que vocк passou eu usaria settimer.
Nunca gostei de usar essa Callback. Atй porque uma atualizaзгo a cada 1s ja й o suficiente no meu ponto de vista.
Re: public OnPlayerUpdate -
zSuYaNw - 11.07.2016
Quote:
Originally Posted by willttoonn
Geralmente ela й chamada sempre que o player atualiza-se. Se vocк for trabalhar com atualizaзгo de dados que precisam ser atualizados sempre, recomendo usar timers de 1s para algum dado rбpido ou de 1min para dados mais lentos.
O OnPlayerUpdate vai influenciar muito quando vocк tiver uma mйdia de 100+ e a mбquina estiver consumindo muito devido a essas atualizaзхes constantes. Vocк colocando as mesmas funзхes em timers com intervalos maiores, como 1s ou 2s, ajudarб a diminuir o consumo e a necessidade dele ser chamado vбrias vezes no mesmo segundo.
|
Exatamente, e й por isto que nгo recomendo usar OnPlayerUpdate (a nгo ser que vocк saiba oque vocк estб fazendo).