Team SR Четверг, 28.03.2024, 22:33
Главная | Регистрация | Вход Приветствую Вас Залётный | RSS
Меню сайта

Категории каталога
Статьи [16]
Все что касается Half-Life
Статьи о своём [9]
О своём

Главная » Статьи » Статьи

Ставим Counter-Strike 1.6
По просьбам трудящихся, точнее по их заявлениям, о том что нужна им контра хоть "убейся об стену". Решил разобраться, наконец, с этим вопросом, что и сделал. Сразу скажу, что я ставлю не из портов, в связи с некоторыми ограничениями по трафику (т.е. пришлось просить знакомого, чтобы он выкачал мне нужные файлы). Я установил CS на машине, где был инет, обновил игру и всю директорию просто перенес на рабочий сервер (плюс chmod, что ему нужно) который не подключен к инету и все ок. Т.е. если вы все поставили и все работает, можно просто клонировать/копировать уже установленный Counter Strike на другие сервера без проблем :)
Ну-с начнем...

  • Подготовка системы
  • Инсталяция
  • Конфигурация
  • Моды
  • Администрирование
  • Faq
  • Литература

    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 <username> -email <email> -password 
    <password> -question <question> -answer <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

    Формат файла: <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 <willday@metamod.org>
    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.

  • Категория: Статьи | Добавил: [SR]illidan (24.11.2008)
    Просмотров: 6107 | Рейтинг: 3.7/3 |
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Форма входа
    Логин:
    Пароль:

    Статистика

    Рейтинг@Mail.ru


    Яндекс деньга

    Banners
    Team SR, Half-Life AG Mod
    AGT, Clan AGT

    [CWD], Half-Life AG Team
    MK, Half-Life Clan
    EHLL, Elite Half Life League
    HLCCL, Half-life Clan Collision League
     Official site AG Mod
    crv, Clan crv



    Все права защищены! Team SR © 2005-2024 Сайт создан в системе uCoz