Сейчас же рассмотрю способ с помощью отлова функцией register_event.
Структура события:
- Аргумент 1 - Координата X
- Аргумент 2 - Координата Y
- Аргумент 3 - Координата Z
- Аргумент 4 - флаг 1/0 если 1 то бомба была заложена, если ноль то или выкинута игроком или при убийстве и т.п.
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "[register_event] BombDrop"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//Регистрируем событие и назначаем функцию
//которая будет выполняться когда происходит событие
register_event("BombDrop","DropBomb","abe")
}
public DropBomb(){
//Считываем четвертый аргумент ( он и говорит о типе события)
new type = read_data(4)
client_print(0,print_chat,"Bomb drop, type:%d",type)
//Простое условие
if(type == 0){
client_print(0,print_chat,"Bomb drop")
}else if(type == 1){
client_print(0,print_chat,"Bomb planted")
}
}
Описание:
В принципе описывать тут особо нечего, если вы знакомы с функцией register_event.
Хотел бы только обратить внимание на то, что в данном варианте нету id игрока заложившего или уронившего бомбу, для получения этих данных придется воспользоваться другим методом. Именно по этому данный вариант не так часто используется. Здесь же мы можем только определить бала ли заложена бомба или просто уронена, за это в коде отвечает переменная type, куда считывается 4 аргумент который говорит о типе события.