06.03.2018, 03:11
Quote:
Toda funзгo causa um Delay, umas com um pequeno intervalo de tempo e outras com um grande intervalo de tempo.
Essa DOF2_GetBool й uma das que causa um bom delay. Para evitar usar ela em um looping (causando a leitura dessa funзгo 250 vezes, o que nгo й muito legal), vocк poderб utilizar uma variбvel onde vai armazenar essa informaзгo. Por exemplo, toda vez que um veнculo for trancado, vocк pode utilizar: Код:
vTrancado[vehicleid] = true; Код:
for(new i; i <= GetVehiclePoolSize(); i++) { if(vTrancado[i]) { SCM(playerid, -1, "Macarena"); } } Se hб dъvidas quanto а funзгo GetVehiclePoolSize (https://sampwiki.blast.hk/wiki/GetVehiclePoolSize), basicamente ela retorna o maior ID do veнculo conectado, o que otimiza o cуdigo para que ao invйs de fazer um looping de 250, dos quais alguns IDs de veнculo talvez nem tenha sido criados, o GetVehiclePoolSize vai retornar o ъltimo ID do veнculo conectado. Outra soluзгo que vocк poderia utilizar (mas que nгo recomendo) seria continuar com aquele seu cуdigo e no inнcio do looping (antes do format), vocк colocaria a condicional Код:
if(!IsValidVehicle(i)) continue; Caso tenha restado alguma dъvida, envie-me uma MP. |
John, sу se esqueceu de um detalhe no seu loop, o id de veнculos inicia em 1, logo, new i = 1.
Alйm do que ele colocou, podes otimizar mais esse cуdigo definindo as strings. Irб diminuir um bom consumo, pois nгo serб necessбrio alocar memуria toda vez que o loop executar o escopo.
PHP код:
#define MAX_VEICULOS 250
#define vehicle_file "Veiculos/%i.ini"
#define key_vehicle_locked "Trancado"
for(new i; i < MAX_VEICULOS; i++)
{
format(fCarro, sizeof(fCarro), vehicle_file, i);
if(DOF2_GetBool(fCarro, key_vehicle_locked))
{
SCM(playerid, -1, "Macarena");
}
}