Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 8 из 8
  1. #1
    Аватар для execution
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±

    Просмотр местоположения.

    Здравствуйте. Не подскажите плагин с помощью которого можно просмотреть Регион, Город, Страну?

  2. #2
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Самое актуальное, как мне кажется: https://github.com/Whitetigerswt/SAMP-geoip (но в issues жалуются на крэши, так что хз)
    Старый плагин: http://forum.sa-mp.com/showthread.php?t=190699
    Версия с HTTP запросом: http://forum.sa-mp.com/showthread.php?t=436115

    Последнюю не рекомендую, ибо в свете последних событий, связанных с блокировками сайтов, все данные лучше хранить на своём сервере.

  3. #3
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Самое актуальное, как мне кажется: https://github.com/Whitetigerswt/SAMP-geoip (но в issues жалуются на крэши, так что хз)
    Старый плагин: http://forum.sa-mp.com/showthread.php?t=190699
    Версия с HTTP запросом: http://forum.sa-mp.com/showthread.php?t=436115

    Последнюю не рекомендую, ибо в свете последних событий, связанных с блокировками сайтов, все данные лучше хранить на своём сервере.
    Немного неверное суждение о http запросе. В данном случае она будет самой верной, на мой взгляд, ибо базу с адресами можно хранить и у себя на сервере.
    Из плюсов:
    - нет крашей со стороны плагина.
    - не нужна совместимость с другими плагинами.
    - огромный потенциал в дальнейшей модернизации.

  4. #4
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Fallen A. Посмотреть сообщение
    Немного неверное суждение о http запросе. В данном случае она будет самой верной, на мой взгляд, ибо базу с адресами можно хранить и у себя на сервере.
    Из плюсов:
    - нет крашей со стороны плагина.
    - не нужна совместимость с другими плагинами.
    - огромный потенциал в дальнейшей модернизации.
    Чтобы хранить базу у себя на сервере, сначала придётся самому написать этот веб сервис с API, забить БД данными и поднять HTTP сервер.
    Что касается плюсов, то всё это справедливо и для любой другой реализации.

  5. #5
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Чтобы хранить базу у себя на сервере, сначала придётся самому написать этот веб сервис с API, забить БД данными и поднять HTTP сервер.
    Что касается плюсов, то всё это справедливо и для любой другой реализации.
    Поднять и написать - дело пары часов, это с тем, если вообще не торопиться. А ведь дальнейший профит очевиден.

  6. #6
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Fallen A. Посмотреть сообщение
    Поднять и написать - дело пары часов, это с тем, если вообще не торопиться. А ведь дальнейший профит очевиден.
    Если бы человек мог или хотел это написать, он бы так и сделал, вместо того, чтобы спрашивать об этом на форуме.

  7. #7
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Если бы человек мог или хотел это написать, он бы так и сделал, вместо того, чтобы спрашивать об этом на форуме.
    Я лишь посоветовал то, где, по моему мнению, профит будет выше. Дальше решать только ему.

  8. #8
    Аватар для #Djuga
    Пользователь

    Статус
    Оффлайн
    Регистрация
    28.02.2018
    Сообщений
    11
    Репутация:
    1 ±
    PHP код:
    #if !defined G_GEO_COUNTRY_LESS
    const G_GEO_COUNTRY_LENGTH 32;
    #else
    const G_GEO_COUNTRY_LENGTH 3;
    #endif
    #define G_GEO_COUNTRY_DETECT_URL "freegeoip.net/csv/"

    const G_GEO_MAX_IP_LENGTH 16;

    forward g_geo_OnPlayerCountryDetected(playeridresponse_codedata[]);

    static 
    g_geo_player_ip[MAX_PLAYERS][G_GEO_MAX_IP_LENGTH];
    new 
    player_country[MAX_PLAYERS][G_GEO_COUNTRY_LENGTH];

    public 
    OnPlayerConnect(playerid)
    {
        {
            
    GetPlayerIp(playeridg_geo_player_ip[playerid], G_GEO_MAX_IP_LENGTH);
            new 
    request[G_GEO_MAX_IP_LENGTH+19];
            
    strcat(requestG_GEO_COUNTRY_DETECT_URL);
            
    strcat(requestg_geo_player_ip[playerid]);
            
    HTTP(playeridHTTP_GETrequest"""g_geo_OnPlayerCountryDetected");
        }
    #if defined g_geo_OnPlayerConnect
        
    g_geo_OnPlayerConnect(playerid);
    #endif
        
    return 1;
    }

    public 
    g_geo_OnPlayerCountryDetected(playeridresponse_codedata[])
    {
        if(
    response_code == 200)
        {
    #if defined G_GEO_COUNTRY_LESS
            
    sscanf(data"p<,>{s[16]}s[3]{s[1]}"player_country[playerid]);
    #else
            
    sscanf(data"p<,>{s[16]s[3]}s[32]{s[1]}"player_country[playerid]);
    #endif
        
    }
        else
        {
    #if defined G_GEO_COUNTRY_LESS
            
    strmid(player_country[playerid], "--"0G_GEO_COUNTRY_LENGTH);
    #else
            
    strmid(player_country[playerid], "Неизвестно"0G_GEO_COUNTRY_LENGTH);
    #endif
        
    }
    #if defined G_GEO_SEND_COUNTRY_INFO
        
    static const content[] = "Новое подключение! \
        Имя: [ {CD0000}%s{ffffff} ]    Страна: [ {CD0000}%s{ffffff} ]"
    ;
        new 
    message[sizeof(content)-2+MAX_PLAYER_NAME-2+G_GEO_COUNTRY_LENGTH];
        new 
    g_geo_name[MAX_PLAYER_NAME];
        
    GetPlayerName(playeridg_geo_nameMAX_PLAYER_NAME);
        
    format(messagesizeof(message), contentg_geo_name,
        
    player_country[playerid]);
        
    SendClientMessageToAll(-1message);
    #endif
        
    return 1;
    }

    #if defined _ALS_OnPlayerConnect
        #undef OnPlayerConnect
    #else
        #define _ALS_OnPlayerConnect
    #endif
    #define OnPlayerConnect g_geo_OnPlayerConnect
    #if defined g_geo_OnPlayerConnect
    forward g_geo_OnPlayerConnect(playerid);
    #endif 
    Сделать как инклклуд, или вставить в мод.

 

 

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

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

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

Ваши права

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