
23.04.2016, 15:41
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от Dimoz
пытаюсь прочитать позицию пикапа с помощью перехвата RPC, но правильно читается только его ID, а всё остальное - нет.
Код:
Код:
else if (params->packetId == ScriptRPCEnumeration::RPC_ScrCreatePickup)
{
short pickup_id;
float pos[3];
int model_id;
int type;
params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
params->bitStream->Read(pickup_id); // читаем отправляемые данные
params->bitStream->Read(model_id); // читаем отправляемые данные
params->bitStream->Read(type); // читаем отправляемые данные
params->bitStream->Read(pos); // читаем отправляемые данные
params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
SF->getSAMP()->getChat()->AddChatMessage(-1, "%d %f %f %f", pickup_id, pos[0], pos[1], pos[2]);
return true;
}
Решил методом тыка.
Код:
Код:
params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
params->bitStream->Read(pickup_id); // читаем отправляемые данные
params->bitStream->SetReadOffset(96);
params->bitStream->Read(pos[0]); // читаем отправляемые данные
params->bitStream->Read(pos[1]); // читаем отправляемые данные
params->bitStream->Read(pos[2]); // читаем отправляемые данные
params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
SF->getSAMP()->getChat()->AddChatMessage(-1, "%d %f %f %f", pickup_id, pos[0], pos[1], pos[2]);
https://docs.google.com/spreadsheet/ccc?key=0AtKPKl8O9mGodFZESEp6WEdzcTB0U2V1ZkR0UWpub 1E#gid=1
|
|
|