Как создать сервер Counter-Strike 1.6

Материал из WikiServia
Перейти к: навигация, поиск

Шаг 1: Где взять и как установить чистый сервер.

Сервер в игре Counter-Strike 1.6 да и в Half Life называется – HLDS.

HLDS (Half Life Dedicated Server) – выделенный автономный сервер для Half-Life и CS 1.6

HLDS запускается без запуска самой игра Counter-Strike 1.6 и работает автономно, что позволяет на одном компьютере запустить его и с этого же компьютера можно и играть на нем!

В no-steam версиях Counter Strike сервер обычно устанавливается вместе с самой игрой, т.к. сервер использует многие файлы самой игры (т.е. HLDS – это серверная часть игры). Использовать этот сервер не рекомендуется, но вполне реально.

Теперь, после скачки и разархивирования, у вас есть так сказать чистый сервер, который можно запустить - заходим в папку сервера, запускаем hlds.exe. Выбираем параметры и «Start Server». Но это пока что чистый, официальный сервер, на котором будет работать только Steam, то есть если вы зайдете с No-Steam (пиратская кс) то увидете ошибку "STEAM validation rejected".

Чтобы это избежать, нужно будет установить «Dproto», но об этом позже.

Что бы узнать версию севера – наберите в его консоли: version - увидите:

Protocol version 48
Exe version 1.1.2.6 (cstrike)
Exe build: 14:21:06 Mar 8 2010 (4554)

Шаг 2: Как настроить сервер.

Все настройки и параметры сервера хранятся в файле server.cfg в папке cstrike. Открываем его блокнотом, полностью очищаем его и вставляем следующий текст:

Старт сервера

hostname "WORLD-CS.NET" // Название сервера
maxplayers 16 // Количество слотов
map de_dust2 // Карта, с которой стартует сервер
sv_lan 0

Подгружаем бан-листы

exec banned.cfg
exec listip.cfg

Настройки

mp_autokick 0 // (1) Автокик тимкиллеров
mp_autoteambalance 1 // (1) Автоматический баланс команд
mp_buytime 0.5 // (1.5) Время на покупку (мин)

mp_c4timer 35 // (45) Время таймера на бомбе (сек)
mp_chattime 3 // (10) Время до загрузки следующей карты (сек)
mp_flashlight 1 // (0) Разрешить фонарик
mp_forcecamera 0 // (0) Ограничение просмотра игры после смерти
mp_forcechasecam 1 // (0) После смерти можно смотреть только за своей командой
mp_freezetime 2 // (6) Время, после которого стартует раунд (сек)
mp_friendlyfire 0 // (0) Попадения по своим не будут учитываться
mp_limitteams 0 // (2) Максимальная разница игроков в командах (для автобаланса)
mp_playerid 1 // (0) Выводить информацию о игроках при наведении прицела
mp_roundtime 2 // (5) Длительность раунда (мин)
mp_timelimit 30 // (0) Время на карту (мин)

sv_voicequality 5 // (3) Качество голоса
sv_voicecodec voice_speex // (voice_miles) Звуковой кодек

Рейты

sv_maxrate 20000
sv_maxupdaterate 101
sv_minrate 10000
sv_minupdaterate 60

Самые основные настройки у вас есть. Текст после "//" считается комметарием и не воспринимается программой. В скобках указано значение по умолчанию.

Теперь открываем блокнот и пишем следующую строчку (строка запуска сервера):

start "Server" /min /high "hlds.exe" -game cstrike -console +port 27015 +ip 255.255.255.255

Рассмотрим подробнее, что здесь написано:

start "Server" – запуск консоли с заголовком Server

/min – свернуть после запуска

/high – ставим высокий приоритет

-game cstrike - запускать сервер под CS

-console - сервер стартует в консольном режиме

+port 27015 - порт, на котором будет работать сервер (по умолчанию порт 27015)

+ip 255.255.255.255 – ip адрес сервера

Если разбираетесь в этом - то можете поменять необходимые настройки, если же нет - то не трогайте, здесь все гладко стоит.

Далее...

1) нажимаем «сохранить как»,

2) имя файла: «Server.cmd»,

3) тип файла: все файлы.

4) Сохраняем в корневом каталоге сервера.

Теперь запускаем сервер только через Server.cmd.

При желании добавьте: -nomaster – не выводить сервер в списке серверов интернета

-insecure – отключить VAC


Шаг 3: Устанавливаем metamod

Metamod служит для подключения дополнительных модов на сервер, таких как AMX Mod X, StatsMe, античитов и др. Он встроен в автоматический установщик Amx Mod X Full Installer, но мы всё будем делать сами, так что начнем.

Качаем самую последнюю версию Metamod с официального сайта - metamod.org (выбирайте windows Binary если у вас Windows OS)


В папке cstrike создаем папку addons, а внутри неё папку metamod. И распаковываем файл metamod.dll в неё. Открываем \cstrike\liblist.gam (блокнот) и исправляем строчку:

gamedll "dlls\mp.dll"

на

gamedll "addons\metamod\metamod.dll"

и сохраняем.

Вот и все - метамод на своем месте.


Шаг 4: Ставим и настраиваем AMX Mod X

Скачать AMX Mod X можно с официального сайта – amxmodx.org (с левой стороны, в меню найдите раздел - ".downloads"),

После распаковки открываем первый архив (amxmodx-1.8.1-base.rar) и распаковываем его в папку сервера \cstrike\ (например D:\Server\cstrike). После открываем второй архив, распаковываем туда же, соглашаемся на замену всех файлов.

В папке cstrike/addons/metamod создаём файл plugins.ini. В этом файле будут содержаться пути к библиотекам подключаемых модов. Впишите туда первую строчку: win32 addons/amxmodx/dlls/amxmodx_mm.dll

и сохраните.

Все, AMX Mod X подключен.

Далее, по ходу создания сервера вам придется подключать и другие моды, в результате чего файл addons/metamod/plugins.ini может выглядеть так:

win32 addons/amxmodx/dlls/amxmodx_mm.dll
win32 addons/dproto/dproto.dll
win32 addons/mmtimer/mmtimer.dll
win32 addons/podbot/podbot_mm.dll

Теперь переходим к настройке AMX Mod X. В папке csrtike/addons/amxmodx/configs. Открываем файл amxx.cfg, в котором содержатся основные настройки AMX Mod X, далее все необходимые настройки с пояснениями:

echo Executing AMX Mod X Configuration File

//Уровень доступа (права на сервере) тех, кто не прописан в users.ini (обычных игроков, не админов). По умолчанию: "z"

amx_default_access "z"

//Поле (~переменная) для пароля // Для ввода пароля (админам) используется команда setinfo _pw pass (где _pw – это и есть поле пароля, а pass - сам пароль). По умолчанию: "_pw"

amx_password_field "_pw"

//Вход на сервер //0 – отключить авторизацию, игроки не будут проверяться (не будет присвоен ни один уровень доступа) //1 – нормальный режим, все флаги в аккуантах ставятся (стоит по умолчанию) //2 – кикать всех, кого нет в листе юзеров (users.ini)

amx_mode 1

// Показывать активность администратора. // 0 – не показывать // 1 – показывать, но без ника админа (например, ADMIN Kicked Player) // 2 – показывать, с ником (например, ADMIN MegaPlayer Kicked Player). По умолчанию: 2

amx_show_activity 2

// Частота в секундах и текст сообщения, которое будет прокручиваться // По умолчанию: "Welcome to %hostname% -- This server is using AMX Mod X" 600

amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600

// Сообщение по центру экрана (в конце цвет в RGB) // По умолчанию: "Welcome to %hostname%" "000255100" // "This server is using AMX ModX\nVisit http://www.amxmodx.org" "000100255"

amx_imessage "Welcome to %hostname%" "000255100"
amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255"

// Частота вывода на экран этого сообщения (см. выше) в секундах // По умолчанию: 180

amx_freq_imessage 180

// Время бана для меню (amx_banmenu) // Используйте 0 для перманент банов (навсегда) // По умолчанию: 0 5 10 15 30 45 60 (на ваш выбор)

amx_plmenu_bantimes 0 5 10 15 30 45 60

// Урон от слэпа (slap) для меню (amx_slapmenu) // Слэй автоматически идет первым параметром // По умолчанию: 0 1 5

amx_plmenu_slapdmg 0 1 5

// Как часто игроки могут писать сообщения в чат в секундах (защита от флуда). По умолчанию: 0.75

amx_flood_time 0.75

// Количество резервируемых слотов для админов. По умолчанию: 0

amx_reservation 0

// Скрывать резервируемые слоты. По умолчанию: 0

amx_hideslots 0

// Показывать оставшееся время до конца карты

// a – белый текст внизу по центру экрана

// b – голосовое сопровождение

// c – не добавлять "remaining" (для голоса)

// d – не добавлять "hours/minutes/seconds" (для голоса)

// e – показывать/озвучивать, если текущее время меньше, чем установлено в параметре

// По умолчанию: "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"

amx_time_display "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"

// Сопровождать голосом команды "say thetime" и "say timeleft". По умолчанию: 1

amx_time_voice 1

// Минимальная задержка в секундах между двумя голосованиями. По умолчанию: 10

amx_vote_delay 10

// Сколько длится голосование в секундах. По умолчанию: 10

amx_vote_time 10

// Показывать, кто за что проголосовал. По умолчанию: 1

amx_vote_answers 1

// Отношения для результатов голосования // По умолчанию: 0.40

amx_votekick_ratio 0.40

// По умолчанию: 0.40

amx_voteban_ratio 0.40

// По умолчанию: 0.40

amx_votemap_ratio 0.40

// По умолчанию: 0.02

amx_vote_ratio 0.02

// Максимальное время, на которое может быть продлена карта (в минутах). По умолчанию: 90

amx_extendmap_max 90

// На сколько может быть продлена карта за раз (в минутах). По умолчанию: 15

amx_extendmap_step 15

// Разрешить выбирать язык. По умолчанию: 1

amx_client_languages 1

// Дебаг-режим

// 0 - отключен

// 1 – плагины с опцией "debug" в plugins.ini запускаются в debug режиме

// 2 – все плагины запускаются в debug режиме

// По умолчанию: 1

amx_debug 1

// Статистика ведётся

// 0 – по нику

// 1 - по authid

// 2 - по ip

// По умолчанию: 1

csstats_rank 1

// Максимальный размер файла статистики

// По умолчанию: 3500

csstats_maxsize 3500

// Записывать статистику ботов. По умолчанию: 0

csstats_rankbots 0

// Время для отображения статистики после смерти (в секундах). По умолчанию: 12.0

amx_statsx_duration 12.0

// Время отображения статистики (HUD) после конца раунда

// Отрицательное время уберёт статистику до того, как freezytime раунда закончится

// По умолчанию: -2.0

amx_statsx_freeze -2.0

Теперь открываем modules.ini, в нём содержится список подключаемых модулей.

Модули содержат стандартные функции, необходимые для работы плагинов amxx.

Если в описании плагина сказано, что он не будет работать без определенного модуля, этот модуль следует включить, убрав ";" в строке перед его названием.

Для начала оставим вот такой набор модулей:

;mysql
;sqlite
fun
engine
fakemeta
;geoip
;sockets
;regex
;nvault
cstrike
csx
;hamsandwich

Админские права (или как сделать себя админом сервера CS 1.6).

Что бы сделать себя (или кого то) админом сервера CS 1.6 - откройте файл users.ini, в нём расписаны полномочия юзеров. В самом низу файла будут строчки вида . Одна строчка – один юзер.

"aaa" "bbb" "???" "xx"

где:

aaa - ник или ip или steam_id

bbb - пароль

??? - флаги полномочий (права админа)

xx - флаги входа на сервер

Теперь подробнее.

Флаги полномочий:

b - Флаг, разрешающий подключение на резервные слоты.

c - Флаг доступа к команде amx_kick.

d - Флаг доступа к командам amx_ban и amx_unban.

e - Флаг доступа к командам amx_slap и amx_slay.

f - Флаг доступа к команде amx_map.

g - Флаг доступа для изменений cvar настроек через amx_cvar.

h - Флаг доступа к amx_cfg.

i - Флаг доступа к amx_chat и другим чат командам.

j - Флаг доступа к amx_vote и другим командам голосования.

k - Флаг доступа для изменения cvar переменной sv_password.

l - Флаг доступа к amx_rcon и возможности изменения всех cvar на сервере.

m-t - Зарезервированные флаги (для сторонних плагинов)

u - Флаг доступа к меню.

z - Флаг пользователя. Не даёт ни каких полномочий.


Флаги входа на сервер:

a - отключает игрока, если пароль не совпадает

b - клан тэг

c - это steam_id или won_id

d - это ip

e - пароль не проверяется (нужен только ник/ip/steam_id)

k - имя или тэг чувствительны к регистру (т.е. если вы поставите этот флаг к нику Player и на него стоит пароль, тогда кто угодно может использовать имя plAyEr, никаких полномочий он при этом не получит)


Исходя из этого - пропишем себя админом, добавив такую строчку:

"123.45.67.89" "" "abcdefghijklmnopqrstu" "de"

(где 123.45.67.89 – ваш ip, пароля не требуется, только не глупите, ставьте именно СВОЙ ИП.)

Или по нику: "My Name" "my_password" "abcdefghijklmnopqrstu" "a"

(где My Name – ваш ник, а пароль - my_password, не забудьте перед коннектом к серверу прописать в консоли setinfo _pw "my_password")

Переходим к плагинам.

Плагины добавляют всякие примочки на сервер (статистика, эффекты и т.д.) и повышают функциональность сервера. Открываем файл plugins.ini, и видим набор стандартных плагинов. Отключается любой плагин так же, как и модуль – нужно поставить ";" перед его названием. А что бы установить новый – просто скопируйте его в папку plugins, и пропишите название файла (не забудьте на конце .amxx) в plugins.ini.

В результате файл addons/amxmodx/configs/plugins.ini может выглядеть где то так:

chat_logger.amxx ; Chat Logger v2.1a

admin_freelook.amxx ; Admin Free Look

admin_spec_esp.amxx ; Admin Spectator ESP v1.3

afkkicker2.amxx ; AFK KiSSS

auto_res_in_x_round.amxx ; Autorestart in X Seconds

descriptive_fire_in_the_hole.amxx ; Descriptive "Fire In The Hole"

high_ping_kicker.amxx ; High Ping Kicker

Оригинальные плагины

admin.amxx ; admin base (required for any admin-related)

adminchat.amxx ; console chat commands

admincmd.amxx ; basic admin console commands

adminhelp.amxx ; help command for admin console commands

adminslots.amxx ; slot reservation

adminvote.amxx ; vote commands amxmod_compat.amxx ; AMX Mod backwards compatibility layer

antiflood.amxx ; prevent clients from chat-flooding the server

cmdmenu.amxx ; command menu (speech, settings)

imessage.amxx ; displays information messages

mapchooser.amxx ; allows to vote for next map

mapsmenu.amxx ; maps menu (vote, changelevel)

menufront.amxx ; front-end for admin menus

miscstats.amxx ; bunch of events announcement for Counter-Strike

multilingual.amxx ; Multi-Lingual management

nextmap.amxx ; displays next map in mapcycle

pausecfg.amxx ; allows to pause and unpause some plugins

plmenu.amxx ; players menu (kick, ban, client cmds.)

pluginmenu.amxx ; Menus for commands/cvars organized by plugin

restmenu.amxx ; restrict weapons menu

scrollmsg.amxx ; displays a scrolling message

statscfg.amxx ; allows to manage stats plugins via menu and commands

statsx.amxx ; stats on death or round end (CSX Module required!)

stats_logging.amxx ; weapons stats logging (CSX Module required!)

telemenu.amxx ; teleport menu (Fun Module required!)

timeleft.amxx ; displays time left on map


Важно: все карты на сервере необходимо прописывать файле maps.ini.

Если добавили новую карту в папку maps - не забудьте прописать её название в maps.ini, или она не отобразится на голосовании.


Шаг 5: Что такое Dproto - нонстим 47/48. Как его установить и зачем

Как уже говорилось выше, к официальному серверу нельзя присоединятся на No-Steam CS 1.6. При попытке зайти на Steam сервер с пиратской версии, увидите сообщение «Steam validation rejected».

Чтобы исправить это раньше приходилось использовать патчи или патченые библиотеки. К тому же недавно появилась ещё одна проблема: официальный клиент перешел на новый 48 протокол, несовместимый с 47 (т.е. на сервер 48 протокола нельзя зайти с клиентом 47 протокола и наоборот).

К привеликому счастью, появился нормальный патч-мультипротокол в виде плагина к Метамоду – Dproto. Он пропускает на сервер все известные клиенты (Steam, NoSteam 47/48 протоколы), позволяет настроить SteamID для клиентов и др.

Скачать последнюю версию Dproto вы можете на официальном сайте разработчиков: dproto.com (здесь же можно задать вопрос разработчику)

Скачали? Теперь создайте папку dproto в каталоге D:\Server\cstrike\addons\. (у вас может быть по другому) Файл dproto.dll из архива, в папке bin\windows скопируйте в папку D:\Server\cstrike\addons\dproto\. (смотрите свою соответственно).

В файле metamod\plugins.ini допишите такую строчку: win32 addons/dproto/dproto.dll.

Файл dproto.cfg из архива поместите в корень сервера (D:\Server\).

Вот и все, dproto установлен. (настройки по умолчанию нормальные - можно не менять).


Шаг 6: Установка бустера mmtimer

Что такое mmtimer и зачем он нужен!

В сервере постоянно идет расчет и обработка игровой ситуации: кто куда стреляет, куда бежит, что делает и т.д.

Кадром сервера называется единичный игровой, просчитываемый момент. Частота просчитывания кадров называется FPS (frames per second, кадры в секунду). Чем больше это значение, тем плавнее будет игра для игроков. Также FPS влияет на прибавку к пингу, она вычисляется по формуле 1000/your_fps.

Т.е. если у вашего сервера fps = 64, прибавка к пингу будет 1000/64 ~ 16 ms. Так что чем больше fps, тем лучше игрокам, но нагрузка на сервер больше.

По умолчанию частота кадров равна 100, задается переменной sys_ticrate и имеет ограничение в 1000 fps.

В Windows обычными средствами поднять fps выше 512 нельзя.

Также важна стабильность fps, лучше стабильные 200 fps, чем скачущие 100-500.

Бустеры - плагины (модули), используются для понижения пинга и увеличения fps на сервере за счет увеличения нагрузки на процессор.

Наиболее известные бустеры: HLBooster 1.7, 2.4, Lite и ALX Lowping. HLBooster 1.7, релиз которого был аж в 2003, изменял функцию "sleep" ОС, что ускоряло работу сервера. HL Booster Lite заставлял "просыпаться" сервер, как только к нему приходили данные от игрока. Ну а HLBooster 2.40 (2004 год) гордо объединил эти две функции. Проект ALX Lowping почему-то быстро загнулся и не получил большой популярности (возможно, из-за того, что сложен в настройке).

А совсем недавно, к великой радости КС общества, замечательный человек - crock (автор Dproto) сделал новый бустер - mmtimer.

Как пишет автор, он действует сразу в трёх направлениях:

- увеличивает точность таймера ОС (только под Windows),

- уменьшает время "сна" процесса HLDS

- снимает ограничение 1000 FPS, встроенное в HLDS.


Желаемый FPS сервера задаётся значением sys_ticrate.

Так же имеется "Insane mode", включается с помощью mm_insane 1, в этом режиме HLDS загружает CPU на 100%, выдавая максимально возможное FPS. Можно, кстати, использовать как бенчмарк.

На хорошим процессоре можно получить интересные цифры вроде 50000 FPS. В режиме mm_insane 2 HLDS более "лояльно" относится к другим приложениям, давая им шанс поработать после обсчета каждого кадра. Этот режим позволяет держать несколько серверов на одном ядре.


Устанавливается бустер стандартно:

файл mmtimer.dll помещается в папку cstrike\addons\mmtimer,

а в plugins.ini прописывается путь к этому файлу строчкой

win32 addons\mmtimer\mmtimer.dll.

Настройки добавляем в server.cfg:

sys_ticrate 1100 // Для 1024 fps
mm_insane 0 // Insane mode off

Вот и все, Ваш сервер готов и ждет запуска, как запускать сервер читайте в разделе "Запуск сервера КС 1.6 в консольном режиме"


Статьи:

Counter-Strike 1.6 Сервера и модификации Добавление на сервер Counter-Strike 1.6 музыки