Показать сообщение отдельно
Непрочитано 01.02.2022, 08:48   #7
Пользователь

Автор темы (Топик Стартер) Re: Не пускает на сервер

Цитата:
Сообщение от kotelok Посмотреть сообщение
Скачиваете исходники. Собираете, запускаете.

Далее находите точку, где выводится ваше сообщение об ошибке, судя по тем исходникам, что есть у меня - это логин-сервер, файл '\loginserver\GameServerThread.java', строка 120 и далее, где вызвается метод 'verifyChecksum' для расшифрованного пакета.

По какой-то причине эта проверка не проходит. Именно с java-сборками дел почти не имел, но судя по коду, это поток, который обрабатывает подключения игрового сервера к логин-серверу. И, похоже, у них какое-то расхождение в понимании протокола. Или же надо им где-то какой-то общий ключ прописать. Не знаю. Но т.к. у вас есть и исходники login-сервера, и исходники игрового сервера, то разобраться будет несложно (даже трафик слушать/расшифровывать не придётся):
1. Сделать в указанном выше файле протоколирование всех пакетов, поступающих от игрового сервера. Сделать аналогичное протоколирование в коде игрового сервера ('gameserver\LoginServerThread.java').
2. Определить, у какого именно пакета логин-сервер видит некорректную чексумму и далее изучить весь обмен данными между логин-сервером и игровым сервером вплоть до этого пакета.

Вероятно, что-то с hexid-ом не так (для java-сервера его нужно как-то правильно сгенерировать и положить в определённое место конфига). Вероятно, где-то в базе данных логин/гейм-сервера есть таблицы конфигурации, в которые нужно прописать согласованные данные для логин и гейм-сервера.

* на PTS-сборке, например, в базе 'lin2db' есть таблица 'server', откуда логин-сервер забирает информацию о доступных серверах (внешний/внутренний адрес, ip:порт и прочеее), в базе java-сборки сходу вижу таблицу 'gameservers' с полями 'server_id', 'hexid', 'host'.
Hexid тут не при причем.
Если бы был hexid, то регистрации сервера бы не было.
Ну все равно спасибо, ты гений =)
Я включил дебагер и как посыпалось, проблема найдена.
Вся проблема в том, что до этого там переписывали базу данных и понаделали ошибок, но почему сервер молчал, без включенных опций:

Код:
Debug = True
Developer = True
PacketHandlerDebug = True
ReserveHostOnLogin = True
Непонятно.
Ну да ладно, главное разобрался =)
Nab вне форума Ответить с цитированием