Инфо из hamsandwich.inc:
/**
* Hooks the virtual table for the specified entity class.
* An example would be: RegisterHam(Ham_TakeDamage, "player", "player_hurt");
* Look at the Ham enum for parameter lists.
*
* @param function The function to hook.
* @param EntityClass The entity classname to hook.
* @param callback The forward to call.
* @param post Whether or not to forward this in post.
* @return Returns a handle to the forward. Use EnableHamForward/DisableHamForward to toggle the forward on or off.
*/
native HamHook:RegisterHam(Ham:function, const EntityClass[], const Callback[], Post=0);
Синтаксис:
RegisterHam(Ham:function, const EntityClass[], const Callback[], Post=0)
- Ham:function - Функция для сцепления
- const EntityClass[] - Класс объектов с которым происходит событие ( полный список в описании модуля)
- const Callback[] - Вызываемая функция
- Post=0 - Pre/Post Функция будет вызвана До/Или после события.
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#define PLUGIN "[http://amxxmodx.ru] HamHook:RegisterHam"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Killed,"player","fwd_player_killed",0)
}
public fwd_player_killed(victim, attacker, corpse){
new VictimName[32],AttackerName[32]
get_user_name(victim,VictimName,31)
get_user_name(attacker,AttackerName,31)
//Обычный вывод в чат
client_print(0,print_chat,"%s killed %s",AttackerName,VictimName)
}
Описание:
Из всего примера больше всего нас интересует всего навсего 1 строчка:
RegisterHam(Ham_Killed,"player","fwd_player_killed",0)
Она означат следующее:
Будем ловить событие(Событие убийство игрока, событие происходит с игроками, если произойдет событие вызвать функцию fwd_player_killed, и вызвать до события)
Подробнее о событии Ham_killed
Мини задачка для самоконтроля:
Отловите и заблокируйте момент когда игрок ставит бомбу.
Результаты в комментарии и прячьте в спойлер, что бы после первого правильного ответа, те кто хочет попробовать свои силы, не смогли подсмотреть случайно.