Перейти к содержанию

Поиск сообщества

Показаны результаты для тегов 'мутаторы кф'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Магазин
    • Магазин — ShopManiya
    • Поддержка
  • ИНФО
    • Сайт и Форум
    • Наши Сервера
  • Killing Floor
    • Обсуждение—Killing Floor
    • Сервера ZombieManiya
    • Клановый
    • Поддержка игры
    • English ZombieManiya
  • DayZ
    • Новости
    • Обсуждение
    • Сервера ZombieManiya
    • DayZ Мод
    • Поддержка игры
    • Кланы
  • Killing Floor 2
    • Killing Floor 2
    • Сервера ZombieManiya
    • English ZombieManiya
    • Поддержка игры
  • Игры
    • Steam
    • Minecraft
    • Игры PC
  • Soft—Hard—Web
    • Программы
    • Windows
    • Железо
    • Teamspeak 3
  • Комок
    • Покупка
    • Продажа
    • Обмен
  • Тематические Форумы
    • Беседка
    • Культура
    • Юмор
    • Хобби
    • Флуд
  • Голубая устрица Бубубу

Категории

  • Killing Floor
    • Скины
    • Оружие
    • Монстры
    • Мутаторы
    • Файлы
    • Карты
    • Патчи
  • Killing Floor 2
    • Файлы
    • Готовые Сервера
    • Карты
  • DayZ
    • Файлы
  • Web
  • Steam
    • Скины
  • Программы
    • Windows
    • Android
  • CS GO
    • Карты

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Найдено: 2 результата

  1. 42 раза скачали

    Мутатор исправляет стимовские русские крякозябренные имена Код: 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
  2. 18 раз скачали

    Мутатор проверяет 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
×
×
  • Создать...