Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Вывод страны и города

Статус пользователя Redir
сообщение 25.6.2014, 18:12
Сообщение #1
Стаж: 12 лет

Сообщений: 567
Благодарностей: 138
Полезность: 119

Всем привет! Есть у меня плагин, который выводит время захода и IP игрока с флагом t. Хотелось бы ещё дописать вывод страны и города.

Вот собственно исходник

Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Join Log"
#define VERSION "1.0"
#define AUTHOR "BeasT"

#define charsof(%1) (sizeof(%1)-1)

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
}

public client_putinserver(idUser)
{
if(get_user_flags(idUser) & ADMIN_LEVEL_H)
{
set_task(3.0, "putinserver", idUser)
}
}

public putinserver(idUser)
{

if(!is_user_connected(idUser))
return;

if(is_user_bot(idUser))
return;

new szIP[32], szName[64]
get_user_name(idUser, szName, sizeof szName -1);
get_user_ip(idUser, szIP, charsof(szIP), 1);
{
log_to_file("join_log.txt","Player %s | IP: %s",szName,szIP);
}
}


Кто может помочь ? За помощь готов отблагодарить материально)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
trollface
сообщение 25.6.2014, 18:14
Сообщение #2
Стаж: 12 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

Redir,
думаю не выйдет с городом.
дефолтный geoip в amxx умеет только страну определять

Отредактировал: trollface, - 25.6.2014, 18:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Redir
сообщение 25.6.2014, 18:16
Сообщение #3
Стаж: 12 лет

Сообщений: 567
Благодарностей: 138
Полезность: 119

Цитата(trollface @ 25.6.2014, 20:14) *
Redir,
думаю не выйдет с городом.
дефолтный geoip в amxx умеет только страну определять

ну хотя бы страну тогда pardon.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 25.6.2014, 18:56
Сообщение #4
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(trollface @ 25.6.2014, 20:14) *
думаю не выйдет с городом.
дефолтный geoip в amxx умеет только страну определять

источник:
Цитата(Safety1st)
Город можно получить, заменив стандартный модуль на GeoIP Extended от Arkshine.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 25.6.2014, 18:59
Сообщение #5
Стаж: 12 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

Safety1st,
ну дак я и сказал, что дефолтный не умеет;)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 25.6.2014, 19:01
Сообщение #6
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Я просто дополнил.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Redir
сообщение 25.6.2014, 20:11
Сообщение #7
Стаж: 12 лет

Сообщений: 567
Благодарностей: 138
Полезность: 119

Решил отбросить вывод города и оставить только страну.
Тут одни ещё подпили вывод страны в плагин. Но есть одно НО: только некоторые IP`ы указывает страну, 90 % указывает error. В чем может быть проблема ?

Исходник:
Код:
#include <amxmodx>
#include <amxmisc>
#include <geoip>

#define PLUGIN "Join Log"
#define VERSION "1.0"
#define AUTHOR "BeasT"

#define charsof(%1) (sizeof(%1)-1)

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
}

public client_putinserver(idUser)
{
if(get_user_flags(idUser) & ADMIN_LEVEL_H)
{
set_task(3.0, "putinserver", idUser)
}
}

public putinserver(idUser)
{

if(!is_user_connected(idUser))
return;

if(is_user_bot(idUser))
return;

new szIP[32], szName[64], szCountry[45]
get_user_name(idUser, szName, sizeof szName -1);
get_user_ip(idUser, szIP, charsof(szIP), 1);
geoip_country(szIP, szCountry, charsmax(szCountry))
log_to_file("IP_list_log.txt","Игрок %s | IP адрес: %s | Страна: %s",szName,szIP,szCountry);
}

Буду вам очень благодарен
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя celldweller
сообщение 25.6.2014, 20:14
Сообщение #8
Стаж: 11 лет

Сообщений: 85
Благодарностей: 2
Полезность: < 0

Redir,
Если запускать сервер под локальным ip адресом он будет error показывать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Redir
сообщение 25.6.2014, 20:16
Сообщение #9
Стаж: 12 лет

Сообщений: 567
Благодарностей: 138
Полезность: 119

Цитата(celldweller @ 25.6.2014, 22:14) *
Redir,
Если запускать сервер под локальным ip адресом он будет error показывать

Запускаю на хостинге
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя celldweller
сообщение 25.6.2014, 20:17
Сообщение #10
Стаж: 11 лет

Сообщений: 85
Благодарностей: 2
Полезность: < 0

Redir,
Значить база устаревшая

Лучше этим пользоваться sypexgeo.net
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Redir
сообщение 25.6.2014, 20:18
Сообщение #11
Стаж: 12 лет

Сообщений: 567
Благодарностей: 138
Полезность: 119

Цитата(celldweller @ 25.6.2014, 22:16) *
Redir,
Значить база устаревшая

GeoIP.dat ? Правильно понял ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя celldweller
сообщение 25.6.2014, 20:18
Сообщение #12
Стаж: 11 лет

Сообщений: 85
Благодарностей: 2
Полезность: < 0

Redir,
Да она
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 25.6.2014, 20:20
Сообщение #13
Стаж: 12 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

Redir,
get_user_name(idUser, szName, sizeof szName -1);
get_user_ip(idUser, szIP, charsof(szIP), 1);
->
get_user_name(idUser, szName, charsmax(szName));
get_user_ip(idUser, szIP, charsmax(szIP), 1);

а проблема скорее всего в базе:)
GeoIP.dat очень старый видимо;)


ps.gif сет таск тут не нужен вообще=)

Отредактировал: trollface, - 25.6.2014, 20:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
XyLiGaN
сообщение 25.6.2014, 20:21
Сообщение #14
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

Собственно сабж. Дабы не создавать тему.
Как правильно заменить GeoIP на SypexGeo
AmxModX 1.8.1, build 5787
Какие файлы удалить и от куда, и что куда залить?!
И да, какие плюсы, либо минусы замены на SypexGeo ?!
thank_you2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Redir
сообщение 25.6.2014, 20:22
Сообщение #15
Стаж: 12 лет

Сообщений: 567
Благодарностей: 138
Полезность: 119

Цитата(trollface @ 25.6.2014, 22:20) *
Redir,
get_user_name(idUser, szName, sizeof szName -1);
get_user_ip(idUser, szIP, charsof(szIP), 1);
->
get_user_name(idUser, szName, charsmax(szName));
get_user_ip(idUser, szIP, charsmax(szIP), 1);

а проблема скорее всего в базе:)
GeoIP.dat очень старый видимо;)

Спасибо, попробую.

А где можно скачать обновленный GeoIP.dat ?

Знаю. Это все делается для того, чтобы вычислять, играет ли под оплаченной привилегией ещё кто-то ) В обычных логах это долго делается, поэтому стукнула идейка плагин написать ))

По поводу set_task - подскажите, пожалуйста, как его убрать , раз раз он не нужен )) Я не силен в этом

Отредактировал: Redir, - 25.6.2014, 20:37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя celldweller
сообщение 25.6.2014, 20:25
Сообщение #16
Стаж: 11 лет

Сообщений: 85
Благодарностей: 2
Полезность: < 0

Redir,
Обновлённая версия она за $

XyLiGaN,
Выключаешь geo заменяешь на sypexgeo :D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя celldweller
сообщение 25.6.2014, 20:37
Сообщение #17
Стаж: 11 лет

Сообщений: 85
Благодарностей: 2
Полезность: < 0

У меня Sypexgeo вот как работает )) (не реклама)

В моём случаи я добавил определения звания (дополнение к AES) и определение Steam|Non-Steam игрока )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Redir
сообщение 25.6.2014, 20:51
Сообщение #18
Стаж: 12 лет

Сообщений: 567
Благодарностей: 138
Полезность: 119

Цитата(trollface @ 25.6.2014, 22:20) *
Redir,
get_user_name(idUser, szName, sizeof szName -1);
get_user_ip(idUser, szIP, charsof(szIP), 1);
->
get_user_name(idUser, szName, charsmax(szName));
get_user_ip(idUser, szIP, charsmax(szIP), 1);

а проблема скорее всего в базе:)
GeoIP.dat очень старый видимо;)


ps.gif сет таск тут не нужен вообще=)

Исправил проблему с выводом стран!

Как убрать set_task не подскажете, раз он не нужен ?) Не очень в этом понимаю.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 25.6.2014, 21:00
Сообщение #19
Стаж: 12 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

Redir,
Код:
#include <amxmodx>
#include <geoip>

#define PLUGIN "Join Log"
#define VERSION "1.0"
#define AUTHOR "BeasT"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
}

public client_putinserver(idUser)
{
if(get_user_flags(idUser) & ADMIN_LEVEL_H)
{
putinserver(idUser)
}
}

public putinserver(idUser)
{

if(!is_user_connected(idUser))
return;

if(is_user_bot(idUser))
return;

new szIP[32], szName[64], szCountry[45]
get_user_name(idUser, szName, charsmax(szName));
get_user_ip(idUser, szIP, charsmax(szIP), 1);
geoip_country(szIP, szCountry, charsmax(szCountry))
log_to_file("IP_list_log.txt","Игрок %s | IP адрес: %s | Страна: %s",szName,szIP,szCountry);
}


celldweller,
Цитата
я добавил определения звания (дополнение к AES) и определение Steam|Non-Steam игрока )

никак не относится к GEO
только страна в конце сообщения, но вы почему то о ней не упомянули;)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: