PDA

Просмотр полной версии : [Вопрос] Как перехватывать уже перехваченную функцию?



SergGrey
17.07.2017, 21:11
Почитал несколько тем по перехватам, но так и не понял как ПРАВИЛЬНО нужно перехватывать функцию, которая, например, уже была перехвачена античитом. То есть допустим античит перехватил SetPlayerPos и изменил его на свой acc_SetPlayerPos, а я хочу ещё и дополнить эту функцию параметром время, на которое игрок будет заморожен при вызове этой функции. Как в моде перехватить уже перехваченную античитом функцию, чтобы её дополнить?

StevenH
17.07.2017, 21:52
Можешь дальше и перехватывать.. Пример:



// Античит
stock acc_SetPlayerPos(playerid, Float:X, Float:Y, Float:Z)
{
// манипуляции для античита
return SetPlayerPos(playerid, X, Y, Z);
}
#if defined _ALS_SetPlayerPos
#undef SetPlayerPos
#else
#define _ALS_SetPlayerPos
#endif
#define SetPlayerPos acc_SetPlayerPos


stock SetPlayerPosEx(playerid, Float:X, Float:Y, Float:Z)
{
// манипуляции для отдельного
return SetPlayerPos(playerid, X, Y, Z);
}
#if defined _ALS_SetPlayerPos
#undef SetPlayerPos
#else
#define _ALS_SetPlayerPos
#endif
#define SetPlayerPos SetPlayerPosEx


- - - Добавлено - - -

P.s. Если в чем то я не прав, поправьте, но всегда делал так, и думаю так вполне можно делать)

Geebrox
17.07.2017, 22:46
Перехваченную функцию можно перехватывать сколько угодно, но с разными тегами разумеется. Разница будет только в очереди срабатывание перехватов.