Создание и настройка выделенного сервера

Итак, начнём с подготовки.

I.Подготовка

Прежде всего необходимо убедиться, сможем ли мы запустить сервер и если сможем, то будет ли всё как надо.

1. Вступление

Начнём с того, что нужно убедиться в используемом оборудовании. С какого оборудования вы пользуетесь интернетом? Это ваша сетевая плата на компьютере? или, быть может, вы заходите в интернет через домашнюю сеть? (то есть на пути выхода в интернет у вас стоит маршрутизатор) В первом случае всё просто, поэтому сразу переходите к третьему пункту. Во втором же случае возможно придётся настроить ваш маршрутизатор. Ну а сейчас остаётся вопрос в скорости вашего интернет-соединения. Для нормальной игры без лагов у игроков и с малым пингом (если что, пинг в основном зависит от расстояния) потребуется немалая скорость интернета. Ну я бы сказал, что если скорость передачи часто находится в этом диапазоне (например обычная скачка чего-либо из интернета) 250-600 КБ/с, то её будет уже достаточно, но, конечно, чем она больше, тем игрокам проще.

2. Настройка маршрутизатора

В случае выхода в интернет через маршрутизатор (как правило любого вида) возникает проблема с пробросом портов (их доступность извне). По умолчанию сервер UT2004 использует порт 7777, но если вы настраиваете под свой порт, то нужно открыть на роутере именно его.

Заранее скажу, что после запуска сервера проверить доступен он или нет (по открытому порту) можно на этом сервисе

Для настройки проброса портов следует открыть интерфейс 192.168.1.1 и найти там соответствующую функцию, после чего добавить необходимый порт. Узнать свой IP-адрес в формате 192.168.1.###, где ### — число от 2 до 255, можно в командной строке. Для этого вызовите её и напишите ipconfig или ipconfig /all.

Примеры настроек. Для обладателей маршрутизатора ASUS: данная функция находится на этой странице, необходимо лишь добавить в поле порт и сохранить настройку

Для маршрутизатора GPON необходимо настроить так:


Вопрос: Я настроил как надо, проверил, но всёравно порт не доступен извне.
Ответ: Если проблема не в этом, тогда кроме проброса порта может потребоваться ещё кое-что, например отключение брандмауэра. 

3. Брандмауэр и его настройка

Возможно, что помимо проброса портов для выхода в интернет потребуется настройка самой операционной системы. В ОС Windows присутствет брандмауэр. Как правило часто именно он может запрещать приложениям использовать интернет.
Обычно при первом запуске игры и подключении к интернету выскочит окно с вопросом "что-же делать?" для приложения UT2004.exe. Или ему дать доступ в интернет, или заблокировать, но такое может не всегда произойти. Что же делать тогда? Есть два варианта: либо дать доступ в интернет этому приложению, либо отключить его совсем, что чаще всего делает большинство народа.
Для этого откройте свои сетевые подключения (примечание: у вас в подключениях будет дописано “, Защищено брандмауэром”)

и там выберите настройки брандмауэра. В настройках добавьте исключение для UT2004.exe:

Либо отключите следущим образом:

4. Адрес вашего компьютера. IP-адрес

Эта вещь очень важна и необходима для хостинга своего сервера. Необходимо убедиться какого типа ваш адрес: статический или динамический (периодически меняющийся). Если до этого вы не проводили такую проверку, то для неё вам потребуется время. Для начала узнайте ваш текуюий адрес. К примеру на этом сервисе. Немного погодя, обычно в течении суток или трёх дней, замерьте ваш адрес ещёраз и сравните: остался ли он таким, каким был первый раз, или изменился. Как правило этот адрес меняется в течении каждой новой сессии или в полуночь в течении каждого дня или в течении раза в несколько дней.
Если у вас он не меняется, то всё в порядке, переходите далее к пункту 6.

5. Решение проблемы с динамическими адресами

В интернете есть и такие полезные вещи, которые вас могут избавить от меняющегося адреса. Очень известным сервисом является http://www.noip.com/. Этот сервис преобразует ваш адрес в интернет-домен на подобии example.noip.com, что уже не зависит от типа вашего IP-адреса, вы будете всегда доступны по этому адресу, ну а на примере ваш сервер будет располагаться по адресу ut2004://example.noip.com:7777. Инструкцию по настройке в этой статье я описывать не буду.

6. IP, порт и провайдер

Может возникнуть такая сложность, когда всё уже настроено, вроде-бы IP есть, но доступа к нему нет. Наверняка проблема будет стоять за портом, но что и почему его блокирует можно не догадаться. В этом случае стоит заглянуть на сайт к провайдеру и поискать, указано ли где-то в правилах, что либо доступ к IP вообще запрещён, либо с портами может быть какая-то загвоздка. Так вот, я нашёл и такой случай:

Провайдеры Infolink'а на своём сайте написали сразу, что блокируют многие основные порты. Так что если вы уверены, что всё правильно у вас, тогда почитайте договор или прямо на сайте поищите подобное правило. Если его нет, то обращайтесь в техподдержку с вопросом “о невозможности подключения к компьютеру извне”.

7. Ещё немного о компьютере...

Последнее, наверное, что стоит дополнить, это требовательность к ресурсом для сервера. Сразу скажу, что multithreading (многопоточность) в UT2004 не поддерживается. Для запуска сервера не потребуется очень мощный компьютер. Одноядерного Core i7 будет БОЛЕЕ чем достаточно. Но так-же проблем может не быть и при такой раскладке:
Процессор x86 Family 15 Model 3 Stepping 4 GenuineIntel ~2999 МГц, ОЗУ 2304,00 МБ

II.Настройка сервера

Следущим этапом уже можно перейти непосредственно к самой игре и начать готовить сервер к своему дебюту , но сначала я хочу рассмотреть пару важных вещей.

1. Предварительные улучшения

Небольшой риторический вопрос: что представляет из себя сервер? что на нём будет использовано?
Я, отвечая на этот вопрос, пришёл к выводу, что на своём сервере я буду использовать нестандартный контент и мне необходимо обеспечить всех его посетителей какой-то удобной и быстрой скачкой. Но вот в чём проблема: в UT стоит ограничение на скорость и со стороны сервера и со стороны клиента (о чём ещё скажется чуть ниже), но можно ли избежать этого?
Ответ очень прост: redirect (перенаправление, переадресация). Редиррект решает все проблемы! И скорость загрузки с редирректа будет не ограничена, она всегда будет стремиться к своему максимуму. Для начала давайте определим: что-же на сервере будет нестандартного? Сколько это будет весить? Какое суммарное количество файлов?
Для больших файлов, размерами с десяток и более мегабайт будет лучше передавать их в сжатом виде, а небольшие файлы можно оставить на передачу со стороны сервера (а не редирректа). Однако, если у вас много мелких файлов, то тогда можно их не упаковывать, но тогда уже все поместить на редиррект.

Выбрать себе сервис, который будет использоваться для редирректа можете сами, но я предлагаю два бесплатных варианта:

а) Dropbox - бесплатный сервис для хостинга любых фалов. От 2х гигобайт до 16 можно получить бесплатно, но за деньги можно молучить до 1 терабайта или более. Дропбокс делится на 2 части: приватная (доступная лишь вам, что было запланировано изначально, как сервис для хранения своих документов) и публичная (существует папка Public, на файлы в которой можно получить 2 ссылки: в структурном виде: http://dl.dropbox.com/u/id/file.extension или http://dl.dropbox.com/u/id/folder/file.extension (если в подпапке), где постоянными является ваш ид, а изменяемыми файлы и папки. Такая ссылка нам и подходит, например http://dl.dropbox.com/u/1234/UT2004/DM-Rankin.ut2; есть ещё зашифрованные: https://www.dropbox.com/sh/hash1/hash2, которые представляют собой оформленные страницы. В нашем случае такие ссылки не подходят).

Например картинки в этой статье ссылаются на мои файлы на Дропбоксе
б) HFS — Http File Server. Это очень мощная вещь и лично на этом варианте я и остановился. Данная программа открыват на вашем компьютере вебсервер, к нему можно так-же подключиться. По умолчанию страницы на нём отображают содержимое "некой папки" (см. скриншоты)

В целом всё очень красиво, компактно и очень тонко настраивается. К тому-же нет ничего лишнего.

в) UT files — большой файловый сервер, который хранит и предоставляет файлы для UT, UT2003, UT2004 и UT3. Им пользуется большое количество людей и там большое количество файлов. Конечно же, основной редиррект общий (для UT2004 это http://uz2.ut-files.com/). Для него нужно зарегистрироваться, ну а после можно узнать данные для доступа к FTP. Однако также есть и приватный хостинг, но он будет стоить денег (а именно за $15 в месяц вам будет выделено 10 ГБ и 80 ГБ на траффик).
Теперь о настройке: редиррект представляет из себя папку, которая содержит в себе все файлы используемые сервером. Они хранятся либо в оригинальном виде, либо в сжатом (.uz2). Примечание: для сжатия можно использовать эту программу или более универсальную Unreal Dependencies.

Откроем UT2004.ini и найдём там:

 [Engine.Engine] NetworkDevice=IpDrv.TcpNetDriver  [IpDrv.TcpNetDriver] AllowDownloads=True MaxClientRate=15000 MaxInternetClientRate=10000 DownloadManagers=IpDrv.HTTPDownload DownloadManagers=Engine.ChannelDownload  [IpDrv.HTTPDownload] RedirectToURL= ProxyServerHost= ProxyServerPort=1234 UseCompression=True

Значения могут отличаться, но строки такие должны быть. Важно вот что. В первой секции указано сетевое устройство, без которого никуда. Во второй секции указано то, что загрузка разрешена. Для сервера и клиента указана некая скорость (можно менять и даже лучше хоть как-то повысить, но все проблемы это не решит. Наконец там написано то, что Первым по приоритету менеджером загрузки будет редиррект. Ну а редиррект содержит все эти ненастроенные параметры.
Всё, что осталось, это поменять значения, а именно:

 [IpDrv.HTTPDownload] RedirectToURL=http://site.com/UT2004/ ProxyServerHost= ProxyServerPort=7778 UseCompression=True или False 

1 – ссылка на редиррект, либо дропбокс, либо ещё что-то. Для UT Files это будет “http://uz.ut-files.com/”; 2 – как правило может не пригодится, настраивается в том случае, если у редирректа стоит прокси; 3 – это порт редирректа, его настроить обязательно! Для UT Files это 3128; 4 – если True, то клиенты будут искать только сжатые файлы (.uz2), иначе только несжатые. UT Files хранит только сжатые файлы!
Примечание: я так и не смог попробовать сделать либо 2 редирректа (как зеркала), либо использование и сжатого и несжатого фалов. К сожалению такое простыми настройками не сделать, но настроить один редиррект вполне возможно.

2. Настройка UT2004.ini

И вот мы наконец переходим к основной настройке. Что нам потребуется там сделать? А потребуется:

  1. Обязательно прописать серверпакаджи (Server Packages – файлы, которые подключены к игре. В основном это мутаторы) и/или акторы (Server Actors)
  2. Настроить свойства сервера

Итак, как правило к этому пункту всегда приходится возвращаться, нам нужно собрать все ресурсы, которые мы собираемся использовать. Сразу начну с примера.

Задача: Сделать сервер с режимом игры Onslaught, сделать для него список карт из карт, которые по размеру небольшие и подходят для 6 игроков, добавить мутаторы для управления админом и мутатор вида от 3 лица, дополнительно настроить DM-режим и запись каждого матча на демку.
Решение: Выберем карты, которые нам подходят, например я собрал 5 карт: ONS-3on3-Colossal.ut2, ONS-B3WintersHollow.ut2, ONS-Primeval.ut2, ONS-TCMP-DG-Meadowland.ut2 и ONS-Urban.ut2. Из них стандартные Primeval и Urban. Они будут у нас первые в списке.
Мутатор для админа можно взять "Adminplus", а удобная камера от 3 вида есть в мутаторе AerialViewINI. Запись демок делается разными способами, но я рассмотрю самый хороший, который записывает демку для всей карты в целом, а не от игрока. DM-режим подключим позже.

Теперь ищем в файле секцию [Engine.GameEngine] и добавляем в конец файла:

 ServerPackages=AdminPlus_v14 ServerPackages=AerialViewINI

Поясню: вот мы выбрали мутаторы, мы находим их файлы в папке System, в нашем случае ими были AdminPlus_v14.u и AerialViewINI.u
В серверпакаджи не добавляется расширение файлов, поэтому запись такая.
Теперь добавляем наш актор для записи демок: ServerActors=DemoRecord42.DemoRecord
То есть нет отличий в том, что актор это или пакадж, всё записывается в этот раздел, только запись у актора немного другая (ссылается ещё на подкласс).

3. Настройка сервера из игры

Тут я просто скажу, что некоторые настройки проще понять визуально и настроить на месте. Запустите игру и нажмите на Host game.

Продолжая делать пример, буду говорить то, что нужно для этого настроить.

  1. Выбираем режим Onslaught
  2. В новой вкладке выбираем Maplist configuration и в появившимся окне жмём на кнопку New и пишем любое название, например ONSServer. Далее очищаем список карт справа и добавляем те самые 5 карт. Потом выбираем, к примеру, ONS-Urban и её поднимаем в вверх списка. Закрываем окно. 3. Переходим на вкладку настроек игры и настраиваем так, как нам угодно (объяснять настройку этой вкладки не стану)
  3. Переходим на вкладку мутаторов и добавляем те 2 мутатора
  4. Открываем вкладку настроек сервера. Вот тут немного перенастроим.

Во первых для домашнего сервера я бы порекомендовал убрать проверку игры на лицензионный ключ, для этого ставим галочку на пункте Ignore UTAN Bans.
Желательно также заполнить поля Admin Name и Admin Password.

Потом пирем имя сервера в соответствующем поле и возможно MOTD для него (приветствие).
Осталось настроить две важных вещи. Первая это проверить, что не стоит галочка на пункте Lan Server (прикреплена внизу), иначе по этой причине сервер не будет виден извне. Ну второе это голосование.

По скольку у нас список карт, да и мы прикрепили DM-режим, то мы включаем голосование, то есть выбираем пункт и ставим галочку около Enable Map Voting. Теперь открываем кнопку Edit и в новом окне добавляем новый пункт, даём ему название, к примеру DefaultONS или просто ONS, далее Game Class=Onslaught и жмём на галочку возле Default. Теперь если оставить так, как есть, у нас будет проблема при смене карт, а если точнее: мутаторы не будут подключены, для этого в списке ниже выбираем нам нужные и жмём по ним 1 раз (они выделятся).
Последним штрихом здесь будет добавление режима DM. Просто повторите эту-же операцию, но не ставьте режим по умолчанию.

III.Автоматизация сервера

1. Автоматизация сервера

Тоже его неотъемлимая часть. Запуская в первый раз стоит пройти всё то, что описано выше, НО когда дело доходит до многократных запусках сервера и очень частой смене конфигураций, то стоит этот процесс автоматизировать, используя файлы для запуска.
Для начала нам нужно сохранить уже настроенный UT2004.ini в отдельный файл, который не зависел бы от изменений ового и сохранял в себе необходимые настройки. Просто переименуйте его, например в Server.ini. (Примечание: это уже новый пример, он не связан с примером во второй части статьи)
Создайте ещё 1 файл и переименуйте его в Server.bat.
В текстовом редакторе в него сначала впишите (а потом разберём) следущий код:

 @echo off SET BINDIR=%~dp0 CD /D "%BINDIR%" :10 ucc server DM-Deck17?Game=XGame.xTeamGame?Name=Test?Class=Engine.Pawn?Character=Damarus?team=1?Sex=M?Voice=UnusedVoices.UnusedAlienMaleVoice?BonusVehicles=false?Mutator=AdminPlus_v14.MutAdminPlus,XWeapons.MutNoSuperWeapon,UnlaggedInstaGib.MutUnlaggedInstaGib,utcompv17a.MutUTComp?RedTeamSymbol=TeamSymbols_UT2004.Team.newbloodfist?BlueTeamSymbol=TeamSymbols_UT2003.Teams.BloodFists?bAutoNumBots=False?NumBots=0?AdminName=Test?AdminPassword=pass?AllowBehindView=True?FF=0.75?MaxSpectators=512?QuickStart=True?TimeLimit=20?WeaponStay=False?CamperAlarm=True?MaxLives=0?GoalScore=0?MinPlayers=1?MaxPlayers=2?Translocator=False?BalanceTeams=True?ForceRespawn=False?PlayersMustBeReady=True?Tournament=1?GameStats=False?GameSpeed=1.00?Difficulty=6 ini=Server.ini log=Server.log port=7777 copy Server.log Servercrash.log goto 10 PAUSE

Итак. Этот файл содержит все необходимые преднастройки. Всё остальное было настроено в Server.ini, а тут описание запуска сервера.
Всё, что до DM... — программный код, а DM-Deck17 — это карта, которая будет запущена при старте сервера.
Далее

  • ?Game=XGame.xTeamGame — это тип игры, но в полном названии (все типы смотрите в UT2004.ini), то есть Deathmatch.
  • ?Name=Test — имя игрока, который заходит локально. Данный параметр можно опустить, темболее в том случае, если сервер запускается не в домашних условиях, а на удалённой машине. Но я рассматриваю полный набор параметров.
  • ?Class=Engine.Pawn?Character=Damarus?team=1?Sex=M — тип игрока, имя модели, команда, в которую он заходит по умолчанию(0 - красные, 1 - синие) и его пол.
  • ?Voice=UnusedVoices.UnusedAlienMaleVoice — голос игрока, когда он использует Таунты (в данном случае это стандартный, но скрытый войспак).
  • ?BonusVehicles=false — данный параметр необходим для всех стандартных ONS карт. По скольку с бонуспаком появилось нове оружие, то на стандартных картах была произведена замена на оное. Вот этот параметр и определяет с какой техникой запустить карту.
  • ?Mutator=... — список мутаторов через запятую, в данном примере их 4 штуки
  • ?RedTeamSymbol=TeamSymbols_UT2004.Team.newbloodfist?BlueTeamSymbol=TeamSymbols_UT2003.Teams.BloodFists — указывает на то, какие картинки будут использоваться в качестве логотипов команд
  • ?bAutoNumBots=False?NumBots=0 — отключает ботов которые производили бы баланс в командах и второе это их количество (например, если стоит 6, то при заходе двух игроков 4 бота будут играть, занимая это количество, однако если кто придёт в игру, то они умрут)
  • ?AdminName=Test?AdminPassword=pass — имя и логин админа, которое мы ранее указывали в игре
  • ?AllowBehindView=True — разрешает вид от 3 лица
  • ?FF=0.75 — урон союзникам. обычно его отключают, то я ставлю такое значение
  • ?MaxSpectators=512 — количество возможных зрителей на сервере
  • ?QuickStart=True — разрешает сразу же начать отсчёт для начала матча не дожидаясь других игроков
  • ?TimeLimit=20 — лимит времени матча, в минутах
  • ?WeaponStay=False — если False, то когда игрок берёт оружие — оно изчезает, но появляется спустя своё время восстановления, если True, то не изчезает и его сразу может взять хоть все 32 человека
  • ?CamperAlarm=True — если игрок остановился надолго, то ему даётся предупреждение.
  • ?MaxLives=0 — указывает, ограничено ли число возрождений или нет (параметр сделан специально для режима Last Man Standing)
  • ?GoalScore=0 — ещё одно ограничение, в данном случае до скольки очкнов? (0=неограниченно, то есть остаётся 2 параметра: MaxLives и TimeLimit, которые уже и определяют конец матча)
  • ?MinPlayers=1?MaxPlayers=2 — количество игроков для игры. первый параметр если равен 0 или 1, то его можно не писать, но если, к примеру для старта нужно 4 игрока, тогда ставим в то поле число 4
  • ?Translocator=False — включает или отключает выдачу транслокатора при возрождении
  • ?BalanceTeams=True — в случае неравных команд перекидывает игроков из 1 команды в другую
  • ?ForceRespawn=False — если включено, то возрождение будет принудительным
  • ?PlayersMustBeReady=True — дополняет ещё 1 параметр перед началом матча. все игроки должны нажать готов, что-бы начать матч и возродиться одновременно. для дуэлей это важный параметр
  • ?Tournament=1 — режим игры турнирный или нет
  • ?GameStats=False — если True, то статистика будет отправляться на "мастер сервер"
  • ?GameSpeed=1.00 — скорость игры
  • ?Difficulty=6 — уровень интеллекта ботов. от 1 до 7, но может быть дробное значение

...

  • ini=Server.ini — тут мы используем наш нестандартный файл настройки
  • log=Server.log — файл, в котором записывается весь журнал о зпроисходящих событиях на сервере
  • port=7777 — наш порт, о котором я ещё говорил в самом начале
  • К этим параметрам можно добавить и другие, например lanplay
  • copy Server.log Servercrash.log — в случае аварийного завершения в этот файл запишется информация о падении

2. Ещё больше запрограммированных настроек[осн. статья]

Порою и этого может быть недостаточно. Ну что-же, можно и по-другому сделать. Я думаю у вас уже появилась идея? На самом деле нам просто необходимо собрать несколько конфигураций в одном файле. Однако запускать уже придётся через командную строку или ярлыки (но я считаю это не вариант, постольку поскольку с тем же успехом можно было бы хранить все настройки в каждом файле по отдельности). Но и тут я вам подскажу небольшой секрет, котороый может упростить вам жизнь.

БОНУС: для запуска какого-то определённого файла из командной строки нам, как правило, необходимо перейти в каталог, где расположен этот самый файл командой CD, НО в Windows есть такая замечательная переменная Path, в которой хранятся пути некоторых каталогов, в основном системных, каталоги Java и ещё чего-нибуть. Но нам ничего не мешает перенастроить эту переменную и добавить туда наш каталог с UT. Для этого нажмите Пуск → ПКМ на "Моём компьютере" и его Свойства → (в Windows 7) Дополнительные параметры системы → в появившемся окне открываем вкладку "Дополнительно" → Переменные среды → в нижней форме найдите строку Path и по кнопке изменить у вас откроется небольшое окошко, в него, отделяя точкой с запятой(;), впишите свой путь к папке \UT2004\System и потом везде жмите ОК, что-бы применить настройки.

Так вот, давайте сделаем ещё 1 файл и переименуем его в utsrv.bat и соответствующий ему ini-файл. Теперь откроем его и впишем (объясню после кода):

 @echo off  if "%2" equ "ONS" goto ONS if "%2" equ "DM" goto DM if "%2" equ "Special" goto DM2  :ONS set Map=ONS-Urban.ut2 set Mutator=XWeapons.MutNoSuperWeapon,utcompv16a.MutUTComp,TA100.MutTalkingIcon set Game=Onslaught.ONSOnslaughtGame set TimeLimit=30 set MinPlayers=2 set MaxPlayers=16 set MaxSpectators=512 set WeaponStay=True set MaxLives=0 set GoalScore=0 set Translocator=True set ForceRespawn=False set PlayersMustBeReady=True set Tournament=1 set GameSpeed=1.00 set NumBots=0 set Difficulty=6 set FriendlyFireScale=0 goto Start  :DM set Map=DM-Deck17.ut2 set Mutator=XWeapons.MutNoSuperWeapon,XGame.MutNoAdrenaline,utcompv16a.MutUTComp,TA100.MutTalkingIcon set Game=XGame.xDeathMatch set TimeLimit=15 set MinPlayers=2 set MaxPlayers=2 set MaxSpectators=512 set WeaponStay=False set MaxLives=0 set GoalScore=0 set Translocator=False set ForceRespawn=True set PlayersMustBeReady=True set Tournament=1 set GameSpeed=1.00 set NumBots=1 set Difficulty=6 set FriendlyFireScale=0 goto Start :DM2 set Map=DM-MyTestMap.ut2 set Mutator=XWeapons.MutNoSuperWeapon,utcompv16a.MutUTComp,TA100.MutTalkingIcon set Game=XGame.xDeathMatch set TimeLimit=20 set MinPlayers=2 set MaxPlayers=4 set MaxSpectators=2 set weaponstay=False set MaxLives=0 set GoalScore=0 set Translocator=False set ForceRespawn=True set PlayersMustBeReady=True set Tournament=1 set GameSpeed=1.00 set NumBots=0 set Difficulty=6 set FriendlyFireScale=100 goto Start  :Start if "%1" equ "" (set Servers=1) else (set Servers=%1) if %Servers% gtr 9 (set Servers=1) else (if %Servers% equ 0 (set Servers=1)) title Start %Servers% server(s) © Agressor AKA zd.Insider for /l %%A in (1, 1, %Servers%) do start "UT2004-Server" #"%%A" Game:"%Game%" Players:"%MaxPlayers%" /high ucc server %Map%?Game=%Game%?mutator=%Mutator%?MaxLives=%MaxLives%?GoalScore=%GoalScore%?TimeLimit=%TimeLimit%?MinPlayers=%MinPlayers%?MaxPlayers=%MaxPlayers%?MaxSpectators=%MaxSpectators%?Translocator=%Translocator%?WeaponStay=%WeaponStay%?FriendlyFireScale=%FriendlyFireScale%?ForceRespawn=%ForceRespawn%?PlayersMustBeReady=%PlayersMustBeReady%?Tournament=%Tournament%?GameSpeed=%GameSpeed%?NumBots=%NumBots%?Difficulty=6?port=777%%A -ini=utsrv.ini -log=..\UserLogs\utsrv_%%A.log 

Хоть это и громоздко, но всё просто. Запускать файл нужно следущим образом: utsrv.cmd [Количество серверов] [Тип игры]
То, что в первой квадратной скобке это %1, а второе это %2. “if "%2" equ "ONS" goto ONS” эта строка спрашивает второе значение, где мы писали режим игры. Можно вообще по сути вводить любое значение, потому что переходя далее (goto ONS) у нас прописывались новые переменные. “set Map=ONS-Urban.ut2” — одна из переменных.

  • if "%1" equ "" (set Servers=1) else (set Servers=%1)” тут у нас спрашивается “Если значение 1 = "пусто", то количество серверов 1, иначе количество серверов, которое мы указали”
  • if %Servers% gtr 9 (set Servers=1) else (if %Servers% equ 0 (set Servers=1))” а тут “Если "серверов" (уже новая переменная из предыдущей строки) больше 9, то переназначить на 1, иначе если серверов ровно ноль, то установить значение на 1”
  • for — цикл; /l — Loop; “%%A” переменная в этом цикле; “1, 1, %Servers%” первое это начальное число (с одного), второе это шаг, а третье это конечное число (то есть цикл с 1 до "n-ного сервера")
  • После do идёт команда, то есть start, далее идёт перечисление некоторых параметров и установка приоритета сервера “/high” (на самом деле очень важная вещь. эта команда сообщает о том, что если на компьютере будет большая нагрузка на ЦП, то все остальные процессы будут выполняться второстепенно, поскольку имеют приоритет normal)
  • ucc server” а это уже то-же самое, что и в моём случае. Просто все переменные теперь присваиваются из того списка выше, который казался громоздким. “port=777%%A” означает, что порты будут 7771, 7772 и т.д., смотря сколько серверов. “-log=..\UserLogs\utsrv_%%A.log” а здесь просто указано, что логи будут храниться на каталог выше (..) в папке UserLogs.

Примеры в командной строке:

  • utserv.cmd 3 ONS (запуск 3х серверов ONS, на портах 7771, 7772 и 7773)
  • utserv.cmd 1 Special (запуск специального сервера на порту 7771)
  • utserv.cmd 10 DM (запуск 1 Deathmatch сервера)
  • utserv.cmd A ONS (запуск 1 ONS сервера)

На этом я подвожу итоги. Я рассмотрел некоторые варианты того, как можно запустить сервер, однако, если досихпор остаются вопросы. Не стесняйтесь — пишите в комментарии или в ЛС, я могу дополнить статью и ответить на ваш вопрос.
Удачного хостинга!

Информация

Автор: JumpJetXCanG

Добавил: XCanG (Другие статьи пользователя)

Дата добавления: 10 Апреля 13, 14:47

Категории: Unreal Tournament 2004 - Руководства

Статистика

16323 просмотра, 8 голосов

25 комментариев

UnShame
UnShame 02 Марта 15
Сделал ее менее вырвиглазной, мог что-то неправильно отредактировать, ибо не читал, так что ксанг проверяй. И ты меня навел на мысль, что нужно выключить хтмл для пользователей и в статьях.
UnShame
UnShame 02 Марта 15
"В целом всё очень красиво, компактно [...]. К тому-же нет ничего лишнего."
Ахахахахаха
UnShame
UnShame 02 Марта 15
ксанг сюда еще и своих шрифтов поназаливал facepalm
UnShame
UnShame 02 Марта 15
о боже эта статья
XCanG
XCanG 24 Ноября 14
Ох. И некоторые моменты всёравно надо будет обновить, а некоторые расписать, а то слишком мало примеров написано и не очень подробно.
XCanG
XCanG 24 Ноября 14
Алекс, в принципе то да, на этапе открытия порта на маршрутизаторе можно прописать все порты, но каждому ли это нужно, во всяком случае кому-то это наоборот и не нужно вовсе.

Но в таком случае если статью представить именно для тех людей, кому это нужно, то в это нужно вообще углубиться и сказать как там на самом деле.

А там порты указываются следующим образом:
На основе выбранного нами порта (7777 или свой) входящие порты будут такими:
Port+0 (Game) / Port+1 (Query) UDP
Port+10 / Port+11 UDP (GameSpy Query)
28902 TCP (Link to Master Server)
WebAdminPort TCP (Port set via ListenPort that your WebAdmin will run on)
Исходящие же будут:
27900 UDP (Link to UT2003 Master Server)
28902 TCP/UDP (Link to Master Server)

Так-же в случае если сервер не определяется извне, но работает в локальной сети (до роутера, 192.168.*.*), то нужно в UT2004.ini в разделе [IpDrv.MasterServerUplink] найти и заменить значение этой строчки ServerBehindNAT=True , а также в разделе [UWeb.WebServer] вписать в строчку ServerName=x.x.x.x свой внешний IP-адрес.

Да, наверное я добавлю эту информацию в статью. Для полноты информации или если вдруг кому-нибуть понадобится.
Алекс
Алекс 23 Ноября 14
Полный список портов используемых UT2004:
7777 UDP/IP (Game Port)
7778 UDP/IP (Query Port)
7787 UDP/IP (GameSpy Query Port)
28902 TCP/IP (Allows your Server to Connect to the UT2004 Master Server Browser)
Redex
Redex 11 Апреля 14
Да при чём тут обязательно максимум, я это и не оспаривал, скорость отдачи без редиректа у меня и так хорошая и ничего не лагает, поэтому и говорю, что редирект не обязателен...
volfgunus
volfgunus 03 Сентября 13
af
Статья может и толковая, но оформление...
volfgunus
volfgunus 08 Августа 13
Нет. Нельзя. Он впихнёт туда что нибудь, что накроет эту страницу.
Sin
Sin 08 Августа 13
Ну вот я и пишу. Хороший позыв и идея (вполне возможно, новичкам-виндузятникам гайд может быть полезен для старта) существенно испорчены не очень удачным оформление. Следовало бы писать по частям, продумав оформление.
volfgunus
volfgunus 05 Августа 13
Скажи это ксангу в лицо notokay
Sin
Sin 05 Августа 13
Хороший пример того, как не стоит оформлять статью. yaoming
volfgunus
volfgunus 05 Августа 13
купи бритву
Sin
Sin 05 Августа 13
Всплакнул.
XCanG
XCanG 04 Мая 13
дополнил статью (I.6)
XCanG
XCanG 10 Апреля 13
Если что-то ещё будет, то я её дополню trollface
Rasiel
Rasiel 10 Апреля 13
нет-нет, он просто зарос бородой, пока читал это
UnShame
UnShame 10 Апреля 13
самоубийство не выход
XCanG
XCanG 10 Апреля 13
увеличил
UnShame
UnShame 10 Апреля 13
увеличь курсивный шрифт, он слишком мелкий
XCanG
XCanG 10 Апреля 13
тьфу, перепутал. щас добавлю. Про редиррект уже написал.

UPD: программа тоже добавлена
пофиксена ширина на Мозилле
XCanG
XCanG 10 Апреля 13
unreal deps не только для ut3? я сомневался и его не стал писать, про редиррект щас допишу и исправлю

если ещё что есть, говори(-те)
UnShame
UnShame 10 Апреля 13
и про uz сжатие, добавь unreal deps
да и не только про сжатие
UnShame
UnShame 10 Апреля 13
не осилил
про редирект - добавь http://news.ut-files.com/redirect/
там надо зарегистрироваться, отписаться на форуме и тебе дадут доступ к ftp редиректу, куда можно грузить файлы