Инфо из ham_const.inc:
/**
* Description: Removes an item to the player's inventory.
* Forward params: function(this, idother);
* Return type: Integer.
* Execute params: ExecuteHam(Ham_RemovePlayerItem, this, idother);
*/
Ham_RemovePlayerItem,
Пример отлова события потери оружия:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#define PLUGIN "[hamsandwich] Ham_RemovePlayerItem"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//Регистрируется событие выброса оружия
RegisterHam( Ham_RemovePlayerItem , "player" , "f_HamRemovePlayerItem")
}
//Функция которая вызывается при потери оружия
public f_HamRemovePlayerItem(id,iditem){
//Сообщение в чат о потери предмета и его айди
//Обратите внимание что это айди Предмета
client_print(0,print_chat,"DROP item id:%d",iditem)
}
Описание:
При данном событии в функцию передается 2 параметра:
- id игрока
- id предмета
Удалять же предмет из инвентаря игрока слишком муторно с помощью этой функции, так как необходимо знать айди объекта, есть более простые способы удалить все предметы у игрока. Но если все таки интересно как это делается, вот пример:
ExecuteHamB(Ham_RemovePlayerItem,id,idItem)
Можете попробовать сначала выкинуть оружие на сервере, посмотреть его айди и потом вставить этот айди в функцию и посмотреть на результат.
В моих экспериментах при перезапуске одной и той же карты, айди оружия у меня не менялось (пистолета).
А вот примерчик:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#define PLUGIN "[hamsandwich] Ham_RemovePlayerItem"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /delpistol","f_delusp")
}
public f_delusp(id){
new idItem = 91
ExecuteHamB(Ham_RemovePlayerItem,id,idItem)
}
Построчные комментарии не стал писать, думаю сами разберетесь, замените 91 на id объекта из первого примера. ( только проверяйте на той же карте где и получали айди)