Показать сообщение отдельно

  #4  
Старый 23.04.2016, 15:41
Dark_Knight
Флудер
Регистрация: 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
 
Ответить с цитированием