Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Опкоды, Формулы, Клиент

Важная информация

Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.05.2012, 09:28   #1
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию Клиент и тайм зоны

В 3.3.5 есть такие 2 ворлдстейта,
Код:
enum
{
    WG_WS_BATTLE_TIMER                  = 3781,
    WG_WS_COOLDOWN_TIMER                = 4354,    
};
которые отвечают за время, оставшееся до конца битвы за оло, и время, оставшееся до ее начала.
В самих ворлдстейтах шлется как раз время его окончания и старта, то есть time(NULL) + m_timerSecs.
Только вот проблема, если таймзона у клиента не равняется таймзоне сервера, то он начинает испытывать проблемы.

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

Последний раз редактировалось Amaru; 29.05.2012 в 09:32.
Amaru вне форума   Ответить с цитированием
Старый 29.05.2012, 11:49   #2
Sid
Ученый
 
Аватар для Sid
 
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
Sid Скоро придёт к известностиSid Скоро придёт к известности
По умолчанию

Тайм зона приходит в первом же пакете на логон сервере при авторизации, вместе с билдом клиента, названием игры, платформой и тд. Только она нигде не сохраняется. Как вариант сделать доп. поле в таблице аккаунтов и при авторизации устанавливать в него тайм зону с принятого пакета. Ну а потом использовать как хочется.
__________________
SpellWork Qt4
Sid вне форума   Ответить с цитированием
Старый 29.05.2012, 12:14   #3
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Что-т я даже проглядев код не смог найти где же она приходит с клиента. Она там наоборот отправляется, и все дальнейшие преобразования времени идут именно в клиенте (смотрим код клиента, все время идет через GetTZ()).
Скорее проблема с кривым выставлением TZ на сервере (на винде его вообще корректно невозможно выставить). Лично у меня бой на ОЛО вполне корректно начинается при любом поясе клиента, только что проверил...
rsa вне форума   Ответить с цитированием
Старый 29.05.2012, 14:46   #4
Sid
Ученый
 
Аватар для Sid
 
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
Sid Скоро придёт к известностиSid Скоро придёт к известности
По умолчанию

Код:
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;
Не?
__________________
SpellWork Qt4
Sid вне форума   Ответить с цитированием
Старый 29.05.2012, 18:06   #5
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Sid Посмотреть сообщение
Не?
я ХЗ. но по одному названию (и то странному какому-то) члена структуры делать вывод о том что в нем лежит - это слегка чересчур оптимистично. в мангосе столько названий не совпадает с содержимым что жуть (а уж такой древности как это - так почитай все)...
rsa вне форума   Ответить с цитированием
Старый 29.05.2012, 18:36   #6
Sid
Ученый
 
Аватар для Sid
 
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
Sid Скоро придёт к известностиSid Скоро придёт к известности
По умолчанию

Я писал свой логон сервер, вроде как все на месте.
__________________
SpellWork Qt4
Sid вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Межсерверные зоны в бета-версии MoP partizanes Флудильня 12 15.05.2012 14:27
Клиент Катаклизма evilstar Флудильня 5 04.12.2010 12:58
краши в некоторых областях стартовой зоны дренеев wk23 Баг-репорты 4 11.08.2010 11:38
Открыть все зоны для персонажа. Реально? Sl3p0y Новичкам 1 13.07.2010 10:55
Портативный SQL клиент selector Новичкам 10 09.07.2010 17:12


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


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot