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

  #3  
Старый 23.04.2016, 12:05
dimoz
Новичок
Регистрация: 13.12.2020
Сообщений: 0
С нами: 2851002

Репутация: 0
По умолчанию

пытаюсь прочитать позицию пикапа с помощью перехвата 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]);
 
Ответить с цитированием