![]() |
[CENTER]Вечер в хату, часик в радость, чифир в сладость!
Здеся мы будем говорить от RakNekхуках. Hookв переводе с английского означает перехват. Цитата:
Эта информация может исходить как от игрока, так и от сервера. Гайд рассчитан на людей имеющих хотя бы небольшой опыт работы с SF. Приступим к регистрации нашего хука: C++: Код:
SFДанная функция регистрирует RakNetхук. Она принимает 2 аргумента: первый - тип хука, второй - функция в которой будет происходить его обработка Вот все существующие типы RakNet хуков: Цитата:
https://forum.antichat.xyz/attachments/27474258/ В данном случае я буду работать с приходящим от сервера RPC. Создаём функцию обрабатывающую хук: C++: Код:
boolВсе RPC с их параметрами вы найдёте там: https://github.com/BrunoBM16/samp-pa.../wiki/RPC-List Компилируем, заходим в игру и проверяем: https://forum.antichat.xyz/attachments/27474258/ Сообщение придёт быстрее, чем сам текст. Потому что хук срабатывает до получения сообщения клиентом. Вот полный код, который у нас получился: https://forum.antichat.xyz/attachments/27474258/ Поправляйте меня в комментариях |
Гайд - API SF | Урок 4 - RakNet
Введение RakNet — это сетевой движок, используемый в SA:MP для обмена данными между игроками и сервером. Клиент отправляет пакет серверу, сервер его обрабатывает и рассылает другим игрокам — таким образом это работает. В этом уроке я покажу, как отправлять свои пакеты и заносить в них данные... blast.hk а это? |
Цитата:
|
Цитата:
|
что такое __stdcall и чем он от CALLBACK отличается?
и сделай урок, как хукать текст из 61rpc (showdialog ) |
Цитата:
|
Цитата:
Цитата:
C++: Код:
#define CALLBACK __stdcall |
Цитата:
|
Цитата:
__stdcall — после вызова функции параметры из стэка удаляет сама эта функция __fastcall — похожа на __stdcall, но часть параметров пытается передать через регистры. |
Спасибо за копипаст вики)
|
Цитата:
|
Как примерно сделать такое - хукнуть RPC - RemoveObject, Создать массив с удаленными файлами, при подключении игрока проверять есть ли удаленный файл в массиве, если есть не синхронизировать RPC
|
Цитата:
Потом после чтения делай поиски в контейнере(std::find или std::find_if). Если поиск вернул итератор на элемент следующий за последним(it == end()), то добавляй его в контейнер(методы push_back, insert, etc) и возвращай истину, а если уже вернул другое значение, то возвращай ложь. Цитата:
|
как хукнуть RPC SendChatMessage под номером 101?
|
| Время: 03:51 |