23.03.2011, 10:12 | #2 |
Новичок
Регистрация: 04.03.2011
Сообщений: 29
Сказал(а) спасибо: 12
Поблагодарили 9 раз(а) в 7 сообщениях
|
Мне кажется, что опкод должен быть: 0x0A01B и обрабатываться в HandleAuthOpcodes. Однако с этим опкодом пинг в клиенте все равно не показывается. В консоли клиента же поялвяется сообщение "Received pong with old sequence". Так что опкод я думаю верный. Проблема похоже в том, что сервер все время получает CMSG_PING с нулевым ping значением, вместо инкрементирующегося. Клиент пытается послать пинги на все 3 потенциальных соединения (home, world и auth?), но т.к. соедниение открыто только одно видимо клиента плющит.
Последний раз редактировалось Chameleon; 23.03.2011 в 11:13. |
Пользователь сказал cпасибо: | HuntsMan (25.03.2011) |
25.03.2011, 18:19 | #3 | |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Цитата:
add: Код:
Packet SMSG, CMSG_PING (1614), len 8, Flags: None ╔════════╦═════════════════════════════════════════════════╦════════════════╗ ║ OFFSET ║ 0 1 2 3 4 5 6 7 8 9 A B C D E F ║0123456789ABCDEF║ ╠════════╬═════════════════════════════════════════════════╬════════════════╣ ║00000000║ 00 00 00 00 01 00 00 00 -- -- -- -- -- -- -- -- ║................║ ╚════════╩═════════════════════════════════════════════════╩════════════════╝ Последний раз редактировалось HuntsMan; 25.03.2011 в 22:24. |
|
26.03.2011, 07:10 | #4 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Йхууууу Код:
--- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -1091,8 +1091,10 @@ int WorldSocket::HandlePing (WorldPacket if (m_Session) m_Session->SetLatency(latency); - WorldPacket packet (SMSG_PONG, 4, true); - packet << sequence; + WorldPacket packet (SMSG_PONG, 4); + packet << sequence++; return SendPacket (packet); } Последний раз редактировалось HuntsMan; 26.03.2011 в 07:52. |
Пользователь сказал cпасибо: | Chameleon (26.03.2011) |
26.03.2011, 09:26 | #5 |
Новичок
Регистрация: 04.03.2011
Сообщений: 29
Сказал(а) спасибо: 12
Поблагодарили 9 раз(а) в 7 сообщениях
|
Что-то я не понял, как этот патч работает.
У меня пинг заработал, когда я поменял местами чтение latency и sequence из клиентского пакета. Последний раз редактировалось Chameleon; 26.03.2011 в 10:27. |
26.03.2011, 19:07 | #6 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Код:
+ packet << sequence++; return SendPacket (packet); |
26.03.2011, 19:27 | #7 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Магия какая-то Клиентский пакет я поправил ещё на версии 4.0.3, но вот почему пинг стал отображатся после этого все равно не рабочего куска кода я вообще не понимаю..
|