- 0
Sign in to follow this
Followers
0
Сравнить расстояние между IP.
Question
Лучший ответ
111-120 строчка - формирование HTTP запроса на сайт, который вернет данные о принадлежности IP адреса.
Вернет он их в коллбэк p_geo_OnIpInformationRequested (138-160 строки). В этом коллбэке данные записываются в глобальный массив.
Такая реализация не подойдет для того, что вы задумали.
Простая реализация, которая приходит в голову что-то вроде:
public OnPlayerConnect(playerid) { new request[31 - 2 + GEO_MAX_IP_LENGTH]; strcat(request, GEO_IP_INFO_DETECT_URL); strcat(request, /*Регистрационный IP*/); strcat(request, GEO_IP_INFO_DETECT_URL_FIELDS); HTTP(playerid, HTTP_GET, request, "", "p_geo_OnRegIpInformationRequested"); } и коллбэк соответственно forward p_geo_OnIpInformationRequested(playerid, response_code, data[]); public p_geo_OnIpInformationRequested(playerid, response_code, data[]) { if(response_code == 200) { sscanf(data, "p<,>s[32]s[3]s[6]s[32]s[32]s[64]s[12]s[12]s[64]s[32]s[5]s[5]", _, _, _, _, _, _, /*PlayerInfo[playerid][pRegLat]*/, // заменить на свою переменную /*PlayerInfo[playerid][pRegLon]*/, _, _, _, _); } return 1; } Аналогичное проделать для текущего IP пользователя. Зная долготу и широту можно без труда (или с ним) вычислить расстояние. Это уже можно нагуглить в интернетах.
public OnPlayerConnect(playerid) { new request[31 - 2 + GEO_MAX_IP_LENGTH]; strcat(request, GEO_IP_INFO_DETECT_URL); strcat(request, /*Регистрационный IP*/); strcat(request, GEO_IP_INFO_DETECT_URL_FIELDS); HTTP(playerid, HTTP_GET, request, "", "p_geo_OnRegIpInformationRequested"); } и коллбэк соответственно forward p_geo_OnIpInformationRequested(playerid, response_code, data[]); public p_geo_OnIpInformationRequested(playerid, response_code, data[]) { if(response_code == 200) { sscanf(data, "p<,>s[32]s[3]s[6]s[32]s[32]s[64]s[12]s[12]s[64]s[32]s[5]s[5]", _, _, _, _, _, _, /*PlayerInfo[playerid][pRegLat]*/, // заменить на свою переменную /*PlayerInfo[playerid][pRegLon]*/, _, _, _, _); } return 1; } Аналогичное проделать для текущего IP пользователя. Зная долготу и широту можно без труда (или с ним) вычислить расстояние. Это уже можно нагуглить в интернетах.

This topic is now closed to further replies.
Sign in to follow this
Followers
0
-
Recently Browsing 0 members
No registered users viewing this page.
-
Similar Content
-
By tgfoscar
Требуется свободное владение C++. Античит, новый способ добавления техники на сервер, совместимость с CEF и возможность добавления полезных функций. За дополнительной информацией обращайтесь к wayne_gm в Discord. -
By enotplaysupptor
Основа для мода Samp для начинающих
Скачать файл ╔══════════════════════════════════════════════════╗
║ Test-RolePlay v0.1 ║
║ Современная основа для SA-MP серверов ║
╚══════════════════════════════════════════════════╝
✦ О ПРОЕКТЕ:
Добро пожаловать в Test-RolePlay - мод с нуля,
созданный как универсальная основа для SA-MP проектов.
Проект был создан для тех кто не знает с чего начать и начинающих разработчиков
Версия: T-RP v0.1 [Актуальная]
✦ ОСНОВНЫЕ ПЛАГИНЫ:
▸ CrashDetect - отладка ошибок
▸ MySQL R41+ - работа с базой данных
▸ Pawn.CMD - система команд
▸ Pawn.Regex - регулярные выражения
▸ SKY - улучшенные игровые функции
▸ sscanf2 - парсинг параметров
▸ Streamer - динамические объекты
▸ TOTP - двухфакторная аутентификация
✦ КЛЮЧЕВЫЕ СИСТЕМЫ:
┌──────────────────────────────────────────────┐
│ 🔹 Умная регистрация/авторизация: │
│ - Хеширование паролей │
│ - Привязка Email │
│ - Выбор пола и расы персонажа │
├──────────────────────────────────────────────┤
│ 🔹 Командная система: │
│ - Полный набор РП-команд │
│ - Расширенные админ-команды │
├──────────────────────────────────────────────┤
│ 🔹 Игровое меню: │
│ - Персональная статистика │
│ - Настройки аккаунта │
│ - Система жалоб и вопросов │
├──────────────────────────────────────────────┤
│ 🔹 Дополнительные системы: │
│ - АФК-режим с автоматическим детектом │
│ - Интегрированный античит (Nex-AC) │
└──────────────────────────────────────────────┘
✦ ПЛАНЫ РАЗРАБОТКИ:
» Добавление новых игровых систем
» Оптимизация существующего кода
» Расширение возможностей для администраторов
» Улучшение пользовательского интерфейса
Если увижу что вы хотите что бы я продолжил разработку данного мода пишите или можете проявиться большую активность
Добавил enotplaysupptor Добавлено 09.07.2025 Категория Моды Автор Я
-
By Nekit2019
Добрый день, имеется сервер в CRMP 0.3е (старичок, знаю, решил поностальгировать) . меняю погоду через ркон, но она скипается через пару минут на нулевую! Не пойму от чего, скриптом отдельно на погоду нет. Пожскажите, может в gamemod0 или где еще и куда прописать можно погоду? либо чтоб менялась сама, либо статическую. Вставлял из инета код в гейммод на рандомную погоду через пол часа с уведомлениями - результат такой же, меняется на 1-20 ,но сама сбрасывается на 0 через минуту.
-
Roy Weezy Старожил 21
всем привет, форумчане. поздравляю вас с рождеством. хотел спросить, как сделать на основе инклуда player_geolocation сравнение расстояния между регистрационным и последним IP адресом ?
Share this post
Link to post