Информация Структуры некоторых Bitstream-ов

Статус
В этой теме нельзя размещать новые ответы.

Zoxan_Twist

Новичок
Автор темы
126
29
Доброго всем времени суток.

Очень долго искал на просторах интернета структуры Bitstream-ов которые касаются объектов. В результате так ничего и не нашел и решил сам расшифровать все это и вот что у меня вышло:


RPC_SCRCREATEOBJECT = 44 - добавление серверного объекта.
Код:
ID[Short] - id слота в который добавлен объект (от 1 до 1000)
Model[Shoart] - Модель
Nan[Short] - Так и не понял, но вечно = 0
pX[Float] = Позиция по оси X
pY[Float] = Позиция по оси Y
pZ[Float] = Позиция по оси Z
rX[Float] = Поворот по оси X
rY[Float] = Поворот по оси Y
rZ[Float] = Поворот по оси Z
Stream[Float] = Дистанция стрима объекта.
Nan[40 bit] = пропускаем эту часть так как она не несет в себе никакой информации опкодом 0BEB
CText[Byte] = Количество текстур которые будут применены над объектом
CType[Byte] = Действие над объектом:
__0 - просто добавить объект
__1 - добавить объект с заданными текстурами
__2 - написать текст на объекте

На этом можно было бы и закончить если бы не одно но.
Если значение CType > 0 тогда вероятнее всего что бит стрим ещё не закончился и в нем есть ещё информация. Какая она будет и определяет это (CType) значение.
Представим что CType = 1
Тогда структура будет выглядеть таким образом:

Код:
Index[Byte]  = индекс текстуры которую будем заменять(от 0 до 15)
Model[Short] = Модель объекта с которого будем трать текстуру
tSize[Byte] = длинна текста названия библиотеки откуда берем текстуру
tLib[Arry] = строка длинна которой tSize
tSize2[Byte] = длинна названия самой текстуры
tText[Arry] = строка в которой написано название текстуры. Её длинна tSize2.
Color[Int] = цвет натягиваемой текстуры.
Примечание: Если битстрим и на этом не закончился значит на нем ещё есть какие-то текстуры и дальнейшее считывание идет в том же порядке только начинается с CType и так далее.

Представим что CType = 2
Тогда вероятнее всего что кроме текста на объект больше ничего не натянуто и после ниже написанной структуры ничего не будет.

Код:
Index[Byte]  = индекс текстуры которую будем заменять(от 0 до 15)
tSize[Byte]  = размер текстуры
ftSize[Byte]  = размер строки в которой будет написано название используемого шрифта.
tText[Arry] = строка с длинна которой ftSize
ftSize[Byte]  = размер шрифта
ftBold[Byte] = жирность текста
ftColor1[Int] = цвет шрифта
ftColor2[Int] = цвет фона на котором будет написан текст.
ftAlign[Byte] = выравнивание текста(0 - по левому краю, 1 - центр, 2 - по правому краю)
tText[Arry] = закодированая строка которую нужно будет декодировать опкодом 0BF4. Её длинна от текущего офсета до конца бит стрима.
Примечание: эти данные приходят на клиент во время подключения к серверу. То бишь это так скажем стандартные объекты, а если быть точнее CreateObject. Данные которые отправляет плагин Streamer не будут иметь в себе только ID и Model объекта. Все остальное будет по нолям.

Так же не мог найти структуру на RPC_SCRSETOBJECTMATERIAL = 84
Она как и RPC_SCRCREATEOBJECT имеет динамичную структуру. Но пугаться этому не стоит. Если кому-то понадобиться когда появиться время я её впишу в эту тему.

Надеюсь кому-то был полезен.
Всем спасибо за внимание и пока.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.