[Ajuda] OnPlayerUpdate
#1

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);
Reply
#2

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
Reply
#3

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?
Reply
#4

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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)