Ядро плагина Player Weapon Blocker 3.0.2

Плагин позволяет заблокировать игроку доступ к выбранному оружию (На время или навсегда).

  1. san911

    san911 Вообще короче нечего

    Сообщения:
    225
    Симпатии:
    66
    PHP:
    #include <sdktools>
    #include <player_weapon_blocker>

    public Plugin:myinfo 
    {
        
    name "(Module: Player Weapon Blocker) Sound Weapon Block",
        
    author "KOROVKA"// Plugin by KOROVKA
        
    description "Sound Weapon Block",
        
    version "1.0.1",
        
    url ""
    };

    #define SOUND_PWB "sound_block.mp3"
    #define MODE 1
    #define PRINT 1

    #if MODE
    static String:sBuyWeaponName[MAXPLAYERS+1][16];
    #endif

    public OnMapStart()
    {
        
    decl String:buffer_s[70];
        
    FormatEx(buffer_s70"sound/%s"SOUND_PWB);

        
    PrecacheSound(SOUND_PWBtrue);
        
    AddFileToDownloadsTable(buffer_s);
    }

    #if MODE
    public Action:CS_OnBuyCommand(client, const String:sWeaponName[]) strcopy(sBuyWeaponName[client], 16sWeaponName);
    #endif

    public OnPlayerWeaponUse(clientString:sWeaponName[])
    {
        
    #if MODE
            
    if(GetEntProp(clientProp_Send"m_bInBuyZone") != 0
            {
                new 
    Handle:Pack CreateDataPack();
                
    WritePackString(PacksWeaponName);
                
    WritePackCell(Packclient);
               
                
    CreateTimer(0.0TimerBuyWeaponBlockPackTIMER_DATA_HNDL_CLOSE);
            }
        
    #else
            
    EmitSoundToClient(clientSOUND_PWB);
        
    #endif
       
        #if PRINT
            
    PrintToChat(client"\x04[Player Weapon Blocker] \x01Доступ к оружию \x04%s \x01заблокирован!"sWeaponName);
        
    #endif
    }

    #if MODE
    public Action:TimerBuyWeaponBlock(Handle:timeany:Pack)
    {
        
    ResetPack(Pack);
        
    decl String:sWeaponName[16];
        
    ReadPackString(PacksWeaponName16);
        new 
    client ReadPackCell(Pack);
       
        if(
    StrEqual(sBuyWeaponName[client], sWeaponName)) EmitSoundToClient(clientSOUND_PWB);
    }
    #endif
    SOUND_PWB - Путь к звуку.
    MODE - Режим работы. (1 - воспроизводить звук при попытке купить заблокированное оружие, 0 - воспроизводить звук при попытке подобрать или купить заблокированное оружие)
    PRINT - Сообщение игроку что у него заблокирован доступ к оружию. (1 - Вкл, 0 - Выкл)
     
    Последнее редактирование: 1 апр 2017
    (А)ндRю✘а и -->KENT<-- нравится это.
  2. san911

    san911 Вообще короче нечего

    Сообщения:
    225
    Симпатии:
    66
    Пользователь san911 обновил ресурс Player Weapon Blocker новой записью:

    Оптимизация, и прочие улучшения.

    Узнать больше об этом обновлении...
     
    Последнее редактирование: 1 апр 2017
  3. san911

    san911 Вообще короче нечего

    Сообщения:
    225
    Симпатии:
    66
  4. Yura7181

    Yura7181

    Сообщения:
    461
    Симпатии:
    489
    Привет.
    Как узнать кто из админов дал блокировку? Возможно добавить логирование действий (вкл./откл. через конфиг логирование т.к. понимаю кому то это не надо будет) чтобы быть вкурсе кто что делает и тех кто будет злоупотреблять плагином (чтобы было видно кто изменил время бана и кто разбанил/забанил и т.п.)? Заранее спасибо, очень полезный плагин.

    Доп. вопрос: в каком файле редактируется время бана?
     
    Последнее редактирование: 9 апр 2017
    SamVl нравится это.
  5. san911

    san911 Вообще короче нечего

    Сообщения:
    225
    Симпатии:
    66
    Логироваться будут только те операции которые были совершены над игроками/админами в онлайне.
    PHP:
    #include <player_weapon_blocker>

    public Plugin:myinfo 
    {
        
    name "(Module: Player Weapon Blocker) Logger PWB",
        
    author "KOROVKA"// Plugin by KOROVKA
        
    description "Logger PWB",
        
    version "1.0.1",
        
    url ""
    };

    public 
    OnPlayerWeaponBlocker(clientadminString:sWeapons[], status)
    {
        if(
    admin == 0) return;
       
        if(
    status == 0LogToFile("addons/sourcemod/logs/pwb.log""Администратор %L отредактировал блокировку оружия %s %L (%s)"adminGetUserAdmin(client) == INVALID_ADMIN_ID "игрока":"администратора"clientsWeapons);
        else if(
    status == 1
        {
            if((
    status GetClientTimeWeaponBlock(client)) == 0LogToFile("addons/sourcemod/logs/pwb.log""Администратор %L выдал блокировку оружия %s %L (Навсегда)(%s)"adminGetUserAdmin(client) == INVALID_ADMIN_ID "игроку":"администратору"clientsWeapons);
            else 
    LogToFile("addons/sourcemod/logs/pwb.log""Администратор %L выдал блокировку оружия %s %L (На %d минут)(%s)"adminGetUserAdmin(client) == INVALID_ADMIN_ID "игроку":"администратору"client, (status-GetTime())/60sWeapons);
        }
        else if(
    status == 2
        {
            if((
    status GetClientTimeWeaponBlock(client)) == 0LogToFile("addons/sourcemod/logs/pwb.log""Администратор %L изменил время блокировки оружия %s %L (Навсегда)"adminGetUserAdmin(client) == INVALID_ADMIN_ID "игрока":"администратора"client);
            else 
    LogToFile("addons/sourcemod/logs/pwb.log""Администратор %L изменил время блокировки оружия %s %L (На %d минут)"adminGetUserAdmin(client) == INVALID_ADMIN_ID "игрока":"администратора"client, (status-GetTime())/60);
        }
        else if(
    status == 3LogToFile("addons/sourcemod/logs/pwb.log""Администратор %L снял блокировку оружия %s %L"adminGetUserAdmin(client) == INVALID_ADMIN_ID "игрока":"администратора"client);
    }
    Обязательно нужно сохранить в UTF без BOM

    Сам список из меню в игре? Если речь о нем, то в исходнике.
     
    Последнее редактирование: 9 апр 2017
    (А)ндRю✘а и Yura7181 нравится это.
  6. Igor78p

    Igor78p

    Сообщения:
    1
    Симпатии:
    0
    У меня в меню админа/управление игроками не появился выбор запретить оружие, может можно командой какой нибудь вызвать? Возможно из-за того что много других пунктов.
     
  7. san911

    san911 Вообще короче нечего

    Сообщения:
    225
    Симпатии:
    66
    Игра какая? Для открытия меню можно использовать команду !pwb
     
  8. nuPAT

    nuPAT

    Сообщения:
    112
    Симпатии:
    2
    Плагин можно использовать с sqlite ? Не хочется делать веб сервер с мусклом и переносить...