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

Ограничение оружия 1.2.0

Нет прав для скачивания
Сообщения
182
Реакции
31
Плагин очень хорош, но не хватает иммунитета для адинистраторов. Надеюсь появится когда-то, все равно оставлю этот вместо WR
 
Сообщения
711
Реакции
92
Еще никто модуль на имунитет не написал?:) Хочется поставить и ощутить власть со скаром)
 
  • Like
Реакции: s777
Сообщения
711
Реакции
92
У меня випки через флаги и всё работает нормально.
У меня к сожалению, или к счастью это раздельно и хочется еще для админов такой же иммунитет, т.к. отдельную группу делать еще муторно, да и потом если еще вип сверху ставить, то нужно будет менять вручную каждый раз
 

xXMaXimXx

хХх
Сообщения
272
Реакции
38
Контактирует с плагинами !ws, !knfie, !gloves. Заменяет выбранные скины на сервере на дефолтные. Так же меняет оружие, например стоял mp5-sd, нажимаешь купить, покупается ump, либо покупаешь револьвер, покупается дигл.
 

Drumanid

Не все так как мы 'думаем'
Сообщения
1,709
Реакции
1,293
PHP:
#include <ogranichenie_oruzhija>

bool g_bUse[MAXPLAYERS +1];
char g_sFlag[4];

public void OnPluginStart()
{
    ConVar hCvar = CreateConVar("OO_IMMUNITYFLAG", "d", "Флаг администратора выдающий иммунитет от запрета оружия");
    hCvar.AddChangeHook(CvarFlag); hCvar.GetString(g_sFlag, sizeof(g_sFlag));
    AutoExecConfig(true, "OO_ImmunityFlag");
}

public void CvarFlag(ConVar hCvar, const char[] sOldValue, const char[] sNewValue)
{
    hCvar.GetString(g_sFlag, sizeof(g_sFlag));
}

public void OnClientPostAdminCheck(int iClient)
{
    int iFlag = GetUserFlagBits(iClient); g_bUse[iClient] = false;
    if(iFlag & ReadFlagString("z") || iFlag & ReadFlagString(g_sFlag)) g_bUse[iClient] = true;
}

public OO_Return OO_OnPickOrBuyOver(int iClient, int iDefinitionIndex, const char[] sWeapon)
{
    if(g_bUse[iClient]) return OO_Allow;
    return OO_Ignored;
}
Важно:
Если у игрока во время игры заберут админские права доступ к запрещенному оружию останется до тех пор пока игрок не перезайдет на сервер.
 

Вложения

Последнее редактирование:
Сообщения
182
Реакции
31
То же самое, когда кто-то пытается купить запрещенное оружие в консоли "SV_StartSound: buttons/weapon_cant_buy.wav not precached (0)"
 

WanekWest

Помешан на Zombie Plague
Сообщения
301
Реакции
103
То же самое, когда кто-то пытается купить запрещенное оружие в консоли "SV_StartSound: buttons/weapon_cant_buy.wav not precached (0)"
Добавь в
Код:
public void OnPluginStart()
{
}
Строчку.
Код:
PrecacheSound("Путь к звуку без sound/")
 
Сообщения
284
Реакции
42
@Sevmuren, он не может найти нужный инклуд, содержимое папки scripting из комплекта PtaH закинь к себе.
 
  • Like
Реакции: s777
Сообщения
182
Реакции
31
Добавь в
Код:
public void OnPluginStart()
{
}
Строчку.
Код:
PrecacheSound("Путь к звуку без sound/")
Это делается на
PHP:
OnMapStart()
// or
OnConfigsExecuted() // На крайний случай.
Не помогло
--- Добавлено позже ---
Так пофиксил проблему
Код:
public OnAutoConfigsBuffered()
{
    PrecacheSound("buttons/weapon_cant_buy.wav");
}
 
Последнее редактирование:
Сообщения
1,518
Реакции
491
@komashchenko, можешь сделать чтобы запрещенное оружие не падало на землю? А то например на авп картах если запрещен дигл, он тупо на землю падает это не хорошо.
 

komashchenko

Идиот
Сообщения
782
Реакции
1,430
@kleuser, На авп нужно юзать не ограничение оружие, а то что не дает поднять ничего кроме ножа и авп
PHP:
#include <sdktools>
#include <PTaH>

public void OnPluginStart()
{
    HookEvent("round_start", round_start, EventHookMode_PostNoCopy);
    PTaH(PTaH_GiveNamedItemPre, Hook, GiveNamedItemPre);
}

public Action GiveNamedItemPre(int iClient, char sClassname[64], CEconItemView &Item)
{
    if(StrEqual(sClassname, "weapon_awp") || StrContains(sClassname, "weapon_knife", false) == 0 || StrEqual(sClassname, "weapon_bayonet"))
    {
        return Plugin_Continue;
    }
    return Plugin_Handled;
}

public void round_start(Event event, char[] name, bool dontBroadcast)
{
    char sWeapon[64];
    int i = MaxClients, end = GetMaxEntities();
    while (i <= end)
    {
        if (IsValidEntity(i) && IsValidEdict(i))
        {
            GetEdictClassname(i, sWeapon, 64);
            if (!(StrContains(sWeapon, "weapon_", true)))
            {
                int index = GetEntProp(i, Prop_Send, "m_iItemDefinitionIndex", 4, 0);
                if (!(index == 9 || index == 42 || index == 59 || index >= 500))
                {
                    AcceptEntityInput(i, "Kill");
                }
            }
        }
        i++;
    }
}
 
Сверху