Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Опкоды, Формулы, Клиент (http://mangos.ytdb.ru/forumdisplay.php?f=9)
-   -   Клиент и тайм зоны (http://mangos.ytdb.ru/showthread.php?t=5468)

Amaru 29.05.2012 09:28

Клиент и тайм зоны
 
В 3.3.5 есть такие 2 ворлдстейта,
Код:

enum
{
    WG_WS_BATTLE_TIMER                  = 3781,
    WG_WS_COOLDOWN_TIMER                = 4354,   
};

которые отвечают за время, оставшееся до конца битвы за оло, и время, оставшееся до ее начала.
В самих ворлдстейтах шлется как раз время его окончания и старта, то есть time(NULL) + m_timerSecs.
Только вот проблема, если таймзона у клиента не равняется таймзоне сервера, то он начинает испытывать проблемы.

Есть ли возможность на сервере получить тайм зону клиента? Или же где то не реализована отсылка тайм зоны сервера клиенту?

Sid 29.05.2012 11:49

Тайм зона приходит в первом же пакете на логон сервере при авторизации, вместе с билдом клиента, названием игры, платформой и тд. Только она нигде не сохраняется. Как вариант сделать доп. поле в таблице аккаунтов и при авторизации устанавливать в него тайм зону с принятого пакета. Ну а потом использовать как хочется.

rsa 29.05.2012 12:14

Что-т я даже проглядев код не смог найти где же она приходит с клиента. Она там наоборот отправляется, и все дальнейшие преобразования времени идут именно в клиенте (смотрим код клиента, все время идет через GetTZ()).
Скорее проблема с кривым выставлением TZ на сервере (на винде его вообще корректно невозможно выставить). Лично у меня бой на ОЛО вполне корректно начинается при любом поясе клиента, только что проверил...

Sid 29.05.2012 14:46

Код:

typedef struct AUTH_LOGON_CHALLENGE_C
{
    uint8  cmd;
    uint8  error;
    uint16  size;
    uint8  gamename[4];
    uint8  version1;
    uint8  version2;
    uint8  version3;
    uint16  build;
    uint8  platform[4];
    uint8  os[4];
    uint8  country[4];
    uint32  timezone_bias;
    uint32  ip;
    uint8  I_len;
    uint8  I[1];
} sAuthLogonChallenge_C;

Не?

rsa 29.05.2012 18:06

Цитата:

Сообщение от Sid (Сообщение 27458)
Не?

я ХЗ. но по одному названию (и то странному какому-то) члена структуры делать вывод о том что в нем лежит - это слегка чересчур оптимистично. в мангосе столько названий не совпадает с содержимым что жуть (а уж такой древности как это - так почитай все)...

Sid 29.05.2012 18:36

Я писал свой логон сервер, вроде как все на месте.


Текущее время: 06:59. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS