Установка и настройка сервера
Установка HLDS CS 1.6 с нуля!
Данную статью меня побудила написать малодоступность нормальных мануалов по установке HLDS. Непоявященному человеку совсем трудно разобраться в отрывках данного форума. Не понятно с чего начать и куда двигаться чтобы увидеть свет в конце туннеля (главное чтоб это не поезд был ;-)) I. Статья ориентированна на человека имеющего начальные навыки работы с юникс системами.
II. Я не претендую на то что это библия установки CS DS, хотя попытаюсь наставить на путь истинный.
III. Данная статья довольна сыра, вней могут встречаться ошибки и некоторые несоответствия. Уж простите. Старался как мог.
IV. Я не несу никакой ответственности за данную публикацию.
Если в результате ваших экспериментов вы свалите знакомому админу сервак и он вас будет долго бить фэйсом об кэйс
сервака - корпус можете не приносить, править не буду!!!
Ставим Контру 1.6 с нуля. С абсолютного нуля!!! Нулее не бывает.
На юникс машину (я юзаю FreeBSD 5.2.1).
STEP BY STEP ))
I Установка HDLS (cstrike mod).
Сразу оговорим один момент - будем ставит и запускать контру
из под любого юзера КРОМЕ рута!!!
Иначе создастся
/usr/compat/linux/usr/steam
В нее будут улетать логи и будут складываьбся какието файлы.
1. Актуально для FreeBSD. (если linux - пропускаем)
Ставим из портов библиотеки совместимости с linux
/usr/ports/emulators/linux_base-8
без них нифига работать не будет.
Провим /etc/rc.conf
Добавляем строку
linux_enable="YES"
2. Качаем HLDS файлик hlds_l_1120_full.bin (размер 440 мегов),
Half-Life Dedicated Server v1.1.2.0 for Linux.
Нашел в осле, думаю есть не только там если поискать.
А воопше
1) ftp://hlserver:hlserver@ftp.valvesoftware.com/linux....ull.bin
2) ftp://hlserver:hlserver@ftp.valvesoftware.com/linux/hldsupdatetool.bin
3) ftp://hlserver:hlserver@ftp.valvesoftware.com/linux....dme.txt
4) ftp://hlserver:hlserver@ftp.valvesoftware.com/linux/md5.txt
Да, обзательно чекаем md5 - у меня при передачи по фтп возникли траблы, когда качал
с виндовой машины на юниксовый сервак, т к что проверка очень помогла найте баг ))
3. Распаковываем
В консоле:
mkdir /usr/steam
chmod 700 hlds_l_1120_full.bin
./hlds_l_1120_full.bin
На вопрос естно онвечаем "yes".
cd /usr/steam
tar zxvf hlds_l_1120_full.tgz
4. Надо бы проапдейтится . . .
Читаем файл 3) из п. 2. если все итак понятно - переходим к следующему
пункту. Те кто в танке - читаем дальше. Правда я не воткнул одного - нафига
файл 2) из п. 2 нужен, когда файлик steam (который из него разворачивется)
имеется в файле 1) из п.2.
Создаем аккаунт
Идем туда где лежит steam (/usr/steam/hlds_l например)
Если он вдруг не выполняемый - chmod ему )) (см. п.3)
Запускае апдейттулзу с опцией "-create":
Как по учебнику:
./steam -create
Например:
./steam -create email@here.com comPlexPass "Your hint" "answer"
В качестве username использовать влидное мыло!!!
После запуска видим чето типа этого:
Checking bootstrapper version ...
Getting version 9 of Steam HLDS Update Tool
Downloading. . . . . . . . . . .
Steam Linux Client updated, please retry the command
----
ВНИМАНИЕ ГРАБЛИ: если попробовать запустить тоже самое еще раз - steam
будет глючить и выдавать следующие:
Checking bootstrapper version ...
Creating Account
AuthenticationServerRSAPublicKey failed signature verifcation
Чтобы такого небыло - ижем в домашний каталог юзера из под которого
работаем и дропаем папку .steam.
----
Опа, апдейт тул проапдейтился ))) Мде маленькое НО!!!
Пробуем как просят retry - хрен вам - параметры командной строки другие )))
Делаем
./steam
Видим хелпу. Делаем как надо:
./steam -command greate -username -email -password
-question -answer
Видим:
Checking bootstrapper version ...
Creating Account
Account Created successfully
Щастье есть - оно не может не есть ))
Обновляем сервак.
./steam -command update -game cstrike -dir /usr/steam/hlds_l
-username -password
Наблюдаем лог апдейта - если никаких слов типа error нет - значит все,
сервак проапдейтился.
...
HLDS installation up to date
5. Тестим
./hlds_run -game cstrike +sv_lan 1 -insecure +map de_dust -nomaster +maxplayers 20
-game cstrike - запускаемый мод.
+sv_lan 1 - работа в режиме локальной сети, ОБЯЗАТЕЛЬНО, и вроде как жедательно первым
(сразу за cstrike)!!!
-nomaster - сервер не пробует авторизовать себя в WON.
+map de_dust - стартовая мапа, очень желательно.
-insecure - по моему связано с VAC, точно не помню.
ВНИМАНИЕ!!! Не путать плюсики и минусики. Это не глюк, так надо.
Пробуем коннектится с сетки класса "C" (думаю понятно почему, если нет смотрим ниже).
Если выше глюков не наблудалось, то в принцапе перед нами готовый "голый" LAN сервак.
Да, один баг с ходу: при попытки сменить автоматом карту на cs_havana, сервак
рухнул и рестартанулся с фразой "не могу найти cs_havana.wad". Все просто - делаем
ренейм cs_havana.WAD на cs_havana.wad (все лежит в hlds_l/cstrike). Для тех кто в
танке или БТР: в UNIX регист учитывается при именовании файлов.
6. Патчим WON.
Для тех кто не в курсе . . .
HLDS может работать в двух режимах WAN и LAN.
В режиме LAN сервер вполне функционален, но позволяет коннектится только с
сети класса "C". В режиме WON требуется наличие оригинального CD-KEY на клиенте
(обшероссийский не катит ) ;-)
Тянем nowon patch (например nowon.zip). Распаковывем на виндовой машинке,
подтягиваем сюда же engine_i686.so (или какой там у вас ;-)). Данный файл перед
патчингом рекомендуется переименовать т к патчер может не понять длинные имена
(8.3 only судя по инструкции), хотя у меня все и так сканало. Переименоваваем
напр. в engine.so.
Запускаем
c:hldsnowon>sp.exe nowon.s *.so
Если видим что то типа:
----
SIMPLE PATCHER 0.99beta © Victor Romanoff 2:5054/2.256
Patching file ENGINE.SO
Signature found at 947992d, 000E7718h
done.
----
значит патч успешно отработал.
Если ручки кривые или просто чето пошло не так увидим:
----
SIMPLE PATCHER 0.99beta © Victor Romanoff 2:5054/2.256
Error: No files found for patch
Total 1 error(s), patch process aborted
----
Сдесь хочется сказать огромное спасибо людям которые ваяют такие весчи как
nowon patch - СПАСИБА ВАМ БАЛЬШАЯ И НИЖАЙШИЙ ПАКЛОН, такие люди как вы помагают
сэканомит кровный рубль в наше нелегкое для жизни время!!!
Ладно, хватит трепаться, продолжим.
И так, что мы имеем? А имеем мы пропатченный двиган для контры!!!
Что сделать с пропатченным файлом догадайтесь сами. Догадались?
Правильно! Переименовываем и кладем обратно. Сдорово.
Стартим сервак и тестим.
Небольшое лирическое отступление. Думаю эта фраза вам знакома:
LAN servers are restricted to local clients (class C).
Что бы не наводить неопытного читателя на ложный след поясню: сеть класса
"C" это сеть вида /24 (т е маска 255.255.255.0, сама сеть выглядит как 123.123.123.xxx).
А сервак по сетью класса "C" подразумевает сеть вида /16 (т е маска 255.255.0.0, сама сеть
выглядит как 123.123.xxx.xxx), хотя вообшето это сеть класса "B" ("бэээ").
Почему так - хз :))
БУДТЕ ВНИМАТЕЛЬНЫ ПРИ ТЕСТИРОВАНИИ - у тестируеммых хостов (клиент и сервер) должны
отличаться как минимум один из двух первых октетов IP адресов (числа до второй точки).
Если при тестированиие с разных сетей класса "C" (которые на самом деле "B") не пишет
вышепреведенной надписи - значить все гут.
Перед нами рабочий интернет сервер, но пока он все равно "голый" - ща будем
прикручивать навороты.
II Навороты (они же моды, они же аддоны).
Я нехочу в данном раздели далать полные описание использования плагинов,
постараюсь описать лишь необходимое, в меру надобности. Тому есть одна причина -
по каждому моду есть собственная документация.
Читайте, там все понятно описано. Приведу ссылки на доки.
1. Прикручиваем MetaMod (http://metamod.org/)
MetaMod - мод который позваляет прикрутить к серверу все другие (вернее все поддерживаемые)
плагины.
Установка.
Тянем дистрибу metamod-1.17.2-linux.tar.gz - нам нужны тока бинарники, на линки со словами
"source" внимания не обращаем.
Распаковываем. Внутри cstrike (/usr/steam/hlds_l/cstrike) создаем:
mkdir addons
cd addons
mkdir metamod
cd metamod
mkdir dlls
cd dlls
----
Отступление: мы создали каталок addons - сюда мы быдем ставить и все остальные плагины.
Если речь не будет идти о каком то конкретном пути - значит говорится именно про него.
----
Копируем полученною сошку в metamod/dlls.
----
ПРЕДУПРЕЖДЕНИЕ: устанавливая сервер, вам придется постоянно редактировать фалы конфигов
как самого сервера, так и его плагинов. Что бы облегчить себе жизнь в дальнейшем крайне
рекомендую создать где-нибудь структуру каталог аналогичную серверно и сохранять в ней
дефолтные и текущие конфиги сервака, чтобы в любой момент времение мона было сделать
откат на предыдущий конфиг или на дефолт.
----
Ищем в hlds_l/cstrike файлик liblist.gam.
Меняем в нем
gamedll_linux "dlls/cs_i386.so"
на
gamedll_linux "addons/metamod/dlls/metamod_i386.so"
Создаем в папке metamod файл plugins.ini:
touch plugins.ini
Этот файл мы в дальнейшем будет юзать для запуска плагинов.
Формат файла:
[]
Пример смотрим ниже:
----
ЭТО ПРИМЕР!!! НЕ ИСПОЛЬЗОВАТЬ!!!
----
// linux dlls/mybot.so
# win32 dlls/mybot-old.dll Mybot old
win32 dlls/mybot.dll Mybot current
linux /tmp/stub_mm_i386.so
win32 /tmp/stub_mm_i386.dll
linux ../dlls/trace_mm_i386.so
win32 ../dlls/trace_mm_i386.dll
linux dlls/admin_MM_i386.so
win32 dlls/admin_MM_i386.dll
----
Стартуем сервер - если все гут видим в консоле что типа:
Metamod version 1.17.2 Copyright © 2001-2004 Will Day
Metamod comes with ABSOLUTELY NO WARRANTY; for details type `meta gpl'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `meta gpl' for details.
Мета мод установлен и функционирует.
Теперь на сервак мона вешать другие моды. Что касается выбора конкретных
модов - дело вкуса и цвета ;-). Также хочется отметить что настройка каждого
конкретного плагина - тема отдельной статьи. Потому далее приведу краткий пример
установки AMX MODа.
2. AMX Mod (http://amxmod.net/).
Качаем amx-0.9.9-won.tar.tar.
Распаковываем в addons/amx
Чиатем доки. Внимательно читаем.
В файл metamod/plugims.ini добавляем:
linux addons/amx/dlls/amx_mm_i586.so
Запускаем сервер.
Хочется оговорится что с версией metamod 1.17.2 в консоле стала проскакивать ошибка
[META] ERROR: Couldn't find game entity 'item_generic' in game DLL
'cstrike': ./cstrike/addons/metamod/dlls/metamod_i386.so: undefined symbol: item_generic
Поставил ту версию matamod что шла вместе с AMX (1.17.1) - ошибка пофиксилась.
Еше одна ошибка всплыла с ходу:
[FUN] Module is not attached to MetaMod
[AMX] Make sure that modules are compatible with AMX 0.9.9
[AMX] Please fix the problem then start the server again
Пофиксил коментированием в amx/config/modules.ini данного плагина.
Все. Теперь у нас есть сервак с прибамбасом типа AMX.
Настраиваем его в amx/config/*.ini как нам нравится. По всем тегам есть комменты.