В DeathRun серверах тоже не мало важен, там необходимо блокировать нажатие на кнопку террориста при режиме Free And Knife. Но с помощью Ham_Use можно отловить не только использование кнопок, например в zombieplague отлавливается использование игроком пушки func_tank, списка всех объектов у меня к сожалению нет, но не думаю что будет очень сложно найти что то конкретное под вашу идею.
Инфо из ham_const.inc:
/**
* Description: Called whenver one entity uses another.
* Forward params: function(this, idcaller, idactivator, use_type, Float:value)
* Return type: None.
* Execute params: ExecuteHam(Ham_Use, this, idcaller, idactivator, use_type, Float:value);
*/
Ham_Use,
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#define PLUGIN "[hamsandwich] Ham_Use"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//Регистрируем событие использование кнопки ( нажатие)
//и назначаем функцию которая при этмо событии будет исполняться
RegisterHam(Ham_Use,"func_button","UseButton",0)
}
//Исполняемая функция при нажатии на кнопку
public UseButton(ent, idcaller, idactivator, use_type, Float:value){
//Вывод в чат информации что дает функция
//Обычно полезными при использовании кнопки считаются
//только первые 2, это айди кнопки и айди игрока
client_print(0,print_chat,"Entity id: %d",ent)
client_print(0,print_chat,"id Caller id: %d",idcaller)
//остальные параметры используются для других объектов.
client_print(0,print_chat,"id Activator id: %d",idactivator)
client_print(0,print_chat,"use_type: %d",use_type)
client_print(0,print_chat,"value: %f",value)
}
Описание:
При инициализации плагина происходит регистрация события использования Ham_Use кнопки func_button и назначение исполняемой функции UseButton.
В зависимости от используемого объекта в исполняемой функции аргументы могут быть как полезными так и бесполезными.
Так в джамп модах по айди объекта получается имя кнопки, что бы определить кнопку финиша и старта, так как там это крайне важно, а вот в моде DeathRun это не критично, так как там нужно просто заблокировать использование кнопок и по этому имя и id кнопки не важно, хотя для фиксов некоторых багов карт, может пригодиться. Все в лапах вашей фантазии.
В лапищах!