SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 22/04/2017, 06:22 PM   #1
Sanya4
Little Clucker
 
Join Date: Jun 2015
Posts: 16
Reputation: 4
Default [GDK] Public Hook.

Кто-нибудь знает как Zeex делает hook на public's? То есть чтобы в С/C++ вызывалась моя функция, а не в .amx.
А то в .amx относительный адрес на псевдо-код.

(Не вызывая нативов внутри public's)
Sanya4 is offline   Reply With Quote
Old 22/04/2017, 06:58 PM   #2
VVWVV
Big Clucker
 
VVWVV's Avatar
 
Join Date: Jun 2015
Posts: 89
Reputation: 11
Default Re: [GDK] Public Hook.

Плагин создает свою виртуальную таблицу функций. Он создаёт перехваты для amx_FindPublic, amx_Exec, в которых контролирует вызовы public-функций: если в моде функции нет, то amx_FindPublic всё равно вернёт истину (AMX_ERR_NONE), а плагин в свою очередь добавит функцию в свою виртуальную таблицу. В функции же amx_Exec просто вызывает эту функцию, учитывая значения в виртуальной таблице.

Перехват функций осуществляется в этом файле.
VVWVV is offline   Reply With Quote
Old 22/04/2017, 09:09 PM   #3
Sanya4
Little Clucker
 
Join Date: Jun 2015
Posts: 16
Reputation: 4
Default Re: [GDK] Public Hook.

Quote:
Originally Posted by VVWVV View Post
Плагин создает свою виртуальную таблицу функций. Он создаёт перехваты для amx_FindPublic, amx_Exec, в которых контролирует вызовы public-функций: если в моде функции нет, то amx_FindPublic всё равно вернёт истину (AMX_ERR_NONE), а плагин в свою очередь добавит функцию в свою виртуальную таблицу. В функции же amx_Exec просто вызывает эту функцию, учитывая значения в виртуальной таблице.

Перехват функций осуществляется в этом файле.
Спасибо
Sanya4 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How Can I Hook? TheRaGeLord Scripting Help 1 13/08/2015 12:03 PM
ALS Hook Help RedFusion Scripting Help 0 18/01/2014 02:07 PM
[Ajuda] O que й um hook ? Juniiro3 Portuguкs/Portuguese 6 23/09/2013 05:25 PM


All times are GMT. The time now is 05:07 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.