Для начала создания вы должны определиться сколько у вас будет серверов и в какой папке они будут находиться. Я буду предоставлять вам материал исходя из того что сервер будет находится в папке server. Второй более важный момент , это среда - будь она просто текстовая , будь она KDE или GNOME . Тут мы вам скажем одно, если вы опытный пользователь Пингвинов , то вы можете это сделать на чистой ОС , если вы новичок то настоятельно вам рекомендуем использовать графическую среду , какую именно вы определяйтесь сами , но данный материал будет написан для консольной и графической версий. И так что мы имеем ? А мы имеем ОС Debian 6.0.1 x64 , так же этот материал подойдёт для систем Ubuntu и Kubuntu. Для новичков использующих графическую среду , все ниже описанные команды нужно будет вводить в терминале с правами пользователя root.
ПРИМЕЧАНИЕ : Все вводимые команды нужно вводить от пользователя root.
Для начала создадим папку для нашего будущего сервера. В нашем случае это будет папка server , для этого пишем команды :
Код: Выделить всё
mkdir server
cd server
Значит мы создали папку для нашего сервера , теперь нам предстоит создать так называемое ядро сервера (билд) , для чего нам поможет утилита hldsupdatetool
hldsupdatetool
Описание : Утилита предназначена для создания и обновления выделенных серверов компании VALVE
Автор : Компания VALVE
Официальный сайт : http://www.steampowered.com
Теперь нам надо установить эту утилиту , для чего набираем команду :
Код: Выделить всё
wget http://www.steampowered.com/download/hldsupdatetool.bin

Теперь в нашей папке server появляется hldsupdatetool.bin , если хотите то можете зайти и проверить , далее :
Код: Выделить всё
chmod +x hldsupdatetool.bin
Код: Выделить всё
./hldsupdatetool.bin

Для принятия соглашения вам необходимо набрать yes , после чего утилита установиться и выдаст об этом сообщение : extracting steam.tar.Z...done
ПРИМЕЧАНИЕ : Для пользователей 64-битных систем , а в частности Ubuntu , у вас возможно появится ошибка : bash: ./hldsupdatetool.bin: No such file or directory . Во избежании этого вам необходимо установить кое какие библиотеки , для чего вам нужно набрать команду :
Код: Выделить всё
apt-get install ia32-libs
Код: Выделить всё
nano update.sh
Код: Выделить всё
./steam -command update -game "Counter-Strike Source" -dir ../server -verify_all
-command update - запустить обновление или установку (изменять ничего не требуется)
-game "Counter-Strike Source" - тип сервера , в нашем случае Counter-Strike Source (изменять ничего не требуется)
-dir ../server - путь к папке сервера (путь к этой папке изменяйте на свой )
-verify_all - проверяет на наличие последних обновлённых файлов сервера , основываясь на информации от разработчика (изменять ничего не требуется)
Если вы делаете шаг за шагом как у нас , то у вас должно выглядеть вот так :

Теперь сохраняем нажав Ctrl+O на вопрос о сохранении жмём ввод и выходим из редактора нажав Ctrl+X. Для того чтобы запустить наш файл ему необходимо добавить права , для чего вводим команду :
Код: Выделить всё
chmod +x update.sh
Код: Выделить всё
./update.sh

После чего вам необходимо запустить файл второй раз , при этом утилита начнёт искать недостающие файлы в вашей папке сервера и качать их вам напрямую с официального сайта загрузки :

Ну а в нашем случае , она будет качать абсолютно все файлы сервера , так как мы создаём его с нуля. Помните мы говорили вам , что эта утилита будет служить так же и обновлением ? Совершенно верно , если произойдут какие-то обновления со стороны разработчиков , ты вы смело запускайте файл update.sh , утилита найдёт не обновлённые файлы , скачает и заменит их в вашем сервере. Ну а сейчас вам остаётся только ждать , ждать конца загрузки файлов - это зависит от вашей скорости , ширины канала и вашего месторасположения. Как говорит Grizli и пусть трещит ваш провайдер :)
По окончанию загрузки и проверки всех файлов , утилита автоматически остановится. Но мы вам настоятельно рекомендуем ещё раз запустить update.sh , для того чтобы утилита ещё раз проверила все файлы , и если что то у вас не загрузилось или произошёл незаметный обрыв связи с интернетом , то утилита исправит это недоразумение. Как говориться проверка лишней не бывает. После всего у вас папке сервера появятся новые файлы и папки.
Ну что же , мы поздравляем вас ! Вы установили основу сервера (билд,ядро).
Ну что же вам наверно не терпится запустить свой сервер и зайти на него поиграть ? Ну что же , давайте запустим созданный нами сервер. Для этого нам необходимо снабдить основу (билд,ядро) некоторой информацией и настройками.Для начала нам необходимо создать файл для запуска , назовём его start.sh , который необходимо создавать рядом с файлом srcds_run , то есть в папке orangebox . Ну что , переходим в папку orangebox и пишем команду :
Код: Выделить всё
nano start.sh
И так , вставляем туда текст следующего содержания :
Код: Выделить всё
#!/bin/sh
echo "Starting Classic CSS"
sleep 1
screen -A -m -d -S css-classic ./srcds_run -console -game cstrike -port 27019 +map de_dust2 +maxplayers 24
sleep 1 - делает паузу на 1 секунду (изменять не требуется)
screen -A -m -d -S - Это создаст сессию работы со screen, которая будет называться "css-classic" с которой все это будет запускаться.
css-classic - имя процесса - сеанса (изменяйте на ваш вкус)
-console - запустить консоль работы сервера (изменять не требуется)
-game cstrike - тип игры , а точнее основная папка сервера (изменять не требуется)
-port 27019 - UDP порт работы вашего сервера (если знаете что делаете то изменяйте , если нет то оставьте как есть)
+maxplayers 24 - максимальное число игроков на вашем сервере (изменяйте на свой вкус)
+map de_dust2 - начальная карта при запуске сервера (можете поставить другую , но она должна обязательно быть в папке maps и обязательно должна быть прописана в файле maplist.txt)

ПРИМЕЧАНИЕ : screen – это полноэкранный оконный менеджер, который позволяет разделить физический терминал между несколькими независимыми процессами. Скорее всего, screen уже есть в вашей системе. Проверить это можно командой :
Код: Выделить всё
which screen
Код: Выделить всё
apt-get install screen
Код: Выделить всё
chmod +x start.sh
server.cfg
Описание : файл служит для настроек сервера
Автор : KOLOBOK
Загрузка : Для загрузки вам необходимо перейти в \server\orangebox\cstrike\cfg и выполнить команду :
Код: Выделить всё
wget http://www.uralwagon.su/FILES_UGP/EDITORS/SERVER_CFG/server.cfg

Затем откройте файл с помощью команды :
Код: Выделить всё
nano server.cfg
hostname "Classic Server CSS" - это имя вашего сервера , впишите своё имя (использовать только английский текст)
sv_contact "www.csmania.ru" - это данные о вас , а точнее о хозяине сервера (можно использовать почтовый ящик , например [email protected])
rcon_password "security" - пароль для удалённого управления вашим сервером , обязательно поменяйте на свой (использовать только английский текст или цифры)

Сохраните файл. Далее нам необходимо создать ещё 2 файла , это banned_ip.cfg и banned_user.cfg , соответственно :
Код: Выделить всё
nano banned_ip.cfg
Код: Выделить всё
nano banned_user.cfg
Эти файлы буду служить базой забаненных игроков , причём banned_ip.cfg - забаненных по IP адресу , а banned_user.cfg - по STEAM_ID. Файлы необходимо создать в той же папке , где находится server.cfg , в нашем случае тут : ..\server\orangebox\cstrike\cfg
Ну что скачали server.cfg ? Настроили его под себя ? Создали файлы banned_ip.cfg и banned_user.cfg ?
Вроде бы всё готово для запуска , но не торопитесь.. Давайте забежим немного вперёд и обсудим ещё 1 очень важную деталь..По умолчанию на сервер устанавливается 20 карт , и только 18 из них игровых , но в игре вы не когда не встретите эти 2 не игровые карты . Спросите почему ? Ответ прост , дело в том что сервер читает карты из файла maplist.txt , который находится тут : ..\server\orangebox\cstrike , а сами карты находятся тут : ..\server\orangebox\cstrike\maps (сама карта имеет расширение bsp) . Дак вот , самое главное правило по картам для сервера : "Карты которые находятся в списке файла maplist.txt , должны обязательно находится в папке maps ( ..\server\orangebox\cstrike\maps) и иметь точно такое же название с учётом регистра (голое название без расширения)" . И ещё один момент , цикл карт по умолчанию на сервере формируется на основе файла mapcycle.txt который находится тут : ..\server\orangebox\cstrike и тут же формируется второе правило : "Карты , которые находятся в списке файла mapcycle.txt должны обязательно быть в списке карт файла maplist.txt и иметь такие же имена с учётом регистра". Ну это мы вам на будущее , если вы вдруг захотите добавить не стандартные карты на сервер.
ПРИМЕЧАНИЕ : Для тех новичков , которые находятся в консольной версии и не знают как посмотреть что находится в той или иной папке , то для этого имеется команда :
Код: Выделить всё
ls

Ну что проверили папку maps ? Проверили файлы maplist.txt и mapcycle.txt ? Правила не нарушены ? :) А кто их успел нарушить ? Мы ведь ещё не добавляли ни каких карт...:) Пришло время запускать сервер ... Запускаем файл start.sh , для этого переходим в /server/orangebox/ и выполняем команду :
Код: Выделить всё
./start.sh
Код: Выделить всё
screen -d -r css-classic

Где css-classic - это вы уже сами догадались имя процесса- сессии , которое мы указывали в строке запуска. Для того чтоб вернуться в консоль своей системы из серверной консоли вам необходимо нажать Ctrl+A+D . Для того чтобы остановить ваш сервер , вам всего лишь нужно убить процесс , который использует нашу сессию , для этого необходимо набрать команду :
Код: Выделить всё
ps ax

Ну что же ищем номер нашего процесса , а наш процесс находится под номером 2699 , ну что же убиваем его , набрав команду :
Код: Выделить всё
kill 2699
Я очень надеюсь что этот мануал может кому-нибудь помочь.
С уважением Алексей !