Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Server>Client Packets
#1
Заинтересовался пакетами l2 севрера. Буду рад любой помощи.

Вот нашол интересную статейку: [URL=ссылка"http://unicore.su/index.php?showtopic=139"]http://unicore.su/index.php?showtopic=139[/URL]

Но вопросов всеравно осталось много:
Переопределенный метод: @Override
protected void writeImpl()


Что его считывает?
Куда сохраняются значения writeD(),writeС(),writeS?
и что они вообще означают?
Причем там байт код?
Как создавать элементарные пакеты?
и т.д.

Самый главный вопрос это где можно просмотреть название всех пакетов, и где просмотреть за что это каждый пакет отвечает?
Вот например в статье говориться

Логин-сервер обрабатывает пакеты:
0x00 - RequestAuthLogin (запрос на авторизацию - содержит логин и пароль)
0x02 - RequestServerLogin (запрос на заход на сервер)
0x05 - RequestServerList (запрос на список серверов)
Клиентом же обрабатываются
пакеты следующих типов:
0x01 - авторизация не прошла
0x03 - вы успешно авторизованы
0x04 - ответ на RequestServerLogin
0x06 - ответ на RequestServerList

как? откуда он про это узнал?

в общем, у меня темнота.

буду рад абсолютно любой точной информации.
Заранее спасибо.

извините если не в тот раздел написал.
[Изображение: guru.gif] Сижу на zone-game, помогаю и напрягаю других.
Ответ
#2
Советую почитать о примитивном обмене данными между клиентом и сервером.

Если вы не понимаете этого
Цитата:Куда сохраняются значения writeD(),writeС(),writeS?
то вы слишком рано туда полезли.
Web программист\разработчик

— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Ответ
#3
Astend Написал:Но вопросов всеравно осталось много:
Переопределенный метод: @Override
protected void writeImpl()


Что его считывает?
Куда сохраняются значения writeD(),writeС(),writeS?
и что они вообще означают?
Причем там байт код?
Как создавать элементарные пакеты?
и т.д.

Для понимания того, как устроена сеть в l2j необходимо понимать, как вообще устроены сети. Тут необходимо почитать теорию и "пописать своих велосипедов" для хорошего освоения. Объяснять данный момент бесполезно, имхо.

Astend Написал:Самый главный вопрос это где можно просмотреть название всех пакетов, и где просмотреть за что это каждый пакет отвечает?
Вот например в статье говориться

Логин-сервер обрабатывает пакеты:
0x00 - RequestAuthLogin (запрос на авторизацию - содержит логин и пароль)
0x02 - RequestServerLogin (запрос на заход на сервер)
0x05 - RequestServerList (запрос на список серверов)
Клиентом же обрабатываются
пакеты следующих типов:
0x01 - авторизация не прошла
0x03 - вы успешно авторизованы
0x04 - ответ на RequestServerLogin
0x06 - ответ на RequestServerList

как? откуда он про это узнал?

в общем, у меня темнота.

буду рад абсолютно любой точной информации.
Заранее спасибо.

извините если не в тот раздел написал.

Название всех пакетов, как и их структура берётся из клиента, а вот за что отвечает тот или иной пакет Вы никак не сможете узнать, кроме как методом тыка/смекалки/догадки/и т.д.. Все данные, которые описаны в статье, доставались упорнейшим многочасовым трудом многих и многих людей, а в последствии стали общественным достоянием.

На вопрос "как?" ответить парой строчек не получится. Скажу только, что для этого нужно реверсить клиент и очень хорошо разбираться в отладчиках, ASM'e и вообще иметь понимание того, как устроена работа сетей. Именно таким образом было установлено, что протокол l2 работает со следующими типами данных:

Код:
char   – может принимать значение от -128 до 127. Имеет длину 1 байт
short  – может принимать значение от -32768 до 32767. Имеет длину 2 байта
int    – может принимать значение от -2147483648 до 2147483647. Имеет длину 4 байта
int64  – может принимать значение от -9223372036854775808 до 9223372036854775807. Имеет длину 8 байт.
float  – может принимать значение от 2.22507e-308 до 1.79769e+308. Имеет длину 8 байт
string – текстовая строка в юникоде(UTF8). Каждая буква представлена двумя байтами, первый байтом код буквы, а второй –
     номер кодовой таблицы. Индикатором конца строки служит символ с кодом 0.

Да, да. Это те самые writeD(), writeC(), writeS(). Из них формируется пакет. Пакет содержит некоторую структуру. Структура берётся опять же из клиента.
Fortuna - non penis, in manus non recipe.
Ответ
#4
Astend Написал:Заинтересовался пакетами l2 севрера. Буду рад любой помощи.

Вот нашол интересную статейку: [URL=ссылка"http://unicore.su/index.php?showtopic=139"]http://unicore.su/index.php?showtopic=139[/URL]

Но вопросов всеравно осталось много:
Переопределенный метод: @Override
protected void writeImpl()


Что его считывает?
Куда сохраняются значения writeD(),writeС(),writeS?
и что они вообще означают?
Причем там байт код?
Как создавать элементарные пакеты?
и т.д.

Самый главный вопрос это где можно просмотреть название всех пакетов, и где просмотреть за что это каждый пакет отвечает?
Вот например в статье говориться

Логин-сервер обрабатывает пакеты:
0x00 - RequestAuthLogin (запрос на авторизацию - содержит логин и пароль)
0x02 - RequestServerLogin (запрос на заход на сервер)
0x05 - RequestServerList (запрос на список серверов)
Клиентом же обрабатываются
пакеты следующих типов:
0x01 - авторизация не прошла
0x03 - вы успешно авторизованы
0x04 - ответ на RequestServerLogin
0x06 - ответ на RequestServerList

как? откуда он про это узнал?

в общем, у меня темнота.

буду рад абсолютно любой точной информации.
Заранее спасибо.

извините если не в тот раздел написал.

Может быть вам поможет в ваших начинаниях.
http://fursoffers.narod.ru/Packets.htm
[Изображение: 61b684.png]
Ответ
#5
Спасибо за интересную информацию.
[Изображение: guru.gif] Сижу на zone-game, помогаю и напрягаю других.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  L2j c3 server 2024 by L2jBayev ver1.4 AlexBayev 4 478 10-28-2024, 06:58 AM
Последний пост: johnhartman
Information L2j c2 server 2024 by L2jBayev ver0.2.0 AlexBayev 1 258 09-06-2024, 11:12 PM
Последний пост: AlexBayev
  L2j c3 server 2024 by L2jBayev ver1.5.0 AlexBayev 0 354 08-10-2024, 04:25 PM
Последний пост: AlexBayev
  L2 SERVER C1 SINNA 2011 by smeli smeli 413 151,843 02-15-2024, 02:22 PM
Последний пост: smeli2023
  Не запускается Game Server Console Lovec 1 1,335 12-04-2021, 12:48 AM
Последний пост: Lovec
  Interlude Test Server. yoqoyoqo 4 1,664 03-11-2021, 11:57 PM
Последний пост: krisadr
  Kamael Client - Interlude Server Katia666 3 2,582 11-03-2020, 10:51 AM
Последний пост: FaintSmile
  При запуске game server на сайте (sw13) ошибка mysql 0 AndreDeiu 1 1,357 09-27-2020, 11:32 PM
Последний пост: Lord_Gothic
  вопрос по поводу Server RT Lineage 2 C5 rev. 1269 ATOM 21 8,718 04-16-2020, 02:40 PM
Последний пост: Fenharell
  Server for sell crytek123 0 1,512 09-29-2017, 09:15 AM
Последний пост: crytek123

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)