OnPlayerUpdate -
iTzMatheus - 15.05.2017
Existe algum problema em usa-la? Qual й?
Estou com um sistema de tapete de pregos mas percebi um problema em sincronismo que nгo faz a verificaзгo da posiзгo do jogador da maneira adequada, o timer dessa funзгo й chamado em 1s, usando apenas e unicamente essa funзгo, pode resultar em problemas? Temo a resultar em chamados infinitos ou em conflitos com outros chamados.
Apenas esse cуdigo serб alocado na public OnPlayerUpdate.
Код:
if(GetPlayerState(i) == PLAYER_STATE_DRIVER) //pregos
{
new Veiculo_ID = GetPlayerVehicleID(i);
for(new s = 0; s < sizeof(SpikeInfo); s++)
{
if(IsPlayerInRangeOfPoint(i, 3.0, SpikeInfo[s][sX], SpikeInfo[s][sY], SpikeInfo[s][sZ]))
{
if(SpikeInfo[s][sCreated] == 1)
{
new panels, doors, lights, tires;
GetVehicleDamageStatus(Veiculo_ID, panels, doors, lights, tires);
tires = encode_tires(1, 1, 1, 1);
UpdateVehicleDamageStatus(Veiculo_ID, panels, doors, lights, tires);
Re: OnPlayerUpdate -
klap - 15.05.2017
onPlayerUpdate, й executado sempre que um player manda um socket para o servidor...
isso deve ocorrer a cada "frame" do player... exemplo... se o player joga a 60 FPS's, significa que ele manda 60 sockets num segundo.. (na tenho certeza consoante isso)
se vc tem 100 players, a jogar a 60 fps's, significa que esse codigo corre 6000x por segundo...
se 30 dos player estiverem conduzindo...
significa que vai ocorrer aquele "for(" ali, 1800x,
e se vc tem 3 (sim, vamos fazer as contas com apenas 3) , tapetes de picos...
significa que esse codigo dentro do for vai correr 1800 * 3 , ou seja 5400 vezes...
ou seja, num server com apenas 30 pessoas a conduzir, e 3 tapetes de picos, vc estara verificando a posiзгo de todos os picos 5400x...
se vc acha pouco... nao tem problema...se vc acha muito...tem problema sim... tudo depende do cpu do seu host...
mas obviamente vc quer o server correndo ate em hosts fracos ne? entao talvez seja bom n usar esse onPlayerUpdate
Re: OnPlayerUpdate -
iTzMatheus - 15.05.2017
Alguem possui alguma outra informaзгo? Estou com dъvida em usar isso ou nгo.
Caso nгo use o OnPlayerUpdate, como posso fazer uma atualizaзгo melhor para o sistema? Quase que em tempo real para uma melhor eficiкncia?
Re: OnPlayerUpdate -
klap - 15.05.2017
Quote:
Originally Posted by iTzMatheus
Alguem possui alguma outra informaзгo? Estou com dъvida em usar isso ou nгo.
Caso nгo use o OnPlayerUpdate, como posso fazer uma atualizaзгo melhor para o sistema? Quase que em tempo real para uma melhor eficiкncia?
|
pode usar um timer, mas nгo seria tгo preciso... se quer precisao.. usa mesmo OnPlayerUpdate... o callback existe para ser usado tambem ne '-' ... nao й bom.. mas tem alturas que tem que ser ne