Показать сообщение отдельно
Старый 25.07.2010, 16:50   #33
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от Konctantin Посмотреть сообщение
фиксированная длинна
Цитата:
Сообщение от LordJZ Посмотреть сообщение
RomanRom2:
1) Пока нету. В нашей реализации я не представляю, как это делать
2) Давайте с фиксированной. Плюс, не надо аж 8 байт к каждому пакету. 2 хватит, имхо. В моей цитате стоит word.
3) Согласен
4) Согласен
ок,
1) вопрос пока открыт.
2) решили фиксированную. 16 бит нам точно хватит? может уж все же 32? мало ли чего запихать сюда понадобится, значением больше чем 65535. еще один какой нибудь тиккаунт... винты сейчас у всех вроде большие.
3) решили. см. ниже...
4) тогда предлагаю его поместить прямо перед SessionKey.

Цитата:
Сообщение от Konctantin Посмотреть сообщение
это мне не очень нравится, по причине того, что потом надо производить еще одну математическую операцию, по вычислению длинны данных, в которых уже нет самого опкода. А фактически пользы от этого не вижу...
да брось, +4 или -4 - вот и все тебе математические операции.
а сокральный смысл всего этого в двух вещах:

1. унифицированность логики с RAW. где сначала идет длина данных (абстрактных), затем собственно эти данные. так и в PKT, длина и затем конкретные данные, соответствующие этой длине. прибавив к хидеру такую длину мы переместимся сразу на начало хидера следующего чанка. ну удобно же! иначе придется в этом месте применять эту математическую операцию.

2. давайте думать, логически завершенные данные, это все же опкод+данные. это законченная еденица сущности, чтоли. формат любого опкода можно представить как из двух полей:
- ID
- DATA, соответствующая этому ID
никто же не пилит А9 на составлящие. там ведь еще круче:
Код:
- ID = 0xA9
- DATA
   - ObjectsCount
   - UpdateType
      - UpdateType = 1 (create from Object)
         - свой набор данных
      - UpdateType = 2 (update Fields)
         - свой набор данных
      - UpdateType = 3 (create for self)
         - свой набор данных
, где (например)
свой набор данных UpdateType = 3
- ObjectType = 1 (item)
   - свой набор данных ObjectType = 1
- ObjectType = 2 (container)
   - свой набор данных ObjectType = 2
- ObjectType = 3 (unit)
   - свой набор данных ObjectType = 3
- ObjectType = 4 (player)
   - свой набор данных ObjectType = 4
, где (например)
свой набор данных ObjectType = 4
- свой move-block
- в завимости от флагов плюс дополнительные данные

а у ObjectType = 1 такие флаги вообще не встречаются и соответственно данных нет...
ну короче не грузись я хотел сказать, что логически законченную еденицу данных нельзя разделять, да чото увлекся

эти две причины достаточно убедительны для тебя?

Последний раз редактировалось RomanRom2; 25.07.2010 в 17:02.
RomanRom2 вне форума   Ответить с цитированием