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

  #1  
Старый 02.07.2018, 12:30
qwintty
Новичок
Регистрация: 14.07.2017
Сообщений: 26
С нами: 4648109

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

Цитата:
Сообщение от kewa opcode  

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

Т.е ее исходник.
 
Ответить с цитированием

  #2  
Старый 02.07.2018, 12:52
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

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

Ну определение функции .
Т.е ее исходник.
Может тебе еще и кошкодевочку найти?
 
Ответить с цитированием

  #3  
Старый 02.07.2018, 13:25
qwintty
Новичок
Регистрация: 14.07.2017
Сообщений: 26
С нами: 4648109

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

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

Может тебе еще и кошкодевочку найти?
Ну желательно.
 
Ответить с цитированием

  #4  
Старый 02.07.2018, 13:27
kawa operand
Постоянный
Регистрация: 15.04.2017
Сообщений: 602
С нами: 4778331

Репутация: 63


По умолчанию

я бы тоже не отказался
 
Ответить с цитированием

  #5  
Старый 02.07.2018, 14:28
qwintty
Новичок
Регистрация: 14.07.2017
Сообщений: 26
С нами: 4648109

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

Подскажите пожалуйста , где хотя бы найти информацию по этим функциям.

IsInRangeOf(*xpos, *ypos, x, y, radius))

GetfAngleByPos(*xpos, *ypos, x, y);
 
Ответить с цитированием

  #6  
Старый 02.07.2018, 16:59
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

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

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

Подскажите пожалуйста , где хотя бы найти информацию по этим функциям.
IsInRangeOf(*xpos, *ypos, x, y, radius))
GetfAngleByPos(*xpos, *ypos, x, y);
Функция может иметь разные действия, если ты хочешь прям повторить эту функцию, то нужно искать там, где ты её взял.

Могу посоветовать аналог, возможно подойдет - Информация - [SF] Полезные функции(https://blast.hk/threads/10970/#post-124093)

насчет углов, посмотри plugin от SR_team - AsiPlugin(https://git.prime-hack.net/SR_team/AsiPlugin)

И на будущее, не создавай темы по каждому вопросу, достаточно написать вопрос в эту тему.
 
Ответить с цитированием

  #7  
Старый 02.07.2018, 19:14
Sasiko1
Новичок
Регистрация: 12.06.2018
Сообщений: 24
С нами: 4168872

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

Как получить хп ?

stPassengerData ->byteHealth;
 
Ответить с цитированием

  #8  
Старый 02.07.2018, 20:15
C&J
Познающий
Регистрация: 13.11.2014
Сообщений: 41
С нами: 6050727

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

Всем хай,использую хук на HandleRPCPacketFunc в двух плагинах и получается,что он работает то в одном плагине,то в другом.

Цитата:
Сообщение от Спойлер  


C++:





Код:
#define SAMP_HOOKENTER_HANDLE_RPC                    0x3743D
#define SAMP_HOOKENTER_HANDLE_RPC2                    0x373C9
#define SAMP_HOOKEXIT_HANDLE_RPC                    0x37443
#define SAMP_HOOKEXIT_HANDLE_RPC2                    0x37451
void
HandleRPCPacketFunc
(
unsigned
char
id
,
RPCParameters
*
rpcParams
,
void
(
*
callback
)
(
RPCParameters
*
)
)
{
if
(
rpcParams
!=
nullptr
&&
rpcParams
->
numberOfBitsOfData
>=
8
)
{
BitStream
bsData
(
rpcParams
->
input
,
rpcParams
->
numberOfBitsOfData
/
8
,
false
)
;
switch
(
id
)
{
case
RPC_DeathMessage
:
{
pSAMP
->
addMessageToChat
(
-
1
,
"plugin ONE"
)
;
int16_t
plaerid
,
killerid
;
int8_t
resaon
;
bsData
.
ResetReadPointer
(
)
;
bsData
.
Read
(
killerid
)
;
bsData
.
Read
(
plaerid
)
;
bsData
.
Read
(
resaon
)
;
break
;
}
}
}
callback
(
rpcParams
)
;
}
void
_declspec
(
naked
)
hook_handle_rpc_packet
(
void
)
{
static
RPCParameters
*
pRPCParams
=
nullptr
;
static
RPCNode
*
pRPCNode
=
nullptr
;
static
DWORD dwTmp
=
0
;
__asm pushad
;
__asm mov pRPCParams
,
eax
;
__asm mov pRPCNode
,
edi
;
HandleRPCPacketFunc
(
pRPCNode
->
uniqueIdentifier
,
pRPCParams
,
pRPCNode
->
staticFunctionPointer
)
;
dwTmp
=
pSAMP
->
getSAMPAddr
(
)
+
SAMP_HOOKEXIT_HANDLE_RPC
;
__asm popad
;
__asm add esp
,
4
__asm jmp dwTmp
;
}
void
_declspec
(
naked
)
hook_handle_rpc_packet2
(
void
)
{
static
RPCParameters
*
pRPCParams
=
nullptr
;
static
RPCNode
*
pRPCNode
=
nullptr
;
static
DWORD dwTmp
=
0
;
__asm pushad
;
__asm mov pRPCParams
,
ecx
;
__asm mov pRPCNode
,
edi
;
HandleRPCPacketFunc
(
pRPCNode
->
uniqueIdentifier
,
pRPCParams
,
pRPCNode
->
staticFunctionPointer
)
;
dwTmp
=
pSAMP
->
getSAMPAddr
(
)
+
SAMP_HOOKEXIT_HANDLE_RPC2
;
__asm popad
;
__asm jmp dwTmp
;
}
void
InstallAllHooks
(
)
{
static
int
iSAMPHooksInstalled
;
if
(
!
iSAMPHooksInstalled
)
{
if
(
pSAMP
->
getInfo
(
)
==
NULL
)
return
;
/*
https://github.com/sr-tream/UniLib/blob/master/UniLib/CHooks.hpp
*/
HookRPC1
=
new
CHookJmp
(
pSAMP
->
getSAMPAddr
(
)
+
SAMP_HOOKENTER_HANDLE_RPC
,
hook_handle_rpc_packet
,
6
)
;
//
HookRPC2
=
new
CHookJmp
(
pSAMP
->
getSAMPAddr
(
)
+
SAMP_HOOKENTER_HANDLE_RPC2
,
hook_handle_rpc_packet2
,
8
)
;
iSAMPHooksInstalled
=
1
;
}
}


у второго плагина код один и тот же,за исключением другого RPC.

Я понимаю,что идёт конфликт хуков,но как его исправить?
 
Ответить с цитированием

  #9  
Старый 02.07.2018, 20:48
kawa operand
Постоянный
Регистрация: 15.04.2017
Сообщений: 602
С нами: 4778331

Репутация: 63


По умолчанию

проверять если в месте хука уже есть хук то после выполнения своего выполнять чужой который был до тебя
 
Ответить с цитированием

  #10  
Старый 02.07.2018, 22:39
C&J
Познающий
Регистрация: 13.11.2014
Сообщений: 41
С нами: 6050727

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

Интересует как сделать это?

Цитата:
Сообщение от kewa opcode  

.. после выполнения своего выполнять чужой который был до тебя
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.