Counter-Strike 1.6 под Linux — как создать сервер

Создать качественный Steam-сервер Counter-Strike 1.6 очень просто!

Предисловие

В этом туториале будет рассмотрена установка ЛИЦЕНЗИОННОГО Steam-сервера Counter-Strike 1.6 для Linux (почти любой дистрибутив, но в качестве примера выбран Arch Linux с установленным xfce). Туториал ориентирован на работу в графическом интерфейсе (не важно что это: Gnome, Xfce, KDE,lxde, fluxbox , вообще без разницы) с минимальным применением терминала, дабы максимально упростить процесс для начинающих… Тут не будет использоваться dproto и прочая ересь. Вам ведь не нужны читеры, верно? А если они и будут, то их можно эффективно банить навсегда по steamid, ведь он привязывается к аккаунту и читер не сможет больше зайти (ну, разве что, с другого аккаунта, а они не бесконечны). Отпадает надобность прописывать пиратские мастерсерверы, использовать плагины, которые портят игроку клиент cs, банят с забиванием в конфиг игрока определенной строки setinfo, ведь все это БЕССМЫСЛЕННО, к тому же, исходники этих плагинов авторы, как правило не дают, а это ставит под сомнение безопасность их применения на сервере, да и бывалый читер все это легко обходит…

Навыки, необходимые для выполнения туториала: читать, правильно писать. ВСЁ!

Начнем, пожалуй…
Качаем hldsupdatetool:
Открываем терминал и пишем
wget http://www.steampowered.com/download/hldsupdatetool.bin
затем
chmod +x hldsupdatetool.bin


затем

./hldsupdatetool.bin


Соглашаемся с лицензионным соглашением, написав Yes и жмем Enter
Начнется закачка файлов стима. После окончания можно будет скачать сам сервер.
создадим папку для сервера. Пусть папка будет называться hlserver для этого пишем в консоли
mkdir hlserver
затем качаем сервер в эту папку, выполнив
./steam -command update -game cstrike -dir hlserver
Все, начинается закачка. Если долго ничего не качает-убиваем процесс нажатием CTRL+C и повторяем команду снова. Если получаем «Steam Linux client updated, please retry the command» то так и делаем, т.е. повторяем команду снова (чтобы каждый раз не писать, предыдущая команда вызывается нажатием клавиши «стрелка вверх», затем Enter).


После повтора команды начинает скачиваться сервер, это вы увидите сразу, побегут проценты и будут показаны имена файлов, которые у нас скачиваются в данный момент. Дожидаемся сообщения «HLDS installation up to date», все, сервер скачан.


Терминал пока не закрываем… ;-)

качаем метамод отсюда

кидаем его в cstrike/addons/metamod/dlls/
(папки создать)
потом создаем в cstrike/addons/metamod/ файл plugins.ini и пишем туда платформу и путь до amxmodx который позже установим. пишем вот что:

linux    addons/amxmodx/dlls/amxmodx_mm_i386.so

пока хватит, сохраняем.
открываем liblist.gam что в папке cstrike и видим там строчку вида
gamedll_linux «dlls/cs_i386.so»
и меняем ее на
gamedll_linux «addons/metamod/dlls/metamod_i386.so»

качаем amxmodx base linux отсюда
распаковываем содержимое архива в cstrike

потом качаем cstrike addon отсюда
распаковываем содержимое архива в cstrike

любители новизны и ночных сборок могут скачать аддон с более свежей версией amxmodx вот тут

Теперь можно заняться установкой плагинов. Плагины .amxx платформонезависимы, потому все устанавливается так же как и на Windows, никакой разницы нет.
Если вы решили скомпилировать плагин из исходников, то к вашим услугам скрипт compile.sh , который находится в папке cstrike/addons/amxmodx/scripting  он компилирует все плагины из исходников .sma которые лежат в этой папке.

Давайте еще разок откроем терминал, перейдем в эту папку с помощью команды
cd hlserver/cstrike/addons/amxmodx/scripting/
у вас путь будет свой,можете указать относительный…

затем запустим сам скрипт
sh ./compile.sh

Компилирует быстро, готовые скомпилированные плагины .amxx помещаются в папку cstrike/addons/amxmodx/scripting/compiled . Если там уже есть скомпилированный плагин, то он затирается «новоиспеченным». После окончания компиляции лог сохраняется в файл temp.txt и выводится на экран. Его можно посмотреть и выявить, были ли ошибки компиляции. Теперь лог можно закрыть, нажав клавишу Q. Все, теперь берем скомпилированные плагины .amxx из папки cstrike/addons/amxmodx/scripting/compiled/ и помещаем их в cstrike/addons/amxmodx/plugins/

После компиляции и установки плагинов их имена файлов необходимо внести в файл plugins.ini который лежит по пути cstrike/addons/amxmodx/configs/

Скажем, есть у нас плагин OLOLO.amxx , мы положили его в cstrike/addons/amxmodx/plugins/ теперь идем в папку cstrike/addons/amxmodx/configs/ ищем там файл plugins.ini открываем его и в конце файла с новой строчки пишем:
OLOLO.amxx


все, теперь AMX Mod X будет знать, что у нас есть такой плагин и после перезапуска сервера он будет включен.

Как сделать себя админом на сервере Counter-Strike?
Легко и просто. Поскольку сервер у нас лицензионный, то самым лучшим вариантом вместо ников с паролями и IP-адресов будет указание steamid админа. Открываем файл users.ini в папке cstrike/addons/amxmodx/configs/ и в конфе файла видим строчку:
; «STEAM_0:0:123456″ «» «abcdefghijklmnopqrstu» «ce»


Это всего лишь пример. Для того, чтобы узнать, какой у нас steamid открываем клиент cs (я про лицензионный!) создаем локальный сервер (New Game) перед этим введя в консоли sv_lan 0 (или заходим на любой интернет-сервер) и в консоли пишем status и нам будет выведен steamid напротив вашего ника, похожий на тот, что в users.ini вот его то туда и вставляем заместо того, что в примере, не забываем убрать точку с запятой в начале строки, иначе ничего не получится. Закрываем, сохраняем. Сервер перезапускаем. Пример отображения Steam ID приведен на рисунке ниже:

Теперь настраиваем сервер, как нам угодно в файле server.cfg
У меня он выглядит так:

// Use this file to configure your DEDICATED server.
// This config file is executed on server start.

// dproto cvars!!! больше не нужно!
//dp_rejmsg_nosteam47 «UPDATE YOUR CLIENT! (48 PROTOCOL)»

// misc
//log on // вести лог сервера
sv_logbans 1 // записывать в лог баны
sv_logecho 0 // показывать информацию из логов сервера в консоль(сервера)
sv_logfile 0 // записывать логи сервера в файлы отрубил нафиг
sv_log_onefile 0 // … в один файл
mp_logmessages 0 // писать в лог чат игроков для последующих разборок
mp_logdetail 0 // записывать в лог повреждения от: 0 — выключено; 1 — противников; 2 — своих; 3 — и от противников и от своих.
sv_region 255 // регион сервера. 255 — весь мир
sv_restart 1 // рестартуем серв

//sv_cvars
sv_minrate 20 // минимальные рейты клиента
sv_unlag 1 // включаем лагокомпенсатор
sv_maxunlag 1 // макс. пакетов для лагокомпенсатора
sv_allowdownload 1 // разрешить загрузку с сервера(например карт)
sv_allowupload 1 // разрешить закачку файлов (например decals, спрей-логи, карты) на сервер
sv_alltalk 1 // разрешить всем слышать переговоры друг друга по микрофону, вне зависимости от команды (даже мертвые)
sv_cheats 0 // разрешить игровые читы на сервере (пример: noclip)
sv_consistency 1 // предписывает ли сервер последовательность файла для критических файлов
sv_contact ha**ist@mail.ru // e-mail администратора сервера
sv_enableoldqueries 1 // разрешить поддержку старого стиля (Half-life 1) серверных запросов
sv_footsteps 1 // использовать звук шагов при передвижении игрока
sv_friction 4 // коэффициент трения в игре
sv_gravity 800 // гравитация в игре
sv_language 0 // Устанавливает язык
sv_maxspectators 8 // Максимальное кол-во спектаторов
sv_maxspeed 320 // максимальная скорость игрока
sv_minupdaterate 30 // минимальное колличество обновлений(колличество пакетов) которое разрешено на сервере
sv_pausable 0 // разрешить ставить паузу во время игры
// sv_password 0 // Пароль для входа на сервер
sv_rcon_banpenalty 15 // колличество минут на которое банится игрок пытавшийся подобрать rcon-пароль к серверу
sv_rcon_maxfailures 5 // максимальное колличество попыток при наборе rcon-пароля, после истечения которых игрок будет забанен
sv_rcon_minfailures 5 // колличество попыток при наборе rcon-пароля во время заданное sv_rcon_minfailuretime, после истечения которых игрок будет забанен
sv_rcon_minfailuretime 30 // колличество секунд для определения неверной rcon-аутенфикации
sv_specaccelerate 5 // ускорение при передвижения в режиме spectator
sv_specnoclip 1 // игрок в режиме spectator может пролетать через стены и объекты
sv_specspeed 3 // скорость передвижения в режиме spectator
sv_spectalk 1 // участие спектаторов в общем чате
sv_stats 1 // собирать статистику использования процессора
sv_stepsize 18 // длинна шага в юнитах
sv_stopspeed 75 // минимальная скорость остановки на поверхности
sv_timeout 30 // если сервер не получает отклика от клиента в течении # секунд, клиент отключается от сервера
sv_voiceenable 1 // разрешить использование микрофона
sv_voicecodec voice_miles // кодек голоса voice_miles-плохой voice_speex хороший
sv_voicequality 5 // качество голоса (0-мин, 5-макс)
sv_maxrate 20000 // максимальный рейт (для 24 чел на 8мбит канал)
sv_downloadurl «http://ha***st.narod.ru/cs/» // откуда качать ресурсы с http
rcon_password «*поставьте_свой*»
writeid // записываем SteamID игроков
writeip // записываем IP игроков
sys_ticrate 150 // А ЭТО FPS СЕРВЕРА, ЗА КОТОРЫМ ВСЕ ТАК ГОНЯТСЯ
sv_maxupdaterate 60 // максимальный рейт (рекомендую 101)
sv_send_logos 1 // отправляем логосы клиентам

// game cvars
mp_allowNPCs 1 // разрешить NPC на сервере
mp_allowspectators 1 // разрешить игрокам после смерти наблюдать за чужими игроками
mp_autocrosshair 0 // разрешить автоприцеливание
mp_autokick 0 // разрешить автокик за убийство игроков своей команды?
mp_autoteambalance 1 // разрешить автоматическую балансировку команд
mp_buytime 0.25 // время покупки в минутах
mp_c4timer 35 // время таймера бомбы
mp_chattime 3 // время, в течении которого игроки смогут разговаривать между собой после окончания текущей карты
mp_decals 200 // Колличество разрешённых декалей (спреи, пятна крови, пулевые отверстия)
mp_fadetoblack 0 // после смерти экран становится чёрным, не давая игроку смотреть за другими игроками в режиме спектатора
mp_falldamage 1 // урон от падения
mp_flashlight 1 // разрешить фонарик
// mp_forcecamera 0 // разрешить переключения камер в режиме спектатора
// mp_forcechasecam 1 // после смерти игрок может следить только за своей командой
mp_fraglimit 0 // максимальное колличество фрагов, при достижении которого определённым игроком карта сменится на следующую
mp_freezetime 1 // начальный отсчёт времени в начале каждого раунда(для покупки), в секундах
mp_footsteps 1 // слышимость звуков шагов
mp_friendlyfire 0 // возможность атаковать своих
mp_hostagepenalty 0 // кикает террориста при убийстве заданного лимита заложников
mp_limitteams 1 // максимальное количество превышения игроков одной команды над другой (от 1 и до бесконечности )
mp_mapvoteratio 0.51 // для смены карты нужно 51% голосов
mp_maxrounds 0 // максимальное количество раундов, при достижении которого игра на карте будет считаться законченной
mp_playerid 0 // контролирует информацию которую игрок видет на панели статуса: 0 все имена; 1 только имена игроков своей команды; 2 без имён
mp_spawnprotectiontime 10 // кикает игроков которые убивают членов своей команды в течении # секунд после перезапуска раунда
mp_roundtime 2 // длина раунда в минутах
mp_startmoney 800 // колличество начальных денег у игроков
// mp_timelimit 15 // ограничение по времени на карту, в минутах
mp_tkpunish 0 // в следующем раунде убить того, кто убил игрока своей команды
mp_winlimit 0 // количество выигрышей одной команды при достижении которого игра на карте считается законченной
motdfile «» /убираем motd!

// disable autoaim
sv_aim 0

// disable clients’ ability to pause the server
pausable 0

// default server name. Change to «Bob’s Server», etc.
//hostname «XROFT CLASSIC #1 p47/p48″
hostname «>>OMCK TyT! [STEAM]<<«

// maximum client movement speed
sv_maxspeed 320

// 20 minute timelimit
sv_cheats 0 // на всякий случай, вырубаем читы

// load ban files
exec listip.cfg
exec banned.cfg

//PLUGIN CVARS!!! переменные для сторонних плагинов!
//knife duel
kd_preparetime 1
kd_resethp 1
kd_protection 0

//mapchooser4 плаг выбора карты
amx_nominfromfile 0
amx_maxnominperplayer 2
amx_rtv_min_time 3
amx_rtv_map_time 3
amx_mapchooser_type 1
amx_mapchooser_mapsloc 0
amx_mapchooser_mapsfile maps.ini

//alt_endroundsounds_ плагин проигрывания музыки в конце раунда
erc_time_ads 300
erc_random_precache «5-5″

//voteban by alka ну это voteban
voteban_percent 40
voteban_type 1
voteban_time 100

//hobo afk manager кикает игроков которые сейчас afk
hobo_afk_frequency 1
hobo_afk_time 120
hobo_afk_immunity 0
hobo_afk_kick 0
hobo_afk_spectator_kick 16
hobo_afk_unassigned_time 60
hobo_afk_warning_time 20

После того, как мы настроили сервер настал самый волнительный момент. А будет ли все это работать? сейчас проверим! :-) Если терминал открыт то переходим в корневую папку сервера, набрав
cd ~/hlserver/

Затем запускаем наш сервер, выполнив:
./hlds_run -secure -game cstrike +maxplayers 24 +map de_dust2 +port 27015 +sv_lan 0

Об остальных параметрах запуска сервера можно узнать на сайте Valve

Сервер запускается… Для проверки вводим команду status и видим всю информацию о сервере, что он работает, сколько игроков, какая карта сейчас запущена…
Для проверки загружен ли Amx Mod X введем
meta list
эта команда покажет все библиотечки, которые загружены метамодом и среди них есть amxmodx_mm_i386.so  значит все загружено и работает!

Заходим на сервер, пишем в консоли amxmodmenu

Если появилась менюшка — значит все сделано правильно и теперь ты — полноправный админ!

Неплохо бы было абиндить меню на какую-нибудь клавишу, например L:

bind l amxmodmenu

 

Выключение сервера
Для корректного выключения сервера введите команду quit или нажмите CTRL+C

Теперь мы умеем создавать сервер под линуксом! И знаем, как с ним работать!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


− 8 = ноль