HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #3621  
Старый 07.06.2019, 14:40
Vesca
Новичок
Регистрация: 31.03.2016
Сообщений: 20
С нами: 5324981

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

How to hook the outcomimg RPC_ServerCommamd?
 
Ответить с цитированием

  #3622  
Старый 07.06.2019, 14:58
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Цитата:
Сообщение от astap_  

отлавливай через структуру чата либо через хук DISCONNECTION_NOTIFICATION
Даже если другой текст ввести туда, то всё равно не сравниваются строки

Как отловить сообщение и сравнить с помощью strcmp ?
 
Ответить с цитированием

  #3623  
Старый 07.06.2019, 15:01
ALF
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами: 4472205

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

Цитата:
Сообщение от Rece1ver  

C++:





Код:
bool
CALLBACK
incomingRPC
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
ScriptRPCEnumeration
::
RPC_ScrClientMessage
)
{
DWORD strlen
;
char
string
[
2048
]
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
strlen
)
;
params
->
bitStream
->
Read
(
string
,
strlen
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"дебаг"
)
;
if
(
!
strcmp
(
string
,
"Server closed the connection."
)
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"Сервер закрыл соединение"
)
;
}
}
return
true
;
}


В чат выводит "дебаг", но "Сервер закрыл соединение" - нет. Почему так ?
1. не правильно читаешь

2. Server closed the connection не приходит в RPC_ScrClientMessage
 
Ответить с цитированием

  #3624  
Старый 07.06.2019, 15:47
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Цитата:
Сообщение от ALF  

1. не правильно читаешь
2. Server closed the connection не приходит в RPC_ScrClientMessage
Без разницы на этот клосед коннекцион, как любое другое сообщение отловить и сравнить ?
 
Ответить с цитированием

  #3625  
Старый 07.06.2019, 16:22
ALF
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами: 4472205

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

Цитата:
Сообщение от Rece1ver  

Без разницы на этот клосед коннекцион, как любое другое сообщение отловить и сравнить ?
C++:





Код:
uint strLen
,
color
;
char
szMsg
[
144
]
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
color
)
;
params
->
bitStream
->
Read
(
strLen
)
;
if
(
strLen
>=
sizeof
(
szMsg
)
)
strLen
=
sizeof
(
szMsg
)
-
1
;
params
->
bitStream
->
Read
(
szMsg
,
strLen
)
;
szMsg
[
strLen
]
=
'\0'
;
if
(
strstr
(
szMsg
,
"text"
)
)
{
// ...
}
 
Ответить с цитированием

  #3626  
Старый 07.06.2019, 17:43
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Цитата:
Сообщение от ALF  

C++:





Код:
uint strLen
,
color
;
char
szMsg
[
144
]
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
color
)
;
params
->
bitStream
->
Read
(
strLen
)
;
if
(
strLen
>=
sizeof
(
szMsg
)
)
strLen
=
sizeof
(
szMsg
)
-
1
;
params
->
bitStream
->
Read
(
szMsg
,
strLen
)
;
szMsg
[
strLen
]
=
'\0'
;
if
(
strstr
(
szMsg
,
"text"
)
)
{
// ...
}

не работает, ничего не происходит

каллбэк регаю, хз в чём проблема

C++:





Код:
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_INCOMING_RPC
,
incomingRPC
)
;
 
Ответить с цитированием

  #3627  
Старый 07.06.2019, 20:37
_=Gigant=_
Участник форума
Регистрация: 19.01.2017
Сообщений: 130
С нами: 4901705

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

Цитата:
Сообщение от Rece1ver  

Без разницы на этот клосед коннекцион, как любое другое сообщение отловить и сравнить ?
http://www.cplusplus.com/reference/cstring/strcmp/
 
Ответить с цитированием

  #3628  
Старый 07.06.2019, 21:31
Cake_
Участник форума
Регистрация: 04.04.2017
Сообщений: 263
С нами: 4793630

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

Цитата:
Сообщение от Rece1ver  

не работает, ничего не происходит
каллбэк регаю, хз в чём проблема

C++:





Код:
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_INCOMING_RPC
,
incomingRPC
)
;

C++:





Код:
if
(
params
->
packetId
==
ScriptRPCEnumeration
::
RPC_ScrClientMessage
)
{
size_t len
;
DWORD color
;
char
message
[
256
]
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
color
)
;
params
->
bitStream
->
Read
(
len
)
;
params
->
bitStream
->
Read
(
message
,
len
)
;
params
->
bitStream
->
ResetReadPointer
(
)
;
message
[
len
]
=
'\0'
;
if
(
strcmp
(
message
,
"cakebou"
)
==
0
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"Got it!"
)
;
}
}
;




Цитата:
Сообщение от Rece1ver  

не работает, ничего не происходит
каллбэк регаю, хз в чём проблема

C++:





Код:
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_INCOMING_RPC
,
incomingRPC
)
;

Если что функция strcmp проверяет целую строку, а strstr проверяет часть строки
 
Ответить с цитированием

  #3629  
Старый 07.06.2019, 22:42
Vesca
Новичок
Регистрация: 31.03.2016
Сообщений: 20
С нами: 5324981

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

How to hook the outcomimg RPC_ServerCommamd?
 
Ответить с цитированием

  #3630  
Старый 08.06.2019, 09:41
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Цитата:
Сообщение от cakebou  



C++:





Код:
if
(
params
->
packetId
==
ScriptRPCEnumeration
::
RPC_ScrClientMessage
)
{
size_t len
;
DWORD color
;
char
message
[
256
]
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
color
)
;
params
->
bitStream
->
Read
(
len
)
;
params
->
bitStream
->
Read
(
message
,
len
)
;
params
->
bitStream
->
ResetReadPointer
(
)
;
message
[
len
]
=
'\0'
;
if
(
strcmp
(
message
,
"cakebou"
)
==
0
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"Got it!"
)
;
}
}
;





Если что функция strcmp проверяет целую строку, а strstr проверяет часть строки

И так и так проверял, не работает, он читает другие строки чата, но почему-то не сравнивает.

Это проблема появилась после подключения имгуи к проекту.

Возможно это из-за того что сравнивает с текстом на кириллице.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.