Иконка ресурса

Запрет поднятия ботами бомбы 1.0.0

Нет прав для скачивания
Сообщения
315
Реакции
105
Помог
2 раз(а)
SNauPeR добавил(а) новый ресурс:

Запрет поднятия ботами бомбы - Плагин блокирует возможность ботами подбирать бомбу

После разрешения вопросов с выдачей бомбы, в наблюдении попалась следующая. Боты могут подбирать бомбу и далее всё происходит также как и до блокировки выдачи - они крайне редко её ставят.
Для тех, кто юзает ботов на сервере, возможно, плагин будет полезным.
Узнать больше об этом ресурсе...
 
Сообщения
1,618
Реакции
1,651
SNauPeR,
Значит всётаки нужно было запрет на поднятие сделать из сохранением того квара на ботов в той теме ?
Ну я так и подумал,перечитавши кучу сообщений
 
Сообщения
494
Реакции
344
Помог
11 раз(а)
Код:
public CBasePlayer_HasRestrictItem(const this, ItemID:item, ItemRestType:type)
{
    if(item == ItemID:ITEM_C4 && is_user_bot(this))
        SetHookChainReturn(ATYPE_BOOL, HC_SUPERCEDE);

    return HC_CONTINUE;
}
Заменить на:
Код:
public CBasePlayer_HasRestrictItem(const this, ItemID:item, ItemRestType:type)
{
    if(item == ItemID:ITEM_C4 && is_user_bot(this))
    {
        SetHookChainReturn(ATYPE_BOOL, true);
        return HC_SUPERCEDE;
    }

    return HC_CONTINUE;
}
 
Последнее редактирование:
Сообщения
494
Реакции
344
Помог
11 раз(а)
В функции SetHookChainReturn в зависимости от 1-го аргумента функции ATYPE_* устанавливается определённый тип 2-ым аргументом:
Код:
/**
* Hookchain argument types
*/
enum AType
{
    ATYPE_INTEGER = 0,
    ATYPE_FLOAT,
    ATYPE_STRING,
    ATYPE_CLASSPTR,
    ATYPE_EDICT,
    ATYPE_EVARS,
    ATYPE_BOOL,
    ATYPE_VECTOR
};

А используешь ты константы для передачи управления в виде возвращаемых значений:
Код:
/**
* Hookchain return types
*/
enum
{
    HC_CONTINUE = 0, // Plugin didn't take any action
    HC_SUPERCEDE,    // Skip real function, use my return value
    HC_BREAK         // Skip all forwards and real function, use my return value
                     // @note Warning: Be very careful, using this type of return will skip calls for all following AMXX plugins
};
 
Сообщения
494
Реакции
344
Помог
11 раз(а)
C учётом исправлений:
Код:
#include <amxmodx>
#include <reapi>

public plugin_init()
{
    register_plugin("bots_no_pick_up_bomb", "1.0.0", "SNauPeR");

    if(!get_member_game(m_bMapHasBombTarget))
        set_fail_state("No zones for planting bombs. Plugin was disabled");

    RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "@CBasePlayer_HasRestrictItem_Pre");
}

@CBasePlayer_HasRestrictItem_Pre(pPlayer, ItemID: iItem)
{
    if(iItem == ITEM_C4 && is_user_bot(pPlayer))
    {
        SetHookChainReturn(ATYPE_BOOL, true);
        return HC_SUPERCEDE;
    }

    return HC_CONTINUE;
}
 
Последнее редактирование:
Сообщения
494
Реакции
344
Помог
11 раз(а)
d3m37r4, поправил условие.
На некоторых картах место закладки бомбы могли определить через энтити "info_bomb_target", а не "func_bomb_target", поэтому лучше оставить оба условия.
 
Сообщения
494
Реакции
344
Помог
11 раз(а)
d3m37r4, не посмотрел, по памяти думал, что это не так. Вновь поправил.
 
Сообщения
436
Реакции
17
Предупреждения
5
Помог
1 раз(а)
хорошо, что мне понравилось, мне
Я удивляюсь боту, когда выбираю оружие без патронов. Как сделать так, чтобы у бота были полные картриджи?
 
Сообщения
3
Реакции
0
после того как реальных игроков не осталось в живых, боты напрочь теряют цель карты 😟
 

Вложения

  • 907.9 KB Просмотры: 36
Сообщения
77
Реакции
21
Handers21, У них цель подобрать бомбу, поэтому они столпились вокруг неё и пытаются поднять. Если посмотрите на скриншот во вкладке "Обзор" этого плагина, там ровно такая же ситуация)
 
Сообщения
1,193
Реакции
90
Помог
15 раз(а)
Handers21, проверь есть ли живые игроки на сервере, если нет, то дай возможность боту поднять бомбу
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу