Другое SAMPFUNCS | API C++

2Shae

Известный
149
8
Можно ли где-то посмотреть информацию об каждом пакете (перехват/отправка)? Ну, т.е. что нужно считывать и т.п.
 

Frixen

Известный
131
8
C++:
bool CALLBACK incomingRPC(stRakNetHookParams *params) // определение callback-функции которая будет вызвана при отправке какого либо пакета
{
    if (params->packetId == RPCEnumeration::RPC_Chat) // если отправляемый пакет ID_PLAYER_SYNC
    {

        WORD id;
        DWORD length;
        char message[248];
        byte packet;
        char buf[248];

        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(length);
        params->bitStream->Read(message, length);
        params->bitStream->ResetReadPointer(); // обнуляем оффсет чтения

        sprintf_s(buf, "{B9C91F}%s",
            message);

        params->bitStream->ResetWritePointer();
        params->bitStream->Write(length);
        params->bitStream->Write(buf, length);
        params->bitStream->ResetWritePointer();

    };

    return true; // успешно завершаем отправку пакета
};
 

Woofing Giraffe

Активный
402
49
C++:
bool CALLBACK incomingRPC(stRakNetHookParams *params) // определение callback-функции которая будет вызвана при отправке какого либо пакета
{
    if (params->packetId == RPCEnumeration::RPC_Chat) // если отправляемый пакет ID_PLAYER_SYNC
    {

        WORD id;
        DWORD length;
        char message[248];
        byte packet;
        char buf[248];

        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(length);
        params->bitStream->Read(message, length);
        params->bitStream->ResetReadPointer(); // обнуляем оффсет чтения

        sprintf_s(buf, "{B9C91F}%s",
            message);

        params->bitStream->ResetWritePointer();
        params->bitStream->Write(length);
        params->bitStream->Write(buf, length);
        params->bitStream->ResetWritePointer();

    };

    return true; // успешно завершаем отправку пакета
};
Тебе же вроде надо RPC_ScrClientMessage хукать? В нём на 1 месте цвет, и дальше как у тебя
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
Так, во-первых - ты структуру не знаешь и пытаешься наугад что-то склепать. Смотри по логам RakLogger'а.
Во-вторых - ты добавил HEX-цвет в строку(8 символов), а записываешь длину исходной строки, а не новой.
В-третьих - params->bitStream->ResetWritePointer(); очистит весь битстрим и переместит указатель на его начало.
 
Последнее редактирование:

AWRage

Активный
642
141
Допустим есть стуктура TrailerData и последние два элемента _unknown. Их можно стереть? Будет работать?