48

Запускаем сервер Counter-Strike 1.6 на Linux c хедшотами и ботами!

Мужик сказал - мужик сделал. Мужик сказал и не сделал - мужик пошутил.


Привет вам, красноглазые братья и сестры!

В этой статье-дополнении я расскажу как поднять свой сервер самого популярного онлайн шутера Counter-Strike на Linux. Для тех, кто в танке:

Если верить Steam:

Сыграйте в лучший онлайновый экшен в мире. Примите участие в невероятно реалистичной войне с террористами в этой популярнейшей командной игре. Действуйте совместно с товарищами по команде для достижения стратегических целей. Уничтожайте опорные пункты врага. Освободите заложников. Ваши достижения влияют на успех вашей команды. Успех вашей команды влияет на ваши достижения.


Ладно, заканчиваем тянуть кота за вокальные данные и приступим к делу.


----------------------------------------------------------------

Глава 3. Непредвиденные последствия

----------------------------------------------------------------

Внимательный читатель, думаю, обратил внимание, что мы начали не с нулевой и даже не с первой главы. Нет, автор не прогуливал математику в школе.  Так почему же с третьей?

Ответ прост. В предыдущей статье бонусом к установке сервера HL шла еще и установка сервера CS. Если вы выполняли действия глав 0-2, то уже сейчас можете запустить сервер командой:

./hlds_run -game cstrike +maxplayers 8 +map de_dust


при условии, что вы находитесь в каталоге с сервером.  Но (всё самое интересное асегда начинаются после слова "Но") никаких ботов и no-steam клиенты (йо-хо-хо) к вам не подключатся. Нам такого "счастья" не надо.
Исправляем ситуацию. Напомню, что у меня сервер расположен в каталоге /mnt/video/games/hlds, у вас, разумеется, свой.

cd /mnt/video/games/hlds

Как известно из пред. статьи для того, чтобы к серверу могли подключиться no-steam клиенты, нам нужен dproto. А для запуска dproto нужен metamod.

Double Protocol (dproto) - плагин для Metamod'а, решающий проблему мультипротокола и эмулирующий SteamID для NoSteam-клиентов.

И снова я решил тупо собрать dproto, metamod и ботов и залить их на мыльное облако. Архив нужно скачать и положить в папку с сервером. Распакуем:

tar -xf cstrike.tar.xz

И положим все по местам.

mv addons cstrike/

mv dproto.cfg cstrike/

Как и в прошлый раз, отредактируем один файл. На сей раз это файл с тем же названием liblist.gam, но в папке cstike.

nano cstrike/liblist.gam

Здесь заменяем строку

gamedll_linux "dlls/cs.so"

на

для 64-битных:

gamedll_linux "addons/metamod/dlls/metamod_amd64.so"

для 32-битных:

gamedll_linux "addons/metamod/dlls/metamod_i386.so"


-------------------------------------------------

Глава 4. Серверный комплект

-------------------------------------------------

Сервер готов, пробуем запустить.

./hlds_run -game cstrike +maxplayers 8 +map de_dust

здесь:

--game cstrike - запустить контру;

+maxplayers 8 - количество игроков';

+map de_dust - карта;


Боты настраиваются в файле cstrike/addons/podbot/podbot.cfg

pb_minbots 0

pb_maxbots 16

и команда

pb add скилл_бота

Все довольно просто, поэтому перейдем к клиенту.


-----------------------------------------------------------------------------------------------

Глава 5. Мы встретили пиратскую версию Халфы Контры.

-----------------------------------------------------------------------------------------------


... и прошли мимо. Мы ведь всё еще не качаем пиратские игры, правда? Для интересующихся, первая ссылка по запросу "counter-strike linux" в гугле приведет вас куда нужно. Скачиваем, распаковываем, запускаем, играем. (Скачивание не показано)

mkdir /mnt/video/games/cs && cd /mnt/video/games/cs

В эту же папку кидаем архив с игрой.

tar -xf Counter-Strike.tar.gz

Архив теперь можно удалить, если не нужен (в пред. статье я забыл про это упомянуть).

rm Counter-Strike.tar.gz

Запускаем:

./cstrike.sh

Порубиться с ботами или с другими игроками? Не вопрос. Запусти в одной консоли сервер. В другой клиент. В клиенте нажми клавишу тильду "~" и введи команду на соединение:

connect 127.0.0.1:27015

Вместо 127.0.0.1:27015 можно набрать адрес какого-нибудь другого сервера.


------------------------------------------------------

Глава 6. Отводные псевдонимы.

------------------------------------------------------

Сделаем псевдонимы в ~/.bashrc для того, чтобы не набирать полностью команды. И вновь я напоминаю, что каталоги у вас должны быть свои.

echo "alias startcsds='cd /mnt/video/games/hlds; ./hlds_run -game cstrike +maxplayers 8 +map de_dust'" >>~/.bashrc

echo "alias startcsclient='cd /mnt/video/games/cs; ./cstrike.sh'" >>~/.bashrc

И перечитаем файл.

source ~/.bashrc

В итоге для запуска сервера контры достаточно набрать startcsds, а для запуска клиента startcsclient.

Почти все. Необязательный штрих.


--------------------------------------------------------------------

Глава 7. Подача разделенных терминалов

--------------------------------------------------------------------

Процитирую:

Мой основной эмулятор терминала terminator. Мне нравится, что можно вертикально разбить окно: слева запустить сервер, справа запустить клиент. Удобно? Удобно. Быстро? Нет. Надо исправлять. Для начала создадим отдельный шаблон для запуска игр.

В прошлый раз я насклерозил и забыл добавить файл, пришлось отдельным комментом.

Склонирую файл на pastebin  и отредактирую для контры. Ссылку просто так дать нельзя, поэтому вот - http://pastebin\.\com/6YhtJNYU (Прости, лига лени!). Обратные слеши надо убрать.

Если копируете, заменяйте папки на свои! В файле записан layout с названием csds. Запустив терминал с этим layout-ом, мы получим вертикальное разбиение окна c одновременным запуском сервера/клиента.

terminator -l csds --new-tab

И снова псевдоним.

echo "alias cd='terminator -l csds--new-tab'" >>~/.bashrc

Перечитаем файл:

source ~/.bashrc

И все. Запускается все это одной единственной командой

cs

Команда запустит отдельный экземляр эмулятора терминала, разделит окно вертикально, слева запустит сервер, справа клиент... Ну, про это я уже писал.


На этом все.

Всего хорошего и спасибо за рыбу за внимание.

ps. Ура, у меня появился личный фсб-шник! xD

GNU/Linux

1.2K поста15.6K подписчика

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества