- 0
Войдите для возможности подписаться
Подписчики
0
[закрыто] Pawn.RakNet и хлам String
Вопросы
Лучший ответ
Ну во первых используй strlen вместо sizeof. ( в данном случае )
strlen() используется для получения длины строки, хранящейся в массиве.
sizeof() используется для получения фактического размера.
Во вторых ты должен предварительно записать длину строки.
Твой код должен будет выглядеть так:
CMD:TestData(playerid, params[])
{
new msg[] = "Code_Test";
new BitStream:bs = BS_New();
BS_WriteFloat(bs,0.9);
BS_WriteFloat(bs,23.4);
BS_WriteUint8(bs, strlen(msg));
BS_WriteString(bs, msg);
PR_SendRPC(bs, playerid, 179);
BS_Delete(bs);
return 1;
}
Клиентская сторона будет выглядеть так:
bool CALLBACK Hok_RPC_BYTE(stRakNetHookParams *params)
{
if (params->packetId == 179)
{
SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Кастомный RPC работает!!!");
float test, test1;
std::string szPlayerName;
uint8_t len;
params->bitStream->ResetReadPointer();
params->bitStream->Read(test);
params->bitStream->Read(test1);
params->bitStream->Read(len);
text.reserve(len);
params->bitStream->Read(const_cast<char*>(szPlayerName.data()), len);
params->bitStream->ResetReadPointer();
SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "RPC - Длина %f | %f | %s | %d", test , test1, szPlayerName.c_str(), len);
}
return true;
};
В третьих, дефайн BS_WriteString принимает два аргумента ( line github pawn.raknet )

Эта тема закрыта для публикации ответов.
Войдите для возможности подписаться
Подписчики
0
-
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
-
Похожий контент
-
От ANIME_TOP12YLTRA
Помогите пожалуйста у меня еррор при компиляции
C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : error 001: expected token: ";", but found "["
C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : error 029: invalid expression, assumed zero
C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : warning 221: label name "E_HANDLING_PARAMS" shadows tag name
C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : error 001: expected token: ";", but found "]"
C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : fatal error 107: too many error messages on one line
Compilation aborted.
Pawn compiler 3.2.3664 Copyright (c) 1997-2016, ITB CompuPhase
4 Errors.
код - g_VehHandlingInfo[veh][E_HANDLING_PARAMS:j] = 0.0;
-
.037 Освоившийся 4
в чём может быть проблема? Передаю строку через PR_String, и получаю с клиента бред
[05:57:27] RPC - Длина 30 | 0.900000 | 23.400000 | I*(!@dp
И всегда текст разный
Хотя принимаю всё нормально:
Отредактировано пользователем .037
Поделиться сообщением
Ссылка на сообщение