Мутаторы
Мутаторы для Killing Floor
109 файлов
-
KFPatKiller
От Brave
Благодаря этому мутатору для всех игроков высвечивается сообщение, в котором написано, кто убил Патриарха.
Код для MutLoader: KFPatKiller.KFPatKiller
126 раз скачали
Submitted
-
Исправление русских имен в игре
От Brave
Мутатор исправляет стимовские русские крякозябренные имена
Код:
class FixSteamRusNameMut extends Mutator;
//Мутатор исправляет стимовские русские крякозябренные имена
var array<KFPlayerController> PendingPlayers;
//Отлавливаем приходящих на сервер игроков
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
if(KFPlayerController(Other)!=None)
{
PendingPlayers[PendingPlayers.Length] = KFPlayerController(Other);
SetTimer(0.1,false);
}
return true;
}
//Прошла 0.1 секунда после появления контроллера и класс PlayerReplicationInfo для этого контроллера уже заполнен
//Пора править полученное имя
function Timer()
{
local int i;
for(i=0;i<PendingPlayers.Length;i++)
CheckAndFixName(PendingPlayers[i]);
PendingPlayers.Length = 0;
}
//Тут ничего и не делается полезного. Только вызов функции и закрепление нового имени в PlayerReplicationInfo
function CheckAndFixName(KFPlayerController KFPC)
{
local PlayerReplicationInfo PRI;
local string playerName, fixedName;
if(KFPC==none) return;
PRI=KFPC.PlayerReplicationInfo;
if(PRI==none) return;
playerName=PRI.PlayerName;
fixedName=ConvertSteamString(playerName);
if(fixedName!=playerName)
KFPC.PlayerReplicationInfo.PlayerName=fixedName;
}
//Всё ценное в этих 2х функциях. В этой, например, мы на вход получаем имя и посимвольно глядим коды
//Все крякозябренные конвертируем
function string ConvertSteamString(string msg)
{
local int i;
local string tmp;
local string result;
local int code;
tmp=msg;
for(i=0; i<Len(msg); i++)
{
code=Asc(tmp);
if(code==1056 || code==1057)
{
tmp=Mid(tmp,1);
continue;
}
code=FixCode(code);
if(code>167)
code+=848;
if(i==0) result=Chr(code);
else result=result$Chr(code);
tmp=Mid(tmp,1);
}
return result;
}
//Перекодировка из того набора символов что передаёт стим в нужный нам
function int FixCode(int code)
{
switch(code)
{
case 176: return 224;
case 177: return 225;
case 1030: return 226;
case 1110: return 227;
case 1169: return 228;
case 181: return 229;
case 8216: return 184;
case 182: return 230;
case 183: return 231;
case 1105: return 232;
case 8470: return 233;
case 1108: return 234;
case 187: return 235;
case 1112: return 236;
case 1029: return 237;
case 1109: return 238;
case 1111: return 239;
case 1026: return 240;
case 1027: return 241;
case 8218: return 242;
case 1107: return 243;
case 8222: return 244;
case 8230: return 245;
case 8224: return 246;
case 8225: return 247;
case 8364: return 248;
case 8240: return 249;
case 1033: return 250;
case 8249: return 251;
case 1034: return 252;
case 1036: return 253;
case 1035: return 254;
case 1039: return 255;
case 1106: return 192;
case 8216: return 193;
case 8217: return 194;
case 8220: return 195;
case 8221: return 196;
case 8226: return 197;
case 1027: return 168;
case 8211: return 198;
case 8212: return 199;
case 152: return 200;
case 8482: return 201;
case 1113: return 202;
case 8250: return 203;
case 1114: return 204;
case 1116: return 205;
case 1115: return 206;
case 1119: return 207;
case 160: return 208;
case 1038: return 209;
case 1118: return 210;
case 1032: return 211;
case 164: return 212;
case 1168: return 213;
case 166: return 214;
case 167: return 215;
case 1025: return 216;
case 169: return 217;
case 1028: return 218;
case 171: return 219;
case 172: return 220;
case 173: return 221;
case 174: return 222;
case 1031: return 223;
}
return code;
}
/*
а 176 224
б 177 225
в 1030 226
г 1110 227
д 1169 228
е 181 229
ё 8216 184
ж 182 230
з 183 231
и 1105 232
й 8470 233
к 1108 234
л 187 235
м 1112 236
н 1029 237
о 1109 238
п 1111 239
р 1026 240
с 1027 241
т 8218 242
у 1107 243
ф 8222 244
х 8230 245
ц 8224 246
ч 8225 247
ш 8364 248
щ 8240 249
ъ 1033 250
ы 8249 251
ь 1034 252
э 1036 253
ю 1035 254
я 1039 255
А 1106 192
Б 8216 193
В 8217 194
Г 8220 195
Д 8221 196
Е 8226 197
Ё 1027 168
Ж 8211 198
З 8212 199
И 152 200
Й 8482 201
К 1113 202
Л 8250 203
М 1114 204
Н 1116 205
О 1115 206
П 1119 207
Р 160 208
С 1038 209
Т 1118 210
У 1032 211
Ф 164 212
Х 1168 213
Ц 166 214
Ч 167 215
Ш 1025 216
Щ 169 217
Ъ 1028 218
Ы 171 219
Ь 172 220
Э 173 221
Ю 174 222
Я 1031 223
*/
defaultproperties
{
bAddToServerPackages=True
GroupName="KF-FixSteamRusName"
FriendlyName="FixSteamRusNameMut"
Description="FixSteamRusNameMut"
Путь к мутатору:
FixSteamRusNameMut.FixSteamRusNameMut
42 раза скачали
Updated
-
Привязка IP (или серий IP) к одному ID. Отсекаем читеров меняющих ID
От Brave
Мутатор проверяет ini файл в котором прописаны пары ID игрока <-> IP игрока
То есть, если определённый игрок зашёл под странным IP, то ему доступ к игре будет закрыт
Изменить свой ID - сейчас не проблема, изменить свой IP - никогда не проблема, но подогнать пару ID+IP куда сложнее
Настройки:
Параметр ComparedBlocks - количество сравниваемых чисел используемых в IP
Например, пусть есть два IP
IP №1 = "121.45.22.15" и IP №2 = "121.45.41.15"
Eсли ComparedBlocks=1, то будут сравниваться только 1 числа каждого IP - а именно 121 и 121
Они равны и поэтому два IP считаются равными
Если ComparedBlocks=2, то сравниваться будут вначале 121 и 121, потом 45 и 45
В обоих случаях равенство. Значит эти IP равны и при ComparedBlocks=2
А вот при ComparedBlocks=3 IP уже не равны
121==121, 45==45, но 22!=41
Какое значение ставить для ComparedBlocks - дело ваше
По мне так оптимальны значения 2 или 3
Следующий параметр ForumLink - ссылка на форум или страничку соцсети (или ещё куда) ваших серверов
Там вы можете обсудить с игроком его IP. Некоторые же заходят с разных компов в игру (работа/дом/...) и IP могут отличаться очень значительно.
Ниже я напишу, как добавлять для одного игрока несколько возможных IP
И главная часть ini файла - элементы массива SecurePairList
SecurePairList=(PlayerName="Sgt.McNeal",PlayerIP="192.168.0.101",PlayerID="76555555555555555")
Здесь вроде всё понятно. Переменная PlayerName может быть любой - она тут только для удобства
Переменная PlayerIP должна задавать IP, PlayerID - задавать ID игрока
Если мы хотим добавить игроку несколько возможных IP пишем так
SecurePairList=(PlayerName="Sgt.McNeal",PlayerIP="192.168.0.101",PlayerID="76555555555555555")
SecurePairList=(PlayerName="Sgt.McNeal",PlayerIP="123.131.2.21",PlayerID="76555555555555555")
SecurePairList=(PlayerName="Sgt.McNeal",PlayerIP="54.121.11.81",PlayerID="76555555555555555")
То есть если мы так пропишем Sgt.McNeal настройки и поставим ComparedBlocks=2, то в игру будут допущены все
игроки с ID=76555555555555555 и с IP=192.168.xxx.xxx, 123.131.xxx.xxx, 54.121.xxx.xxx
Внешняя программа для конвертации (лежит в общем архиве):
Для тех у кого удалённая база - вам не повезло. По умолчанию в неё не пишутся IP игроков. Поэтому ждите
следующую версию мутатора, которая будет обновлять список пар IP-ID по мере захода игроков на сервера
Те же у кого локальная база - вот вам программа, которая конвертирует вашу базу в ini файл мутатора.
Инструкция:
Кидаем файл ServerPerksStat.ini в папку с программой, запускаем, получаем SecurePairMut.ini со всеми выдранными
парами. Копируем SecurePairMut.ini на сервер к мутатору.
Текст сообщения в табличке можете поправить сами в файле SecurePairMessage.uc
Код:
class SecurePairMut extends Mutator config(SecurePairMut);
var array<PlayerController> PendingPlayers;
struct SecurePairStruct
{
var config string PlayerID;
var config string PlayerName;
var config string PlayerIP;
};
var config array<SecurePairStruct> SecurePairList;
var config int ComparedBlocks;
var config string ForumLink;
function PostBeginPlay()
{
SaveConfig();
}
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
if( PlayerController(Other)!=None )
{
PendingPlayers[PendingPlayers.Length] = PlayerController(Other);
SetTimer(0.1,false);
}
return true;
}
function Timer()
{
local string PlayerID,PlayerIP,PlayerName,tmpString;
while( PendingPlayers.Length>0 )
{
PlayerID=PendingPlayers[0].GetPlayerIDHash();
Divide(PendingPlayers[0].GetPlayerNetworkAddress(),":",PlayerIP,tmpString);
PlayerName=PendingPlayers[0].PlayerReplicationInfo.PlayerName;
if(IPIsDifferent(PlayerID,PlayerIP,ComparedBlocks))
CallMessageBox(PendingPlayers[0]);
PendingPlayers.Remove(0,1);
}
}
function bool IPIsDifferent(string PlayerID, string PlayerIP, int N)
{
local int i;
local int counter;
for(i=0;i<SecurePairList.Length;i++)
{
if(SecurePairList[i].PlayerID~=PlayerID)
{
if(SimilarIP(SecurePairList[i].PlayerIP,PlayerIP,N))
return false;
else
counter++;
}
}
if(counter>0)
return true;
return false;
}
function bool SimilarIP(string PlayerIP1, string PlayerIP2, int N)
{
local array<string> ip1,ip2;
local int i;
Split(PlayerIP1, ".", ip1);
Split(PlayerIP2, ".", ip2);
for(i=0;i<N;i++)
{
if(ip1[i]!=ip2[i])
return false;
}
return true;
}
function CallMessageBox(PlayerController PC)
{
KFPlayerController(PC).ClientOpenMenu("SecurePairMut.SecurePairMessage",,ForumLink);
}
defaultproperties
{
ComparedBlocks=2
ForumLink="http://killingfloor.ru/forum/index.php?/topic/4119-priviazka-ip-ili-serii-ip-k-odnomu-id-otsekaem-chiterov/"
SecurePairList(0)=(PlayerName="Sgt.McNeal",PlayerID="76561197960265728",PlayerIP="123.121.126.112")
bAddToServerPackages=True
GroupName="KF-SecurePair"
FriendlyName="SecurePair"
Description="SecurePair"
class SecurePairMessage 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=SecurePairMessage.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)=FloatingFrameBackground
Begin Object Class=GUIHeader Name=TitleBar
bUseTextHeight=True
Caption="Strange IP! / Странный IP!"
WinHeight=0.043750
RenderWeight=0.100000
bBoundToParent=True
bScaleToParent=True
bAcceptsInput=True
bNeverFocus=False
ScalingType=SCALE_X
End Object
Controls(1)=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)=RulesLabel1
Begin Object Class=GUIButton Name=DisconnectButton
Caption="Disconnect / Отключиться"
WinTop=0.620000
WinLeft=0.240000
WinWidth=0.240000
OnClick=SecurePairMessage.DisconnectClick
OnKeyEvent=DisconnectButton.InternalOnKeyEvent
End Object
Controls(3)=DisconnectButton
Begin Object Class=GUIButton Name=VisitForumButton
Caption="Visit Forum / Форум"
WinTop=0.620000
WinLeft=0.520000
WinWidth=0.240000
OnClick=SecurePairMessage.VizitForumClick
OnKeyEvent=VisitForumButton.InternalOnKeyEvent
End Object
Controls(4)=VisitForumButton
Begin Object Class=GUILabel Name=RulesLabel2
Caption=""
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)=RulesLabel2
Begin Object Class=GUILabel Name=RulesLabel3
Caption="You entered game under unusual IP"
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)=RulesLabel3
Begin Object Class=GUILabel Name=RulesLabel4
Caption=""
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)=RulesLabel4
Begin Object Class=GUILabel Name=RulesLabel5
Caption="Contact admin and discuss your new IP"
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)=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)=RulesLabel6
Begin Object Class=GUILabel Name=RulesLabel7
Caption="Вы зашли под необычным IP"
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)=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)=RulesLabel8
Begin Object Class=GUILabel Name=RulesLabel9
Caption="Обсудите с админом ваш новый IP"
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)=RulesLabel9
WinTop=0.275000
WinLeft=0.200000
WinWidth=0.600000
WinHeight=0.450000
}
Прописать как :
SecurePairMut.SecurePairMut
18 раз скачали
Submitted
-
Выдача оружия по ID
От Brave
В инишник забивается массив структур в стиле
VipList=(PlayerID="76561198051378",PlayerName="Sgt.McNeal",SpecialWeapon="KFMod.Katana")
Здесь PlayerID - ID игрока, SpecialWeapon - оружие, которое ему выдаётся при появлении в игре и после оживления, а PlayerName используется чисто для удобства. Чтобы не забывали кто же это под таким ID и с такой пушкой.
Можно добавлять сколько угодно (в пределах памяти) элементов массива с разными ID и пушками. Хоть всем игрокам по персональной пушке пропишите.
Можно прописать одному игроку несколько пушек - просто напишите
VipList=(PlayerID="76561198051378",PlayerName="Sgt.McNeal",SpecialWeapon="KFMod.Katana")
VipList=(PlayerID="76561198051378",PlayerName="Sgt.McNeal",SpecialWeapon="KFMod.Axe")
Код
class GiveWeaponByIDMut extends Mutator config(GiveWeaponByIDMut);
struct VipStruct
{
var config string PlayerID;
var config string PlayerName;
var config string SpecialWeapon;
};
var config array<VipStruct> VipList;
function PostBeginPlay()
{
SaveConfig();
}
function ModifyPlayer(Pawn P)
{
Super.ModifyPlayer(P);
TryGiveSpecialWeapon(P);
}
function TryGiveSpecialWeapon(Pawn P)
{
local PlayerController PC;
local string Hash;
local int i;
if(P==None) return;
PC=PlayerController(P.Controller);
if(PC==None) return;
Hash=PC.GetPlayerIDHash();
for(i=0;i<VipList.Length;i++)
{
if(VipList[i].PlayerID~=Hash)
P.GiveWeapon(VipList[i].SpecialWeapon);
}
}
defaultproperties
{
VipList(0)=(PlayerID="76561198051378",PlayerName="Sgt.McNeal",SpecialWeapon="KFMod.Katana")
bAddToServerPackages=True
GroupName="KF-GiveWeaponByIDMut"
FriendlyName="GiveWeaponByIDMut"
Description="Give Weapon By ID"
Прописать как :
GiveWeaponByIDMut.GiveWeaponByIDMut
45 раз скачали
- Выдача оружия по ID
- мутаторы kf
- (и ещё 1 )
Updated
-
SERVER COLOR
От Brave
Мутатор который цвет текста.
Установка:
1) Раскидаем все файлы по папкам
2) Добавляем строчку в killing floor.ini
ServerActors=ServerColor.ServerColorActor
81 раз скачали
Updated
-
AllTraders
От Brave
Роль мутатора проста - открываются все двери магазина в конце волны. Выбираете тот. к которому вам ближе.
64 раза скачали
Submitted
-
Анти АФК
От Brave
Мутатор кикает АФК игроков, в том числе сидящих в лобби до старта карты и не дающих стартануть её
описание конфига AFKMut.ini
[AFKMut.AFKMut]
AFKTimer=240.000000 - время в секундах через сколько будет кикать
KickMessage=%player% выкинут анти-АФК системой
KickMessagePlayer=Вы выкинуты анти-АФК системой
bDebug=false - если true, то режим отладки (выводит в консоль сервера доп. инфо)
bKickSpectators=true - если true (по умолчанию) - АФК спектры будут выкидываться. если false - спектраторы вообще не будут трогаться (это плохо на мой взгляд)
AllowAFK=Admin - ники, которых Анти-АФК не кикает
AllowAFK=Админ
AllowAFK=Ололоша
AllowAFK=FinalDanger-хочет-меня-убить
AllowAFK=MetalMedved-превед!
Мутатор добавляем строчкой
AFKMut.AFKMut
9 раз скачали
Submitted
-
MonsterConfig
От Brave
Этот мутатор позволяет настраивать состав, количество и параметры монстров, выходящих по ходу игрового процесса.
Код для запуска мутатора в .bat файле или в MutLoader: MonsterConfig.MonsterConfig
Настройка мутатора:
[Имя_Объекта Тип_Объекта]
После этой строчки вы добавляете параметры объекта. Имена объектов придумываются пользователем и не должны совпадать. Существует несколько типов объектов - MCMonsterInfo (Тип моба), MCSquadInfo (Отряд мобов), MCWaveInfo (Волна), MCMapInfo (Индивидуальные настройки для определённой карты).
Сам ход игрового процесса состоит из волн, волны состоят из набора отрядов, а отряды состоят из мобов. Заполнять конфигурацию будем соотвествующе.
Примечание - все значения параметров пишутся сразу же после = , никаких пробелов!! Иначе конфиг не будет прочитан.
Начнём с мобов:
[Имя_Монстра MCMonsterInfo]
MonsterClass - класс монстра.
Пример:
MonsterClass=class'KFChar.ZombieClot'
Как вы видите нужно эту строчку заполнять в форме class'Имя_Пакета.Имя_Класса'. Пакет это .u файл, содержащий класс монстра. Классы монстров обычно указываются в описании мутатора, если это нестандартный моб, у стандартных мобов коды указаны в .ini файле-примере.
MonsterName - имя монстра, которое вы даёте самостоятельно. Это имя будет отображаться при убийстве моба.
Пример:
MonsterName=Clot
Health - здоровье моба.
HeadHealth - здоровье головы моба.
HealthMax - предел роста хп моба.
HeadHealthMax - предел роста хп головы моба.
Speed - скорость передвижения моба. Если скорость не указана, то берётся его стандартная скорость.
SpeedMod - модификатор скорости передвижения моба. Работает только в случае, если параметр Speed не задан.
Пример:
SpeedMod=1.15
При таком параметре, скорость моба увеличится на 15% от стандартной.
RewardScore - деньги, выдаваемые за убийство моба. Если параметр не указан, берётся стандартное значение моба.
RewardScoreCoeff - множитель выдаваемых за убийство моба денег. На это число умножаются выдаваемые за монстра деньги.
PerPlayer - дополнительный параметр, отвечающий за значения, добавляющиеся за каждого живого игрока на сервере.
Пример:
PerPlayer=(Health=20,HeadHealth=10)
Health - здоровье за одного игрока, HeadHealth - здоровье головы за одного игрока
Resist - настройки резиста моба к типам урона. Резистов можно добавлять неограниченное количество.
Пример:
Resist=(DamType=class'KFMod.DamTypeBullpup',Coeff=0.5,bNotCheckChild=true)
Resist=(DamType=class'KFMod.DamTypeMelee',Coeff=0.5)
DamType - к какому типу урона будет резист, Coeff - число, на которое умножается дамаг, bNotCheckChild - если равно true, то резист не будет работать против классов, наследующих данный класс
Mesh,Skins - Замена меши или скина моба.
Пример:
Mesh=SkeletalMesh'KF_Freaks_Trip.GoreFast_Freak'
Skins=Combiner'KF_Specimens_Trip_T.gorefast_cmb'
Далее рассмотрим отряды:
[Имя_Отряда MCSquadInfo]
Monster - массив монстров, которые входят в отряд
Пример:
Monster=(MonsterName=("Clot"),Num=2)
Monster=(MonsterName=("Gorefast"),Num=1)
Monster=(MonsterName=("Crawler"),Num=1)
MonsterName - имя монстра, выбираемое из созданных вами объектов-монстров; Num - количество монстров
Дальнейшие параметры работают только для специальных сквадов. Специальный сквад, это отряд, который спавнится не рандомно, в принудительном порядке, через определённое пройденное количество заспавненных мобов.
Freq - количество мобов, после спавна которых выходит спец сквад
FreqRand - случайное число, добавляемое к Freq при респе спец сквада
InitialCounter - число счётчика количества заспавненных мобов в начале волны. Если есть желание чтобы спец сквад появился ближе к началу, или в самом начале волны, ставьте значения в зависимости от Freq и FreqRand. Чтобы спец сквад появлялся гарантированно в начале волны, ставьте этот параметр больше или равным Freq + FreqRand
Теперь перейдём к волнам:
[Имя_Волны MCWaveInfo]
Squad - отряды мобов из созданных вами MCSquadInfo объектов.
Пример:
Squad=sq_Clot
Squad=sq_Cl_Gf_Cr
Squad=sq_Gorefast
SpecialSquad - спец сквады из созданных вами MCSquadInfo.
Пример:
SpecialSquad=sq_ClotBossInvis
Position - положение волны. От этого параметра зависит очерёдность волн. Чем ниже число Position, тем раньше выйдет эта волна монстров.
TimeBetweenThisWaveCoeff - число, на которое умножается время перерыва перед началом этой волны.
MonstersTotal - количество мобов в этой волне.
PerPlayerMonstersTotal - количество мобов, добавляемое за каждого игрока.
MonstersMaxAtOnce - максимальное количество монстров находящихся на карте в один момент времени.
PerPlayerMonstersMaxAtOnce - число, добавляемое к MonstersMaxAtOnce за каждого игрока
SquadDelay - время между появлением отрядов мобов
PerPlayerSquadDelayMod - число, на которое умножается время между появлением мобов, за каждого игрока.
PerPlayerSquadDelayModMin,PerPlayerSquadDelayModMax - минимальное и максимальное значения PerPlayerSquadDelayMod.
Пример:
PerPlayerSquadDelayModMin=0.3
PerPlayerSquadDelayModMax=1.0
PerPlayerFund - деньги, выдаваемые игроку в конце волны, работает только при включенной новой системе выдачи денег
bMapSpecific - если равно true, то эта волна будет добавлена только на специальных картах
Эти три объекта - моб, отряд, волна, составляют конструкцию нашей песочницы. Но чтобы всё это работало, нужно задать некоторые общие настройки.
Общие настройки:
[MonsterConfig.MonsterConfig]
GameTypeClass - тип игры, загружаемый мутатором. Не менять. Сделано для создателей мутаторов на основе этого гейм тайпа.
GameTypeClass=class'MonsterConfig.MCGameType'
FixMeshInfoConfig - параметр, позволяющий профиксить ивентовские пропавшие скины мобов.
Пример:
FixMeshInfoConfig=(MClass=Class'KFChar.ZombieScrake',Mesh=SkeletalMesh'KF_Freaks_Trip.Scrake_Freak',Skins=(Shader'KF_Specimens_Trip_T.scrake_FB',TexPanner'KF_Specimens_Trip_T.scrake_saw_panner'))
FixMeshInfoConfig=(MClass=Class'KFChar.ZombieFleshPound',Mesh=SkeletalMesh'KF_Freaks_Trip.FleshPound_Freak',Skins=(Combiner'KF_Specimens_Trip_T.fleshpound_cmb',Shader'KFCharacters.FPAmberBloomShader'))
Это часть общих настроек, все остальные вынесены в специальный объект, имя которого нельзя трогать:
[GameInfo MCGameInfo]
FakedPlayersNum - количество фальшивых игроков, приплюсовываемых к действительному количеству. Количество игроков влияет на PerPlayer параметры.
bWaveFundSystem - если равно true, используется новая система распределения денег. В этой системе деньги начисляются не по факту нанесённых повреждений/лечения, а в конце волны.
HealedToScoreCoeff - коэффициент перевода лечения в очки. Работает при новой денежной системе.
MoneyMod - число, на которое умножается количество выдаваемых денег. Работает при новой денежной системе.
GameDifficulty - уровень классической сложности. Нужен для мобов которые респавнятся на картах наподобие Stalker Prometeus.
MonstersMaxAtOnceMod - число, на которое умножается максимальное количество мобов находящихся на карте
MonstersTotalMod - множитель количества монстров за волну
MonsterBodyHPMod - множитель здоровья мобов
MonsterHeadHPMod - множитель здоровья головы мобов
MonsterSpeedMod - множитель скорости передвижения мобов
MonsterDamageMod - множитель урона, наносимого мобами
BroadcastKillmessagesMass - масса моба, необходимая для общего сообщения об убийстве мутатора MCKillsMessage
BroadcastKillmessagesHealth - здоровье моба, необходимая для общего сообщения об убийстве мутатора MCKillsMessage
Кроме параметров, указанных выше, есть параметры зависящие от конкретной карты. Параметры, задаваемые для всех карт, кроме тех которые указаны отдельно, задаются в секции [default MCMapInfo]
Параметры зависящие от карты:
[Точное_Название_Карты MCMapInfo]
Waves - здесь добавляются волны с параметров bMapSpecific=true. Эти волны будут добавлены именно на эту карту, при этом не появившись на других.
Пример:
Waves=WaveSpec01
Waves=WaveSpec03
bUseZombieVolumeWaveDisabling - если равно true, используем настройки мапперов по блокировке определённых спавнов мобов в зависимости от текущей волны, если же равно false, эти настройки игнорируются.
MonstersTotalCoeff - множитель количества мобов за волну
MonstersMaxAtOnceCoeff - множитель количества мобов, одновременно находящихся на карте
TimeBetweenWaves - время на перерыв между волнами, в секундах
MonsterBodyHPMod,MonsterHeadHPMod,MonsterSpeedMod,MonsterDamageMod - аналогичны параметрам с такими же названиями в MCGameInfo, и перемножаются с ними
SquadDelayMod - множитель времени между появлением отрядов мобов
PerPlayerSquadDelayMod,PerPlayerSquadDelayModMin,PerPlayerSquadDelayModMax - аналогичны параметрам с такими же названиями в MCWaveInfo, и перемножаются с ними
111 раз скачали
Submitted
-
HARDPAT v2
От Brave
Представляю вашему вниманию нам хорошо известный но измененный мутатор HardPat
Теперь мутатор выведен в ini файл
[KFHardPat.HardPat]
PatStates[0]=(bMovCG=False,bRunCG=False,bPauseCG=True,bMisIgnoreRange=False,bAltRoute=False,NumMis[0]=1,NumMis[1]=0,NumCG[0]=35,NumCG[1]=60,MisRepTime=1.000000)
PatHealth=4000
В нем можна изменять,а именно:
PatStates[0]=количество его шприцов (по данным что мне раньше сообщали - выше чем 3 шприца,анимация что патриарх лечится не должно отображаться в игре (сам пока не пробовал ставить выше чем 3 шприца))
bMovCG=команда отвечает будет ли он двигатся или нет при стрельбе из пулемета
bRunCG=будет ли он бежать при стрельбе
bPauseCG=команда отвечает за паузу во время перестрелки (как всем известно он делает короткую паузу во время перестрелки из пулемета)
bAltRoute=альтернативное нападение на игроков (он может в любое время стать невидимым и обойти игрока со стороны и напасть на любого себе понравившегося)
NumMis[0]=количество ракет которое он выпустит
NumCG[0]=количество патронов которое выпустит из пулемета
MisRepTime=время в секундах (если стоит 1.000000 - значит будет выпускать ракету за ракетой каждую секунду,в зависимости сколько вы поставили ракет) Ниже чем 1.000000 - идут доли секунды
PatHealth=количество здоровья рассчитанное на одного игрока
Код для песочницы:KFHardPat.HardPat
В файле killingfloor.ini в секцию [Engine.GameEngine] обезательно вставляем ServerPackages=KFHardPat
95 раз скачали
Submitted
-
Toy Master Mod Killing Floor
От Renz
Мод Toy Master изменяет игру наличием измененных монстров и новой картой TOY-DevilsDollhouse.
Установка:
Скачать и распаковать архив.
Зайдите в корневую папку ToyMaster и переместите вложенные папки в корневую папку игры.
Запускать из батника: TOY_Server_Launcher.bat Путь: папка игры\System
Видео:
143 раза скачали
- Toy Master
- мод
- (и ещё 2 )
Updated
-
Submitted
-
MagMut
От Brave
Если вам надоело перезаряжать оружие, и если вам тупо хочется мясо устроить так сказать поиздеваться над тупыми зомби которые тока и могут что ходить, бегать за вами, то этот мутатор для вас ... Он убирает перезарядку у почти каждого оружия кроме тех у которых действовал принцип "выстрел, перезарядка"
6 раз скачали
Submitted
-
AutoSpawnerDK
От Brave
Мутатор хорош тем, что он возраждает игроков не на респавне (как это обычно бывало, как раз из-за этого большинство во время волны появившихся игроков на респавне пытались убежать от мутантов которые сразу начинали преследовать игрока). Этот мутатор при заходе вами на сервер во время волны телепортнёт вас к вашему боевому товарищу, который вам однозначно поможет отбить волну монстров.
Код для .bat-файла или MutLoader:
AutoSpawnerDK.AutoSpawner
20 раз скачали
Submitted
-
Teleportation Lost Monsters
От Brave
Данный мутатор телепортирует зомби, при условии если зомби давно никто не видел. Если за этот промежуток не был найден мутант, его просто телепортирует на ближайшую точку респавна. (Точку возрождения мутантов ZombieVolum). После этого мы его убиваем и продолжаем играть.
Код для вставки:
LostZombiesMut.LostZombiesMut
20 раз скачали
Submitted
-
Замена начального оружия
От Brave
Данный мутатор на самом деле очень полезный, с помощью этого мутаторы вы можете заменить все стандартные оружия на своё новое.
Пример замены оружия:
OldWeaponB, NewWeaponB - старое оружие, заменяется на новое оружие Берсеркера
OldWeaponCM,NewWeaponCM - старое оружие, заменяется на новое оружие Коммандоса
OldWeaponDM,NewWeaponDM - старое оружие, заменяется на новое оружие Подрывника
OldWeaponM,NewWeaponM - старое оружие, заменяется на новое оружие Медика
OldWeaponF,NewWeaponF - старое оружие, заменяется на новое оружие Поджигателя
OldWeaponSS,NewWeaponSS - старое оружие, заменяется на новое оружие Снайпера
OldWeaponSP,NewWeaponSP - старое оружие, заменяется на новое оружие Техника
bKFNeverThrow - если True, то оружие которое новые за замену пошло, его нельзя будет выбросить. Будет стоять запрет.
Weight - Функция отвечает за вес нового оружия.
Пример:
OldWeaponDM=KFMod.M79, NewWeaponDM=KFMod.M32, bKFNeverThrow=true, Weight=2
26 раз скачали
Submitted
-
Multiplied Exp \ Удвоенный опыт
От Brave
Данный мутатор добавит к вам на сервер большего настроя для игроков на прокачку своих перков. Кстати мутатор может не только умножать опыт на x2 но и на x3, x4, x5 и так далее. То есть опыт может умножаться вплоть до x1000 или вообще уйти в отрицательное число -1. Так или иначе всё равно будет работать. Чтобы опыт за убийство засчитывался по стандарту - Default, нужно в MultipliedExpMut.ini файле выставить значение nExp=1.
Код мутатор:
MultipliedExpMut.MultipliedExpMut
35 раз скачали
Submitted
-
Web Admin Cyrillic v2
От Brave
Мутатор Web Admin Cyrillic v2 - Раньше была такая проблема с встроенным Веб Админкой (Web Admin), если на сервере используется русский текст, то в Веб Админке этот текст выводится непонятно, так сказать кракозябристо. Так же была проблема с отправкой русского текста с Веб Админки в чат сервера. Всё это было исправлено благодаря этого мутатора.
Установка:
Перед тем как запускать сервер с мутатором нам нужно зайти в файл UWeb.int который находится в папке System и поменять там кодировку в этом файле.
Находим строку: [WebResponse]
CharSet="iso-8859-1"
Редактируем её на:
[WebResponse]
CharSet="windows-1251"
Код мутатора Web Admin Cyrillic v2:
WebAdminCyrillicMutv2.WebAdminCyrillicMut
14 раз скачали
Submitted
-
Player Cameras
От Brave
Мутатор даёт возможность для всех игроков на сервере следить за обстановкой игроков, то есть каждому игроку на сервере выдаётся камера - которая "типа" устанавливается где-то на голове и благодаря этой камере вы можете наблюдать за другими игроками.
Команды камеры:
NextCamTarget, SetCamPos, SetCamSize, SetCamBorder, SetCamFilter, SetCamFOV
Код мутатора:
ShoulderCamMut.ShoulderCamMut
33 раза скачали
Submitted
-
ServerPerks By Marco v6
От Brave
Этот мутатор позволяет главному администратору сервера управлять любым из установленных на сервер мутатором, модификацией, картой. Можно поставить мутатор из белого списка или же даже из серого, разницы ни какой так как мутатор создаёт базу данных перков, то есть у вашего сервера будет качаться индивидуально перки.Администратор сервера сможет добавлять, удалять стандартные настройки. Игроки не смогут обмануть базу данных (статистику сервера).
Установка
1) Распаковываем все файлы с архива в папку System
2) Скачиваем мутатор MutLoader
3) При установке мутатора MutLoader читаем внимательно инструкцию.
4) Находим файл в папке system MutLoader.ini и туда прописываем вот такой код
Mutator=ServerPerksMut.ServerPerksMut 5) Находим запускной файл в папке system (Расширение обычно у него .bat) файл обычно называет KF_Server_Launcher.bat или Запустить сервер.bat. Значит нажимаем правой кнопкой по файлу и выбираем изменить, внутри файла вписываем код мутатора MutLoader - ?Mutator=MutLoader.MutLoader
6)Сохраняем и запускаем сервер (Нажимаю по запускному файлу).
75 раз скачали
- ServerPerks
- серверперкс
- (и ещё 2 )
Updated
-
Мутатор Custom Weapon Priorities
От Brave
Благодаря этому мутатору вы сможете абсолютно любое оружие применить к любому перку. Придаю пример: Появилось не официальное новое оружие и по вашему предпочтению это оружие не подходит к иному перку, В этой случае вы запускаете этот мутатор Custom Weapon Priorities и меняете все приоритеты которые вас не устраивают. Вы можете одно оружие прикрепить ко всем перкам, и кто не возьмёт за это оружие - прокачка будет осуществляться.
Код мутатора:
CWPMut.CWPMut
26 раз скачали
Submitted
-
Мутатор DLC Unlocked - Clean ID
От Brave
Данный мутатор очень прост собой, но он включает в себя очень полезное свойство, свойство разблокировки DLC оружий. Тем самым вы сможете без каких-либо проблем приобретать у себя на сервере одно из DLD оружий. Что этот мутатор делает? Он сбрасывает ID пушек и позволяет их покупать.
Код что бы подключить мутатор:
CleanAppIDMut.CleanAppIDMut
66 раз скачали
Submitted
-
Patriarch HP Left with Health Bar
От Essence
Patriarch HP Left with Health Bar — это переделка KFPatHPLeft Mutator. Теперь здоровье патриарха после вашей смерти показывается в виде полоски.
59 раз скачали
Submitted
-
Proper Grenade Arms / Правильные руки при броске гранаты
От Essence
Мутатор исправляет текстуру на руке при броске гранаты (баг, когда при броске, текстура стоит стандартная от формы военного).
22 раза скачали
Submitted
-
Reload Interrupt
От Essence
Некоторые пушки очень долго перезаряжаются и не дают шанса поменять себя на другое оружие.
Мутатор это исправляет. Он позволяет прерывать любую перезарядку сменой оружия или броском гранаты.
Код мутатора:
ReloadInterruptMut.ReloadInterruptMut
72 раза скачали
Submitted
-
CashStay
От Essence
С этим мутатором скинутые деньги не исчезают.
Код мутатора:
CashStayMut.CashStayMut
41 раз скачали
- Мутатор
- Killing Floor
- (и ещё 1 )
Submitted
-
Статистика Загрузок