Показано с 1 по 1 из 1

Тема: [Мануал] Mygps System

  1. #1
    Аватар для AKKI
    Гл. админ SAMP
    Регистрация
    09.11.2014
    Сообщений
    6
    Благодарностей
    0
    Сказали спасибо: 0

    [Мануал] Mygps System

    Система личного GPS навигатора с сохранениями позиций.
    И так приступим:

    Ко всем define:

    PHP код:
    #define MAX_GPS 20 //Можно будет изменить на своё. (кол.во сохранённых позиций) 
    Ко всем New:
    PHP код:
    new GPSName[MAX_PLAYERS][MAX_GPS][50];
    enum mygps
    {
        
    Float:gpsPos_X[MAX_GPS],
        
    Float:gpsPos_Y[MAX_GPS],
        
    Float:gpsPos_Z[MAX_GPS]
    }
    new 
    PlayerGPS[MAX_PLAYERS][mygps];
    enum gpsInfo
    {
        
    gpsName[50],
        
    Float:gpsPos[3],
        
    bool:gpsCP
    }
    new 
    CheckGPS[MAX_PLAYERS];
    new 
    CountGPS[MAX_PLAYERS]; 
    В public OnPlayerConnect
    PHP код:
        for(new i;MAX_GPS;++)
        {
            
    SetString(GPSName[playerid][i], "No_Gps_Name");
        } 
    Ко всем диалогам:
    PHP код:
            case 244:
            {
                if(
    response)
                {
                    if(
    listitem CountGPS[playerid])
                    {
                        
    CheckGPS[playerid] = listitem;
                        
    ShowPlayerDialog(playerid2452"Выберите пункт""Отметить на карте\nУдалить""Выбор""Отмена");
                    }
                    else
                    {
                        
    ShowPlayerDialog(playerid2461"Название метки""Введите название новой позиции (GPS)""Создать""Отмена");
                    }
                }
            }
            case 
    245:
            {
                if(
    response)
                {
                    new 
    gps CheckGPS[playerid];
                    switch(
    listitem)
                    {
                        case 
    0:
                        {
                            new 
    Float:PlayerGPS[playerid][gpsPos_X][gps];
                            new 
    Float:PlayerGPS[playerid][gpsPos_Y][gps];
                            new 
    Float:PlayerGPS[playerid][gpsPos_Z][gps];
                            
    EnableGPSForPlayer(playeridXYZ);
                            
    format(string,sizeof(string),"Метка '%s' отмечена на карте жёлтым маркером",GPSName[playerid][gps]);
                            
    SendClientMessage(playeridCOLOR_WHITEstring);
                        }
                        case 
    1:
                        {
                            new 
    maxgps CountGPS[playerid];
                            
    format(string,sizeof(string),"Метка '%s' успешно удалена"GPSName[playerid][gps]);
                            for(new 
    gps;maxgps;++)
                            {
                                
    SetString(GPSName[playerid][i],GPSName[playerid][i+1]);
                            }
                            
    SetString(GPSName[playerid][maxgps],"No_Gps_Name");
                            
    SendClientMessage(playeridCOLOR_WHITEstring);
                            
    SavePlayerGPS(playerid);
                        }
                    }
                }
            }
            case 
    246:
            {
                if(
    response)
                {
                    new 
    count CountGPS[playerid];
                    if(!
    strlen(inputtext)) return ShowPlayerDialog(playerid2461"Название метки""Введите название новой позиции (GPS)""Создать""Отмена");
                    new 
    Float:XFloat:YFloat:Z;
                    
    GetPlayerPos(playeridXYZ);
                    
    PlayerGPS[playerid][gpsPos_X][count] = X;
                    
    PlayerGPS[playerid][gpsPos_Y][count] = Y;
                    
    PlayerGPS[playerid][gpsPos_Z][count] = Z;
                    
    SetString(GPSName[playerid][count], inputtext);
                    
    format(string,sizeof(string),"Метка '%s' успешно добавлена в список GPS"inputtext);
                    
    SendClientMessage(playeridCOLOR_WHITEstring);
                    
    SavePlayerGPS(playerid);
                }
            } 
    Создаём загрузку при входе [GPS]
    В public OnPlayerLogin

    PHP код:
        LoadPlayerGPS(playerid); 
    Ко всем командам (DC_CMD)
    PHP код:
    CMD:mygps(playerid)
    {
        new 
    string[1000];
        
    CountGPS[playerid] = 0;
        for(new 
    i;MAX_GPS;++)
        {
            if(!
    GetString(GPSName[playerid][i],"No_Gps_Name"))
            {
                
    strcat(stringGPSName[playerid][i]);
                
    strcat(string"\n");
                
    CountGPS[playerid] ++;
            }
        }
        
    strcat(string"{33CCFF}Добавить позицию");
        if(!
    ShowPlayerDialog(playerid2442"{33CCFF}My GPS"string"Выбор""Отмена"))
        {
            
    SendClientMessage(playeridCOLOR_GREY,"Недоступно в данный момент");
        }
        return 
    true;

    В свободное место:
    PHP код:
    stock LoadPlayerGPS(playerid)
    {
        new 
    string[100];
        
    format(stringsizeof(string),"[GPS]/%s.gps",PN(playerid));
        if(
    fexist(string))
        {
            new 
    Filefile fopen(stringio_read);
            if (
    file)
            {
                for (new 
    0MAX_GPS++)
                {
                    
    fread(filestring);
                    
    sscanf(string,"p<|>s[50]fff",
                    
    GPSName[playerid][i],
                    
    PlayerGPS[playerid][gpsPos_X][i],
                    
    PlayerGPS[playerid][gpsPos_Y][i],
                    
    PlayerGPS[playerid][gpsPos_Z][i]);
                }
                
    fclose(file);
            }
        }
        else
        {
            for (new 
    0MAX_GPS++)
            {
                
    SetString(GPSName[playerid][i],"No_Gps_Name");
                
    PlayerGPS[playerid][gpsPos_X][i] = 0.0;
                
    PlayerGPS[playerid][gpsPos_Y][i] = 0.0;
                
    PlayerGPS[playerid][gpsPos_Z][i] = 0.0;
            }
            
    SavePlayerGPS(playerid);
        }
        return 
    true;
    }
    stock SavePlayerGPS(playerid)
    {
        new 
    Filefile;
        for (new 
    0;MAX_GPS;++)
        {
            new 
    string[100], str[50];
            
    format(stringsizeof(string), "%s|%f|%f|%f\n",
            
    GPSName[playerid][i],
            
    PlayerGPS[playerid][gpsPos_X][i],
            
    PlayerGPS[playerid][gpsPos_Y][i],
            
    PlayerGPS[playerid][gpsPos_Z][i]);
            
    format(strsizeof(str),"[GPS]/%s.gps",PN(playerid));
            if(!
    ifile fopen(strio_write);
            else 
    file fopen(strio_append);
            
    fwrite(filestring);
            
    fclose(file);
        }
        return 
    true;

    Заходим в scriptfiles создаём папку [GPS]
    Будут ошибки при компиляции пишите.

    Автор неизвестен, так как вырезал с чужого мода.
    Последний раз редактировалось AKKI; 22.04.2015 в 23:30.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •