Создаем сервер Half-Life
План:
1. Установка HLDS
2. Установка Metamod
3. Установка Amx mod x
4. Установка Dproto
5. Настройка сервера
6. Запуск сервера
Установка HLDS
Прежде всего, нам нужно скачать саму программу от Valve – HLDS Update tool.
Скачиваем, устанавливаем например в C:\HLDS
Создаем ярлык для HldsUpdateTool.exe
Открываем свойства ярлыка и добавляем строку: -command update –game valve -dir C:\HLDS
После того как вы добавили строку жмём применить.
Запускаем отредактированный ярлык.
или
«Пуск (Start)», затем «Выполнить... (Run…)». В появившемся окне вводим:
C:\hlds\hldsupdatetool.exe -command update -game valve -dir C:\HLDS
Жмем «Ок»
Можно bat файлом
HldsUpdateTool.exe -command update -game valve -dir C:\HLDS
* -dir C:\HLDS только для примера! Папку нужно указать ту, где лежит распакованный HLDS Update Tool
У меня получилось так C:\Server\HldsUpdateTool.exe -command update -game valve -dir C:\Server
После этих действий начнется скачивания сервера.
Вы увидите примерно следующие:
Процесс скачивания сервера может занять от нескольких минут до нескольких часов. Все зависит от скорости интернета, быстродействия компьютера, а также загруженности серверов Steam.
Дождитесь окончания скачивания. (После скачивания папка будет весить ~ 107 МБ)
Установка Metamod.
metamod служит для подключения дополнительных модов на сервер, таких как AmX Mod X, StatsMe и т.д.
Скачать metamod можно здесь.
Распакрвываем из архива metamod.dll. в директорию \valve\addons\metamod.
Открываем \valve\liblist.gam.
Исправляем строчку:
Code
gamedll "dlls\hl.dll"
на
Code
gamedll "addons\metamod\metamod.dll"
Все готово для подлючения доп. модов.
Установка Amx Mod X
Качаем AMXХ.
Если ставить автоматом, то всё само поставится, если ручками то делаем следующее:
Распаковываем папки amxmodx и metamod в valve/addons/.
Идем в папку valve/addons/metamod/ и открываем файл plugins.ini, там прописываем строчку:
win32 addons/amxmodx/dlls/amxmodx_mm.dll
Далее идем в папку valve/addons/amxmodx/configs
Открываем amxx.cfg
Code
// AMX Configuration File
echo Executing AMX Mod X Configuration File
// Эта строчка отвечает за права пользователя "по умолчанию” т.е. те права, которые будут даны ВСЕМ игрокам на сервере
amx_default_access "z"
// Получать доступ используя "_pw". Можно указать любую другую комбинацию ("_pass")
// (Example: setinfo _pw "password")
amx_password_field "_pw"
// Управляет доступом на сервер
// 0 - игроки не проверяются на права (и их права игнорируются)
// 1 - нормальный режим
// 2 - не пускать на сервер игроков, не входящих в список user.ini
amx_mode 1
// Показывать действия админов
// 0 - отключено (команды не показываются)
// 1 - показывать без указания имени админа
// 2 - указывать с именем админа
amx_show_activity 2
// Бегущая строка
amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600
// Сообщение в центре экрана (формат цвета сообщения RRRGGGBBB)
amx_imessage " Welcome to %hostname% -- This server is using AMX Mod X" "000255100"
amx_imessage "You are playing %hostname%" "000100255"
// Время между показом сообщений (сек.)
amx_freq_imessage 180
// Нет флуду на сервере. Через какое время клиент может послать след. сообщение
amx_flood_time 0.75
// Отвечает за режим выделения резервных слотов входящим на сервер админам
amx_reservation 1
// 1 - если вы хотите спрятать значение зарезирвированных словот, 0 - если вы не хотите ничего прятать
amx_hideslots 0
// Оставшееся врмя на карту. Действия:
// a - показывать текст
// b - сказать голосом оставшееся время
// c - не показывать текст (только голос)
// d - не добавлять "часы/мин/сек" (только голос)
// e - отсчёт оставшегося времени (визуально и голосом)
amx_time_display "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"
// Голосовое сопровождение "say thetime" и "say timeleft"
amx_time_voice 1
// Минимальная задержка в сек. между сессиями голосования
amx_vote_delay 10
// Время на голосование (сек.)
amx_vote_time 15
// Отображать кто за что голосует
amx_vote_answers 1
// Значения для утверждения голосования (0.40 = 40% проголосовавших)
amx_votekick_ratio 0.40
amx_voteban_ratio 0.40
amx_votemap_ratio 0.40
amx_vote_ratio 0.02
// Время в минутах, на которое максимально может быть продлена текущая карта
amx_extendmap_max 90
// Шаг в минутах, на который будет продлеваться текущая карта ( ограничено переменной amx_extendmap_max )
amx_extendmap_step 15
// Rank mode
// 0 - by nick
// 1 - by authid
// 2 - by ip
csstats_rank 0
// Max size of the stats file
csstats_maxsize 3500
// Duration of HUD-statistics
amx_statsx_duration 12.0
// HUD-statistics display limit relative round freeze end
// Negative time will clear the HUD-statstics before the round freeze time has ended
amx_statsx_freeze -2.0
//If you set this to 0, clients cannot chose their language
amx_client_languages 0
// Plugin Debug mode
// 0 - No debugging (garbage line numbers)
// 1 - Plugins with "debug" option in plugins.ini are put into debug mode
// 2 - All plugins are put in debug mode
// Note - debug mode will affect JIT performance
amx_debug 1
// Plugin MultiLingual Debug
// To debug a language put its 2 letter code between quotes ("en", "de", etc)
// "" means disabled
amx_mldebug ""
настраиваем под себя
Далее modules.ini:
Code
;;;
; To enable a module, remove the semi-colon (;) in front of its name.
; If it's not here, simply add it its name, one per line.
; You don't need to write the _amxx part or the file extension.
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; SQL Modules usually need to be enabled manually ;;
;; You can have any number on at a time. Use ;;
;; amx_sql_type in sql.cfg to specify the default ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;mysql
;sqlite
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Put third party modules below here. ;;
;; You can just list their names, without the _amxx ;;
;; or file extension. ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; These modules will be auto-detected and loaded ;;
;; as needed. You do not need to enable them here ;;
;; unless you have problems. ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;fun
;engine
;fakemeta
;geoip
;sockets
;regex
;nvault
;hamsandwich
Впринципе можете снять все комментарии, но это значительно увеличит нагрузку сервера, поэтому следует подгружать только модули, которые требуют устанавливаемые вами плагины. Обычно необходимые модули пишутся в шапке плагинов.
Для того что бы отключить модуль, нужно перд ним поставить - ";” (без кавычек)
Сохраняем файл.
Далее открываем users.ini:
Code
; Users configuration file
; File location: $moddir/addons/amxmodx/configs/users.ini
; Line starting with ; is a comment
; Флаги доступа:
; a - иммунитет (против игрока не могут быть использованы команды: kick/ban/slay/slap и т.д)
; b - резервация (игрок сможет пользоваться резервным слотом)
; c - amx_kick - доступ к команде amx_kick
; d - amx_ban and amx_unban commands - доступ к команде amx_ban и amx_unban
; e - amx_slay and amx_slap commands - доступ к команде amx_slay и amx_slap
; f - amx_map command - доступ к команде amx_map
; g - amx_cvar command - доступ к команде amx_cvar (не все переменные могут быть доступны)
; h - amx_cfg command - доступ к команде amx_cfg
; i - amx_chat and other chat commands - доступ к команде amx_csay и другим чат командам
; j - amx_vote and other vote commands - доступ к команде amx_vote и другим командам голосования
; k - access to sv_password cvar - доступ к переменной sv_password (через команду amx_cvar)
; l - access to amx_rcon command and rcon_password cvar - доступ к переменной amx_rcon и rcon_password (через amx_cvar)
; m - произвольный уровень A (если вы используете нестандартные амх плагины)
; n - произвольный уровень B
; o - произвольный уровень C
; p - произвольный уровень D
; q - произвольный уровень E
; r - произвольный уровень F
; s - произвольный уровень G
; t - произвольный уровень H
; u - доступ к графическому меню управления (amxmodmenu)
; z - пользователь (не админ)
; Флаги аккаута:
; a - не пускать игрока на сервер с неправильно введенным паролем
; b - регистрация клан тега
; c - админ зайдет на сервер только со значениями authid/wonid
; d - админ заходит только с этого ip адресса
; e - пароль не проверяется (необходимо только совпадение name/ip/wonid)
; Password:
; Add to your autoexec.cfg: setinfo _pw "<password>"
; Change _pw to the value of amx_password_field
; Аккаунты админов:
; <Имя(Ник)|ip|steamid> <Пароль> <Флаги доступа> <Флаги аккаунтов>
;Пример:
; "STEAM_0:0:123456" "" "abcdefghijklmnopqrstu" "ce"
; "123.45.67.89" "" "abcdefghijklmnopqrstu" "de"
; "My Name" "my_password" "abcdefghijklmnopqrstu" "a"
Если доступ админа стоит через пароль, то ему с начала нужно набрать в консоли setinfo _pw пароль
Code
; AMX Mod X plugins
; Admin Base - Always one has to be activated
admin.amxx ; admin base (required for any admin-related)
;admin_sql.amxx ; admin base - SQL version (comment admin.amxx)
; Basic
admincmd.amxx ; basic admin console commands
adminhelp.amxx ; help command for admin console commands
adminslots.amxx ; slot reservation
multilingual.amxx ; Multi-Lingual management
; Menus
menufront.amxx ; front-end for admin menus
cmdmenu.amxx ; command menu (speech, settings)
plmenu.amxx ; players menu (kick, ban, client cmds.)
;telemenu.amxx ; teleport menu (Fun Module required!)
mapsmenu.amxx ; maps menu (vote, changelevel)
pluginmenu.amxx ; Menus for commands/cvars organized by plugin
; Chat / Messages
adminchat.amxx ; console chat commands
antiflood.amxx ; prevent clients from chat-flooding the server
scrollmsg.amxx ; displays a scrolling message
imessage.amxx ; displays information messages
adminvote.amxx ; vote commands
; Map related
nextmap.amxx ; displays next map in mapcycle
mapchooser.amxx ; allows to vote for next map
timeleft.amxx ; displays time left on map
; Configuration
pausecfg.amxx ; allows to pause and unpause some plugins
statscfg.amxx ; allows to manage stats plugins via menu and commands
csstats.amxx
; Enable to use AMX Mod plugins
;amxmod_compat.amxx ; AMX Mod backwards compatibility layer
; Custom - Add 3rd party plugins here
Чтобы добавить плагин, нужно его вписать
Пример:
Code
;Otsher plugins
Roundnonstop.amxx
Для того что бы отключить плагин, нужно перeд ним поставить - ";” (без кавычек)
Еще есть очень удобная программа для настройки сервера Server Configurator (качем здесь)
Позволяет с легкостью редактировать параметры: Admins (User.ini), Plugins (plugins.ini), Modules (modules.ini), Amxx (amxx.cfg), Server (server.cfg), Motd (motd.txt),…
Вот и все.
Установка Dproto
Dproto - это плагин под MetaMod, позволяющий людям заходить на сервер со Steam(48 protocol) и non-steam (47-48).
Качаем здесь
Установка
в папке addons создаем папку dproto и копируем в неё файл dproto.dll
открываем папку valve/addons/metamod/plugins.ini (если файла такого нет, то создаем сами) и добавляем следующую строчку:
Code
win32 addons\dproto\dproto.dll
файл dproto.cfg кидаем в корень сервера. Корректируем конфиг, устанавливая необходимые Вам параметры (настройки по умолчанию достаточны для работы модуля).
Для удобства русский перевод конфига:
Code
# ========================================================
# DPROTO CONFIGURATION
# ========================================================
#LoggingMode - режим ведения логов:
# 1 = консольный
# 2 = файловый
# 3 = оба режима
LoggingMode = 2
# UserinfoVerification - режим проверки игрока:
# 1 = проверка на максимальный размер при подключении игрока (Используется MaxUserInfoSize в этом режиме)
# 2 = удаление ненужных полей в информации игрока (Используется ValidInfoFields в этом режиме)
# 3 = оба режима
# Проверка необходима для предотвращения переполнения в информации игрока. Переполнение может способствовать появлению сообщений svc_bad у игроков.
UserinfoVerification = 3
MaxUserInfoSize = 230
ValidInfoFields_Engine = \name\bottomcolor\topcolor\model\cl_lc\cl_lw\cl_updaterate\cl_dlmax\rate\_pw\*hltv\password
ValidInfoFields_cstrike = \_vgui_menus\_cl_autowepswitch
ValidInfoFields_ag = \cl_autowepswitch
# ========================================================
# AUTHID MANAGEMENT
# ========================================================
# AuthID игроков:
# 1: Real steam (STEAM_xx:xx:xx)
# 2: Real valve (VALVE_xx:xx:xx)
# 3: STEAM_ by IP
# 4: VALVE_ by IP
# 5: Deprecated - client will be rejected
# 6: reserved for future use
# 7: HLTV
# 8: STEAM_ID_LAN
# 9: STEAM_ID_PENDING
# 10: VALVE_ID_LAN
# 11: VALVE_ID_PENDING
# 12: STEAM_666:88:666
# Используйте вышеуказанное описание для установки настроек AuthID
cid_HLTV = 7
cid_NoSteam47 = 8
cid_NoSteam48 = 10
# Для реальных steam-клиентов
cid_Steam = 1
# Укажите AuthID игроков, которые авторизовались, но не получили SteamID
cid_SteamPending = 9
# Для игроков имеющих эмулятор revEmu ( версия >= 9.74) на клиентсокй стороне:
cid_RevEmu = 1
# Для игроков имеющих старые версии эмулятора revEmu на клиентской стороне:
cid_OldRevEmu = 1
# Для игроков имеющих hCupa's SteamEmu на клиентской стороне:
cid_SteamEmu = 1
# SteamEmuCompatMode (0 / 1)
# Это аналог для функции eSTEAMATiON's EnforceSteamEmuCompatIDMode.
# Работает только на старых RevEmu и SteamEmu эмуляторах.
SteamEmuCompatMode = 1
# OldEstCompatMode (0 / 1)
# Включение/Отключение исправления steamid, сгенерированные eST в 0.3.1 версии.
# Устаноовите "1", если вы хотите выдавать steamid как в версиях < 0.3.0 eST.
OldEstCompatMode = 0
# IPGen_Prefix1 (int)
# STEAM_a:b:c
# ^ - префикс для AuthID сгенерированных по IP-адресу nosteam-игроков
IPGen_Prefix1 = 0
# IPGen_Prefix2 (int)
# STEAM_a:b:c
# ^ - префикс для AuthID сгенерированных по IP-адресу nosteam-игроков
IPGen_Prefix2 = 4
# Стоит отметить, что banid будет использовать STEAM_ID без каких-либо приставок!
# ========================================================
# OTHER STUFF
# ========================================================
# Emulation (0/1)
# Установите значение в 1, если нужна поддержка эмуляции с помощью eSTEAMATiON
Emulation = 0
# DisableNativeAuth (0/1)
# Отключает valve/steam систему аутентификации.
# Для серверов на 47 протоколе: не будут подключаться к мастер-серверам.
# Для всех серверов: функция авторизации не будет вызываться.
# Этот фикс нужен, если при запуске старые сервера зависают.
DisableNativeAuth = 0
# ServerInfoAnswerType (0/1/2)
# Тип ответа сервера на запросы:
# 0 = Новый метод (Source)
# 1 = Старый метод
# 2 = Совмещенный метод
ServerInfoAnswerType = 2
# MasterClient (0/1)
# Включение эмуляции мастер-клиента; это помогает зарегистрировать сервер в мастер-листе
# если у вас ошибка "Your server is out of date"
# ИСПОЛЬЗОВАТЬ ЭТО ТОЛЬКО С ПАРАМЕТРОМ ЗАПУСКА -nomaster !
# вы можете использовать Master_GameVersion для изменения версии игры
MasterClient = 0
# Master_GameVersion (string)
# Укажите версию игры для корректной передачи на мастер-сервер
Master_GameVersion = 1.1.2.6/Stdio
# SubServer_Enable (0/1)
# Включает вторичный минисервер, который редиректит клиентов на основном сервере:
# Используйте параметр SubServer_AnswerType, чтобы установить тип ответа на запросы
# Используйте параметр SubServer_Port, чтобы установить вторичный порт сервера
# Используйте параметр SubServer_MasterClient, чтобы включить поддержку мастер-клиента на вторичном сервере
# Это используется, если вы хотите, чтобы все клиенты видели твой сервер.
# Это возможно, если вы устанавливаете различные типы ответов на запросы для основного и вторичного серверов.
# Клиенты, которые не видят основной сервер, должны увидеть вторичный.
SubServer_Enable = 0
SubServer_Port = 28015
SubServer_MasterClient = 0
SubServer_AnswerType = 0
SubServer_RedirectCommand = connect 169.254.141.3:27015
# Game_Name (string)
# Укажите имя игры, которое будут видеть игроки
# Если параметр не задан, то будет показано стандартное 'Counter-Strike 1.6'
Game_Name =
# Включение фикса отображения ID игрока в мониторинге HLStats
# Включайте это только, если используете HLStats
HLStatsPlayerIdFix = 0
# ExportVersion (0 / 1)
# Включение/Отключение экспорта dp_version cvar
# 1 = dp_version cvar будет экспортрован в правила, установленные для сервера. Он будет виден в мониторинге сервера (например HLSW)
# 0 = dp_version cvar НЕ будет экспортрован в правила, установленные для сервера.
ExportVersion = 1
Настройка сервера
Для настройки сервер используется файл server.cfg, который находится в папке \valve.
Открывать и редактировать можно простым текстовым редактором. Например «Блокнот», "WordPad”, "Note Pad 2”,…
Вот пример server.cfg:
Code
// Use this file to configure your DEDICATED server.
// This config file is executed on server startup.
// Set the Host Name
hostname "My Server" // Имя сервера.
// Set the rcon password
rcon_password "123456789" // Пароль для управления сервером через консоль клиента. Чтоб данная функция не работала, оставьте пустым - "".
// player bounding boxes (collisions, not clipping)
sv_clienttrace 3.5
// disable clients' ability to pause the server
pausable 0
// default server name. Change to "Bob's Server", etc.
// hostname "Half-Life"
// maximum client movement speed
sv_maxspeed 270
// Server Logging
log on // включаем режим записи логов
mp_logdetail 3 // определяем детальность записи логов
mp_logmessages 1 // записывать сообщения
// cheat and fun modes
sv_aim 0
sv_cheats 0
cl_bob 0.01
cl_bobcycle 0.8
cl_bobup 0.5
// Set Rates
sv_maxrate 25000
sv_spectatormaxspeed 500
sv_maxspeed 320
sv_maxupdaterate 101
sv_minrate 2500
sv_minupdaterate 20
decalfrequency 60
sys_ticrate 10000
// Exec files on startup
exec banned.cfg
exec listip.cfg
Запуск сервера
Запускается сервер следующей строкой:
hlds.exe -console +sv_lan 0 -insecure -game valve -nomaster +maxplayers 21 +map de_dust +port 27015 +ip 255.255.255.255 +exec listip.cfg
Рассмотрим подробнее:
-console - сервер стартует в консольном режиме.
+sv_lan 0 – Интернет или лан сервер
-game cstrike - запускать мод CS
-nomaster – без steam`a
+maxplayers 21 - максимальное кол-во игроков, которое сервер будет принимать.
+map de_dust2 - сервер запуститься с карты de_dust2.
+port 27015 - порт, который сервер будет слушать.
+ip 255.255.255.255 - тут вы должны написать IP, на котором будет сервер.
+localinfo mm_gamedll dlls/длл_ботов.dll – запуск сервера с ботами (если это нужно)
Ее нужно дописать в ярлыке для hlds.exe (чтоб больше не возникало таких вопросов, отвечаю стразу!!! Поля «Объект» и «Рабочая папка» должны быть БЕЗ КОВЫЧЕК)
или
«Пуск (Start)», затем «Выполнить... (Run…)». В появившемся окне вводим:
Code
C:\Ваш путь\ hlds.exe -console +sv_lan 0 -insecure -game valve -nomaster +maxplayers 21 +map de_dust +port 27015 +ip 255.255.255.255 +exec listip.cfg
Жмем «Ок»
Можно bat файлом.
Автор статьи: ZK413 <- Спасибо! :)
Стоило дописать (вечером наверное просто не сообразил) В Half-Life сервере (в отличии от CS) практически всем управляют плагины. Достаточно дописать rcon_passord "пароль" в server.cfg.
Редактировать остальные конфиги нет необходимости!
Просто из-за плагина который рассчитан скажем для "Team Fortress" или "Ricochet" сервер может просто не запуститься, а может запуститься но тормозить и глючить.
P.S.
Некоторые моды для Counter-Strike подходят, но безобидные из серии "Psihosound".