Привет всем!
Поднял эту тему в надежде получить хоть какую-то крупицу информации по "выделенному серверу" и так же поделится тем, что успел нарыть сам. Уж очень с "муторным" делом связался, оказывается.
Итак, что я знаю сам, для того чтобы замутить свой собственный выделенный сервер. В данном случае знаю только про версию 2.04 Версию 3.0 нигде не нашел, скорее всего, ее еще нет.
Поехали:
Для начала нужно скачать все файлы с этой ссылки:
http://www.3dgamers.com/games/il2sturmovik2/downloads/
в такой последовательности:
il2fb_server1.11.exe
fb_server111_open.zip
server_patch_121.exe
server_patch122_over121.exe
server201_over122.zip
aep_server_patch204.zip
и все это, разумеется, в той же последовательности распаковать в один и тот же каталог. У меня он так и называется " IL2 FB Dedicated Server". Прилагающийся к серверу файл ReadMe.txt читаем с оговоркой на то, что сервер можно и нужно запускать не так, как там написано, (что меня с самого начало очень здорово сбило с толку и разозлило). Короче, совсем не читаем раздел файла про то, как запускать сервер. Это было написано для самых ранних версий.
Далее залезаем в файл server.cmd и пишем буквально следующее:
difficulty SeparateEStart 0
difficulty ComplexEManagement 0
difficulty EngineOverheat 1
difficulty TorqueGyroEffects 1
difficulty FlutterEffect 1
difficulty WindTurbulence 1
difficulty StallsSpins 1
difficulty Vulnerability 1
difficulty BlackoutsRedouts 1
difficulty RealisticGunnery 1
difficulty LimitedAmmo 1
difficulty LimitedFuel 1
difficulty CockpitAlwaysOn 0
difficulty NoOutsideViews 0
difficulty HeadShake 1
difficulty NoIcons 0
difficulty NoPadlock 0
difficulty Clouds 1
difficulty NoInstantSuccess 1
difficulty TakeoffLanding 1
difficulty RealisticLandings 1
difficulty NoMapIcons 0
difficulty NoMinimapPath 0
difficulty NoSpeedBar 0
mission LOAD net/dogfight/ 4/01_DF_mount.mis BEGIN
f gc.cmd
По сути, как это видно на глаз, в этом файле мы заранее выставляем настройки сложности, и какую карту загружать для сервера. Обращаем внимание на пробелы в указанном пути. Есть там еще всякие опции в этом файле, (для настроек маркеров и прочее, но в этом я уже ни в зуб ногой, поэтому просто выкинул, дабы не забивать себе голову). Потом залезаем в файл confs.ini и прописываем это:
[NET]
speed=5000 (можно изменить на 8000 для 28-32 игроков)
localPort=21000 (порт по умолчанию)
SkinDownload=1 (загружать или нет скины самолетов)
serverName=Only_for_Tula (название сервера)
Если нужно управлять сервером удаленно через консоль, то пишем еще и это:
[Console]
IP=20000 (порт через который консоль полезет на ваш комп. Протокол TCP)
IPS=IP-адрес (от имени которого вы полезете управлять сервером)
Усе, запускаем сервер на машине, которая смотрит в интернет файлом il2server.exe Должно выскочить "досовское" окно, в котором через какое-то время, (подчеркиваю - не сразу), должно появиться буквально следующее:
IL2 FB dedicated server v2.04
Sound: Native library (build 1.1, target - standard) loaded.
RTS Version 2.1
Core Version 2.0
1>difficulty SeparateEStart 0
1>difficulty ComplexEManagement 0
1>difficulty EngineOverheat 1
1>difficulty TorqueGyroEffects 1
1>difficulty FlutterEffect 1
1>difficulty WindTurbulence 1
1>difficulty StallsSpins 1
1>difficulty Vulnerability 1
1>difficulty BlackoutsRedouts 1
1>difficulty RealisticGunnery 1
1>difficulty LimitedAmmo 1
1>difficulty LimitedFuel 1
1>difficulty CockpitAlwaysOn 0
1>difficulty NoOutsideViews 0
1>difficulty HeadShake 1
1>difficulty NoIcons 0
1>difficulty NoPadlock 0
1>difficulty Clouds 1
1>difficulty NoInstantSuccess 1
1>difficulty TakeoffLanding 1
1>difficulty RealisticLandings 1
1>difficulty NoMapIcons 0
1>difficulty NoMinimapPath 0
1>difficulty NoSpeedBar 0
1>mission LOAD net/dogfight/ 4/01_DF_mount.mis BEGIN
Loading mission net/dogfight/ 4/01_DF_mount.mis...
Load bridges
Load static objects
Mission: net/dogfight/ 4/01_DF_mount.mis is Playing
1>f gc.cmd
>GC
Memory: total(6946816) free(689344)
>GC
Memory: total(6946816) free(740824)
>GC
Memory: total(6946816) free(740408)
>timeout 3600000 f gc.cmd
31>
...если таких надписей нет, то значит что-то не так. Хотя все должно пахать без проблем. Начиная с этого момента сервер запущен и начал работать. Подключиться к этому серверу с той же машины нельзя. Вместе, игра и сервер, не работают (к сожалению).
Теперь тонкости.
Что нужно сделать, чтобы зарегистрировать выделенный сервер в HyperLobby? Для этого нужно, всего лишь, файл выделенного сервера il2server.exe переименовать в il2fb.exe, а в HyperLobby назначить новый путь к этому переименованному экзешнику. Для этого делаем "дисконнект" в HyperLobby и удерживая клавиши Ctrl+Shift нажимаем кнопку "Connect" в HyperLobby. В этот момент прога будет готова по новой искать экзешник il2fb.exe Указываем ей новый путь, (не к игре, а к нашему выделенному серверу). Дальше создаем сервер в HyperLobby обычным образом. Только после создания сервера запустится не игра, а наш выделенный сервер, (т.е., наше "досовское" окошко).
Управление сервером через консоль, (скажем из дома), можно делать через утилиту il2sconsole.exe. Для этого, как я говорил выше, нужно в файл confs.ini прописать это:
[Console]
IP=20000 (порт через который консоль полезет на ваш комп, протокол TCP)
IPS= IP-адрес (от имени которого вы полезете управлять сервером)
То есть, тем самым, мы говорим серверу, что он может управляться через консоль удаленно через указанный в инишнике IP-адрес, (внешний адрес компа с которого вы полезете на свой игровойй сервер, скажем это будет IP-адрес вашего домашнего компа, или компа из вашей локальной сети), и указанный порт, протокол TCP). С сервером все. Прописали инишник, запустили сервер и забыли про него. Идем домой. Открываем файл confс.ini (не путать, это уже не confs.ini) и в секции:
[Console]
IP=20000
убеждаемся, что там прописан тот же порт, что и в файле confs.ini на сервере. В нашем случае это порт "20000". Далее делаем ярлык в для файла il2sconsole.exe В свойствах ярлыка пишем параметр - IP-адрес нашего выделенного сервера, пример:
"C:\Games\IL2 FB Dedicated Server\il2wconsole.exe" 212.12.11.34
Запускаем консоль. В запустившемся "досовском" окне должно быть это:
IL2 remote console
For end console enter 'quit'
Type: Local server
Name: Only_for_Tula
Description:
32>
Все. Можно вводить команды и управлять сервером удаленно. Список команд можно увидеть введя "знак вопроса" или слово help. Так же, в этой консоли, будет отображаться в реальном времени битва красных и синих, статистика игры и чат игроков. Правда чат игроков будет в кракозяблах. Не пугайтесь! Лог файл на самом сервере будет писаться русскими буквами. Так что, всегда можно будет прочитать ход сражения, (что я с удовольствием и делаю, если не было возможности полетать самому).
А вот команды консоли, (или самого сервера), в которых я хоть что-то понял:
chat Privet vsem!!! ALL - на сервер уйдет ваше сообщение от имени сервера. Писать только латиницей.
exit - полностью остановить и выгрузить сервер
help или ? - ну с этим ясно
kick SlavikSG - кикнуть юзера по его имени
kick# 4 - кикнуть юзера по его порядковому номеру в игре. (Как это показывает клавиша "S")
mission LOAD net/dogfight/ 4/01_DF_mount.mis BEGIN - загрузить новую карту
С остальными командами не разбирался, а нормального русского описания нигде так и не смог найти. То же самое и с "инишниками" самого сервера. Очень скудно про это все написано, очень коротко, все по английски и мне почти ни о чем не говорит. Хоть методом "тыка" все обтыкивай. А учитывая, что игру и сервер на одном компе не запустишь, то такое "тыкание" сводится к одному сплошному гимору. Не уверен, что все там так существенно важно и нужно, но все же...
Мой вопрос номер один, (который уже выше задавали): Как изменить текущее время на выделенном сервере не перегружая карту? Знаю, как это сделать в обычном игровом сервере - нажимаем Shift+Tab, вводим команду "tod 11.30" и время на сервере меняется. Но как это сделать на выделенном сервере?! В списке команд сервера или консоли именно этой команды нет. К слову сказать, был немного удивлен. От "выделенного сервера" ожидал гораздо большей гибкости, чем от игрового, а в итоге получается наоборот. Приведенный выше пример не пашет. В файл server.cmd я этот пример, правда, не прописывал. Просто в серваке или в консоли набирал команду "timeout 1800000 tod 23.00" и через указанное количество миллисекунд (1800000) получал ошибку. Просто ввод команды tod 23.00 так же приводит к ошибке. Что я не так делаю?
P.S. Меня могут спросить, почему я связался с этим делом? Отвечу. Потому, что мой рабочий комп, где стоял сервак на "основе игры", просто задыхался от "такого" сервака. Дохлый целерон на 630мгц. Что с него можно взять?! Памяти жралось немерино. Загрузка проца почти под сто процентов, (даже в свернутом виде). Плюс - почти невозможно им управлять удаленно. А сейчас - просто сказка! Сервак запущен все 24 часа в сутки и не напрягает совсем.