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

Instant bomb 1.0.0

Нет прав для скачивания
Код:
#include <amxmodx>
#include <reapi>
#include <hamsandwich>

#define ACCESS_FLAG ADMIN_LEVEL_H // если хотите дать доступ всем - ADMIN_USER

public plugin_init()
{
    register_plugin("Instant Bomb", "1.0.0", "@pywave")
    
    RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_c4", "C4_PrimaryAttack_Pre", false)
    RegisterHookChain(RG_CGrenade_DefuseBombStart, "RG_DefuseBombStart_Post", true)
}

public C4_PrimaryAttack_Pre(weapon)
{
    new id = get_member(weapon, m_pPlayer)
    
    if (!is_user_alive(id) || !(get_user_flags(id) & ACCESS_FLAG))
        return HAM_IGNORED
    
    if (!get_member(weapon, m_C4_bStartedArming))
    {
        set_task(0.1, "Task_InstantPlant", id + 1000)
    }
    
    return HAM_IGNORED
}

public Task_InstantPlant(taskid)
{
    new id = taskid - 1000
    
    if (!is_user_alive(id))
        return
    
    new weapon = get_member(id, m_pActiveItem)
    if (weapon <= 0 || get_member(weapon, m_iId) != WEAPON_C4)
        return
    
    if (get_member(weapon, m_C4_bStartedArming))
    {
        set_member(weapon, m_C4_fArmedTime, get_gametime() + 0.3)
    }
}

public RG_DefuseBombStart_Post(const bomb, const id)
{
    if (is_nullent(bomb) || !is_user_alive(id) || !(get_user_flags(id) & ACCESS_FLAG))
        return HC_CONTINUE
    
    set_task(0.1, "Task_InstantDefuse", id + 2000, .flags = "a", .repeat = 1)
    
    return HC_CONTINUE
}

public Task_InstantDefuse(taskid)
{
    new id = taskid - 2000
    
    if (!is_user_alive(id) || !get_member(id, m_bIsDefusing))
        return
    
    new bomb = -1
    while ((bomb = rg_find_ent_by_class(bomb, "grenade")) != 0)
    {
        if (get_member(bomb, m_Grenade_bIsC4) && get_member(bomb, m_Grenade_bStartDefuse))
        {
            rg_send_bartime(id, 0)
            set_member(bomb, m_Grenade_flDefuseCountDown, get_gametime() + 0.1)
            break
        }
    }
}
Назад
Верх