• Рекомендуем зарегистрироваться для просмотра контента и скачивания файлов!

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

denfil777

Патриарх
Команда форума
Регистрация
12 Янв 2024
Сообщения
74
Реакции
10
Баллы
8
В связи с тем, что новые версии эмулятора стима для пираток требуют запуска из под администратора - постоянно на сервер лезет народ с 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
}


Ссылка

Добавлять в виде KickNickMut.KickNickMut

Автор Flame.
 
Последнее редактирование:
Сверху Снизу