В теме 3 сообщения

Гость
Новичок

Описание:

Данный код получает информацию о IP-адресе игрока и хранит её на протяжении игровой сессии.



Плюсы реализации:

  • Судя по всему - единственный рабочий вариант, на данный момент.
  • Не нужно использовать include / plugins

И так приступим, вставляем у себя в #define

#define GEO_IP_INFO_DETECT_URL          "ip-api.com/csv/"
#define GEO_IP_INFO_DETECT_URL_FIELDS   "?fields=131793"
 
#define GEO_MAX_IP_LENGTH               16
#define GEO_MAX_COUNTRY_NAME_LENGTH     32
#define GEO_MAX_CITY_NAME_LENGTH        32
#define GEO_MAX_LAT_LON_LENGTH          12
#define GEO_MAX_PROVIDER_NAME_LENGTH    32
#define GEO_MAX_PROXY_LENGTH            6
 
enum e_PLAYER_GEO_INFORMATION
{
    player_ip[GEO_MAX_IP_LENGTH + 1],
    player_country[GEO_MAX_COUNTRY_NAME_LENGTH + 1],
    player_city[GEO_MAX_CITY_NAME_LENGTH + 1],
    player_lat[GEO_MAX_LAT_LON_LENGTH + 1],
    player_lon[GEO_MAX_LAT_LON_LENGTH + 1],
    player_provider[GEO_MAX_PROVIDER_NAME_LENGTH + 1],
    player_proxy[GEO_MAX_PROXY_LENGTH + 1]
};
new
    player_geoInfo[MAX_PLAYERS][e_PLAYER_GEO_INFORMATION];
 
#define GetPlayerCountry(%0)        player_geoInfo[%0][player_country]
#define GetPlayerCity(%0)           player_geoInfo[%0][player_city]
#define GetPlayerLatitude(%0)       player_geoInfo[%0][player_lat]
#define GetPlayerLongtitude(%0)     player_geoInfo[%0][player_lon]
#define GetPlayerProvider(%0)       player_geoInfo[%0][player_provider]
#define GetPlayerProxyStatus(%0)    player_geoInfo[%0][player_proxy]

Теперь в public OnPlayerConnect(playerid)

	GetPlayerIp(playerid, player_geoInfo[playerid][player_ip], GEO_MAX_IP_LENGTH);
 
    new
        request[31 - 2 + GEO_MAX_IP_LENGTH];
 
    strcat(request, GEO_IP_INFO_DETECT_URL);
    strcat(request, player_geoInfo[playerid][player_ip]);
    strcat(request, GEO_IP_INFO_DETECT_URL_FIELDS);
 
    HTTP(playerid, HTTP_GET, request, "", "p_geo_OnInformationRequested");

В конец мода

forward p_geo_OnInformationRequested(playerid, response_code, data[]);
public p_geo_OnInformationRequested(playerid, response_code, data[])
{
    if(response_code == 200)
    {
        sscanf(data, "p<,>s[32]s[32]s[12]s[12]s[32]s[6]",
            player_geoInfo[playerid][player_country],
            player_geoInfo[playerid][player_city],
            player_geoInfo[playerid][player_lat],
            player_geoInfo[playerid][player_lon],
            player_geoInfo[playerid][player_provider],
            player_geoInfo[playerid][player_proxy]);
    }
    else
    {
        strmid(player_geoInfo[playerid][player_country], "Неизвестно", 0, GEO_MAX_COUNTRY_NAME_LENGTH);
        strmid(player_geoInfo[playerid][player_city], "Неизвестно", 0, GEO_MAX_CITY_NAME_LENGTH);
        strmid(player_geoInfo[playerid][player_lat], "Неизвестно", 0, GEO_MAX_LAT_LON_LENGTH);
        strmid(player_geoInfo[playerid][player_lon], "Неизвестно", 0, GEO_MAX_LAT_LON_LENGTH);
        strmid(player_geoInfo[playerid][player_provider], "Неизвестно", 0, GEO_MAX_PROVIDER_NAME_LENGTH);
        strmid(player_geoInfo[playerid][player_proxy], "Неизвестно", 0, GEO_MAX_PROXY_LENGTH);
    }
    return 1;
}

Доступные макросы для использования:

GetPlayerCountry(playerid) - получить название страны, в которой сейчас находится игрок (тип значения - string).
GetPlayerCity(playerid) - получить название города, в котором сейчас находится игрок (тип значения - string).
GetPlayerLatitude(playerid) - получить координаты широты игрока (тип значения - string).
GetPlayerLongtitude(playerid) - получить координаты долготы игрока (тип значения - string).
GetPlayerProvider(playerid) - получить название провайдера игрока (тип значения - string).
GetPlayerProxyStatus(playerid) - получить информацию, использует ли игрок прокси [true/false] (тип значения - string). 

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


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

Хорошое решение. На форуме также имеется похожее рабочее решение. Оставлю ссылку может кому-нибудь пригодится. 

Ссылка

Отредактировано пользователем Weishaypt

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


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

вопрос можно .
если за использование впн я хочу игрока автоматом банить ,то
код должен же выгладить вот так не?
public p_geo_OnInformationRequested(playerid, response_code, data[])
{
    if(player_geoInfo[playerid][player_proxy] == true) return BanEx(playerid,"Proxy Use");
}

 

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


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

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

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

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

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


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

Войти

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


Войти

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

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

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

    • Danya_Smolin
      От Danya_Smolin

      Что добавили в доработку мода страйк:
      1. Викторина
      2. Новый вокзал
      3. Аренда мопедов по пикапу
      4. Система грандиозного пропуска (Батл-пасс)
      5. Система подарков
      6. Премиум аккаунт
      7. Эксклюзивные автомобили
      8. Добавили очень много команд для администраторов
      9. Новое окно авторизации

      10. Новая система бизнесов

      11. Добавили команду /fixcar
      12. Система военного положения
      13. Система аварии на зоне-51

      14. Система подкупного полицейского

      15. Новый логотип
      16. Добавили много новых аксессуаров
      17. Добавили таймер в виде TextDraws.

      18. Музыка при регистрации и на вокзале
      19. Добавили маппинг КПП и домиков на дереве

      20. Исправили множество багов

      21. Добавили сертификаты

      22. Добавили навыки

      23. Добавили рынок барыг

      24. Добавили инвесторов
      25. Добавили 5 новых мест в /gps

      26. Добавили обучение персонажа

      27. Новые интерьеры
      28. Добавили админские команды

      29. Система контейнеров

      30. Система создания семей

      31. Система сертификатов

      32. Система кейсов
      33. Добавили челлендж на донат-рубли

      34. Добавили маппинг на пляже

      35. Добавили команды для мероприятия

      36. Добавили новые банкоматы

      37. Добавили команду /anticheat

      38. Добавили команду /veh

      39. Система барыг

      40. Система инвесторов

      41. Добавили систему привилегий

      42. Добавили новый магазин для выгодных покупок только для привилегий - /pdonate
      43. Переписан /donaterub.

      44. Добавлено 13 костюмов.

      45. Исправлена база данных.

      46. Исправлены мелкие баги.

      47. Добавлено 17 титулов.

      48. Исправлен /donaterub.

      49. Теперь эксклюзивные машины сохраняются после выхода.

      50. Ваши мани теперь под защитой и их не украдут мошенники после перезахода.

      51. Скин сохраняется после выхода/перезахода.

      52. Донат/Деньги/Уровень сохраняется после перезахода.

      53. Исправлены ошибки в БД.
    • Danya_Smolin
      От Danya_Smolin
      Cтрайк Рп
      Скачать файл
      Что добавили в доработку мода страйк:
      1. Викторина
      2. Новый вокзал
      3. Аренда мопедов по пикапу
      4. Система грандиозного пропуска (Батл-пасс)
      5. Система подарков
      6. Премиум аккаунт
      7. Эксклюзивные автомобили
      8. Добавили очень много команд для администраторов
      9. Новое окно авторизации

      10. Новая система бизнесов

      11. Добавили команду /fixcar
      12. Система военного положения
      13. Система аварии на зоне-51

      14. Система подкупного полицейского

      15. Новый логотип
      16. Добавили много новых аксессуаров
      17. Добавили таймер в виде TextDraws.

      18. Музыка при регистрации и на вокзале
      19. Добавили маппинг КПП и домиков на дереве

      20. Исправили множество багов

      21. Добавили сертификаты

      22. Добавили навыки

      23. Добавили рынок барыг

      24. Добавили инвесторов
      25. Добавили 5 новых мест в /gps

      26. Добавили обучение персонажа

      27. Новые интерьеры
      28. Добавили админские команды

      29. Система контейнеров

      30. Система создания семей

      31. Система сертификатов

      32. Система кейсов
      33. Добавили челлендж на донат-рубли

      34. Добавили маппинг на пляже

      35. Добавили команды для мероприятия

      36. Добавили новые банкоматы

      37. Добавили команду /anticheat

      38. Добавили команду /veh

      39. Система барыг

      40. Система инвесторов

      41. Добавили систему привилегий

      42. Добавили новый магазин для выгодных покупок только для привилегий - /pdonate
      43. Переписан /donaterub.

      44. Добавлено 13 костюмов.

      45. Исправлена база данных.

      46. Исправлены мелкие баги.

      47. Добавлено 17 титулов.

      48. Исправлен /donaterub.

      49. Теперь эксклюзивные машины сохраняются после выхода.

      50. Ваши мани теперь под защитой и их не украдут мошенники после перезахода.

      51. Скин сохраняется после выхода/перезахода.

      52. Донат/Деньги/Уровень сохраняется после перезахода.

      53. Исправлены ошибки в БД.
      Добавил Danya_Smolin Добавлено 07.07.2025 Категория Моды Автор Pwn_Admin  
    • Kasper0
      От Kasper0
      Продаётся готовый проект CRMP.
      Готовый игровой мод База Данных с более чем 350к аккаунтов Сборка, скинпак/автомобили, карта Домены Сайт,лаунчер Чат-боты Более 5 бэкапов игрового мода, начиная с версии 0.3e Связаться: t.me/zayhhik
    • Kasper0
      От Kasper0


      Скачать файл Criminal Russia RolePlay (CRMPRP)
      Всех приветствую, в наличии мод CRMPRP. Разрабатывался с 2013 года если не ошибаюсь от бывшего Владельца (полностью оригинал + так-же имеется БД с сайтом и системой логов). Мод без бонуса, куча работ для новичков например: (Лесопилка,ферма,рыбалка,водитель автобуса,автомеханик,дольнабойщики,завод,таксист и др.) имеется система квестов, система домов (5 классов + возможность заменять интерьеры и система чердака), система гаражей (3 класса), обширная система семей, обширная система *ОПГ. Мод спокойно может выдержать 500+ онлайна
      Добавил Kasper0 Добавлено 05.07.2025 Категория Моды Автор Tim  
    • OREGON-RPG
      От OREGON-RPG
      **Привет, будущий друг!**
      Мы создаем новый сервер в >> GTA SA-MP (OregoN Role Playing Game) << и ищем таких же увлеченных игроков, как ты!!!

      Здесь ты сможешь: 

      Влиять на развитие сервера – твое мнение важно! 

      Найти друзей и классную компанию.
       
      Стать частью уютного комьюнити, где все друг за друга.

      Сервер еще в разработке – это шанс войти в историю с самого начала! 

       >>> Давай строить этот мир вместе? <<<

       Переходи по ссылке, будь в центре событий и стань частью истории: 

      [ Группа ВКонтакте: vk.com/oregonrpgru ]

      [ Форум: oregon-rpg.ru ]