• Страница 1 из 1
  • 1
GPS с помощью MapIcon
ZioHikДата: Среда, 10.04.2013, 22:48 | Сообщение # 1
.::Offline::.
http://u.to/N46EAw
Сообщений: 831
[ 82 ]
Награды: 29

Статус отсутствует


Ко всем new:

Код
new Float: GpsX [MAX_PLAYERS];
new Float: GpsY [MAX_PLAYERS];
new Float: GpsZ [MAX_PLAYERS];
new GpsEn[MAX_PLAYERS];


В OnPlayerConnect(playerid):

Код
GpsX[playerid] = 0.0;
GpsY[playerid] = 0.0;
GpsZ[playerid] = 0.0;
GpsEn[playerid] = 0;


Давайте добавим команду для выбора локации:

Код

if (strcmp(cmd, "/locate", true) == 0)
{
        ShowPlayerDialog(playerid,9991,DIALOG_STYLE_LIST,"Локации","Дальнобой\nСвалка","Ок","Выйти"); // И далее новые пункты через \n (не забудьте добавить в диалог)
return 1;
}


Добавим в OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) новый диалог:

Код
            
if(dialogid == 9991)
{
       if(response)
       {
           if(listitem == 0) SetGPSMarker(playerid,-78.6058,-1128.4846,1.0781,51); // Дальнобой
           if(listitem == 1) SetGPSMarker(playerid,2185.7227,-1982.4310,13.5514); // Свалка
           // listitem == 2 и т.д.
        }
}


Добавим stock:

Код

stock SetGPSMarker(playerid,Float:x, Float:y, Float:z, icon = 53)
{
         RemovePlayerMapIcon(playerid, 56 );
         SetPlayerMapIcon( playerid, 56, x, y, z, icon, 0, MAPICON_GLOBAL );
         GpsX[playerid] = x;
         GpsY[playerid] = y;
         GpsZ[playerid] = z;
         GpsEn[playerid] = 1;
}

stock RemoveGPSMarker(playerid)
{
         RemovePlayerMapIcon(playerid, 56 );
         GpsX[playerid] = 0.0;
         GpsY[playerid] = 0.0;
         GpsZ[playerid] = 0.0;
         GpsEn[playerid] = 0;
}


В любой таймер поставьте:

Код

for(new i=0;i<MAX_PLAYERS;i++)
{
       if(IsPlayerInRangeOfPoint(i, 40.0, GpsX[i],GpsY[i],GpsZ[i]) && GpsEn[i] == 1)
       {
          RemoveGPSMarker(i);
       }
}


Или

Код

if(IsPlayerInRangeOfPoint(playerid, 40.0, GpsX[playerid],GpsY[playerid],GpsZ[playerid]) && GpsEn[playerid] == 1)
{
       RemoveGPSMarker(playerid);
}


Как добавлять:

Новая точка

Код
SetGPSMarker(playerid,Float:x, Float:y, Float:z, icon (не обязательно))


playerid - ID игрока для которого точка.
Float:x, Float:y, Float:z - Координаты точки.
icon - По стандарту всегда стоит иконка 53, чтобы поставить свою, просто введите свой ID иконки.


После того как вы подъехали к иконке, она пропадет.

Автор:ZioHik
Специально для www.SAMP-TEAM.com
 
Ainur$Дата: Воскресенье, 16.03.2014, 23:15 | Сообщение # 2
.::Offline::.
Новичок
Сообщений: 3
[ 0 ]
Награды: 0

Статус отсутствует
cool cool cool Норм
 
Marty_JacksonДата: Воскресенье, 04.05.2014, 12:49 | Сообщение # 3
.::Offline::.
Новичок
Сообщений: 6
[ 0 ]
Награды: 0

Статус отсутствует
Удобно, благодарю
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright www.SAMP-TEAM.com (c) 2009-2024
Правила использования материалов сайта

При копировании материалов из нашего сайта
ссылка на www.SAMP-TEAM.com обязательна!
Нарушители правил будут строго наказаны!

Хостинг от uCoz   
Для корректного просмотра мы рекомендуем Вам использовать браузер Google Chrome.
Яндекс.Метрика
Яндекс.Метрика