Узнать локальное время игрока

ssx

Сообщения
294
Реакции
85
Подскажите, как узнать локальное время игрока ?

Мне для сервера Half-Life нужно чтобы в ночное время выдавать ВИПки игрокам. Но так как сервер интернациональный то куда лучше было бы выдавать по локальному времени игрока.

Сервер reHLDS но без reGameDLL/ReAPI ибо не пашет это чудо на Half-Life.
 

ssx

Сообщения
294
Реакции
85
наклепал тестовый плагин
Код:
#include <amxmodx>
#include <geoip>

public plugin_init()
{
    register_plugin("GeoIP_TimeZone","1.0","test")
    register_concmd("GetTimezone", "GetTimezone")
}

public GetTimezone(id)
{
    new ip[16]
    get_user_ip(id, ip, charsmax(ip), 1)

    new TimeZone[45]
    geoip_timezone(ip, TimeZone, charsmax(TimeZone))

    console_print(id," TimeZone = %s", TimeZone)
}
Но выводит в консоль "TimeZone = "
Подозреваю что из-за того что geoip_amxx.dll берет с GeoLite2-Country.mmdb а не с geoip.dat
Но это фигня т.к все равно получим только регион.
Думаю, нужно искать какой-то php скрипт и через него узнавать.
У кого какие идеи?
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
ssx, пхп ничего не даст кроме того же геоип
 

ssx

Сообщения
294
Реакции
85
ssx, пхп ничего не даст кроме того же геоип
Должен же быть способ узнать локальное время игрока.

К примеру, тут есть API https://2ip.ua/ru/services/information-service/site-location . Как можно реализовать плагин?
https://2ip.ua/ru/api/our-api
time_zone — часовой пояс.
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
ssx, понимаете. Это все относительно. Ибо GeoIP не гарантирует точность. Но в принципе для вас подойдет. И вам уже без разницы на PHP или AMXX делать. Посмотри на SxGEO возможно там уже есть готовые для вас решения
 

ssx

Сообщения
294
Реакции
85
fantom, в SxGEO можно только timezone узнать в формате "Europe/Budapest
Потом же можно через http://www.timezoneconverter.com/cgi-bin/zoneinfo?tz=Europe/Kiev узнавать время. Но это гемморойней.
Проще через API https://2ip.ua/ru/api/our-api
IPv4:
XML: https://api.2ip.ua/geo.xml?ip=84.225.192.82
JSON: https://api.2ip.ua/geo.json?ip=84.225.192.82
Как-то плагином получать инфу и искать нужные символы (часовой пояс в формате +03:00).
А там уже рассчитывать от системного времени какое время у игрока.

Есть идеи как это написать на АМХХ ?
 

ssx

Сообщения
294
Реакции
85
Нашёл инфу https://forums.alliedmods.net/showthread.php?t=257898
но максимум что смог получить так это часовой пояс в виде 60, что означает разницу в 60 минут.
Можно было бы time(hour, minute, second) hour множить на 60 и отнимать часовой пояс в минутах, можно было бы сразу часовой пояс в минутах делить на 60 и получать в часах. Но в GeoTimezones.txt видно что существуют часовые пояса в виде 1 час и 30 минут.
Как быть? Подскажите (готов заплатить за готовую реализацию когда для интеграции в плагин или нативом подключать время игрока).


Код:
                {
                    new hour, minute, second
                    time(hour, minute, second)
                    if(hour >= 0 && hour < 9)
                    {
                        set_user_flags(id, read_flags("b"))
                    }
                }
 
Сообщения
271
Реакции
348
Помог
15 раз(а)
fantom, в SxGEO можно только timezone узнать в формате "Europe/Budapest
Потом же можно через http://www.timezoneconverter.com/cgi-bin/zoneinfo?tz=Europe/Kiev узнавать время. Но это гемморойней.
Проще через API https://2ip.ua/ru/api/our-api
IPv4:
XML: https://api.2ip.ua/geo.xml?ip=84.225.192.82
JSON: https://api.2ip.ua/geo.json?ip=84.225.192.82
Как-то плагином получать инфу и искать нужные символы (часовой пояс в формате +03:00).
А там уже рассчитывать от системного времени какое время у игрока.

Есть идеи как это написать на АМХХ ?
grip, curl, amxxeasyhttp

Только мне кажется, что эта идея с разными часовыми поясами и випкой, вообще плохая.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу