Рекомендованные сообщения



Не найдено.

8 posts in this topic

Добрый вечер , использую инклуд для определения информации об ип. 
 

Спойлер

// Сам инклуд 
#if defined _player_geolocation_included
    #endinput
#endif
#define _player_geolocation_included
 
#if !defined _samp_included
    #error Please include <a_samp> first.
#endif
 
#if !defined HTTP
    #error Please include <a_http> first.
#endif
 
#if !defined sscanf
    #error Please include <sscanf2> first.
#endif
 
#define GEO_IP_INFO_DETECT_URL          "ip-api.com/csv/"
#define GEO_IP_INFO_DETECT_URL_FIELDS   "?fields=721887"
 
#define GEO_MAX_IP_LENGTH               (16 + 1)
#define GEO_MAX_COUNTRY_CODE_LENGTH     (4 + 1)
#define GEO_MAX_COUNTRY_NAME_LENGTH     (32 + 1)
#define GEO_MAX_REGION_CODE_LENGTH      (6 + 1)
#define GEO_MAX_REGION_NAME_LENGTH      (32 + 1)
#define GEO_MAX_CITY_NAME_LENGTH        (32 + 1)
#define GEO_MAX_DISTRICT_NAME_LENGTH    (64 + 1)
#define GEO_MAX_LAT_LON_LENGTH          (12 + 1)
#define GEO_MAX_TIMEZONE_NAME_LENGTH    (64 + 1)
#define GEO_MAX_PROVIDER_NAME_LENGTH    (32 + 1)
#define GEO_MAX_MOBILE_STATUS_LENGTH    (5 + 1)
#define GEO_MAX_PROXY_LENGTH            (5 + 1)
 
enum e_PLAYER_GEO_INFO
{
    player_country_code[GEO_MAX_COUNTRY_CODE_LENGTH],
    player_country[GEO_MAX_COUNTRY_NAME_LENGTH],
    player_region_code[GEO_MAX_REGION_CODE_LENGTH],
    player_region[GEO_MAX_REGION_NAME_LENGTH],
    player_district[GEO_MAX_DISTRICT_NAME_LENGTH],
    player_city[GEO_MAX_CITY_NAME_LENGTH],
    player_lat[GEO_MAX_LAT_LON_LENGTH],
    player_lon[GEO_MAX_LAT_LON_LENGTH],
    player_timezone[GEO_MAX_TIMEZONE_NAME_LENGTH],
    player_provider[GEO_MAX_PROVIDER_NAME_LENGTH],
    player_mobile_status[GEO_MAX_MOBILE_STATUS_LENGTH],
    player_proxy[GEO_MAX_PROXY_LENGTH]
};
new
    player_geo_none[e_PLAYER_GEO_INFO] = 
    {
        "None",
        "None",
        "None",
        "None",
        "None",
        "None",
        "None",
        "None",
        "None",
        "None",
        "None",
        "None"
    },
    player_geo[MAX_PLAYERS][e_PLAYER_GEO_INFO],
    player_geo_ip[MAX_PLAYERS][GEO_MAX_IP_LENGTH];
 
#define GetPlayerIpCountryCode(%0)      player_geo[%0][player_country_code]
#define GetPlayerIpCountry(%0)          player_geo[%0][player_country]
#define GetPlayerIpRegionCode(%0)       player_geo[%0][player_region_code]
#define GetPlayerIpRegion(%0)           player_geo[%0][player_region]
#define GetPlayerIpCity(%0)             player_geo[%0][player_city]
#define GetPlayerIpDistrict(%0)         player_geo[%0][player_district]
#define GetPlayerIpLatitude(%0)         player_geo[%0][player_lat]
#define GetPlayerIpLongtitude(%0)       player_geo[%0][player_lon]
#define GetPlayerIpTimeZone(%0)         player_geo[%0][player_timezone]
#define GetPlayerIpProvider(%0)         player_geo[%0][player_provider]
#define GetPlayerIpMobileStatus(%0)     player_geo[%0][player_mobile_status]
#define GetPlayerIpProxyStatus(%0)      player_geo[%0][player_proxy]
 
#define GetPlayerIpLat(%0)              GetPlayerIpLatitude(%0)
#define GetPlayerIpLon(%0)              GetPlayerIpLongtitude(%0)
 
public OnPlayerConnect(playerid)
{
    GetPlayerIp(playerid, player_geo_ip[playerid], GEO_MAX_IP_LENGTH);
 
    new 
        request[31 - 2 + GEO_MAX_IP_LENGTH];
 
    strcat(request, GEO_IP_INFO_DETECT_URL);
    strcat(request, player_geo_ip[playerid]);
    strcat(request, GEO_IP_INFO_DETECT_URL_FIELDS);
 
    HTTP(playerid, HTTP_GET, request, "", "p_geo_OnIpInformationRequested");
 
#if defined p_geo_OnPlayerConnect
    p_geo_OnPlayerConnect(playerid);
#endif
    return 1;
}
#if defined _ALS_OnPlayerConnect
    #undef OnPlayerConnect
#else
    #define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect p_geo_OnPlayerConnect
#if defined p_geo_OnPlayerConnect
forward p_geo_OnPlayerConnect(playerid);
#endif
 
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]",
            player_geo[playerid][player_country],
            player_geo[playerid][player_country_code],
            player_geo[playerid][player_region_code],
            player_geo[playerid][player_region],
            player_geo[playerid][player_city],
            player_geo[playerid][player_district],
            player_geo[playerid][player_lat],
            player_geo[playerid][player_lon],
            player_geo[playerid][player_timezone],
            player_geo[playerid][player_provider],
            player_geo[playerid][player_mobile_status],
            player_geo[playerid][player_proxy]);
    }
    else
    {
        player_geo[playerid] = player_geo_none;
    }
    return 1;
}
 
 
callback: get_callback ( playerid )
{
	new rows ;
	cache_get_row_count ( rows ) ;
	if ( ! rows )
	{
		SendClientMessage ( playerid, -1,"{8b0000}* {FFFFFF}Данный аккаунт не найден в базе данных." ) ;
		return 1 ;
	}
	else
	{
		new gs_name [ MAX_PLAYER_NAME ],
			gs_increment,
			gs_regdate [ 26 ],
			gs_money,
			gs_level,
			gs_regip [ 16 ],
			gs_lastip [ 16 ],
			gs_lastdate [ 16 ],
			gs_donate	;
 
		cache_get_value_name ( 0, "u_name", gs_name, MAX_PLAYER_NAME ) ;
		cache_get_value_name ( 0, "u_ip_registration", gs_regip , MAX_PLAYER_NAME ) ;
		cache_get_value_name ( 0, "u_last_ip", gs_lastip, MAX_PLAYER_NAME ) ;
		cache_get_value_name ( 0, "u_date_registration", gs_regdate, MAX_PLAYER_NAME ) ;
		cache_get_value_name ( 0, "u_last_date", gs_lastdate, MAX_PLAYER_NAME ) ;
 
		cache_get_value_name_int ( 0, "u_id", gs_increment ) ;
		cache_get_value_name_int ( 0, "u_money", gs_money ) ;
		cache_get_value_name_int ( 0, "u_level", gs_level ) ;
		cache_get_value_name_int ( 0, "u_donate", gs_donate ) ;
 
 
		/*new country [ 32 ] , lastcountry [ 32 ] , city [ 32 ] , lastcity [ 32 ] , provider [ 32 ] , lastprovider [ 32 ] ;
		GetPlayerIpCountry(gs_regip, country, sizeof(country));
		GetPlayerIpCountry(gs_lastip, lastcountry, sizeof(lastcountry));
		GetPlayerIpCity(gs_regip, city, sizeof(city));
		GetPlayerIpCity(gs_lastip, lastcity, sizeof(lastcity));
		GetPlayerIpProvider(gs_regip, provider, sizeof(provider));
		GetPlayerIpProvider(gs_lastip, lastprovider, sizeof(lastprovider));*/
 
 
		global_string [ 0 ] = EOS ;
 
		format ( global_string, sizeof ( global_string  ), "{8b0000}Информация о игроке:\n\n{ffffff}Номер аккаунта: {"#cGN"}%d\n\
		{ffffff}Наличные:{"#cGN"} %d\n\
		{ffffff}Уровень:{"#cGN"} %d\n\
		{ffffff}Донат:{"#cGN"} %d\n\n\
		{ffffff}IP адрес(регист.):{"#cGN"} %s\n\
		{ffffff}IP адрес(послед.):{"#cGN"} %s\n\n\
		{ffffff}Дата регистрации:{"#cGN"} %s\n\
		{ffffff}Дата послед. пребывания:{"#cGN"} %s\n\n\
		{8b0000}Техническая информация игрока:\n\n\
		{ffffff}Страна при регистрации:{"#cGN"} %s\n\
		{ffffff}Страна при последнем входе:{"#cGN"} %s\n\
		{ffffff}Город при регистрации:{"#cGN"} %s\n\
		{ffffff}Город при последнем входе:{"#cGN"} %s\n\
		{ffffff}Провайдер при регистрации:{"#cGN"} %s\n\
		{ffffff}Провайдер при последнем входе:{"#cGN"} %s",
		gs_increment, gs_money, gs_level, gs_donate, GetPlayerIpCountry(gs_regip),/* GetPlayerIpCountry(gs_lastip),
		GetPlayerIpCity(gs_regip ), GetPlayerIpCity(gs_lastip), GetPlayerIpProvider(gs_regip), 
		GetPlayerIpProvider(gs_lastip) ,*/ gs_regdate, gs_lastdate ); // error 033: array must be indexed (variable "gs_regip")
 
		new header_string [ MAX_PLAYER_NAME + 9 ] ;
		format ( header_string, sizeof ( header_string  ), "{8b0000}%s", gs_name ) ;
		show_dialog ( playerid, d_none, DIALOG_STYLE_MSGBOX, header_string, global_string, "Закрыть", "" ) ;
	}
	return 1;
}

 

 

Edited by odosenok

Share this post


Link to post
Share on other sites

@Артём Светличный Здравствуйте, а в чем ваш вопрос? Пожалуйста опишите, что вас привело сюда.

Share this post


Link to post
Share on other sites

Приветствую.

 

В чем, собственно, проблема? Не определяется город, страна, или что?

Если проблема именно в этом, то там нужны специальные базы со странами и городами. Если причина именно в этом, то напишите мне в ВК - vk.com/way.developer

Edited by glvde.

Заметка от Jawn , создано

А что мешает разрешать вопросы и проблемы в рамках форума?

Share this post


Link to post
Share on other sites

@Nekit_Krut18 При компиляции мода выдает ошибку  "ошибка 033: массив должен быть проиндексирован (переменная "gs_regip")"
в данной строчке  ( GetPlayerIpCountry (gs_regip) ) 

Share this post


Link to post
Share on other sites

@Артём Светличный, покажите участок кода, где появилась данная ошибка. Так же, покажите, как у Вас объявлена gs_regip

Share this post


Link to post
Share on other sites

@odosenok, по сути - уже ничего, а так, пришлось бы кидать ссылки на базы с городами.

Share this post


Link to post
Share on other sites

@glvde., "базы с городами" находятся в большом секрете?)

Share this post


Link to post
Share on other sites

@odosenok, ну, не особо) Просто она приватная, может быть, солью когда-нибудь. А то в последнее время я слишком много всего сливаю)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • misha_makilov
      By misha_makilov


      Просмотр файла Arizona RP | Nike
      1. Система каршеринга (Полностью написана с 0 и готова).
      2. Система дрифта. (Написана с 0, не доделан магазин аксессуаров).
      3. Система заточек, а так же улучшения на них, как на аризоне рп, по типу больше хп или урона. (Система готова до конца)
      4. Динамическая система казино, казино работает как бизнес, можно добавить несколько казино и управлять ими, в них можно менять цены на все, что имеет цену в самом казино (Полностью написана с 0 и готова).
      5. Система для слетов бизнесов и домов, можно выставить через сколько он слетит (Полностью написана с 0 и готова).
      6. Система люкс каров (Полностью написана с 0 и готова, даже с таймеров, но необходим плагин на машины)
      7. Полностью был оптимизирован весь мод, а так же подправлен код + убраны все ошибки связанные с БД
      8. Исправлены все возможные баги, который находили игроки на Arizona Nike и мною.
      9. Система урона с заточенными аксессуарами. (Копия оригинальной аризоны рп)
      10. Смена текста у организаций на стенде. (Копия оригинальной аризоны рп)
      11. Начата разработка системы майнинга (Система будет не много другой, не как на оригинальной аризоне)
      12. Сайт с логами, с небольшими переделками.
       
      Обзор мода - https://www.youtube.com/watch?v=MrQ6tFQsD2o
       
      Цена данного мода 800 рублей + еженедельная подписка навсегда(включает в себя еженедельные обновления)

      Для получения сайта с логами, обратитесь сюда - https://vk.com/jenyahuntwill (Необходимо предоставить док-ва, что вы купили данный мод)
      Добавил misha_makilov Добавлено 29.05.2021 Категория Моды Автор Mayota_Nebr  
    • glvde.
      By glvde.
      Хранение данных (версия MySQL): R39-6.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 65908.
      Анти-чит: Nexius-AC v1.9.55.
       
      Автор данного мода: неизвестно.
      Автор данной доработки: glvde. (я).

      На доработку мода ушло около двух недель.
      Тестовый сервер предоставляется по запросу покупателя.
       
       
       

      Не исключено, что есть баги. Каждую неделю выходит багофикс.
      Всем спасибо за внимание.
    • glvde.
      By glvde.


      Просмотр файла Arizona RolePlay | Paige
      Хранение данных (версия MySQL): R39-6.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 65908.
      Анти-чит: Nexius-AC v1.9.55.
       
      Автор данного мода: неизвестно.
      Автор данной доработки: glvde. (я).

      На доработку мода ушло около двух недель.
      Тестовый сервер предоставляется по запросу покупателя.
       
       
       

      Не исключено, что есть баги. Каждую неделю выходит багофикс.
      Всем спасибо за внимание.
      Добавил glvde. Добавлено 16.06.2021 Категория Моды Автор glvde.  
    • Человек-редиска
      By Редиска
      ПОМОГИТЕ!!!!!!!!
      НЕ СОХРАНЯЮТСЯ НОМЕРА НА АВТО.
      ПОЛУЧАЮ НОМЕРА, А ОНИ ПРОПАДАЮТ ПОСЛЕ ПОЛУЧЕНИЯ.
      ТО ЕСТЬ, КОГДА ПРОПИСЫВАЮ КОМАНДУ /FIXCAR И ВЫБЕРАЮ ВЫГРУЗИТЬ А ПОТОМ ЗАГРУЗИТЬ.
      ТО НОМЕРОВ УЖЕ НЕТУ, ТУПО ПРОПАЛИ!
      ЗАХОДИЛ В БД ТАМ ОНИ ПОЯВЛЯЮТСЯ, А НА АВТО ПОЧЕМУ ТО НЕ ОТОБРАЖАЮТСЯ.
      ПОТОМ Я РЕШИЛ ЗАЙТИ В ТАБЛИЦУ ПОД НАЗВАНИЕМ OWNABLE_CARS ТАМ Я УВИДЕЛ СТРОКУ C_NUMBERS
      В ЭТОМ СТРОКЕ Я ПРОПИСАЛ СВОЁ ИМЯ, ПОТОМ ЗАШЁЛ В ИГРУ, ЗАГРУЖАЮ АВТО И ЕСТЬ НОМЕРА.
      А ТО ЧТО У МЕНЯ ЕСТЬ ЕЩЁ ОДНА ТАБЛИЦА ПОД НАЗВАНИЕМ OWNABLE_NUMBERS.
      ТАМ У МЕНЯ ТОЛЬКО НОМЕРА ПОЯВЛЯЮТСЯ И ВСЁ. ТОЕСТЬ ОНИ НЕ ПРИВЯЗЫВАЮТСЯ К АВТО КОРОЧЕ ВОТ И ВСЁ!!!!!!
      ПОМОГИТЕ УЖЕ ПОЖАЛУЙСТА СРОЧНО НУЖНО.