Автокик за 0 ID и за некорректный ник

Тема в разделе "Общего назначения", создана пользователем Flame, 25 апр 2013.

  1. Flame

    Flame -Заслуженый кодер форума-

    Upd. В конце ветки выложил более продвинутую версию. Позже сделаю ещё более адекватную версию и обновлю тему.

    Upd2. В конце ветки выложил версию, которая не пускает до загрузки ресурсов сервера.
    Чуть позже перенесу её в данный пост


    Вообще говоря была тема по поводу кика игрока с некорректными/стандартными никами
    И я там свою версию выкладывал
    Но в связи с тем, что новые версии эмулятора стима для пираток требуют запуска из под администратора - постоянно на сервер лезет народ с ID=0
    Если 0 ID никак не отслеживается админом сервера - куча игроков играют и качают один и тот же аккаунт

    Поэтому расширил я чуток прошлую свою версию мутатора
    Теперь он выдаёт 2 таблички
    Вначале проверяет не нулевой ли у игрока ID, а потом проверяет по словарику насколько корректно имя
    Через 30 секунд вне зависимости от того что делает игрок - его кикает из игры (если надо эту паузу уменьшить, то можно поправить классы ZeroIDMessage и BanNickMessage)

    В отличии от предыдущей версии этого мутатора - игроки блокируются сразу после коннекта
    (ибо задрали играть волну, вылетать по кику и опять заходить - играть волну)) )

    Как видно по ссылкам выше - мутатор даёт краткое решение проблемы в табличке + есть кнопка перенаправления по ссылке (например, на форум), где всё это изложено более подробно

    Настройки в ini
    urlNamesDenied - Блокируем ли мы имена оканчивающиеся на .** или на .*** (например, на .ru или .org)
    Минусом использования данного параметра является кик игроков, которые любят использовать точки в нике. Если точка будет за 2 или 3 символа до конца ника, то он будет кикнут
    forumLinkZeroID - Ссылка на страничку с информацией про 0 ID
    forumLinkBadNick - Ссылка на страничку с информацией про неверный ник
    Names - массив запрещённых имён

    Код:
    Код:
    class KickNickMut extends Mutator config(KickNickMut);
    
    var config array<string> Names;
    var config bool urlNamesDenied;
    var config string forumLinkZeroID;
    var config string forumLinkBadNick;
    
    var array<PlayerReplicationInfo> PlayerList;
    
    function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
    {
        if (Other.IsA('PlayerReplicationInfo'))
        {
            PlayerList[PlayerList.Length] = PlayerReplicationInfo(Other);
            SetTimer(2.0,false);
        }
        return true;
    }
    
    function Timer()
    {
        local PlayerController PC;
        while( PlayerList.Length>0 )
        {
            if(PlayerList[0].PlayerID>0)
            {
                PC=PlayerController(PlayerList[0].Owner);
                if(CheckIfZeroID(PC.GetPlayerIDHash()))
                    CallZeroIDMessageBox(PC);
                else if(CheckIfBadNick(PlayerList[0].PlayerName))
                    CallBanNickMessageBox(PC);
            }
            PlayerList.Remove(0,1);
        }
    }
    
    function bool CheckIfZeroID(string hash)
    {
        if(hash=="0" || hash=="76561197960265728") return true;
        return false;
    }
    
    function bool CheckIfBadNick(string playerName)
    {
        local int i;
        local int pointPosition;
        local string endOfName;
    
        if(Len(playerName)>=4) endOfName= Right(playerName, 4);
        endOfName=Left(endOfName, 2);
        pointPosition=InStr(endOfName,".");
        if(urlNamesDenied && pointPosition>-1)
            return true;
    
        for(i=0; i<Names.Length; i++)
        {
            if(playerName~=Names[i])
                return true;
        }
        return false;
    }
    
    function CallZeroIDMessageBox(PlayerController PC)
    {
        KFPlayerController(PC).ClientOpenMenu("KickNickMut.ZeroIDMessage",,forumLinkZeroID);
    }
    
    function CallBanNickMessageBox(PlayerController PC)
    {
        KFPlayerController(PC).ClientOpenMenu("KickNickMut.BanNickMessage",,forumLinkBadNick);
    }
    
    defaultproperties
    {
        Names(0)="ZomboUser"
        urlNamesDenied=True
        forumLinkZeroID=""
        forumLinkBadNick=""
        bAddToServerPackages=True
        GroupName="KF-KickNick"
        FriendlyName="KickNickMut"
        Description="Kicks player with zero ID or prohibited nickname"
    }
    Код:
    class ZeroIDMessage extends UT2K4GUIPage;
    var int tickNumber;
    var string forumLink;
    
    event Opened(GUIComponent Sender)
    {
        tickNumber=0;
        SetTimer(10,true);
        Super.Opened(Sender);
    }
    
    event HandleParameters(string Param1, string Param2)
    {
        forumLink=Param1;
        Super.HandleParameters(Param1,Param2);
    }
    
    event Timer()
    {
        if(tickNumber>=3)
            MyOnClose();
        tickNumber++;
    }
    
    function bool DisconnectClick(GUIComponent Sender)
    {
        local GUIController C;
        C = Controller;
        C.ViewportOwner.Console.ConsoleCommand("Disconnect");
        return true;
    }
    
    function bool VizitForumClick(GUIComponent Sender)
    {
        local GUIController C;
        C = Controller;
        C.ViewportOwner.Console.ConsoleCommand("start"@forumLink);
        return true;
    }
    
    function MyOnClose(optional bool bCanceled)
    {
        DisconnectClick(self);
    }
    
    defaultproperties
    {
        bRenderWorld=True
        bAllowedAsLast=True
        OnClose=ZeroIDMessage.MyOnClose
        Begin Object Class=FloatingImage Name=FloatingFrameBackground
            Image=Texture'2K4Menus.BkRenders.Bgndtile'
            DropShadow=None
            ImageStyle=ISTY_Stretched
            ImageRenderStyle=MSTY_Normal
            WinTop=0.020000
            WinLeft=0.000000
            WinWidth=1.000000
            WinHeight=0.980000
            RenderWeight=0.000003
        End Object
        Controls(0)=FloatingImage'KickNickMut.ZeroIDMessage.FloatingFrameBackground'
    
        Begin Object Class=GUIHeader Name=TitleBar
            bUseTextHeight=True
            Caption="Your ID=0! / Ваш ID=0!"
            WinHeight=0.043750
            RenderWeight=0.100000
            bBoundToParent=True
            bScaleToParent=True
            bAcceptsInput=True
            bNeverFocus=False
            ScalingType=SCALE_X
        End Object
        Controls(1)=GUIHeader'KickNickMut.ZeroIDMessage.TitleBar'
    
        Begin Object Class=GUILabel Name=RulesLabel1
            Caption="Attention! / Внимание!"
            TextColor=(B=0,R=255)
            WinTop=0.100000
            WinLeft=0.340000
            WinWidth=0.460000
            WinHeight=20.000000
            bBoundToParent=True
        End Object
        Controls(2)=GUILabel'KickNickMut.ZeroIDMessage.RulesLabel1'
    
        Begin Object Class=GUIButton Name=DisconnectButton
            Caption="Disconnect / Отключиться"
            WinTop=0.620000
            WinLeft=0.240000
            WinWidth=0.240000
            OnClick=ZeroIDMessage.DisconnectClick
            OnKeyEvent=DisconnectButton.InternalOnKeyEvent
        End Object
        Controls(3)=GUIButton'KickNickMut.ZeroIDMessage.DisconnectButton'
    
        Begin Object Class=GUIButton Name=VisitForumButton
            Caption="Visit Forum / Форум"
            WinTop=0.620000
            WinLeft=0.520000
            WinWidth=0.240000
            OnClick=ZeroIDMessage.VizitForumClick
            OnKeyEvent=VisitForumButton.InternalOnKeyEvent
        End Object
        Controls(4)=GUIButton'KickNickMut.ZeroIDMessage.VisitForumButton'
    
        Begin Object Class=GUILabel Name=RulesLabel2
            Caption="Your steam ID is 0"
            TextColor=(B=255,G=255,R=255)
            WinTop=0.200000
            WinLeft=0.070000
            WinWidth=0.460000
            WinHeight=20.000000
            bBoundToParent=True
        End Object
        Controls(5)=GUILabel'KickNickMut.ZeroIDMessage.RulesLabel2'
    
        Begin Object Class=GUILabel Name=RulesLabel3
            Caption="Run the game as administrator"
            TextColor=(B=255,G=255,R=255)
            WinTop=0.250000
            WinLeft=0.070000
            WinWidth=0.460000
            WinHeight=20.000000
            bBoundToParent=True
        End Object
        Controls(6)=GUILabel'KickNickMut.ZeroIDMessage.RulesLabel3'
    
        Begin Object Class=GUILabel Name=RulesLabel4
            Caption="Right-click on game shortcut"
            TextColor=(B=255,G=255,R=255)
            WinTop=0.300000
            WinLeft=0.070000
            WinWidth=0.460000
            WinHeight=20.000000
            bBoundToParent=True
        End Object
        Controls(7)=GUILabel'KickNickMut.ZeroIDMessage.RulesLabel4'
    
        Begin Object Class=GUILabel Name=RulesLabel5
            Caption="and choose this option"
            TextColor=(B=255,G=255,R=255)
            WinTop=0.350000
            WinLeft=0.070000
            WinWidth=0.460000
            WinHeight=20.000000
            bBoundToParent=True
        End Object
        Controls(8)=GUILabel'KickNickMut.ZeroIDMessage.RulesLabel5'
    
        Begin Object Class=GUILabel Name=RulesLabel6
            Caption="Ваш steam ID равен 0"
            TextColor=(B=255,G=255,R=255)
            WinTop=0.450000
            WinLeft=0.070000
            WinWidth=0.460000
            WinHeight=20.000000
            bBoundToParent=True
        End Object
        Controls(9)=GUILabel'KickNickMut.ZeroIDMessage.RulesLabel6'
    
        Begin Object Class=GUILabel Name=RulesLabel7
            Caption="Запустите игру под администратором"
            TextColor=(B=255,G=255,R=255)
            WinTop=0.500000
            WinLeft=0.070000
            WinWidth=0.460000
            WinHeight=20.000000
            bBoundToParent=True
        End Object
        Controls(10)=GUILabel'KickNickMut.ZeroIDMessage.RulesLabel7'
    
        Begin Object Class=GUILabel Name=RulesLabel8
            Caption="Кликните правой кнопкой мыши на ярлык игры"
            TextColor=(B=255,G=255,R=255)
            WinTop=0.550000
            WinLeft=0.070000
            WinWidth=0.460000
            WinHeight=20.000000
            bBoundToParent=True
        End Object
        Controls(11)=GUILabel'KickNickMut.ZeroIDMessage.RulesLabel8'
    
        Begin Object Class=GUILabel Name=RulesLabel9
            Caption="и найдите нужный вариант запуска"
            TextColor=(B=255,G=255,R=255)
            WinTop=0.600000
            WinLeft=0.070000
            WinWidth=0.460000
            WinHeight=20.000000
            bBoundToParent=True
        End Object
        Controls(12)=GUILabel'KickNickMut.ZeroIDMessage.RulesLabel9'
    
        WinTop=0.275000
        WinLeft=0.200000
        WinWidth=0.600000
        WinHeight=0.450000
    }
    Код:
    class BanNickMessage extends UT2K4GUIPage;
    var int tickNumber;
    var string forumLink;
    
    event Opened(GUIComponent Sender)
    {
        tickNumber=0;
        SetTimer(10,true);
        Super.Opened(Sender);
    }
    
    event HandleParameters(string Param1, string Param2)
    {
        forumLink=Param1;
        Super.HandleParameters(Param1,Param2);
    }
    
    event Timer()
    {
        if(tickNumber>=3)
            MyOnClose();
        tickNumber++;
    }
    
    function bool DisconnectClick(GUIComponent Sender)
    {
        local GUIController C;
        C = Controller;
        C.ViewportOwner.Console.ConsoleCommand("Disconnect");
        return true;
    }
    
    function bool VizitForumClick(GUIComponent Sender)
    {
        local GUIController C;
        C = Controller;
        C.ViewportOwner.Console.ConsoleCommand("start"@forumLink);
        return true;
    }
    
    function MyOnClose(optional bool bCanceled)
    {
        DisconnectClick(self);
    }
    
    defaultproperties
    {
         bRenderWorld=True
         bAllowedAsLast=True
         OnClose=BanNickMessage.MyOnClose
         Begin Object Class=FloatingImage Name=FloatingFrameBackground
             Image=Texture'2K4Menus.BkRenders.Bgndtile'
             DropShadow=None
             ImageStyle=ISTY_Stretched
             ImageRenderStyle=MSTY_Normal
             WinTop=0.020000
             WinLeft=0.000000
             WinWidth=1.000000
             WinHeight=0.980000
             RenderWeight=0.000003
         End Object
         Controls(0)=FloatingImage'KickNickMut.BanNickMessage.FloatingFrameBackground'
    
         Begin Object Class=GUIHeader Name=TitleBar
             bUseTextHeight=True
             Caption="Restricted nick! / Запрещенный ник!"
             WinHeight=0.043750
             RenderWeight=0.100000
             bBoundToParent=True
             bScaleToParent=True
             bAcceptsInput=True
             bNeverFocus=False
             ScalingType=SCALE_X
         End Object
         Controls(1)=GUIHeader'KickNickMut.BanNickMessage.TitleBar'
    
         Begin Object Class=GUILabel Name=RulesLabel1
             Caption="Attention! / Внимание!"
             TextColor=(B=0,R=255,G=0)
             WinTop=0.100000
             WinLeft=0.340000
             WinWidth=0.460000
             WinHeight=20.000000
             bBoundToParent=True
         End Object
         Controls(2)=GUILabel'KickNickMut.BanNickMessage.RulesLabel1'
    
         Begin Object Class=GUIButton Name=DisconnectButton
             Caption="Disconnect / Отключиться"
             WinTop=0.620000
             WinLeft=0.240000
             WinWidth=0.240000
             OnClick=BanNickMessage.DisconnectClick
             OnKeyEvent=DisconnectButton.InternalOnKeyEvent
         End Object
         Controls(3)=GUIButton'KickNickMut.BanNickMessage.DisconnectButton'
    
         Begin Object Class=GUIButton Name=VisitForumButton
             Caption="Visit Forum / Форум"
             WinTop=0.620000
             WinLeft=0.520000
             WinWidth=0.240000
             OnClick=BanNickMessage.VizitForumClick
             OnKeyEvent=VisitForumButton.InternalOnKeyEvent
         End Object
         Controls(4)=GUIButton'KickNickMut.BanNickMessage.VisitForumButton'
    
         Begin Object Class=GUILabel Name=RulesLabel2
             Caption="Your name is restricted!"
             TextColor=(B=255,G=255,R=255)
             WinTop=0.200000
             WinLeft=0.070000
             WinWidth=0.460000
             WinHeight=20.000000
             bBoundToParent=True
         End Object
         Controls(5)=GUILabel'KickNickMut.BanNickMessage.RulesLabel2'
    
         Begin Object Class=GUILabel Name=RulesLabel3
             Caption="Change it to play on this server"
             TextColor=(B=255,G=255,R=255)
             WinTop=0.250000
             WinLeft=0.070000
             WinWidth=0.460000
             WinHeight=20.000000
             bBoundToParent=True
         End Object
         Controls(6)=GUILabel'KickNickMut.BanNickMessage.RulesLabel3'
    
         Begin Object Class=GUILabel Name=RulesLabel4
             Caption="Open file rev.ini in KillingFloor folder"
             TextColor=(B=255,G=255,R=255)
             WinTop=0.300000
             WinLeft=0.070000
             WinWidth=0.460000
             WinHeight=20.000000
             bBoundToParent=True
         End Object
         Controls(7)=GUILabel'KickNickMut.BanNickMessage.RulesLabel4'
    
         Begin Object Class=GUILabel Name=RulesLabel5
             Caption="And change PlayerName=Your_name"
             TextColor=(B=255,G=255,R=255)
             WinTop=0.350000
             WinLeft=0.070000
             WinWidth=0.460000
             WinHeight=20.000000
             bBoundToParent=True
         End Object
         Controls(8)=GUILabel'KickNickMut.BanNickMessage.RulesLabel5'
    
         Begin Object Class=GUILabel Name=RulesLabel6
             Caption="Ваше имя запрещено!"
             TextColor=(B=255,G=255,R=255)
             WinTop=0.450000
             WinLeft=0.070000
             WinWidth=0.460000
             WinHeight=20.000000
             bBoundToParent=True
         End Object
         Controls(9)=GUILabel'KickNickMut.BanNickMessage.RulesLabel6'
    
         Begin Object Class=GUILabel Name=RulesLabel7
             Caption="Измените его чтобы играть на данном сервере"
             TextColor=(B=255,G=255,R=255)
             WinTop=0.500000
             WinLeft=0.070000
             WinWidth=0.460000
             WinHeight=20.000000
             bBoundToParent=True
         End Object
         Controls(10)=GUILabel'KickNickMut.BanNickMessage.RulesLabel7'
    
         Begin Object Class=GUILabel Name=RulesLabel8
             Caption="Откройте файл rev.ini в папке KillingFloor"
             TextColor=(B=255,G=255,R=255)
             WinTop=0.550000
             WinLeft=0.070000
             WinWidth=0.460000
             WinHeight=20.000000
             bBoundToParent=True
         End Object
         Controls(11)=GUILabel'KickNickMut.BanNickMessage.RulesLabel8'
    
         Begin Object Class=GUILabel Name=RulesLabel9
             Caption="И поменяйте PlayerName=Your_name"
             TextColor=(B=255,G=255,R=255)
             WinTop=0.600000
             WinLeft=0.070000
             WinWidth=0.460000
             WinHeight=20.000000
             bBoundToParent=True
         End Object
         Controls(12)=GUILabel'KickNickMut.BanNickMessage.RulesLabel9'
    
         WinTop=0.275000
         WinLeft=0.200000
         WinWidth=0.600000
         WinHeight=0.450000
    }
    
    Ссылка 1 или Ссылка 2
    Добавлять в виде KickNickMut.KickNickMut
     
    Последнее редактирование: 21 окт 2016
    Stein, Shadow5, Bizarro и 7 другим нравится это.
  2. Atlan

    Atlan Капо

    Но ведь о ид только на лине,а на винде ид 76561197960265728,сделай для тех кто на винде.
     
  3. Flame

    Flame -Заслуженый кодер форума-

    поправил
    надеюсь ты не ошибся с написанием ID )
     
  4. Atlan

    Atlan Капо

    http://bir3yk.net/forum/topic_67/14/#post-2849 сверся.
     
  5. kok-s

    kok-s Консильери

    Зачёт респектую.
     
  6. HappyRodger

    HappyRodger Консильери

    Только вчера об этом вели диалог с Шершнем :thumbsup: осталось только сообщение сделать и ок.
     
  7. Flame

    Flame -Заслуженый кодер форума-

    Ну дык он чате мододелов это вчера упомянул - я и решил выложить ))
     
  8. w.a.l

    w.a.l Консильери

    Flame !! Молочник !!! Спасибо !!! :bunny:
     
  9. kok-s

    kok-s Консильери

    Поставил патч 1055 и этот мут отказывается работать. Можно его как нить поправить?
     
  10. BAHO

    BAHO Fresh Meat

    [​IMG]

    [​IMG]
     
    Flame нравится это.
  11. kok-s

    kok-s Консильери

    Странно у меня на сервере Fresh Meat уже 3 уровня бегает.... как так.
     
  12. Flame

    Flame -Заслуженый кодер форума-

    Ну вообще этот мутатор не зависит от патчей почти никак. Там код достаточно универсальный насколько я помню. Может он себе одну из букв заменил на кириллицу ) Или ini файл удалён или ещё какая фигня
    В вебадмине его ник скопируй и кидай сюда
     
  13. kok-s

    kok-s Консильери

    Так это Fresh Meat и есть скопировано из веб-админки. Видел кстати только его 3 уровня - остальные заходят и выходят сразу.
     
  14. Flame

    Flame -Заслуженый кодер форума-

    а Fresh Meat то есть в ini файле? )
     
  15. kok-s

    kok-s Консильери

    Да и Fresh Meat и _Fresh Meat.

    Ладно Flame не замарачевайся пока - если будут ещё люди с стандартными никами бегать я сообщу (а этого просто забаню).
     
  16. ЛОХМАТЫЙ

    ЛОХМАТЫЙ •*´¨`*•.,¸¸,.•*´¨`*•.,¸¸,.•*´¨`*•

    Та тема называется AntiN00b (нашёл поиском по слову "fresh").

    [hr]

    Не на всех серверах столь категорично относятся к никам.
    Можно ли опционально сделать, чтобы не кикало, но вылезала достающая напоминалка на нижнюю часть экрана (например, перекрывающая индикаторы "патроны-хп") ?
    "Мешает - выйди и смени ник"
    Или лучше такую опцию внедрять в тот мутатор от Шершня, раз тут игрока сразу блокирует ?

    Может, стоит добавить список "стандартых" ников ? (как в той теме)
    Дополнив его такими, как
    - Z0MB0GAME.UC0Z.RU
    - ZomboGame.ucoz.ru
     
    xorex нравится это.
  17. Flame

    Flame -Заслуженый кодер форума-

    не очень понял
    есть же KickNickMut.ini в котором задаются "стандартные" ники

    а остальное тож можно
    но сейчас не до этого
    пинайте периодически )
     
  18. ЛОХМАТЫЙ

    ЛОХМАТЫЙ •*´¨`*•.,¸¸,.•*´¨`*•.,¸¸,.•*´¨`*•

    Предполагал, что не поймут - зачем :rolleyes:
    Скажем так : для наглядности и Чтобы был полный список. *.ini не обновится до тех пор, пока ты не перезальёшь весь мутатор.
     
  19. Flame

    Flame -Заслуженый кодер форума-

    не то что "зачем"
    я вообще не понял что ты хочешь )
    ну точнее сейчас то потихоньку начинаю понимать
    формулируй чётче )
     
  20. kok-s

    kok-s Консильери

    Эти ники и так кикаются по моему, так как у них точка в конце.