Блин, я не знал что это формат, прям удивил меня ._.D3DCOLOR
Спасибо!
Блин, я не знал что это формат, прям удивил меня ._.D3DCOLOR
какой формат? :scratch:Блин, я не знал что это формат, прям удивил меня ._.
Спасибо!
Спецификатор типа -.-какой формат? :scratch:
Tools -> Options -> Projects and Solutions -> VC++ Project Settings -> Build TimingНемножко оффтоп, но всё же
Как в 13й студии включить показ времени, затраченного на сборку проекта?
p.s. Гоголь не особо прошарен, всякая всячина по студии вылезла, но конкретно моего вопроса не выдало
Верю на слово, я же не чекаю каждую страницу, а читаю превьюхиTools -> Options -> Projects and Solutions -> VC++ Project Settings -> Build Timing
Нашел в гугле с первого запроса. Проверяй
bool CALLBACK irpc(stRakNetHookParams *params)
{
if (params->packetId==101)
{
params->bitStream->ResetReadPointer();
int qwe = params->bitStream->GetNumberOfBitsUsed();
int qq = (qwe - 16);
params->bitStream->IgnoreBits(16);
int ww = BITS_TO_BYTES(qq);
char ttt[ww];
params->bitStream->Read(ttt);
std::string str(ttt);
SF->getSAMP()->getChat()->AddChatMessage(555555, "%s", ttt);
//byte packId;
//params->bitStream->Read(packId);
//D3DCOLOR color;
//params->bitStream->Read(color);
}
return true;
}
Пытаюсь сделать хук на входящие сообщения, проблема старая - не могу нормально считать строки. Думал проблема в том что буффер значительно больше строки, решил вычесть отступ в два байта (согласно логу рэклоггера) из общего размера пакета, чтобы получить размер строки, которая там будет находиться (ею кончается пакет, как я понял)
Но мне не разрешает выставлять переменную в качестве размера другой переменной.
Если же поставить как раньше - размер в 144 байта, будет выводиться пустая строка в чат
Сил уже нет никаких с этими строками воевать, скажите что я не так делаю-то, фыр
C++:bool CALLBACK irpc(stRakNetHookParams *params) { if (params->packetId==101) { params->bitStream->ResetReadPointer(); int qwe = params->bitStream->GetNumberOfBitsUsed(); int qq = (qwe - 16); params->bitStream->IgnoreBits(16); int ww = BITS_TO_BYTES(qq); char ttt[ww]; params->bitStream->Read(ttt); std::string str(ttt); SF->getSAMP()->getChat()->AddChatMessage(555555, "%s", ttt); //byte packId; //params->bitStream->Read(packId); //D3DCOLOR color; //params->bitStream->Read(color); } return true; }
D3DCOLOR color = -1;
int length = 0;
char message[256]{ 0 };
param->bitStream->Read(color);
param->bitStream->Read(length);
param->bitStream->Read(message, length);
Ну, согласно логгеру, там негде поместиться цвету и длине, серьёзноC++:D3DCOLOR color = -1; int length = 0; char message[256]{ 0 }; param->bitStream->Read(color); param->bitStream->Read(length); param->bitStream->Read(message, length);
[13:52:27.700] > [RPC Recv] RPC_Chat[101](length: 4 bytes, 32 bits)
> dump:
0000 00 00 01 31 ...1
Первое. Не надо юзать иды при чтении РПЦ. Большинство просто не помнят все иды на изусть и не удобно так читать. Юзай значение с eNum.Пытаюсь сделать хук на входящие сообщения, проблема старая - не могу нормально считать строки. Думал проблема в том что буффер значительно больше строки, решил вычесть отступ в два байта (согласно логу рэклоггера) из общего размера пакета, чтобы получить размер строки, которая там будет находиться (ею кончается пакет, как я понял)
Но мне не разрешает выставлять переменную в качестве размера другой переменной.
Если же поставить как раньше - размер в 144 байта, будет выводиться пустая строка в чат
Сил уже нет никаких с этими строками воевать, скажите что я не так делаю-то, фыр
C++:bool CALLBACK irpc(stRakNetHookParams *params) { if (params->packetId==101) { params->bitStream->ResetReadPointer(); int qwe = params->bitStream->GetNumberOfBitsUsed(); int qq = (qwe - 16); params->bitStream->IgnoreBits(16); int ww = BITS_TO_BYTES(qq); char ttt[ww]; params->bitStream->Read(ttt); std::string str(ttt); SF->getSAMP()->getChat()->AddChatMessage(555555, "%s", ttt); //byte packId; //params->bitStream->Read(packId); //D3DCOLOR color; //params->bitStream->Read(color); } return true; }
if (params->packetId == RPCEnumeration::RPC_ServerCommand) {
DWORD len;
char command[256];
BitStream *bs = params->bitStream;
bs->ResetReadPointer();
bs->Read(len);
bs->Read(command, len);
command[len] = '\0';
}
ты чёт какой-то левый рпс ловишь, так-то над эт:Ну, согласно логгеру, там негде поместиться цвету и длине, серьёзно
Вот так выглядит лог сообщения в чат, когда я отправляю единицу:Или первые два байта это цвет, а третий - длина?Код:[13:52:27.700] > [RPC Recv] RPC_Chat[101](length: 4 bytes, 32 bits) > dump: 0000 00 00 01 31 ...1
Ответь пожалуйста, очень важно, я хочу наконец разобраться в теме
if (param->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage) // id: 93
{
..
}
В собейтовом .ini смотрел, он там одновременно и входящий и исходящий, ид и название идентичныВторое. Код вообще не правильный. Если irpc это входящие РПЦ, то если мне память не изменяет, то он только исходящий, но может быть и входящим тоже. Прочекаешь
отсюда логгер качал, тот что для 0.3.7p.s. возможно у тебя старый раклоггер
Если он ловит входящие сообщения от сервера, то РПЦ не правильный. Если только сообщения, которые он отправил в чат без команды, то верный ид. Для исходящих команд другой РПЦ.ты чёт какой-то левый рпс ловишь, так-то над эт:
p.s. возможно у тебя старый раклоггер
..->ResetReadPointer();
если чё, тоЕсли он ловит входящие сообщения от сервера, то РПЦ не правильный. Если только сообщения, которые он отправил в чат без команды, то верный ид. Для исходящих команд другой РПЦ.
RPC_ScrClientMessage
Хз. Я привык юзать на всякий пожарный. Хотя надо в СФ глянуть как оно там)и на будущее,
уже не нужно использоватьC++:..->ResetReadPointer();
в сфе это уже давно исправлено, он сам сбиваетХз. Я привык юзать на всякий пожарный. Хотя надо в СФ глянуть как оно там)