- Регистрация
- 12 Янв 2024
- Сообщения
- 74
- Реакции
- 10
- Баллы
- 8
В связи с тем, что новые версии эмулятора стима для пираток требуют запуска из под администратора - постоянно на сервер лезет народ с ID=0
Если 0 ID никак не отслеживается админом сервера - куча игроков играют и качают один и тот же аккаунт
Поэтому расширил я чуток прошлую свою версию мутатора
Теперь он выдаёт 2 таблички
Вначале проверяет не нулевой ли у игрока ID, а потом проверяет по словарику насколько корректно имя.
Через 30 секунд вне зависимости от того что делает игрок - его кикает из игры (если надо эту паузу уменьшить, то можно поправить классы ZeroIDMessage и BanNickMessage)
В отличии от предыдущей версии этого мутатора - игроки блокируются сразу после коннекта
(ибо задрали играть волну, вылетать по кику и опять заходить - играть волну)) )
Мутатор даёт краткое решение проблемы в табличке + есть кнопка перенаправления по ссылке (например, на форум), где всё это изложено более подробно
Настройки в ini
Код
Добавлять в виде KickNickMut.KickNickMut
Автор Flame.
Если 0 ID никак не отслеживается админом сервера - куча игроков играют и качают один и тот же аккаунт
Поэтому расширил я чуток прошлую свою версию мутатора
Теперь он выдаёт 2 таблички
Вначале проверяет не нулевой ли у игрока ID, а потом проверяет по словарику насколько корректно имя.
Через 30 секунд вне зависимости от того что делает игрок - его кикает из игры (если надо эту паузу уменьшить, то можно поправить классы ZeroIDMessage и BanNickMessage)
В отличии от предыдущей версии этого мутатора - игроки блокируются сразу после коннекта
(ибо задрали играть волну, вылетать по кику и опять заходить - играть волну)) )
Мутатор даёт краткое решение проблемы в табличке + есть кнопка перенаправления по ссылке (например, на форум), где всё это изложено более подробно
Настройки в ini
urlNamesDenied - Блокируем ли мы имена оканчивающиеся на .** или на .*** (например, на .ru или .org)
Минусом использования данного параметра является кик игроков, которые любят использовать точки в нике. Если точка будет за 2 или 3 символа до конца ника, то он будет кикнут
forumLinkZeroID - Ссылка на страничку с информацией про 0 ID
forumLinkBadNick - Ссылка на страничку с информацией про неверный ник
Names - массив запрещённых имён
Минусом использования данного параметра является кик игроков, которые любят использовать точки в нике. Если точка будет за 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.
Последнее редактирование: