HandleRPCPacketFunc

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

plakapenka

Известный
Автор темы
18
8
Помогите распарсить пакет RPC_SetObjectMaterial

тип вот так ведь делать нужно?
C++:
char data[255];
bsData.Read(data);

но в пакете длина строки не передается, а без неё как?
или как-то по другому можн?
скажите в каком направлении копать хотябы

И вообще как узнать в каком виде пакет передается?
знаю что в pawn функция выглядит так
PHP:
SetObjectMaterial(myobject, 0, 19341, "egg_texts", "easter_egg01", 0xFFFFFFFF);
значит и в пакете как-то так должно передаваться
 

BlackKnigga

Известный
BH Team
922
444
Помогите распарсить пакет RPC_SetObjectMaterial

тип вот так ведь делать нужно?
C++:
char data[255];
bsData.Read(data);

но в пакете длина строки не передается, а без неё как?
или как-то по другому можн?
скажите в каком направлении копать хотябы

И вообще как узнать в каком виде пакет передается?
знаю что в pawn функция выглядит так
PHP:
SetObjectMaterial(myobject, 0, 19341, "egg_texts", "easter_egg01", 0xFFFFFFFF);
значит и в пакете как-то так должно передаваться
Разбирай рпц RakLogger'ом
 

plakapenka

Известный
Автор темы
18
8
Чот яснее не стало:wall:
http://blob:https://www.blast.hk/86bc2eab-2f39-4193-a489-05c720c8f9a0 upload_2017-3-27_22-19-15.png
 

plakapenka

Известный
Автор темы
18
8
upload_2017-3-27_22-47-17.png
как так же распарсить через соб?

C++:
BitStream bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
                int asd1;
                bsData.Read(asd1);

                intasd2;
                bsData.Read(asd2);

                char asd3[20];
                bsData.Read(asd3);


                char asd4[20];
                bsData.Read(asd4);
                addMessageToChatWindow("%d, %d, %s, %s", asd1,asd2,asd3,asd4);

дает набор каракуль
upload_2017-3-27_22-56-42.png
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
У тебя массив не закрыт нуль-терминирующим символом, поэтому и выводит лишнее.
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Плюс сначала надо читать длину строки, а потом уже строку.
 

plakapenka

Известный
Автор темы
18
8
но я ведь не знаю длинну получаемой строки. Как его тогда закрыть?

как узнать длину?
 
Последнее редактирование модератором:

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
Обычно перед строкой записывается её длина (byte/short/integer, зависит от структуры RPC/пакета)
 
Статус
В этой теме нельзя размещать новые ответы.