Появилась у меня такое желание поднять сервер ENEMY TERRITORY : QUAKE WARS. Поискал погуглил, ничего толкового не нашел пришлось все самому делать. И вот решил поделиться опытом. Начинаем ......
Установка Подготовка системы Сервер линуксовый, поэтому необходим линукс эмулятор - linux_base-fc.
Если у Вас не установлен linux_base-fc, тогда установим его сейчас.
# cd /usr/ports/emulators/linux_base-fc4/ && make install clean
Добавляем запуск при старте.
# echo "linux_load="yes"">> /boot/loader.conf
# echo "linux_enable="YES"" >> /etc/rc.conf
Ребутимся и проверяем подгрузился ли у нас linux
# kldstat Id Refs Address Size Name 1 12 0xc0400000 31ba68 kernel 2 1 0xc0723000 206c4 linux.ko 3 1 0xc0744000 5dee4 acpi.ko
Все хорошо, модули корректно подгрузились. Для игры создадим пользователя из под которого будем запускать игру например "game".Дистрибутивы Необходимо скачать дистрибутив сервера c сайта AusGamers Pty 1.)Дистрибутив сервера ETQW-server-1.5-full.x86.run 2.)Диск с самой игрой для клиента (WinXP). 2.1)Патч для клиента ETQW-client-1.0-1.5-update.exe Инсталляция Cоздаем в домашнем каталоге директорию
# mkdir /usr/home/game/etqw-server/
Копируем в нее наш сервер
# cp ETQW-server-1.5-full.x86.run /usr/home/game/etqw-server/
В нашем случаи ETQW-server-1.5-full.x86.run и даем права на запуск
# cd /usr/home/game/etqw-server/
# chmod 0755 ETQW-server-1.5-full.x86.run
Запускаем
# ./etqw-server-1.5-full.x86.run
Появляется стандартный соглашение с лицензией : соглашаемся yes Далее будет предложено ввести путь куда мы поставим сервер у меня
/usr/home/game/etqw-server
После нам будет предложенно установить
PunkBuster — стороннее анти-чит приложение, разработанное EvenBalance, Inc для борьбы с использованием читов в сетевых многопользовательских играх.
Жмем галочку и соглашаемся установить PunkBuster и ждем завершения установки.Конфигурация Конфиги Все сервер установлен переходим к конфигурированию. Хочу сказать в этом есть нюанс, файла конфигурации сервера в инсталяторе нет. Есть два варианта создания конфигурационного файлв Первый вариант создаем конфиг сами.
# touch /usr/home/game/etqw-server/base/Config
# vi /usr/home/game/etqw-server/base/Config
Вот пример моего конфига
// Public and contact options set si_adminname "Games Sity" // Название проекта set si_website "http://games-sity.net" // Сайт сервера set si_email "aira@games-sity.net" // mail администратора сервера set si_irc "#ETQW" // канал в mirc // General options set si_name "ET:QW Games Sity" // Название Сервера (отображается в игре) set net_serverPunkbusterEnabled "0" // Анти-чит 0\1 выкл\вкл set net_LANServer "0" // LAN или Internet Server 1\0 set si_maxPlayers "32" // max игроков в игре set si_privateClients "5" // приватные игроки // Passwords set si_needpass "" set g_password "" set g_privatePassword "" set net_serverRemoteConsolePassword "###" // password от консоли администратора // Game options set si_minPlayers "4" // min игроков в игре set si_readyPercent "80" // процент готовности игроков перед стартом set g_warmup "0.5" // время для разминки set g_allowLateJoin "1" // конект во время игры разрешить да\нет 1\0 set g_warmupDamage "1" // стрельба по своим да\нет 1\0 // Voting options set si_disableVoting "0" // голосование да\нет 0\1 set g_votePassPercentage "51%" // процент голосов для рестарта set g_voteWait "2.5" // время между голосованием // Message of the Day (motd) // сообщение клиенту при заходе на сервер max 4 строки set si_motd_1 "" set si_motd_2 "" set si_motd_3 "" set si_motd_4 "" // Bot settings // настройка ботов (не использую не разберался) set bot_enable "0" set bot_minClients "-1" set bot_uiNumGDF "-1" set bot_uiNumStrogg "-1" set bot_balanceCriticalClass "1" set bot_sleepWhenServerEmpty "1" set bot_skill "3" set bot_aimSkill "1" set bot_uiSkill "2" set bot_doObjectives "1" set bot_fakePing "0" set bot_sillyWarmup "0" set bot_useShotguns "0" set bot_useSniperWeapons "1" set bot_useVehicles "1" set bot_knifeOnly "0" set bot_useStrafeJump "0" set bot_useSpawnHosts "1" set bot_useSuicideWhenStuck "1" set bot_useTKRevive "1" set bot_useDeployables "1" // Other options set si_spectators "0" // разрешить зрителей да\нет 0\1 set g_muteSpecs "0" // разрешить чат в игре да\нет 0\1 set g_maxSpectateTime "0" // время нахождения в зрителях (0-бесконечно) set g_kickBanLength "2" // время кик\бан set g_teamSwitchDelay "5" // set si_teamForceBalance "0" // балансеровка нет\да 0\1 set si_teamDamage "1" // set si_xpSave "0" // set g_gameReviewPause "0.5" // set g_gameReviewReadyWait "0" // set g_execMapConfigs "0" // set si_adminStart "0" // set si_rules "sdGameRulesCampaign" // тип игы set m1 "set g_nextMap $m2; spawnServer campaign_africa" set m2 "set g_nextMap $m3; spawnServer campaign_northamerica" set m3 "set g_nextMap $m4; spawnServer campaign_northeurope" set m4 "set g_nextMap $m1; spawnServer campaign_pacific" vstr m1 spawnServer campaign_northamerica
Второй вариант воспользуемся конструктором конфигов с сайта Infinity-Gamehosting Идем на сайт Infinity-Gamehosting В config обязательно должны присутствовать строки
set m1 "set g_nextMap $m2; spawnServer campaign_africa" set m2 "set g_nextMap $m3; spawnServer campaign_northamerica" set m3 "set g_nextMap $m4; spawnServer campaign_northeurope" set m4 "set g_nextMap $m1; spawnServer campaign_pacific" vstr m1 spawnServer campaign_northamerica
Иначе сервер падает или не стартут вобще.Запуск Ну вот сервер стоит конфиг написан, осталось запустить. Редактируем стартовый скрипт под себя.
# vi /usr/home/game/etqw-server/etqw-dedicated
Доводим до такого вот вида.
#!/bin/sh cd `dirname $0` export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:." LOGFILE=/home/game/etqw-server/server.log exec ./etqwded.x86 +set net_serverDedicated 0 +set net_ip 10.0.4.106 +set net_port 27733 +exec server.cfg 2>&1 &
И запускаем
Ждем конца загрузки
----------- Loading Map Bot Actions ------------ thread priority set to 2 -------------------------------------- ----- idRenderModelManagerLocal::EndLevelLoad ----- 32 purged from previous 1405 kept from previous 90 new loaded all models loaded in 0.0 seconds --------------------------------------------------- ----------------------------------- 15540 msec to load maps/valley.entities Loaded map in 16 seconds Dedicated server signed in and is authenticated. hitch (100 msec) hitch (100 msec) hitch (100 msec)
Проверяем, что сервер нормально стартовал.
$ ps auxf
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
game 699 2 .9 38 .4 229836 197700 p0 S 7 :42PM 4 :53 .42 ./etqwded.x86
Все норм сервер стартовал. Ну вот вроде как все.
Администрирование Для администрирования сервера правим файл
# vi /usr/home/game/etqw-server/base/usergroups.dat
а именно такие строки
group Admin { password ваш пароль
Пере запускаем сервер и можно логиниться в админке управления сервером через клиент.