Версия: 1.0
Описание: Давно как - то меня просили заблокировать покупку брони, и я не смог её сделать из - за автозакупки.
Ведь там отправляется только команда "autobuy" или "rebuy"(последняя закупка).
И сейчас, копавшись в совершенно не связанном с этим кодом - осенило.
Да, может я плохо гуглил, и давно уже эту "Америку" открыли.
Но всё - таки выложу этот нехитрый способ, может кому - то пригодится.
- Код: Выделить всё
#include <amxmodx>
public plugin_init()
{
register_plugin("Block Autobuy", "1.0", "artist666")
// Регистрируем все команды автозакупки
register_clcmd("autobuy", "block_autobuy")
register_clcmd("cl_autobuy", "block_autobuy")
register_clcmd("cl_setautobuy", "block_autobuy")
}
public block_autobuy(id)
{
// Получаем строку из autobuy.txt оказывается 2м аргументом отсылается
static argv[33], buffer[512]; read_argv(1, buffer, charsmax(buffer))
// Пока в подопытной строке есть что - то, пробегаемся по ней
while(strlen(buffer))
{
// Отщипываем по 1му слову от строки, удаляя его из основной строки
strtok(buffer, argv, charsmax(argv), buffer, charsmax(buffer), ' ')
// Проверяем каждую команду
if(equal(argv, "vest", 4)) continue // И если в списке есть то, что хотим заблокировать - не выдаём
engclient_cmd(id, argv) // Выдаём игроку не запрещённые предметы или оружие
}
return PLUGIN_HANDLED // Блокируем саму автозакупку
}
П.с. а вот с повторной покупкой немного сложней.
Не придумал пока как...
Но если например блокировать с самого начала, то и в повторной покупке предмета не будет...