|
Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером |
|
Опции темы | Поиск в этой теме | Опции просмотра |
29.05.2012, 09:28 | #1 |
MaNGOS Dev
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
|
Клиент и тайм зоны
В 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. |
29.05.2012, 11:49 | #2 |
Ученый
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
|
Тайм зона приходит в первом же пакете на логон сервере при авторизации, вместе с билдом клиента, названием игры, платформой и тд. Только она нигде не сохраняется. Как вариант сделать доп. поле в таблице аккаунтов и при авторизации устанавливать в него тайм зону с принятого пакета. Ну а потом использовать как хочется.
__________________
SpellWork Qt4 |
29.05.2012, 12:14 | #3 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Что-т я даже проглядев код не смог найти где же она приходит с клиента. Она там наоборот отправляется, и все дальнейшие преобразования времени идут именно в клиенте (смотрим код клиента, все время идет через GetTZ()).
Скорее проблема с кривым выставлением TZ на сервере (на винде его вообще корректно невозможно выставить). Лично у меня бой на ОЛО вполне корректно начинается при любом поясе клиента, только что проверил... |
29.05.2012, 14:46 | #4 |
Ученый
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
|
Код:
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 |
29.05.2012, 18:36 | #6 |
Ученый
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
|
Я писал свой логон сервер, вроде как все на месте.
__________________
SpellWork Qt4 |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Межсерверные зоны в бета-версии 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 |