SF | Проблемы с получением серверного сообщения

ANZR

Активный
Автор темы
121
80
Всем, ку
Хоть я и развился в SF довольно-таки просто, но все таки стыдный вопрос возник
Есть у меня RPC пакет с id = 93 (кто знает, тот поймет)
Так вот, как правильно его прочитать, чтоб вывести итоговое сообщение в чат
У меня вышло так

с++:
        UINT32 dColor;
        UINT32 messageLen;
        params->bitStream->ResetReadPointer();
        params->bitStream->Read(dColor);
        params->bitStream->Read(messageLen);
        char *msg = new char[messageLen];
        params->bitStream->Read(msg, messageLen);

        SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), msg);
        params->bitStream->ResetReadPointer();
Но вот в чем загвоздка, после прочтения, у меня вместе с сообщением может вывести мусор. С чем это связано
 
Последнее редактирование:

AdCKuY_DpO4uLa

Участник
85
52
C++:
UINT32 dColor;
UINT32 messageLen;
params->bitStream->ResetReadPointer();
params->bitStream->Read(dColor);
params->bitStream->Read(messageLen);
char *msg = new char[messageLen];
params->bitStream->Read(msg, messageLen);
msg[messageLen] = '\0';
SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), msg);
msg[] delete;
msg = nullptr;
params->bitStream->ResetReadPointer();

Попробуй так
 

KiN4StAt

Чё?
Модератор
1,570
1,682
C++:
UINT32 dColor;
UINT32 messageLen;
params->bitStream->ResetReadPointer();
params->bitStream->Read(dColor);
params->bitStream->Read(messageLen);
char *msg = new char[messageLen];
params->bitStream->Read(msg, messageLen);
msg[messageLen] = '\0';
SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), msg);
msg[] delete;
msg = nullptr;
params->bitStream->ResetReadPointer();

Попробуй так
Сегфолт
 

ANZR

Активный
Автор темы
121
80
Пробуй.
C++:
UINT32 dColor;
UINT32 len;
std::string text;
auto* bs = params->bitStream;
bs->Read(dColor);
bs->Read(len);
text.resize(len);
bs->Read(text.data(), len);
Последняя функция вызывает ошибку
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2664 "bool BitStream::Read(char *,const int)": невозможно преобразовать аргумент 1 из "const _Elem *" в "char *" SFPlugin c:\users\anonim\desktop\sf plugin template\sfplugin\main.cpp 26