В теме 1 сообщение

< Всем привет сегодня я солью систему gps >

< Cистему gps была полностью написана с нуля >

< По запросу одного проекта но так как они не заплатили >

< за проделанную работу я решил слить данную систему>

< ========================================================== >

< Функционал как работает >

< Данная система можно так сказать уникальной >

< Так как для игрока это обычное GPS >

< А для admins это быстрый телепорт по точкам >

< ================================================== >

< CODES >

Спойлер

Ко всем New мы вставляем это:

new bool:UseGPS[MAX_PLAYERS];

Затем мы создаём DIALOG_GPS

Затем мы создаём сам DIALOG

        case DIALOG_GPS:

        {

            if(!response) { //нажал закрыть
                return 0;
            }

            switch(listitem)
            {

                   case 1: SPD(playerid, 52, DSL, "{c71616}Работы", "\
                   {c71616}[1] {ffffff}База грузовых тягачей\n\
                   {c71616}[2] {ffffff}Служба автомехаников", "Поиск", "Назад");      

            }
        }

 

Потом мы создаём сами точки для gps

 

 

        case 54:
        {
            if(!response) { // нажал закрыть
                return 0;
            }
            new locname[30], Float:X, Float:Y, Float:Z;
            switch(listitem)
            {

                case 0: X = -3174.6797, Y = -2889.3596, Z = 9.4253, locname = "База грузовых тягачей"; //
                case 1: X = -2707.0796, Y = 1181.7296, Z = 10.8560, locname = "Служба автомехаников";  //
            }
            if(Player[playerid][pAdmin] > 1) GPSAdmin_(playerid, X, Y, Z);
            else GPSPlayer_(playerid, X, Y, Z, locname);
            return 1;
        }

 

Потом мы идём в OnPlayerDisconnect

и вставляем там вот этот код

    if(UseGPS[playerid])
    {
        DisablePlayerRaceCheckpoint(playerid);
        UseGPS[playerid] = false;
    }

 

Потом мы идём в OnPlayerDeath

и так же вставляем код

    if(UseGPS[playerid])
    {
        DisablePlayerRaceCheckpoint(playerid);
        UseGPS[playerid] = false;
    }

 

Потом мы идём в OnPlayerEnterRaceCheckpoint

и вставляем код

    if(UseGPS[playerid])
    {
        SendClientMessage(playerid, 0xFFFFFF, "{c71616}Вы достигли место назначения!");
           DisablePlayerRaceCheckpoint(playerid);
           UseGPS[playerid] = false;
           return 1;
    }

 

Потом мы создаём stock GPSPlayer_

 

stock GPSPlayer_(playerid, Float:X, Float:Y, Float:Z, locname[])
{
    if(X == 0.0) return 1;
    new Float:VPos[3];
    if(Player[playerid][pAdmin] == 0)
    {
        GetPlayerPos(playerid, VPos[0], VPos[1], VPos[2]);
        UseGPS[playerid] = true;
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 1, X, Y, Z, 0, 0, 0, 5.0);
        new string[128];
        format(string, sizeof(string), "Вы отметили пункт на карте: %s. {c71616}Расстояние: %.1f ì", locname, GetDistanceBetweenPoints(VPos[0], VPos[1], VPos[2], X, Y, Z));
        SendClientMessage(playerid, COLOR_WHITE, string);
    }
    if(Player[playerid][pAdmin] > 1)
    {
        SetPlayerPos(playerid, X, Y, Z);
    }
    return 1;
}

 

Далее так-же мы создаём stock GPSAdmin_

 

stock GPSAdmin_(playerid, Float:X, Float:Y, Float:Z)
{
    if(Player[playerid][pAdmin] > 1)
    {
        SetPlayerPos(playerid, X, Y, Z);
    }
    return 1;
}

 

Ну и под кoнец сама CMD:gps

 

CMD:gps(playerid, params[])
{
    if(Player[playerid][pAdmin] == 0)
    {
        if(GetPlayerInterior(playerid) != 0 || GetPlayerVirtualWorld(playerid) != 0) return SendClientMessage(playerid, COLOR_GREY, "Выйдете на улицу!");
    }
    SPD(playerid, DIALOG_GPS, DSL, "{c71616}GPS навигатор",
    !"\
        {c71616}[1] {ffffff}Местоположение работ\
        ", !"Выбрать", !"Выход\
    ");
    return 1;
}

 

Ну на этом всё думаю кому надо пригодиться

Скриншоты:

На скриншотах уже моя работа так что можете не сравнивать с кодом который тут^

Спойлер

Япикc:Клик

Видео:Клик

 

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


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

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

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

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

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


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

Войти

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


Войти

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

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

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

    • sergeenko
      От sergeenko
      Если писать просто команду /a, то выдаёт /a [текст]
      А если написать какой-то текст то ничего не просиходит
      Код:
       
      stock SendAdminMessage(color, text[]) {     foreach(new i: Player)     {         if(PI[i][data_CADMIN] != 1||PI[i][data_ADMLVL] >= 1)         {              SendClientMessage(i, color, text);         }     }     return 1; } Команда: CMD:a(playerid, params[]) {     if(PI[playerid][data_ADMLVL] > 1)     {         new text[90];         if(sscanf(params, "s[90]", text))             return SendClientMessage(playerid, CG, "Используйте /a [текст]");         if(antiflood[playerid] > 0)              return SendClientMessage(playerid, COLOR_BLACK,"Пожалуйста, подождите пару секунд...");         antiflood[playerid]++;         if(PI[playerid][data_LOGGED] == false)              return SendClientMessage(playerid, CG, "Вы не авторизированы. Пожалуйста авторизируйтесь.");         new string[19 + (20 + (-2) + 1 + (-2)) + (MAX_PLAYER_NAME + (-2) + 3 + (-2)) + 90];         format(string, sizeof(string), "[%s #%i] %s[%i]: %s", GSName[PI[playerid][data_ADMLVL]], PI[playerid][ADMINSNUMBER], PI[playerid][data_NAME], playerid, text);         return SendAdminMessage(COLOR_BLUE, string);     }     return 1;    }  
    • sergeenko
      От sergeenko
      Как можно сделать худ, спидометр и т.д как на намальске, малиновке, и т.д. На этих проектах подключение происходит не по внешнему подключению, а по локальному (по сборке в игре). Возьмём к примеру Намальск - в сборке игры есть папка namalsk где есть hudimg.txd, в нём есть иконки, худ, спидометр, карта и т.д.
      Как это сделать? Тутора не нашёл
    • sergeenko
      От sergeenko
      Драсте, мне нужен тутор на плагин vehiclesIdFix (снятие лимитов машин), база сан андреас, а сборка крмп.