В этом уроке я научу вас как сделать чтобы пикап не подбирался повторно когда игрок долго стоит на нем.
Кому понравилось ставим плюсы.

Итак начнем,создем переменные вначале мода.
Code
new oldpickup[MAX_PLAYERS];  // Запоминает ид старого пикапа 
new Float:PickupX[MAX_PLAYERS],Float:PickupY[MAX_PLAYERS];  // Координаты старого пикапа 
new PickupTimer[MAX_PLAYERS];  // Таймер пикапа

Дальшесоздаем паблик OnPlayerPickupExit(playerid)
Code
forward OnPlayerPickupExit(playerid); 
public OnPlayerPickupExit(playerid) 

     if(oldpickup[playerid] == -1) return 1; // Если старый пикап -1 то завершаем паблик 
     new Float:z; // Создаем переменную для определения z координаты 
     GetPlayerPos(playerid, z, z, z); // Узнаем позицию Z   xD 
     if(!IsPlayerInRangeOfPoint(playerid,1.0,PickupX[playerid],PickupY[playerid],z)) oldpickup[playerid] = -1; // Если игрок не около пикапа присваиваем переменной значение -1 
     return 1; 
}

Дальшеделаем проверку в OnPlayerPickUpPickup,в самый верх паблика суем:
Code
if(pickupid == oldpickup[playerid]) return 1; 
oldpickup[playerid] = pickupid; 
new Float:z; 
GetPlayerPos(playerid, PickupX[playerid], PickupY[playerid], z);

Дальше нужнозапустить и завершить таймер:
Code
public OnPlayerSpawn(playerid) 

     PickupTimer[playerid] = SetTimerEx("OnPlayerPickupExit", 1000, true, "d", playerid); // запускаем при спавне 
     return 1; 

       
public OnPlayerDisconnect(playerid, reason) 

     KillTimer(PickupTimer[playerid]);  // завершаем при выходе 
     return 1; 
}

Автор:DuMBaSS