Действительно, такая проблема у многих. Когда я столкнулся с ней, стал искать решение на всевозможных форумах. Но поиск ничего не дал. Пришлось придумывать самому. Вот что получилось.
к new:
Код
new PicRadar[MAX_PLAYERS];
new TimerUpdate[MAX_PLAYERS];
создаём пикап в OnPlayerConnect:
Код
PicRadar[playerid] = CreatePickup(1239,23,212.4173,1822.8435,6.4141);
в OnPlayerPickUpPickup:
Код
if(pickupid == PicRadar[playerid])
{
ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Окно","Диалоговое окно","Ок","Отмена");
TimerUpdate[playerid] = SetTimer("Update",200,1);
DestroyPickup(PicRadar[playerid]);
}
в любое место:
Код
forward Update(playerid);
public Update(playerid)
{
if(!IsPlayerInRangeOfPoint(playerid,1.0,212.4173,1822.8435,6.4141))
{
PicRadar[playerid] = CreatePickup(1239,23,212.4173,1822.8435,6.4141);
KillTimer(TimerUpdate[playerid]);
}
return 1;
}
Когда встаём на пикап, открывается ДО, убивается пикап, запускается таймер каторый проверяет, отошел ли игрок от этого места.
Если отошёл на 1 метр, создаётся опять пикап и убивается таймер.
Может у кого есть другое решение, прошу отписаться здесь.