Ппц ... Пойми : даже
именно Kamael клиенты делятся на PTS и Live.И каждый из них в свою очередь различается протоколом.Чем новее - тем выше протокол.Но он здесь не причём.Попробуй старый Live.Т.е установи
конкретно с родного установщика от NCsoft (не с архива !) и посмотри.Не получится - лучше возьмись за Hellbound ...
З.Ы Иначе глупо выходит : клиент посылает серверу неизвестный пакет,но в то же вемя всё в порядке,клиент нормальный и здесь непричём ? Абсурд ...
З.Ы.2 Нужны доказательства ? Без проблем.Посмотрим исходный код.А именно
L2GamePacketHandler.java (что же мы здесь видим) :
Код:
switch (state) // Переключатель : в зависимости от статуса клиента.
{
case CONNECTED: // Случай : статус клиента - СОЕДИНЁН.
switch (opcode) // Вложенный переключатель : opcode,который прислал клиент.
{
case 0x00: // Неверный протокол.
_log.warn("Client " + client.toString() + " is trying to connect using Interlude Client");
break;
case 0x0e: // Запрос версии протокола.
msg = new ProtocolVersion();
break;
case 0x2b: // Авторизировать клиент.
msg = new AuthLogin();
break;
// Можно конечно же добавить что-то типа :
// =================
case 0x2f: // 0x2f - 48 в шестнадцатиричной системе счисления.
// msg = [B]new ХЗ();[/B] ! :D Если клиент что-то ждёт,то что мы тогда должны отправить (какой пакет вернуть) ?! Разве что если он ничего не ждёт (1 %),то эта обработка пакета сгодится (как при 0x00) ...
break;
// =================
default: // Если не совпадает с вышепредложенными,выкинуть в консоль то сообщение,которое вы получили.
printDebug(opcode, buf, state, client);
break;
}
break;
// .....
И главное : этот отрезок практически не менялся с годами,ни у SF,ни у L2 Emu,ни у L2J Free.
Есть сомнения по поводу клиента ? У меня да.