Збираємо сервер з нуля - статті counter-strike 1

Збираємо сервер з нуля

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


2. Налаштування сервера
Всі основні параметри сервера зберігаються в файлі server.cfg в папці cstrike.
Відкриваємо його блокнотом. Сміливо звідти все видаляємо і вставляємо приблизно наступне:

// Старт сервера
hostname "WWW.MAKE-AMXSERV.RU" // Назва сервера
maxplayers 17 // Кількість слотів
map de_dust2 // Карта, з якої стартує сервер
sv_lan 0

// довантажувати бан-листи
exec banned.cfg
exec listip.cfg

sv_voicequality 5 // (3) Якість голосу
sv_voicecodec voice_speex // (voice_miles) Звуковий кодек


Все, що йде після "//" вважається Комметаріі. В дужках вказано значення за замовчуванням. Тут, звичайно, не всі настройки, тільки основні, цього цілком вистачить.

Тепер відкриваємо блокнот і пишемо наступну сходинку (рядок запуску сервера):
start "Server" / min / high "hlds.exe" -game cstrike -console + port 27015 + ip 255.255.255.255

Міняємо все як вам потрібно, Файл -> Зберегти як. Файл: Server.cmd. Тип файлу: всі файли. Зберігаємо в кореневому каталозі сервера.
Тепер запускаємо сервер тільки через Server.cmd.

Можна також додати ось ці параметри:
-nomaster - не виводити сервер в списку серверів інета
-insecure - відключити VAC

Вобще в рядок запуску можна приписати хоч всі параметри з server.cfg:
+map de_dust2 - сервер запуститися з карти de_dust2
+maxplayers 17 - кількість слотів (до 32)
+sv_password 333 - пароль на сервер
. і так далі. Звичайно, якщо ви вписуєте якусь консольну змінну в рядок запуску, з server.cfg її краще видалити, а то заплутаєтеся :)

В папці 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"

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

// Частота виведення на екран цього повідомлення (див. Вище) в секундах
// За умовчанням: 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, інакше вона не з'явиться на голосуванні.

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.

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 [reason] Забанити гравця
amx_cfg Виконати конфіг на сервері
amx_cvar [value] Змінити або показати значення cvar
amx_help отримати інформацію про наявні команд
amx_kick [reason] кікнути гравця
amx_last Список недавно вийшли з сервера гравців
amx_leave [tag1] [tag2] [tag3] кікнути всіх гравців, у яких немає зазначених клан-тегів
amx_map Зміна карти
amx_menu Показує меню, доступне для гравців
amx_modules Лист всіх завантажених модулів
amx_nick Зміна ника гравця
amx_off Припиняє плагіни
amx_on Знімає паузу з плагінів
amx_pause Поставити або зняти паузу
amx_pausecfg Список команд для управління паузами
amx_plugins Лист всіх завантажених плагінів
amx_rcon Виконує команду на стороні сервера
amx_reloadadmins Оновити адмінів з users.ini
amx_setlang Встановити мову
amx_showrcon Виконати команду в консолі сервера і відобразити результат
amx_slap [damage] Слеп (поштовх) гравця, можна з втратою
amx_slay Слей (вбивство)
amx_unban Розбанити гравця
amx_who Список гравців на сервері (ip, steam_id, nick, time, ping)

amx_chat Послати повідомлення всім адмінам
amx_csay Повідомлення для всіх по центру
amx_psay Надіслати приватне повідомлення (одному гравцеві)
amx_say Послати повідомлення всім гравцям
amx_tsay Повідомлення для всіх зліва
say @ [@ | @ | @] [w | r | g | b | y | m | c] Повідомлення для всіх зліва
say_team @ Показує повідомлення всім адмінам (HUD)

amx_cancelvote Перериває попереднє голосування
amx_vote Будь-яке голосування
amx_voteban Голосування за бан гравця
amx_votekick Голосування за кік гравця
amx_votemap [map] [map] [map] Голосування за наступну карту

say / hp Показує інформацію про вашому вбивці (в чаті)
say / me Показує поточну статистику раунду (в чаті)
say / rank Показує ваш ранг на сервері (в чаті)
say / rankstats Показує your server stats (MOTD)
say / report Показує статус зброї (в чаті для команди)
say / score Показує статистику команд (в чаті)
say / stats Показує статистику інших (меню / MOTD)
say / statsme Показує вашу статистику (MOTD)
say / switch Включає / вимикає статистику у клієнта
say / top15 Показує топ 15 гравців (MOTD)

say currentmap Показує поточну карту
say ff Показує статус Friendly Fire
say nextmap Показує наступну карту
say thetime Показує поточний час
say timeleft Показує час до кінця карти

amxmodmenu Показує головне меню Amx Mod X
(З нього доступні всі інші меню)


RCON команди (на стороні сервера):

amxx cmds Показує команди Amx Mod X
amxx cvars Показує CVAR-и Amx Mod X
amxx gpl Показує ліцензію GNU
amxx modules Показує модулі
amxx pause Призупинити запущений плагін
amxx plugins Показує плагіни
amxx unpause Запустити призупинений плагін
amxx version Показує версію Amx Mod X


Додаток 2: Список додаткових налаштувань сервера CS 1.6:
decalfrequency 60 // Ставити своє лого можна раз в Х секунд
log on // Включити запис логів
mp_allowspectators 1 // На сервері можна бути присутнім спектаторам
mp_consistency 1 // Перевіряти файли клієнта
mp_hostagepenalty 0 // Бан за вбивство Х заручників. 0 - вимкнено
mp_logdetail 3 // Детальність логів
mp_logecho 1 // Лог-записи відображаються в консолі
mp_logfile 1 // Вести логи в файли в папці logs
mp_logmessages 1 // Записувати повідомлення
mp_maxrounds 0 // Ліміт раундів Maximum number of rounds to be played on a map, leave at 0 to obey mp_timelimit.
mp_startmoney 800 // Початкова кількість грошей
mp_tkpunish 0 // Вбивати тімкіллеров в наступному раунді
mp_winlimit 0 // Ліміт кількості перемог
pausable 1 // Сервер можна поставити на паузу
rcon_password "" // Пароль від ркона
sv_allowdownload 1 // Дозволити клієнту завантажувати файли з сервера
sv_allowupload 1 // Дозволити сервера завантажувати файли з клієнта
sv_alltalk 0 // Дозволити голосове спілкування між командами
sv_cheats 0 // Дозволити використовувати чітерскіе команди
sv_gravity 800 // Гравітація
sv_password "" // Пароль для входу на сервер
sv_proxies 2 // Скільки HLTV Proxy може приєднається до сервера
sv_voiceenable 1 // Дозволити голосове спілкування
sys_ticrate 1000 // Тікрейт сервера

Схожі статті