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

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

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

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

После разрешения вопросов с выдачей бомбы, в наблюдении попалась следующая. Боты могут подбирать бомбу и далее всё происходит также как и до блокировки выдачи - они крайне редко её ставят.
Для тех, кто юзает ботов на сервере, возможно, плагин будет полезным.
Узнать больше об этом ресурсе...
 
Сообщения
1,560
Реакции
1,572
Помог
2 раз(а)
SNauPeR,
Значит всётаки нужно было запрет на поднятие сделать из сохранением того квара на ботов в той теме ?
Ну я так и подумал,перечитавши кучу сообщений
 
Сообщения
494
Реакции
341
Помог
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
Реакции
341
Помог
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
Реакции
341
Помог
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
Реакции
341
Помог
11 раз(а)
d3m37r4, поправил условие.
На некоторых картах место закладки бомбы могли определить через энтити "info_bomb_target", а не "func_bomb_target", поэтому лучше оставить оба условия.
 
Сообщения
494
Реакции
341
Помог
11 раз(а)
d3m37r4, не посмотрел, по памяти думал, что это не так. Вновь поправил.
 
Сообщения
368
Реакции
5
Предупреждения
5
Помог
1 раз(а)
хорошо, что мне понравилось, мне
Я удивляюсь боту, когда выбираю оружие без патронов. Как сделать так, чтобы у бота были полные картриджи?
 

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

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