Просмотр полной версии : [Include] g_geolocation
Автор: Я
Версия: 1
Описание:
Распознает название страны игрока по IP-адресу и сохраняет его в переменной player_country[playerid].
Если не удалось определить страну игрока, то система вместо названия страны напишет: "Неизвестно" или "--", если был использован параметр сокращения названия страны
Параметры:
G_GEO_COUNTRY_LESS - сокращает название страны до 2 символов, к примеру Russia = RU
G_GEO_SEND_COUNTRY_INFO - отправляет в общий чат информацию о подключение игрока, имя игрока и название страны
Пример:
//Добавляем перед подключением инклуда, один из параметров:
#define G_GEO_SEND_COUNTRY_INFO //Описание параметра можете найти чуть выше
//подключаем сам инклуд
#include <g_geolocation>
Примечание:
Для корректной работы инклуда требуется подключить инклуды: sscanf2 и a_http
Скачать:
GitHub (https://github.com/Geebrox/Pawn/blob/master/g_geolocation/g_geolocation.inc)
Авторские права:
Нельзя выкладывать в другие источники!
Жду ваших отзывов и предложение для дальнейших версий!
Desulaid
07.07.2016, 19:14
Можно продублировать подключение инклуда, ничего этому не помешает.
Зачем решать за других как будет называться массив? Лучше бы функцию определил и значение передал ей. И чем форматировать, можно воспользоваться операцией конкатенации (понтуюсь. конкатенация - скрепление - strcat()).
Можно продублировать подключение инклуда, ничего этому не помешает.
Зачем решать за других как будет называться массив? Лучше бы функцию определил и значение передал ей. И чем форматировать, можно воспользоваться операцией конкатенации (понтуюсь. конкатенация - скрепление - strcat()).
Учту)
#if defined G_GEO_SEND_COUNTRY_INFO
const MAX_MES = 30;
new g_geo_name[MAX_PLAYER_NAME];
GetPlayerName(playerid, g_geo_name, MAX_PLAYER_NAME);
new str[MAX_MES] = !"Новое подключение! Имя: [ {CD0000}";
strcat(str, g_geo_name);
strcat(str, !"{ffffff} ] Страна: [ {CD0000}");
strcat(str, player_country[playerid]);
strcat(str, !"{ffffff} ]");
SendClientMessageToAll(-1, str);
#endif
#if defined G_GEO_SEND_COUNTRY_INFO
const MAX_MES = 30;
new g_geo_name[MAX_PLAYER_NAME];
GetPlayerName(playerid, g_geo_name, MAX_PLAYER_NAME);
new str = !"Новое подключение! Имя: [ {CD0000}";
strcat(str, g_geo_name);
strcat(str, !"{ffffff} ] Страна: [ {CD0000}");
strcat(str, player_country[playerid]);
strcat(str, !"{ffffff} ]");
SendClientMessageToAll(-1, message);
#endif
Я не просил код и перепроверь свой код :acute:
Я не просил код и перепроверь свой код :acute:
Невнимательность )
А не проще сделать выбор
#define G_GEO_COUNTRY_INFO (1)
или
#define G_GEO_COUNTRY_INFO (2)
и в условии проверять значение G_GEO_COUNTRY_INFO?
А не проще сделать выбор
#define G_GEO_COUNTRY_INFO (1)
или
#define G_GEO_COUNTRY_INFO (2)
и в условии проверять значение G_GEO_COUNTRY_INFO?
Не вижу смысла
Не вижу смысла
#define G_GEO_COUNTRY_INFO (1)
#if G_GEO_COUNTRY_INFO == 1
//код
#else
//код
#endif
#define G_GEO_COUNTRY_INFO (1)
#if G_GEO_COUNTRY_INFO == 1
//код
#else
//код
#endif
В чем СМЫСЛ? Отличие от моих макросов?
В чем СМЫСЛ? Отличие от моих макросов?
В удобстве.
Удобней просто поменять цифру, чем заново писать G_GEO_COUNTRY_LESS или G_GEO_SEND_COUNTRY_INFO.
В удобстве.
Удобней просто поменять цифру, чем заново писать G_GEO_COUNTRY_LESS или G_GEO_SEND_COUNTRY_INFO.
уверен?
А если я хочу сразу включить и G_GEO_COUNTRY_LESS и G_GEO_SEND_COUNTRY_INFO? То какую цифру ставить? или нужно придумать для каждой цифре отдельное предназначение и запоминать эти цифры и что они делают? Прости-ка, это для меня просто убого, а называть макросы по их предназначениям, увеличивает удобства при использование их
А если я хочу сразу включить и G_GEO_COUNTRY_LESS и G_GEO_SEND_COUNTRY_INFO? То какую цифру ставить?
Но если ты даже сразу включишь G_GEO_COUNTRY_LESS и G_GEO_SEND_COUNTRY_INFO, то выполнится только G_GEO_COUNTRY_LESS
Но если ты даже сразу включишь G_GEO_COUNTRY_LESS и G_GEO_SEND_COUNTRY_INFO, то выполнится только G_GEO_COUNTRY_LESS
Откуда такая инфа?
Откуда такая инфа?
По условию. И для убедительности протестировал.
Протестировал
Пожалуйста не надо обманывать) лично для тебя подключил сейчас инклуд включил обе параметра и сделал скриншот:
http://i.imgur.com/mIRfsTZ.png
Пожалуйста не надо обманывать) лично для тебя подключил сейчас инклуд включил обе параметра и сделал скриншот:
http://i.imgur.com/mIRfsTZ.png
И где G_GEO_SEND_COUNTRY_INFO?
И где G_GEO_SEND_COUNTRY_INFO?
Да хватит оффтопить отправка сообщение в чат и есть G_GEO_SEND_COUNTRY_INFO
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot