Меню сайта
Категории
Мини-чат

Для добавления необходимо
войти или зарегистрироваться

Наш опрос
Оцените мой сайт
Всего ответов: 187
Реклама Nr.1
Нету Рекламы
Поиск
Друзья сайта
Нету ещё :(
Статистика
  • Зарегистрировано: 384
  • За месяц: 0
  • За неделю: 0
  • Вчера: 0
  • Сегодня: 0
Сегодня нас посетили:
Сейчас на сайте:

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Мои статьи

Собираем сервер с нуля
Собираем сервер с нуля



Содержание:
0. Вступление
1. Установка чистого сервера
2. Настройка сервера
3. Установка Metamod
4. Установка и настройка AMX Mod X
5. Установка Dproto - нонстим 47/48
6. Установка бустера mmtimer


0. Вступление
Давно уже была мысль написать свою статью про создание выделенного сервера CS 1.6 с AMX Mod X. Если даже очень хорошо поискать мануалы про установку AMX, то вряд ли вы найдёте больше двух-трех разных статей, чаще их просто копируют.
Инструкции сильно устарели, ссылки побились, вышли новые версии программ, много чего поменялось, есть много непонятных моментов, особенно для новичков.

Сразу скажу, что для сервера требуется достаточно мощная машина (Pentium 4 3 GHz, 1 GB Ram минимум), тем более, если вы рассчитываете играть на своем сервере с этого же компьютера (Core 2 Duo 2.6 GHz, 2 GB Ram). Если сервер не только для локальной сети, но и для инета, то вам понадобиться широкий канал (от 2 мб/с на 16 слотов) и самое главное – выделенный ip адрес, он чаще всего покупается у провайдера за отдельную абонентскую плату (или бесплатно, если повезёт).

1. Установка чистого сервера
Сначала определимся, что такое HLDS, и где его взять. HLDSHalf Life Dedicated Server – выделенный автономный сервер для Half-Life и CS 1.6. Выделенный – значит отдельный, для его запуска лучше использовать отдельный компьютер, сервер создается без запуска самой игры, что очень удобно. Чаще всего ставятся именно выделенные сервера. В no-steam версиях CS он обычно устанавливается вместе с самой игрой, т.к. сервер использует многие файлы самой игры (т.е. HLDS – это серверная часть игры). Использовать этот сервер не рекомендуется, но вполне реально. Нам нужна последняя, официальная, "чистая" версия HLDS. Он бесплатный, его можно спокойно скачать из интернета.
Сервер можно скачать отсюда http://depositfiles.com/ru/files/dllorxkdv, размер 157 мб.
Сам сервер после скачки и разархивирования можно запустить, заходим в папку сервера, запускаем hlds.exe. Выбираем параметры и Start Server.
Не забудьте, что сейчас у вас в руках официальный сервер, а значит с 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 "WWW.MAKE-AMXSERV.RU" // Название сервера
maxplayers 17 // Количество слотов
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 адрес сервера

Меняем всё как вам нужно, Файл -> Сохранить как. Имя файла: Server.cmd. Тип файла: все файлы. Сохраняем в корневом каталоге сервера.
Теперь запускаем сервер только через Server.cmd.

Можно также добавить вот эти параметры:
-nomaster – не выводить сервер в списке серверов инета
-insecure – отключить VAC

Вобще в строку запуска можно приписать хоть все параметры из server.cfg:
+map de_dust2 - сервер запуститься с карты de_dust2
+maxplayers 17 – количество слотов (до 32)
+sv_password 333 – пароль на сервер
...и так далее. Естесственно, если вы вписываете какую-то консольную переменную в строку запуска, из server.cfg её лучше удалить, а то запутаетесь :)

3. Установка metamod
Metamod служит для подключения дополнительных модов на сервер, таких как AMX Mod X, StatsMe, античитов и др.
Он встроен в автоматический установщик Amx Mod X Full Installer, но мы всё будем делать ручками, так что...
Скачать Metamod можно отсюда: http://depositfiles.com/files/1vh222qp2 (310 Кб, версия 1.19).
В папке cstrike создаем папку addons, а внутри неё папку metamod. И распаковываем файл metamod.dll в неё. Открываем \cstrike\liblist.gam (блокнот) и исправляем строчку gamedll "dlls\mp.dll" на gamedll "addons\metamod\metamod.dll" и сохраняем.
Всё, метамод установлен, можно приступать к установке модов.

4. Установка и настройка AMX Mod X
Качаем AMX Mod X 1.8.1 отсюда http://depositfiles.com/files/6lswm57vi. Распаковываем скаченный архив. Открываем первый архив (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)
// По умолчанию: 1
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


Переходим к файлу users.ini. Как несложно догадаться, в нём расписаны полномочия юзеров. В самом низу файла будут строчки вида . Одна строчка – один юзер.
- ник или ip или steam_id
- пароль
- флаги полномочий
- флаги входа на сервер

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

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, а в plugins.ini пропишите название файла (не забудьте на конце .amxx).

В результате файл 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 клиентам. Если попытаться зайти на Steam сервер с пиратки, вы увидите сообщение Steam validation rejected. Чтобы исправить это раньше приходилось использовать патчи или патченые библиотеки. К тому же недавно появилась ещё одна проблема: официальный клиент перешел на новый 48 протокол, несовместимый с 47 (т.е. на сервер 48 протокола нельзя зайти с клиентом 47 протокола и наоборот). К счастью, появился нормальный патч-мультипротокол в виде плагина к Метамоду. Dproto пропускает на сервер все известные клиенты (Steam, NoSteam 47/48 протоколы), позволяет настроить SteamID для клиентов и др. Новые версии Dproto выкладывается на форуме (там же можно задать вопрос разработчику): http://www.dproto.com/
Скачиваем отсюда последнюю версию Dproto: http://depositfiles.com/files/j0sl3s526. Создайте папку 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\). Настройки можно не менять.

6. Установка бустера 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: http://depositfiles.com/files/d99366quv.
Устанавливается бустер стандартно: файл 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: Список всех команд Amx Mod X 1.8.1
Админские:


amx_addadmin [password] [authtype] Добавить админа
amx_addban [reason] Добавить бан к бан-листу сервера
amx_ban
Категория: Мои статьи | Добавил: Pr0f1x (16.02.2011)
Просмотров: 442 | Теги: Собираем сервер с нуля | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]