 |
|

12.06.2016, 18:24
|
|
Участник форума
Регистрация: 21.06.2013
Сообщений: 131
С нами:
6785172
Репутация:
68
|
|
Сообщение от Dark_Knight
Код
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
;
// успешно завершаем отправку пакета
}
;
|
|
|

12.06.2016, 18:40
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от Frixen
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 месте цвет, и дальше как у тебя
|
|
|

12.06.2016, 18:44
|
|
Участник форума
Регистрация: 21.06.2013
Сообщений: 131
С нами:
6785172
Репутация:
68
|
|
Сообщение от Woofing Giraffe
Тебе же вроде надо RPC_ScrClientMessage хукать? В нём на 1 месте цвет, и дальше как у тебя
в этом rpc нету сообщений игроков, только серверные типо бан админа и тд
|
|
|

12.06.2016, 19:10
|
|
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами:
6915558
Репутация:
183
|
|
Так, во-первых - ты структуру не знаешь и пытаешься наугад что-то склепать. Смотри по логам RakLogger'а.
Во-вторых - ты добавил HEX-цвет в строку(8 символов), а записываешь длину исходной строки, а не новой.
[S]В-третьих - params->bitStream->ResetWritePointer(); очистит весь битстрим и переместит указатель на его начало.[/S]
|
|
|

12.06.2016, 19:53
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Допустим есть стуктура TrailerData и последние два элемента _unknown. Их можно стереть? Будет работать?
|
|
|

12.06.2016, 20:02
|
|
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами:
6915558
Репутация:
183
|
|
Сообщение от AWRage
Допустим есть стуктура TrailerData и последние два элемента _unknown. Их можно стереть? Будет работать?
Они просто не описаны.
|
|
|

12.06.2016, 21:15
|
|
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами:
6935121
Репутация:
233
|
|
Сообщение от Woofing Giraffe
а версия студии какая?
|
|
|

12.06.2016, 21:21
|
|
Участник форума
Регистрация: 21.06.2013
Сообщений: 131
С нами:
6785172
Репутация:
68
|
|
FYP, можешь мне помочь с кодом выше?
|
|
|

13.06.2016, 01:51
|
|
Постоянный
Регистрация: 15.12.2013
Сообщений: 412
С нами:
6530249
Репутация:
133
|
|
Сообщение от Frixen
FYP, можешь мне помочь с кодом выше?
ты заебал
Сообщение от Спойлер
Код:
Код:
bool CALLBACK incomingRPC(stRakNetHookParams *params)
{
if (params->packetId == RPCEnumeration::RPC_Chat)
{
uint16_t id;
uint8_t len;
char msg[128];
params->bitStream->ResetReadPointer();
params->bitStream->Read(id);
params->bitStream->Read(len);
params->bitStream->Read(msg, len);
params->bitStream->ResetReadPointer();
msg[len] = '\0';
SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(255, 255, 255), "{B9C91F}%s: {FFFFFF}%s",
SF->getSAMP()->getPlayers()->GetPlayerName(id), msg);
return false;
}
return true;
};
|
|
|

13.06.2016, 15:00
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Подскажите как установить хук на game destructor? На какой адрес ставить? И в какую игровую функцию можно влепить свою функцию loop?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|