По просьбам трудящихся, точнее по их заявлениям, о том что нужна им контра хоть «убейся об стену». Решил разобраться, наконец, с этим вопросом, что и сделал. Сразу скажу, что я ставлю не из портов, в связи с некоторыми ограничениями по трафику (т.е. пришлось просить знакомого, чтобы он выкачал мне нужные файлы). Я установил CS на машине, где был инет, обновил игру и всю директорию просто перенес на рабочий сервер (плюс chmod, что ему нужно) который не подключен к инету и все ок. Т.е. если вы все поставили и все работает, можно просто клонировать/копировать уже установленный Counter Strike на другие сервера без проблем
Ну-с начнем…
1) Подготовка системы
Установим линукс эмулятор linux_base-fc-4_9, он нужен для запуска игры.
~# cd /usr/ports/emulators/linux_base-fc4/ && make install clean
Впишем строки запуска эмулятора при загрузке системы, плюс настроим систему.
~# echo "linux_load="yes"">> /boot/loader.conf
~# echo "linprocfs_load="yes"" >> /boot/loader.conf
~# echo "linux_enable="YES"" >> /etc/rc.conf
~# echo "kern.fallback_elf_brand=3" >> /etc/sysctl.conf
~# echo "kern.ipc.maxsockbuf=524288" >> /etc/sysctl.conf
~# echo "linprocfs /compat/linux/proc linprocfs rw 0 0" >> /etc/fstab
1.1) Включим режим polling`a (можно обойтись без него)
В конфигурацию ядра, добавляем следующие опции
POLLING
HZ=1000 — частота опроса ядром устройства
Собираем и устанавливаем ядро.
Дополнительная информация о polling’е:
http://www.lissyara.su/?id=1156
http://www.opennet.ru/base/dev/int_polling.txt.html
http://info.iet.unipi.it/~luigi/polling/
2) Инсталяция
Скачаем эти файлы
1) Сам сервер — hlds_l_1120_full.bin 424Mb
2) NoSteam — linux_server_nosteam_27.10.06_.zip 8mb
2.1) Распаковываем архив, создаем директорию и обновляем.
~# mkdir /usr/steam
Копируем в созданную директорию файл hlds_l_1120_full.bin, затем установим ему права на запуск и запускаем.
~# chmod 700 hlds_l_1120_full.bin
~# ./hlds_l_1120_full.bin
На вопрос о лицензии отвечаем «YES».
Через некоторое время появится файл hlds_l_1120_full.tgz который нужно распаковать
~# tar zxvf hlds_l_1120_full.tgz
Появилась директория hlds_l в которую необходимо перейти
~# cd /usr/steam/hlds_l/
2.2) Обновление Steam
Cтавим из под любого юзера кроме root иначе не обновит и вы словите гимор
~#./steam -update
После запуска видим примерно, следующее:
Checking bootstrapper version ... Getting version 9 of Steam HLDS Update Tool Downloading. . . . . . . . . . . Steam Linux Client updated, please retry the command
Если у вас остутствует аккаунт в стиме, можно его, при необходимости, создать. Но нам не надо, поэтому ниже будет NoSteam Можно смело перемещаться к Обновлению Counter-Strike
Если очень хочется официальный аккаунт, то проделываем следующее:
Соответственно, вводимые данные ваши
~#. /steam -command create -username alex -email alex@mail.com
-password alex123 -question "alex cool" -answer yeah
После того, как создан аккаунт, наблюдаем такие строки:
Checking bootstrapper version... Creating Account Account Created successfully
Аккаунт готов, по сему приступим к скачиванию самого сервера:
~# ./steam -command update -game cstrike -dir /home/ivan/hlds_l -username alex
-password alex123 -remember_password
То же самое, но с точной формой заполнения:
~# ./steam -command create -username -email -password
-question -answer
Remember_password в данном случае, указывает на то, что вам не придется по 15 раз вводить пароль и он будет сохранен.
2.3) Обновление Counter-Strike
~# ./steam -command update -game cstrike -dir /usr/steam/hlds_l
Появится сообщение об успешном обновлении.
Verifying: /usr/steam/hlds_l\valve\valvecomm.lst Downloading: /usr/steam/hlds_l\valve\violence.cfg Verifying: /usr/steam/hlds_l\valve\xeno.wad HLDS installation up to date
2.4) NoSteam
Если сервер запустить сразу и попробовать подключить к нему клиента, то появится интерестная табличка Invalid CD key. Ее необходимо убрать Для этого, распакуем содержимое файла linux_server_nosteam_27.10.06_.zip заменив оригинальные файлы
~# tar zxvf linux_server_nosteam_27.10.06_.zip /usr/steam/hlds_l
2.5) Стартуем
Оговорюсь сразу, что запускаем не от пользователя root, а от другого созданого пользователя, ибо во-первых безопастнее, во-вторых — будет меньше проблем при запуске сервера!
~# cd /usr/steam/hlds_l
~# ./hlds_run -game cstrike -insecure -nomaster +sv_lan 1 +maxplayers 12 +map de_dust
Если вывод происходит без ошибок, то я вас поздравляю — все впорядке сервер встал
Auto detecting CPU Using Pentium II Optimised binary. Auto-restarting the server on crash Console initialized. scandir failed:/usr/home/911/hlds_l/./valve/SAVE scandir failed:/usr/home/911/hlds_l/./platform/SAVE Protocol version 47 Exe version 1.1.2.5/Stdio (cstrike) Exe build: 20:02:49 Oct 24 2006 (3651) STEAM Auth Server couldn't exec language.cfg Server IP address 192.168.0.5:27015 scandir failed:/usr/home/911/hlds_l/./valve/SAVE scandir failed:/usr/home/911/hlds_l/./platform/SAVE couldn't exec listip.cfg couldn't exec banned.cfg Master server communication disabled. 0 fps -- host(6401) sv( 0) cl( 0) gfx( 0) snd( 0) ents(101)
Можно еще посмотреть следующим образом.
~# sockstat |grep hlds
911 hlds_i686 2067 4 udp4 *:27015 *:*
911 hlds_i686 2067 7 udp4 192.168.0.5:26900 *:*
911 hlds_i686 2066 4 udp4 *:27015 *:*
911 hlds_i686 2066 7 udp4 192.168.0.5:26900 *:*
911 hlds_i686 2065 4 udp4 *:27015 *:*
911 hlds_i686 2065 7 udp4 192.168.0.5:26900 *:*
Немного ликбеза
-game cstrike — запускаемый мод.
-insecure — отключает античит VAC
-nomaster — сервер не авторизовается в WON.
+sv_lan 1 — работа в режиме локальной сети
+maxplayers — количество игроков
+map de_dust — стартовая карта
2.6) Запуск в background
Я тут перенес строки так что вся команда должна быть в 1 строку
~# ./hlds_run -game cstrike -insecure -nomaster
+sv_lan 1 +maxplayers 12 +map de_dust > /dev/null 2>&1 &
Чтобы background писался в лог для последующего просмотра полетов.
~# ./hlds_run -game cstrike -insecure -nomaster
+sv_lan 1 +maxplayers 12 +map de_dust > hlds.log 2>&1 &
Для полноценного администрирования и работы в background читай Screen
3) Конфигурация
Немного о конфигурации.
~# hlds_l/cstrike/server.cfg
Главный конфиг сервера, здесь задаются все основные параметры его работы.
Все доступные переменные см Cmds & Cvars
~# hlds_l/cstrike/motd.txt
Здесь находится текст сообщения, который выводится при подключении к игре.
~# hlds_l/cstrike/mapcycle.txt
Список карт находящихся в ротации в игре. хотите добавляйте удаляйте и дублируйте по вашему желанию.
~# hlds_l/cstrike/map/
Собственно, путь где расположены карты
С остальной конфигурацией, надеюсь, вы разберетесь сами.
3.1) Скрипты запуска
Создаем скрипт cs1.6.sh следующего содержания:
#!/bin/sh /usr/steam/hlds_l/hlds_run -game cstrike -insecure -nomaster +sv_lan 1 \ +maxplayers 12 +map de_dust >/dev/null 2>&1 &
Не забываем присвоить ему атрибут запуска и запускаем скрипт:
~# chmod +x cs1.6.sh
~# sh cs1.6.sh
Автозапуск при загрузке, достигается простым копированием скрипта в /usr/local/etc/rc.d
Теперь CS 1.6 сервер, при перезагрузке системы, запустится сам.
Убить процесс не так легко, он перезапускается при #killall hlds_amd
чтобы сервер стартовал без автоперезапуска то в стартовый скрипт вписываем -norestart
и
~# killall hlds_amd
hlds_* зависит от типа процессора на машине свой hlds_* можно посмотреть в списке # top
4) Моды
Моды это отдельные дополнения, придающие, или добавляющие в игру, новые возможности.
MetaMod — мод, который позволяет установить на сервер другие поддерживаемые моды.
Качаем v1.19 linux Binary
Создаем в /usr/steam/hlds_l/cstrike директорию addons, в ней metamod, и в нем dlls
~# mkdir -p /usr/steam/hlds_l/cstrike/addons/metamod/dlls
~# cd /usr/steam/hlds_l/cstrike/addons/metamod/dlls
Распакуем в нужную директорию MetaMod.
~# tar zxvf metamod-1.19-linux.tar.g
~# cp metamod_i386.so /usr/steam/hlds_l/cstrike/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 /usr/steam/hlds_l/cstrike/addons/metamod/plugins.ini
c
Формат файла:
<platform> <filepath> [<description>]
Например:
linux dlls/mybot.so linux /tmp/stub_mm_i386.so linux ../dlls/trace_mm_i386.so linux dlls/admin_MM_i386.so
Это пример и его использовать НЕ НАДО!!!
Запускаем сервер — если запуск прошел без проблем, мы можем увидеть в консоли, примерно, следующее:
Metamod version 1.19 Copyright (c) 2001-2006 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.
Поздравляю! metamod работает как надо
Теперь к контре можно подключать другие моды. Их великое множество, поэтому, ищите себе по вкусу сами.
Ниже приведен пример установки AMXModX и старого AMX MODа.
4.1) AMX Mod X — Half-Life Scripting for Pros!
Этот мод необходим для администрирования сервера CS 1.6
Качаем AMX Mod X Base и Counter-Strike Addon
Распаковываем первый архив потом второй чтобы распаковываясь он заменил файлы первого.
Далее копируем в addons директорию amxmodx
В metamod plugin.ini добавляем
linux addons/amxmodx/dlls/amxmodx_mm_i386.so
Теперь у нас есть, на сервере, мод AMX Mod X.
Смотрим переменные Documentation (AMX Mod X) и настраиваете его как хотите.
4.2) AMX Mod
AMX Mod 0.9.9 — Linux — glibc2.3 (amx-0.9.9-won.tar)
Распаковываем amx-0.9.9-won.tar
~# tar zxvf amx-0.9.9-won.tar.tar
Архив распаковали. Он создал директорию addons в ней будет директории amx и metamod
Я распаковывал в tmp
~# cd /tmp/addons
~# ls
amx metamod
Директорию amx перемещаем в
~# mv amx /usr/steam/hlds_l/cstrike/addons/amx
В папке metamod есть sample_plugins.ini, который нам надо скопировать
~# cp sample_plugins.ini /usr/steam/hlds_l/cstrike/addons/metamod/plugins.ini
Затем запускаем сервер, если видим при запуске нижеследующее, то моды подключились и работают.
* Server language set to: EN * Multilingual AMX Mod * Available languages: - EN : 100.00% - FR : 100.00% Executing AMX Configuration File
Теперь у нас есть, на сервере, мод AMX.
Настраиваете мод в amx/config/*.ini, по вкусу. Смотрим переменные каждого конфига Setting up AMX Mod
5) Администрирование
Для администрирования сервера можете попробовать: HL Admin Mod, AmxMod.
Screen — Так же используют GNU screen like utility on Emacsen. Это специальный экранный менеджер с эмуляцией терминала, который позволяет сохранять сессию, те все процессы, которые ты запустил на нем при последующем подключении продолжают работу. Это удобно когда админишь удаленно сервер и не хочешь терять доступ к консоли управления нужной игры.
~# /usr/ports/misc/elscreen && make install clean
После установки стартуем теперь так.
~# screen -A -m -d -S csserv ./hlds_run -game cstrike +maxplayers 10 +map cs_assault
Это создаст сессию работы со screen, которая будет называться «csserv» с которой все это будет запускаться. Вы заметите, что вас сразу же вернет в строку набора вашей системной оболочки. Это происходит из-за того, что сервер спокойно себе работает в сессии screen. Теперь вы можете спокойно отсоединиться/завершить вашу сессию удаленного контроля и сервер будет продолжать работать. Если вы хотите переподсоединиться к сессии, когда подключаетесь в следующий раз, или сразу же после запуска скрипта, просто наберите:
~# screen -d -r csserv
Чтобы присоединиться к сессии сервера, а потом снова отсоединиться, нажмите Ctrl-A, а потом d.
6) Faq
В: Сервер не видно в списке серверов, или при подключении возникает ошибка протокола.
О: Разные версии клиента и сервера. Необходимо обновить клиента Патчи для Патчи для CS 1.6 на текущий момент последняя версия v29
В: Что такое Steam, VAC, WON
О: WON и Steam — онлайновые системы Valve, выполняющие несколько задач:
- идентификация каждого игрока по его WONID или STEAMID
- публикация всех создаваемых серверов в едином официальном списке, доступном всем игрокам
- проверка ключей клиентов
Steam кроме этого является платформой продаж игр, их доставки и постоянного обновления.
WON существовал до недавнего времени, в т.ч. в этой системе работали сервера CS 1.5
STEAM — новая и текущая система, начала работать с версии CS 1.6
У Valve нет таких терминов как nowon или nosteam. Это названия методов взлома серверов и клиентов, позволяющих играть без ключей. Ключи нужны только клиенту. Проверка ключа выполняется сервером — при входе клиент передает ключ, сервер выполняет проверку ключа в онлайне на серверах аутентификации, если ключ не совпадает, клиента не пустит на сервер.
Во всех версиях CS была и есть возможность запуска сервера в LAN-режиме -sv_lan 1. В этом случае сервер не выполняет проверку ключа в онлайне. Как правило в LAN’е сервер также запускают с ключом -nomaster, который подавляет публикацию сервера в официальном списке. Сервер в режиме LAN пускает только клиентов, находящихся с сервером в одной подсети класса «C».
Чтобы на ваш сервер могли заходить с интернета клиенты без ключей, сервер должен быть запущен в LAN режиме, и у сервера должна быть отключена проверка на класс «С». Для серверов CS 1.5 и CS 1.6 используется утилита nowon, которая патчит swds.dll/engine_i686.so. Для сервера CS:Source (SRCDS — Source Dedicated Server) — используется патченный файл bin\steam.dll (bin/libsteamvalidateuseridtickets_i486.so для linux), из патчей EMPORiO или из SteamEmu от hCUPa.
На nowon/nosteam серверах нет возможности идентифицировать игроков по WONID или STEAMID, вместо них все игроки имеют общий код STEAM_ID_LAN или VALVE_ID_LAN. К счастью, почти все плагины и прочие «усовершенствования» умеют работать по IP или никам.
У Valve есть свой античит VAC (Valve Anti-Cheat), для CS <=1.6, который банит читеров именно по WONID/STEAMID. Поэтому использовать VAC на no-won/no-steam серверах «почти» невозможно (см. «эмулятор VAC»). Для CSS скоро ожидается выход VAC2.
В: Где я могу посмотреть Список консольных команд для Counter Strike 1.6
О: Тут Counter Strike 1.6 [Список консольных команд]
7) Литература:
1) Counter-Server — The Official Counter-Strike Server Admin Resource
2) Dedicated Server RU
3) CS-Division — Основной форум по Counter-Strike.
4) United Admins Limited
5) FAQ — CS 1.6 и Counter Strike: Source сервера на CStrike.ru
6) AlliedModders — Powered by vBulletin
7) Выделенный сервер (ЧаВо/FAQ)
Ну вот и все..
размещено: на lissyara.su 2007-08-01,
последнее обновление: 2008-11-16,
автор: Raven2000