Ядро плагина WarnSystem 1.4

Полнофункциональная система предупреждений для SourceMod

  1. vadrozh

    vadrozh INVALID_HANDLE

    Сообщения:
    458
    Симпатии:
    190
    Пользователь vadrozh разместил новый ресурс:

    WarnSystem - Полнофункциональная система предупреждений для sourcemod

    Узнать больше об этом ресурсе...
     
    Rabb1t, wayLANder, over_trax и 2 другим нравится это.
  2. Крузяра

    Крузяра Супермодератор

    Сообщения:
    5.818
    Симпатии:
    4.713
    PHP:
    #undef REQUIRE_PLUGIN
    #undef REQUIRE_EXTENSIONS
    #tryinclude <sourcebans>
    #tryinclude <materialadmin>
    #define REQUIRE_EXTENSIONS
    #define REQUIRE_PLUGIN
    //sb and ma not required for compile, but bans with this plugins w'll be unavailable
    Можно было вынести в отдельный модуль.

    PHP:
    #pragma newdecls required
    #include <sourcemod>
    #include <sdktools>
    #include <adminmenu>
    Стоит переместить #pragma newdecls required после всех инклуд. Вдруг у юзера, который будет компилировать плагин, окажутся старые инки админки, сдктулса или ещё чего?)

    PHP:
    #define ADMINMENUFLAG ADMFLAG_BAN
    #define WARNFLAG ADMFLAG_BAN
    #define UNWARNFLAG ADMFLAG_UNBAN
    #define RESETWARNSFLAG ADMFLAG_UNBAN
    #define CHECKWARNFLAG ADMFLAG_BAN
    #define PRINTTOADMINSFLAG ADMFLAG_BAN
    Вынести в конфиг для гибкости. Не все умеют использовать Notepad++, KDE Advanced Text Editor или прочие удобные редакторы. Да и навряд ли будут знать о других флагах.

    PHP:
                if(g_bIsCSGO)
                {
                    
    FormatEx(sBuffersizeof(sBuffer), "*/%s"g_sWarnSoundPath);
                    
    AddToStringTable(FindStringTable("soundprecache"), sBuffer);
                }
                else
                    
    PrecacheSound(g_sWarnSoundPathtrue);
    Я бы подключил emitsoundany и через него провернул такое одним вызовом.
    PHP:
    PrecacheSoundAny(g_sWarnSoundPath);
    PHP:
    public void PrintToAdmins(char[] sFormatany ...)
    {
        
    char sBuffer[255];
        for (
    int i 1i<=MaxClients; ++i)
        {
            if (
    IsClientInGame(i) && (GetUserFlagBits(i) & PRINTTOADMINSFLAG))
            {
                
    VFormat(sBuffersizeof(sBuffer), sFormat2);
                
    CPrintToChat(i"%s"sBuffer);
            }
        }
    }
    -->
    PHP:
    #define PrintToAdmins(%0) for (int i = 1; i<=MaxClients; ++i) if (IsClientInGame(i) && (GetUserFlagBits(i) & PRINTTOADMINSFLAG)) CPrintToChat(i, %0);
    В API вообще не нашёл проверок игрока с последующим ThrowNativeError() в случае инвалидности данных.

    [​IMG]
    Табуляция, ты пьяна, иди домой.

    PHP:
        if (g_bIsLateLoad)
        {
            for(
    int iClient 1iClient <= MaxClients; ++iClient)
                
    LoadPlayerData(iClient);
            
    PrecacheWarnSound(); // <-- ЗАЧЕМ?
            
    g_bIsLateLoad false;
        }
    Ну и зачем? OnMapStart() всё равно вызывается же после OnPluginStart(). Про очерёдность вызовов "событий" у SourceMod можно прочитать здесь.
    PHP:
        PrintToConsole(iAdmin"");
        
    PrintToConsole(iAdmin"");
    1. Значения не сыграет. Клиент игнорирует полностью пустые сообщения в консоль, кха. Потому хотя бы пробел можно было добавить.
    2. PHP:
      for (int i2; ++iPrintToConsole(iAdmin" ");

    Написал всё, что нашёл.
     
    kilroy нравится это.
  3. All

    All Non est tractata...

    Сообщения:
    456
    Симпатии:
    165
    Очень классная идея, но как-же интеграция с sourcecomms? Это будет более полезно чем сами баны.
     
  4. vadrozh

    vadrozh INVALID_HANDLE

    Сообщения:
    458
    Симпатии:
    190
    мут? будет сделано в виде модуля
     
  5. xMaZax

    xMaZax Заблокирован

    Сообщения:
    806
    Симпатии:
    217
    в само бы sb++ меню добавить (выдать предупреждение)
     
  6. Heinz

    Heinz

    Сообщения:
    133
    Симпатии:
    23
    Ребят,а где именно менять флаги?Хочу что бы снимать предупреждения могли админы с флагом z .. и обычные только нет,но предупреждения выдавать могли!
     
  7. vadrozh

    vadrozh INVALID_HANDLE

    Сообщения:
    458
    Симпатии:
    190
    скачиваешь плагин, открываешь папку scripting, открываешь WarnSystem.sp
    там в начале есть
    Код:
    #define ADMINMENUFLAG         ADMFLAG_BAN
    #define WARNFLAG             ADMFLAG_BAN
    #define UNWARNFLAG             ADMFLAG_UNBAN
    #define RESETWARNSFLAG        ADMFLAG_UNBAN
    #define CHECKWARNFLAG         ADMFLAG_BAN
    #define PRINTTOADMINSFLAG    ADMFLAG_BAN
    //Admin flags for features.
    вместо ADMFLAG_UNBAN пишешь ADMFLAG_ROOT, потом компилируешь и кидаешь на сервер
    --- Добавлено позже ---
    в раздел меню sb в админке?
     
    Последнее редактирование: 13 ноя 2017
    xMaZax и Heinz нравится это.
  8. Heinz

    Heinz

    Сообщения:
    133
    Симпатии:
    23
    а можно еще вот такой вопрос : ну нарушил чувак что то... на сервере 3 админа.. и все взяли и выдали предупреждение...чувак сразу в бан))) конечно можно увеличить количество допустимых нарушений,но ситуация не изменится...может стоит добавить что то типа вот такого : если у чувака предупреждение уже выдано,то повторное предупреждение можно выдать скажем минут через 5-10..а то админы от радости сразу полезут выдать предупреждение)) а там если админа опередил другой,то ему всплывало окно , мол игрок уже предупрежден за то за это...повторное можно выдать через 5 минут..ну или что то в этом роде..
     
  9. vadrozh

    vadrozh INVALID_HANDLE

    Сообщения:
    458
    Симпатии:
    190
    сделаю
     
    Последнее редактирование: 13 ноя 2017
    Ice_Sochi и Heinz нравится это.
  10. Алексей Князев

    Алексей Князев

    Сообщения:
    24
    Симпатии:
    2
    Всем привет, поставил WarnSystem вроде пока что работает, класс, спасибо.....
     
  11. vadrozh

    vadrozh INVALID_HANDLE

    Сообщения:
    458
    Симпатии:
    190
    Пользователь vadrozh обновил ресурс WarnSystem новой записью:

    Обновление 1.1DEV

    Узнать больше об этом обновлении...
     
  12. Heinz

    Heinz

    Сообщения:
    133
    Симпатии:
    23
    У меня следующие проблемы с этим плагином :
    1 - плагин Blocker_Passes - перестает работать ( удаляются блокировки на картах)
    2 - в админ меню все с ног на голову.Нажимаешь на одно,всплывает другое...
    С чем это может быть связано?
    --- Добавлено позже ---
    Пробовал на тестовом сервере,там вообще в админ меню сплошные квадратики и иероглифы(((
     
  13. vadrozh

    vadrozh INVALID_HANDLE

    Сообщения:
    458
    Симпатии:
    190
    файлы перевода точно на месте? насчет blocker_passes я не знаю.....
     
  14. Heinz

    Heinz

    Сообщения:
    133
    Симпатии:
    23
    Да все на месте!(((
     
  15. over_trax

    over_trax

    Сообщения:
    848
    Симпатии:
    183
    интеграция с сурсбаном будет ?
     
  16. e_zhuravlev

    e_zhuravlev

    Сообщения:
    187
    Симпатии:
    21
    есть предложение добавить репорты от игроков (!report) и если их наберется Х штук то будет применено наказание. помимо предупреждений
     
  17. vadrozh

    vadrozh INVALID_HANDLE

    Сообщения:
    458
    Симпатии:
    190
    уже есть так-то. Если во время бана игрока сб будет доступен, то плагин забанит через сб игрока
    --- Добавлено позже ---
    репорты такая вещь, что их можно накидать просто так собравшись впятером(например). Если такое будет, то модулем.
     
  18. over_trax

    over_trax

    Сообщения:
    848
    Симпатии:
    183
    @vadrozh Спасибо. Завтра проверю
     
  19. xMaZax

    xMaZax Заблокирован

    Сообщения:
    806
    Симпатии:
    217
    да
    "Управление блокировками"
     
  20. vadrozh

    vadrozh INVALID_HANDLE

    Сообщения:
    458
    Симпатии:
    190
    не вижу смысла пихать во все менюшки подряд, когда в корне админки свой раздел