PHP код:
new pickup_array[1_000_000],
pickup_1;
public OnGameModeInit()
{
for(new i, Float:z=13.3828; i < 1_000_000; i++) pickup_array[i] = CreateDynamicPickup(1274, 23, 1893.1178,-2051.5422,z+=1.0, -1);
pickup_1 = CreateDynamicPickup(1274, 23, 1884.2887,-2042.4277,13.3906, -1);
CreateDynamicPickup(1274, 23, 1872.2954,-2049.6240,13.3828, -1);
return 1;
}
public OnPlayerPickUpDynamicPickup(playerid, pickupid)
{
new string[100],
time = GetTickCount();
for(new i; i < 1_000_000; i++)
{
if(pickup_array[i] == pickupid) return SendClientMessage(playerid, -1, "pickup_array");
}
if(pickupid == pickup_1)
{
printf("Pick: На поиск затрачено %d секунд", GetTickCount()-time);
format(string, sizeof(string), "Pick: На поиск затрачено %d секунд", GetTickCount()-time);
SendClientMessage(playerid, -1, string);
return 1;
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_WALK)
{
new string[100],
time = GetTickCount();
for(new i; i < 1_000_000; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, 1881.7056,-2055.4966,13.3828)) return SendClientMessage(playerid, -1, "IsPlayerInRangeOfPoint");
}
if(IsPlayerInRangeOfPoint(playerid, 1.0, 1872.2954,-2049.6240,13.3828))
{
printf("Key: На поиск затрачено %d секунд", GetTickCount()-time);
format(string, sizeof(string), "Key: На поиск затрачено %d секунд", GetTickCount()-time);
SendClientMessage(playerid, -1, string);
}
return 1;
}
return 1;
}
И, как я уже сказал ранее, разница есть, примерно, в 20 секунд при одном миллионе итераций в обоих случаях для самого последнего (1000001) пикапа. А чем пикап будет ближе стоять в условии, тем это время будет, соответственно, меньше.