c4_taker

Статус
В этой теме нельзя размещать новые ответы.

hooligan***

Пользователь
Регистрация
9 Июн 2017
Сообщения
377
Симпатии
105
Пол
Мужской
Всем привет!
Нашел плагин c4_taker - позволяет отнимать бомбу у игроков. Кто сможет помочь добавить сюда проверку на флаг. Т.е чтобы отнимать бомбу могли игроки с определенным флагом (админ, вип) например. Спасибо!

Код:
/**■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

#define INFO_HUD_POSITION            -1.0, 0.40        // Позиция худ информера
#define INFO_HUD_COLOR                125, 110, 200    // Цвет худ информера

#define PLAYER_MAX_WAIT_TIME         15    // Время бездействия игрока после которого можно взять его бомбу
// #define BOT_WAIT_TIME_IGNORE            // игнорировать PLAYER_MAX_WAIT_TIME у ботов (от них всегда можно взять бомбу)

/**■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

#include <amxmodx>
#include <hamsandwich>
#include <reapi>

#define PL_VERSION                 "0.0.1b"

#define PLAYER_USE_RADIUS        75

new g_iHudSync

public plugin_init()
{
    register_plugin("Bomb Taker", PL_VERSION, "Vaqtincha")

    if(bool:get_member_game(m_bMapHasBombTarget))
    {
        RegisterHam(Ham_ObjectCaps, "bot", "CBasePlayer_ObjectCaps", .Post = false)
        RegisterHam(Ham_ObjectCaps, "player", "CBasePlayer_ObjectCaps", .Post = false)
        RegisterHam(Ham_Use, "bot", "CBasePlayer_PlayerUse", .Post = true)
        RegisterHam(Ham_Use, "player", "CBasePlayer_PlayerUse", .Post = true)

        register_event("StatusValue", "Event_StatusValue_Show", "be", "1=3"/*HEALTH*/, "2>0")
        register_event("StatusValue", "Event_StatusValue_Hide", "b", "1=1", "2=0")
        
        g_iHudSync = CreateHudSyncObj()
    }
    else {
        pause("ad")
    }
}

public CBasePlayer_ObjectCaps(const pPlayer)
{
    SetHamReturnInteger(FCAP_ONOFF_USE)
    return HAM_SUPERCEDE
}


public CBasePlayer_PlayerUse(const pPlayer, const pActivator, const pCaller, const use_type, const Float:value)
{
    if(value == 0.0 || !is_user_alive(pActivator) || get_member(pActivator, m_iTeam) != TEAM_TERRORIST)
        return

    if(is_user_alive(pPlayer) && CanUseThisPlayer(pPlayer)) {
        rg_transfer_c4(pPlayer, pActivator)
    }
}

public Event_StatusValue_Hide(const pPlayer) {
    ClearSyncHud(pPlayer, g_iHudSync)
}

public Event_StatusValue_Show(const pPlayer)
{
    if(get_member(pPlayer, m_iTeam) != TEAM_TERRORIST)
        return

    new pTarget, iBody
    get_user_aiming(pPlayer, pTarget, iBody, PLAYER_USE_RADIUS)

    if(pTarget > 0 && iBody > 0 && is_user_alive(pTarget) && CanUseThisPlayer(pTarget))
    {
        set_hudmessage(INFO_HUD_COLOR, INFO_HUD_POSITION, .holdtime = 1.5, .fadeintime = 0.5, .fadeouttime = 0.5)
        ShowSyncHudMsg(pPlayer, g_iHudSync, "Нажмите ^"E^" чтобы взять бомбу")
    }
    else {
        ClearSyncHud(pPlayer, g_iHudSync)
    }
}

stock bool:CanUseThisPlayer(pPlayer)
{
    if(!get_member(pPlayer, m_bHasC4))
        return false

#if defined BOT_WAIT_TIME_IGNORE
    if(is_user_bot(pPlayer))
        return true
#endif

    return bool:((get_gametime() - Float:get_member(pPlayer, m_fLastMovement)) > PLAYER_MAX_WAIT_TIME.0)
}
 

Vaqtincha

aggressive
Разработчик
Скриптер
Регистрация
28 Янв 2018
Сообщения
960
Симпатии
682
Пол
Мужской
где-то было более новая версия с таким функционалом.
 

Mandar1n

theRoone
Пользователь
Регистрация
13 Янв 2018
Сообщения
394
Симпатии
70
Пол
Мужской
Замени это:
Код:
if(is_user_alive(pPlayer) && CanUseThisPlayer(pPlayer)) {
На это:
Код:
if((is_user_alive(pPlayer) && CanUseThisPlayer(pPlayer))  && (get_user_flags(pActivator) & ADMIN_MENU)) {
[DOUBLEPOST=1519671458][/DOUBLEPOST]Но, текст будет отображаться всем игрокам, а забрать бомбу могут только админы. Добавил 2 проверки на флаг.
 

Вложения

Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу