Перейти к содержанию
Авторизация  
hteppl

Система GPS навигации.

Рекомендуемые сообщения

hteppl

Весьма удобная система GPS, с указанием дистанции до места назначения, с использованием TD.

 

Фото данной системы.

 

[spoiler=Cкриншот]kPZmne9.jpg

 

Для работоспособности данной системы, необходимо :

 

Ко всем переменным, добавляем

new PlayerText:GPSINFO,Text:GPSTD[4];

В public OnPlayerDisconnect(playerid, reason) добавляем

PlayerTextDrawDestroy(playerid,GPSINFO); 

В секундный таймер 

if(GetPVarInt(i,"GPS") == 1)
{
	new Float:p[3]; GetPlayerPos(i,p[0],p[1],p[2]);
	new str[144];
 	format(str,sizeof(str),"~y~Distance~n~~w~%.1f m",GetDistanceBetweenPoints(p[0], p[1], p[2], GetPVarFloat(i,"GPSX"), GetPVarFloat(i,"GPSY"), GetPVarFloat(i,"GPSZ")));
	PlayerTextDrawSetString(i,GPSINFO,str);
}

В public OnPlayerConnect(playerid) добавляем TD

GPSINFO = CreatePlayerTextDraw(playerid, 153.0000, 404.3750, "~Y~Error"); // nope
PlayerTextDrawLetterSize(playerid, GPSINFO, 0.1570, 0.8956);
PlayerTextDrawTextSize(playerid, GPSINFO, 229.0000, 0.0000);
PlayerTextDrawAlignment(playerid, GPSINFO, 1);
PlayerTextDrawColor(playerid, GPSINFO, -1);
PlayerTextDrawUseBox(playerid, GPSINFO, 1);
PlayerTextDrawBoxColor(playerid, GPSINFO, 524025600);
PlayerTextDrawSetOutline(playerid, GPSINFO, 0);
PlayerTextDrawBackgroundColor(playerid, GPSINFO, 255);
PlayerTextDrawFont(playerid, GPSINFO, 2);
PlayerTextDrawSetProportional(playerid, GPSINFO, 1);
PlayerTextDrawSetShadow(playerid, GPSINFO, 0);

К всем глобальным текстдравам

GPSTD[0] = TextDrawCreate(123.5000, 395.9624, "ld_beat:chit"); // nope
TextDrawLetterSize(GPSTD[0], 0.0000, 0.0000);
TextDrawTextSize(GPSTD[0], 34.0000, 35.0000);
TextDrawAlignment(GPSTD[0], 1);
TextDrawColor(GPSTD[0], 186596351);
TextDrawSetOutline(GPSTD[0], 0);
TextDrawBackgroundColor(GPSTD[0], 255);
TextDrawFont(GPSTD[0], 4);
TextDrawSetProportional(GPSTD[0], 0);
TextDrawSetShadow(GPSTD[0], 0);

GPSTD[1] = TextDrawCreate(202.5000, 395.9624, "ld_beat:chit"); // nope
TextDrawLetterSize(GPSTD[1], 0.0000, 0.0000);
TextDrawTextSize(GPSTD[1], 34.0000, 35.0000);
TextDrawAlignment(GPSTD[1], 1);
TextDrawColor(GPSTD[1], 186596351);
TextDrawSetOutline(GPSTD[1], 0);
TextDrawBackgroundColor(GPSTD[1], 255);
TextDrawFont(GPSTD[1], 4);
TextDrawSetProportional(GPSTD[1], 0);
TextDrawSetShadow(GPSTD[1], 0);

GPSTD[2] = TextDrawCreate(140.0000, 401.3125, "LD_SPAC:white"); // nope
TextDrawLetterSize(GPSTD[2], 0.0000, 0.0000);
TextDrawTextSize(GPSTD[2], 81.0000, 23.7599);
TextDrawAlignment(GPSTD[2], 1);
TextDrawColor(GPSTD[2], 186596351);
TextDrawSetOutline(GPSTD[2], 0);
TextDrawBackgroundColor(GPSTD[2], 255);
TextDrawFont(GPSTD[2], 4);
TextDrawSetProportional(GPSTD[2], 0);
TextDrawSetShadow(GPSTD[2], 0);

GPSTD[3] = TextDrawCreate(130.0000, 402.5249, "hud:radar_waypoint"); // nope
TextDrawLetterSize(GPSTD[3], 0.0000, 0.0000);
TextDrawTextSize(GPSTD[3], 21.0000, 21.0000);
TextDrawAlignment(GPSTD[3], 1);
TextDrawColor(GPSTD[3], -1);
TextDrawSetOutline(GPSTD[3], 0);
TextDrawBackgroundColor(GPSTD[3], 255);
TextDrawFont(GPSTD[3], 4);
TextDrawSetProportional(GPSTD[3], 0);
TextDrawSetShadow(GPSTD[3], 0);

В конец мода

stock Float:GetDistanceBetweenPoints(Float:X, Float:Y, Float:Z, Float:PointX, Float:PointY, Float:PointZ)
{
	new Float:Distance;Distance = floatabs(floatsub(X, PointX)) + floatabs(floatsub(Y, PointY)) + floatabs(floatsub(Z, PointZ));
	return Distance;
}
stock GPS(playerid, Float:x, Float:y, Float:z,NameSTR[])
{
    new str[144];
    if(GetPVarInt(playerid,"GPS") == 1) RemovePlayerMapIcon(playerid, 99);
    SetPlayerMapIcon(playerid, 99, x, y, z, 19, 0, MAPICON_GLOBAL);
    new Float:p[3]; GetPlayerPos(playerid,p[0],p[1],p[2]);
    format(str,sizeof(str),"{FFFFFF}Место назначение {FFFFFF}%s{FFFFFF}. Расстояние до место назначение {FFFFFF}%.1f м.(красный флажок)",NameSTR,GetDistanceBetweenPoints(p[0], p[1], p[2], x, y, z));
    SendClientMessage(playerid,-1,str);
    PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
    SetPVarInt(playerid,"GPS",1);
    SetPVarInt(playerid,"GPS_AREA",CreateDynamicSphere(x, y, z, 10.0, 0, 0, -1));
    SetPVarFloat(playerid,"GPSX",x);
    SetPVarFloat(playerid,"GPSY",y);
    SetPVarFloat(playerid,"GPSZ",z);
    format(str,sizeof(str),"~y~Distance~n~~w~%.1f m",GetDistanceBetweenPoints(p[0], p[1], p[2], x, y, z));
    PlayerTextDrawSetString(playerid,GPSINFO,str);
    for(new i; i < sizeof(GPSTD); i++) TextDrawShowForPlayer(playerid,GPSTD[i]);
    PlayerTextDrawShow(playerid,GPSINFO);
    return true;
}
stock UNGPS(playerid)
{
    if(GetPVarInt(playerid,"GPS") == 1)
    {
        DestroyDynamicArea(GetPVarInt(playerid,"GPS_AREA"));
        DeletePVar(playerid,"GPS_AREA");
        RemovePlayerMapIcon(playerid, 99);
        SetPVarInt(playerid,"GPS",0);
        DeletePVar(playerid,"GPSX");
        DeletePVar(playerid,"GPSY");
        DeletePVar(playerid,"GPSZ");
	for(new i; i < sizeof(GPSTD); i++) TextDrawHideForPlayer(playerid,GPSTD[i]);
	PlayerTextDrawHide(playerid,GPSINFO);
    }
    return true;
}

Автор данной системы и TD : -WorcOut-

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
HDMIusbi

Мне ошибки выдаёт :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Sasha_Zemlyanoy

Мне тоже

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Smolin

@HDMIusbi и @Sasha_Zemlyanoy, вангую - массив неизвестен ? Или аргументы не совпадают ? 

 

Ошибки в студию .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Timur_Volkov
      От Timur_Volkov
      Скачал светофор GTRP установил его раставил... И когда захожу на сервер они не работают.... Кто может помочь с чем это может быть связано?
    • Smolin
      От Smolin
      Для начала переходим на сайт и следуйте указаниям ниже:
      1. Нажимаем на Upload images

      2. Выбираем метод заливки изображения на сайт (в моем случае метод будет: browse your computer)

      3. Выбираем ваше изображение(в своем случае я залью только одно изображение, но можно и несколько) и выбираем Start upload

      4. Теперь ваше изображение залито на сайт. Справа есть колонка с ссылками на ваше изображение

      чтобы ваше изображение высветилось в теме, достаточно скопировать ссылку с BBCode (message boards & forums)
      Если вам нужно залить какой-либо файл на хостинг форума, то вы сможете попросить одного из администраторов в online (не модераторов).
      P.S: проверенный источник хостинг картинок
×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.