Создание нескольких серверов в одной папке Killing Floor
Эта инструкция описывает, как запустить несколько выделенных серверов Killing Floor из одной папки с игрой, не создавая отдельные копии игры.
Зачем это нужно?
Это полезно, если вы хотите запустить несколько серверов на разных портах, чтобы не создавать отдельные копии игры из-за конфликтов портов и конфигурационных файлов.
Подготовка файлов
В папке System создайте копии следующих файлов для каждого сервера:
- kf_server_launcher.bat →
kf_server_launcher1.bat,kf_server_launcher2.bat,kf_server_launcher3.bat - ucc.exe →
ucc1.exe,ucc2.exe,ucc3.exe - KillingFloor.ini →
KillingFloor1.ini,KillingFloor2.ini,KillingFloor3.ini
Настройка bat-файлов
Вариант 1: Запуск всех серверов одновременно
batch
start ucc1 server KF-EvilSantasLair.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6?ini=killingfloor1.ini
start ucc2 server KF-EvilSantasLair.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6?ini=killingfloor2.ini
start ucc3 server KF-EvilSantasLair.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6?ini=killingfloor3.ini
Вариант 2: Защита от крашей с автоперезапуском
Для каждого сервера создайте отдельный bat-файл с защитой от крашей:
kf_server_launcher1.bat:
batch
@echo off
cls
echo Protecting srcds from crashes...
title log
:srcds
echo (%time%) KF server started.
start /wait ucc1 server KF-EvilSantasLair.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6?ini=killingfloor1.ini
echo (%time%) WARNING: srcds closed or crashed, restarting....
goto srcds
Аналогично создайте kf_server_launcher2.bat и kf_server_launcher3.bat с соответствующими номерами.
batch
start kf_server_launcher1.bat
start kf_server_launcher2.bat
start kf_server_launcher3.bat
Настройка портов в KillingFloor.ini
Важно! Для каждого сервера необходимо настроить разные порты в соответствующих ini-файлах.
Пример настройки портов:
-
Сервер 1 (KillingFloor1.ini):
- 7707 UDP/IP (игровой порт)
- 7708 UDP/IP (порт запросов)
- 7717 UDP/IP (порт запросов)
- 28852 TCP/IP и UDP (порт запросов)
- 8075 TCP/IP (порт WebAdmin)
-
Сервер 2 (KillingFloor2.ini):
- 7709 UDP/IP (игровой порт)
- 7710 UDP/IP (порт запросов)
- 7718 UDP/IP (порт запросов)
- 28853 TCP/IP и UDP (порт запросов)
- 8076 TCP/IP (порт WebAdmin)
-
Сервер 3 (KillingFloor3.ini):
- 7711 UDP/IP (игровой порт)
- 7712 UDP/IP (порт запросов)
- 7719 UDP/IP (порт запросов)
- 28854 TCP/IP и UDP (порт запросов)
- 8077 TCP/IP (порт WebAdmin)
Также не забудьте настроить разные порты для Steam (20560 UDP/IP для первого сервера, 20561 для второго и т.д.).
Важные замечания
- Убедитесь, что все порты уникальны для каждого сервера
- Проверьте, что порты не заняты другими приложениями
- Настройте файрвол и роутер для проброса всех необходимых портов
- Каждый сервер должен иметь свою уникальную конфигурацию
- Не ставьте второму серверу игровой порт
7717: его уже занимает первый сервер как порт GameSpy, и второй сервер из-за этого просто выключается. В теме «Доп.нформация» (форум killingfloor.ru) для второго сервера предложили набор со сдвигом +100:7807UDP (игра),7808UDP (запросы),7817UDP (GameSpy),28952TCP и UDP (мастер-сервер),20660UDP (Steam).
Несколько серверов и клиент на одном ПК: ошибка Q_UTF16ToUTF8
По темам форума killingfloor.ru (2012).
- Ошибка. При смене карты сервер выдаёт окно «Точка входа в процедуру
Q_UTF16ToUTF8не найдена в библиотеке DLLvstdlib_s.dll», и пока окно не закрыть, карта не сменится (тема «смена карты»). По словам denfil777, так бывает, если клиент и сервер или две копии сервера запущены на одной машине под одним пользователем Windows; после запуска сервера под другой учётной записью ошибка у него пропала. Самому автору темы помог другой совет оттуда же: в файлеKillingFloor.iniв папкеSystemпоменять значенияbUseMapList=иbMapVote=наTrue. - Кодировка KillingFloor.ini. В теме «Точка входа в процедуру» Kkos запускал 3 сервера из одной папки (Windows 7 x64, клиент и сервер Steam). Он связал ошибку (в её тексте есть
UTF16toUTF8) с тем, что пересохранилKillingFloor.iniиз ANSI в UCS-2, чтобы писать сообщения сервера по-русски: после возврата родной кодировки ошибка пропала, хотя позже появлялась снова. В итоге он написал, что после появления ошибки достаточно закрыть оба сервера и запустить их заново. - Клиент не запускается рядом с сервером. В теме «Проблема с запуском 2 клиентов одновременно» игра не стартовала, пока на том же ПК работал выделенный сервер. Советовали запускать сервер под отдельным пользователем Windows, а игру - под своим, или воспользоваться программой Sandboxie. Rainishе предупредил, что в Sandboxie статистика каждого сервера сохраняется отдельно и об общей базе для нескольких серверов речи не идёт; Proton ответил, что Sandboxie можно настроить так, чтобы сервер мог изменять любые файлы в любой папке.