Другое NickName AdBlock 0.2

Кикает игроков с никами содержащими рекламу.

  1. FeedBlack

    FeedBlack

    Сообщения:
    4
    Симпатии:
    1
    FeedBlack submitted a new resource:

    NickName AdBlock - Кикает игроков с никами содержащими рекламу.

    Read more about this resource...
     
    Последнее редактирование: 12 авг 2018 в 23:35
    alexmo812 нравится это.
  2. Grey83

    Grey83

    Сообщения:
    1.591
    Симпатии:
    731
    а почему частично на старом синтаксисе?
     
  3. FeedBlack

    FeedBlack

    Сообщения:
    4
    Симпатии:
    1
    в исходе нет старого синтаксиса. только что специально проверил.
     
  4. Kr1kuzya

    Kr1kuzya В поисках той самой Супермодератор

    Сообщения:
    4.395
    Симпатии:
    3.771
    @Grey83, а какая разница, в принципе? Один хрен: байт код получается один и тот же.
     
  5. Grey83

    Grey83

    Сообщения:
    1.591
    Симпатии:
    731
    @Kr1kuzya, это пока компилятор понимает старый синтаксис
    @FeedBlack, INVALID_HANDLE в новом синтаксисе - это null, например.
    А public Action OnRoundStart(Handle hEvent, const char[] szEventName, bool bDontBroadcast) выглядит как public void OnRoundStart(Event hEvent, const char[] szEventName, bool bDontBroadcast) в твоём случае (EventHookMode_PostNoCopy)
    Handle cvar_PluginEnabled; и Handle cvar_PluginMode; - это ConVar cvar_PluginEnabled; и ConVar cvar_PluginMode; соответственно.
    --- Добавлено позже ---
    Вот пофикшенный:
    PHP:
    #pragma semicolon 1
    #pragma newdecls required

    #include <regex>

    static const char    PLUGIN_NAME[]        = "Nickname AdBlock",
                        
    PLUGIN_VERSION[]    = "0.3.0";

    bool bEnablebMode;

    char Logfile[PLATFORM_MAX_PATH];
    Regex g_Regex;

    public 
    Plugin myinfo =
    {
        
    name        PLUGIN_NAME,
        
    author        "FeedBlack (fixed by Grey83)",
        
    description    "Kicks user if his nickname contains advertisement.",
        
    version        PLUGIN_VERSION,
        
    url            "https://steamcommunity.com/id/feedblackg44",
    };

    public 
    void OnPluginStart()
    {
        
    CreateConVar("sm_nnadblock_version"PLUGIN_VERSIONPLUGIN_NAMEFCVAR_DONTRECORD|FCVAR_NOTIFY|FCVAR_REPLICATED);

        
    ConVar CVar;
        (
    CVar CreateConVar("sm_nnadblock_enabled""1""1 - Enabled, 0 - Disabled."_true_true1.0)).AddChangeHook(CVarChanged_Enable);
        
    bEnable    CVar.BoolValue;
        (
    CVar CreateConVar("sm_nnadblock_mode""0""0 - check players every round, 1 - check players when they connect to the server."_true_true1.0)).AddChangeHook(CVarChanged_Mode);
        
    bMode    CVar.BoolValue;

        
    HookEvent("teamplay_round_start"OnRoundStartEventHookMode_PostNoCopy);

        
    RegConsoleCmd("sm_kickunallowed"KickUnallowedCommand);
        
    RegConsoleCmd("sm_kickunallow"KickUnallowedCommand);

        
    BuildPath(Path_SMLogfilesizeof(Logfile), "logs/nnadblock.log");

        
    g_Regex CompileRegex("\\.(ru|net|ua|tf|com|org|su|cash|trade|co)");

        
    AutoExecConfig(true"nnadblock");
    }

    public 
    void CVarChanged_Enable(ConVar CVar, const char[] oldValue, const char[] newValue)
    {
        
    bEnable    CVar.BoolValue;
    }

    public 
    void CVarChanged_Mode(ConVar CVar, const char[] oldValue, const char[] newValue)
    {
        
    bMode    CVar.BoolValue;
    }

    public 
    void OnClientConnected(int client)
    {
        if(
    bModeKickUnallowed(client);
    }

    public 
    void OnRoundStart(Event event, const char[] namebool dontBroadcast)
    {
        if(
    bEnable && !bMode) for(int i 1<= MaxClientsi++) KickUnallowed(i);
    }

    public 
    Action KickUnallowedCommand(int clientint args)
    {
        if(
    bEnable)
        {
            
    int num;
            for(
    int i 1<= MaxClientsi++) if(KickUnallowed(i)) num++;
            
    PrintToConsole(client"%i clients has been kicked."num);
        }
        else 
    PrintToConsole(client"Nickname AdBlock is Disabled!");
    }

    stock bool KickUnallowed(int client)
    {
        if(!
    IsClientInGame(client) || IsFakeClient(client))
            return 
    false;

        static 
    char szUsername[MAX_NAME_LENGTH], szUserID[MAX_TARGET_LENGTH];
        
    GetClientName(clientszUsernamesizeof(szUsername));
        if(
    MatchRegex(g_RegexszUsername) < 1)
            return 
    false;

        
    GetClientAuthId(clientAuthId_Steam3szUserIDsizeof(szUserID));
        
    KickClient(client"Unallowed Nickname");
        
    PrintToChatAll("%s has been kicked due to unallowed nickname!"szUsername);
        
    LogToFileEx(Logfile"%s has been kicked due to unallowed nickname! Client id: %s"szUsernameszUserID);
        return 
    true;
    }
     

    Вложения:

    Последнее редактирование: 13 авг 2018 в 02:32
    teran нравится это.
  6. Kr1kuzya

    Kr1kuzya В поисках той самой Супермодератор

    Сообщения:
    4.395
    Симпатии:
    3.771
    А его поддержку убирать и не будут. Это - официальное заявление одного из разработчиков на их же форуме.
    Пока они не сделают свой "C# lite" (как они его ласково назвали) - старый синтаксис будет перевариваться компилятором. Но и новый сразу же перестанет: язык неплохо так изменится. Придётся многое переписывать в любом случае.

    И я не вижу никаких причин использовать новые методмапы. Тем более с ними приколы есть, когда виртуалка отресолвить не может метод. Но это уже совсем другая история...

    PHP:
        (CVar CreateConVar("sm_nnadblock_enabled""1""1 - Enabled, 0 - Disabled."_true_true1.0)).AddChangeHook(CVarChanged_Enable);
        
    bEnable    CVar.BoolValue;
    А вот в этом вообще смысла нет, если использовать конфиги.
    У меня лично в TF2 и CS:S не срабатывали хуки конваров. Надо забирать значения строго в OnConfigsExecuted().
     
  7. GTMichael

    GTMichael Read Only

    Сообщения:
    85
    Симпатии:
    9
    Есть же плагин ANC, чем этот отличается вообще?
     
  8. xMaZax

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

    Сообщения:
    616
    Симпатии:
    123
    Хватит набивать посты,бред какой то пишешь,для кого описание плагинов создано?
     
  9. FeedBlack

    FeedBlack

    Сообщения:
    4
    Симпатии:
    1
    Этот плагин был написан мною для моего сервера, а в общий доступ я его выложил, т.к. подумал, что кому-то он может быть полезен. Даже если есть и другие такие же плагины, в чём я не сомневаюсь. Не одному же мне эта идея в голову пришла.
     
  10. -JUGHEAD

    -JUGHEAD

    Сообщения:
    97
    Симпатии:
    7
    @FeedBlack , кастомная причина стоит? можно ли свою поставить?
    И является ли это причиной?
    P.S: Просто не разбираюсь
    PHP:
     KickClient(client"Unallowed Nickname");
     
  11. FeedBlack

    FeedBlack

    Сообщения:
    4
    Симпатии:
    1
    @-JUGHEAD Да, ты прав. Просто меняешь Unallowed Nickname на что-то своё
     
  12. -JUGHEAD

    -JUGHEAD

    Сообщения:
    97
    Симпатии:
    7