Что от вас потребуется: * Быстрый, не лимитированный интернет.
* Не обязательно статический, но обязательно
Внешний IP /
Проброс нужных серверу портов если вы используете роутер (проигнорировав эти пункты не удивляйтесь тому, что на сервер можете зайти только вы). Естественно для локального сервера это не нужно.
* Нормальный блокнот для правки конфигов (с поддержкой utf-8 без BOM, рекомендую Notepad++)
Задачи * Загрузка файлов сервера
* Настройка сервера
* Установка и настройка sourcemod и metamod
* Установка и настройка плагинов sourcemod
Загрузка файлов сервераСкачайте
hldsupdatetool.exe [687,04 Kb] (cкачиваний: 660)
Эта утилита загружает / обновляет файлы сервера.Установите её в что-нибудь похожее на D:\servers\TF2:
В качестве региона выбирайте Азию:
Переходите в папку установки и создавайте там файл .bat – название файла может быть любым, например update.bat.
Создайте текстовый файл update.txt, откройте его в блокноте, Файл > Cохранить как. Тип файла меняйте на «все файлы» и вводите новое название полностью, с расширением:.bat файлы содержат команды для консоли windows (cmd)Внутрь update.bat помещайте следующие строчки:
hldsupdatetool.exe -command update -game tf -dir . -verify_all -retry
pause
pause нужна для того, чтобы после загрузки сервера окошко с логом не закрылось.
-game tf – указывает какую игру скачивать, вместо названия игры пишется её алиас:
Наиболее популярные игры и их алиасы:
tf – Team Fortress 2
left4dead – Left 4 Dead
left4dead2 – Left 4 Dead 2
«Counter-Strike Source» – Counter-Strike: Source
ageofchivalry – Age of Chivalry
dods – Day of Defeat: Source
Полный список можно увидеть открыв консоль (win+R, cmd) и введя эту команду:
D:\servers\tf2\hldsupdatetool.exe -command list
-dir . – указывает куда качать, например -dir C:\server, точка вместо пути означает то, что скачивать сервер утилита будет в ту папку, где находится сама.
-verify_all – проверяет какие файлы уже скачены, и не скачивает их повторно, это полезно если закачка прервалась или сервер обновился
-retry – если steam не отвечает, пытаться подключиться к нему с интервалом в 30 секунд.
Сначала запускайте hldsupdatetool.exe – чтобы обновить эту утилиту до последней версии, а потом update.bat. От следующего пункта этого руководства вас отделяют ~2.7 гигабайта.
* Пусть вас не смущает «No installation record found at…» – это не ошибка, а следствие флага -verify_all. Просто ждите. Когда hlds поймёт что никаких файлов вообще нет, он автоматически их скачает.
* Если по каким-либо причинам закачка оборвалась – снова запускайте update.bat – hlds скачает оставшиеся файлы.Autoexec.cfg, Server.cfg и motd.txtServer.cfgCоздавайте файл server.cfg в папке D:\servers\tf2\orangebox\tf\cfg и помещайте туда следующие строчки:
// Название вашего сервера
hostname "my tf2 server [fast resp / no crits / alltalk]"
//регион сервера, 4 или 5 - Азия
sv_region 4
// Отключение случайных критических ударов, никак не влияет например на банкате или уберкрит медика
tf_weapon_criticals 0
// Пароль для удалённого управления сервером
rcon_password 123456
// Время до смены карты
mp_timelimit 30
// Красные и синие слышат друг друга
sv_alltalk 1
// При бездействии игрок будет не выкинут с сервера, а перемещён в наблюдатели
mp_idledealmethod 1
// Overtime! Overtime! Overtime!
tf_overtime_nag 1
// Разрешаем скачивать с сервера файлы - в первую очередь это пользовательские карты
net_maxfilesize 80
sv_allowupload 1
sv_allowdownload 1
// Включаем быстрый респаун
mp_disable_respawn_times 1
Если вы планируете разместить сервер в локальной сети то добавьте ещё эту опцию:
sv_lan 1
Обратите внимание на строчки начинающиеся с «//» – это комментарии, сервер их игнорирует.
Когда ставить кавычки, а когда нет?Кавычки не нужны, когда значение параметра – одно слово:
rcon_password 123456
Кавычки нужны, если значение параметра разделено хотя бы одним пробелом:
rcon_password "123 456"
Autoexec.cfgТеперь создавайте autoexec.cfg в той же папке (D:\servers\tf2\orangebox\tf\cfg), этот шаг не обязателен, и нужен вам только если вы хотите чтобы сервер писал демки.
В файл нужно добавить эти строчки:
tv_enable 1
tv_name "Source TV"
Вы можете добавить в этот файл опцию
tv_autorecord 1 для автоматической записи демок, но это лучше делать с помощью плагина.
Motd.txtПриветствие, которое видит игрок заходя на сервер.
Откройте файл D:\servers\tf2\orangebox\tf\motd.txt и измените его на свой вкус.
Вы можете использовать для этого файла html, чтобы вставить картинку или задать своё форматирование текста.
Помните, ваша картинка не должна весить больше 200 кб, не издевайтесь над игрокамиРазмер картинки для сервера каждой игры приходится подбирать опытным путём, для tf2 оптимальной размер картинки – не выше 740 и не шире 870 пикселей.
Например так:
<html>
<body>
<center><img height=100% border="0" src="http://i.imgur.com/ds2oS.jpg"></center>
</body>
</html>
Однако у прозрачной картинки фон станет белым. Как этого избежать?
Для этого нужно использовать ещё одну картинку для фона –
back.jpg:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<style type="text/css">
html, body {
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
.back {
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
}
.logo img {
position:relative;
z-index:1;
margin:0 auto;
height:100%;
}
</style>
</head>
<body>
<img class="back"src="http://ksevelyar.ru/tf2/back.jpg"/>
<div class="logo"><img src="http://ksevelyar.ru/tf2/welcome.png"/></div>
</body>
</html>
Запуск сервераДля запуска сервера тоже используется .bat файл.
Его нужно создать в той папке, где лежит srcds.exe, в нашем примере (сервер team fortress 2) srcds.exe лежит в d:\servers\tf2\orangebox\ – переходите в эту папку и создавайте там run.bat с таким содержимым:
@echo off
cls
echo Protecting srcds from crashes...
title srcds.com Watchdog
:srcds
echo (%time%) srcds started.
start /wait srcds.exe -console -game tf -tickrate 66 -secure +maxplayers 24 -port 27020 +map cp_dustbowl
echo (%time%) WARNING: srcds closed or crashed, restarting....
goto srcds
Обратите внимание на эту строчку:
start /wait srcds.exe -console -game tf -tickrate 66 -secure +maxplayers 24 -port 27020 +map cp_dustbowl
Возможно вам захочется изменить максимальное количество игроков, или начальную карту. Список карт можно посмотреть в файле d:\servers\tf2\orangebox\tf\maplist.txt
Можете уже попробовать запустить сервер и подключиться к нему. Если всё прошло успешно – переходите к следующему этапу.
Установка sourcemod и metamodСкачайте
metamod и
sourcemod – они сильно упрощают администрирование сервера и к ним много вкусных плагинов.
Разархивируйте плагины в папку с алиасом игры:
Теперь нужно подключить metamod.
Для этого в папку addons (D:\servers\tf2\orangebox\tf\addons), надо поместить файл metamod.vdf – его можно сгенерировать автоматически:
metamodsource.net/vdfВыбирайте вашу ос и игру, если игры в списке нет, вводите её алиас в поле
Game Folder:
Можно сделать его и вручную, создайте текстовый файл и поместите в него эти строчки:
"Plugin"
{
"file" "..\tf\addons\metamod\bin\server.dll"
}
Сохраните его как metamod.vdf в папку addons.
Настройка sourcemodДобавление администратораВозможно несколькими способами – с помощью steam id, ip, или логина и пароля. Самый удобный способ – первый.
Узнать ваш steam id тоже можно несколькими способами:
Подключайтесь к любому source серверу (например к тому, который вы сейчас настраиваете) и вводите в консоль
status:
Здесь STEAM_0:1:16547568 – мой steam id. Этот способ немного громоздок, но и наиболее надёжен.
Steam id можно узнать и с помощью разнообразных скриптов, например на этом сайте –
http://steamid.ru/.
Откройте файл D:\servers\tf2\orangebox\tf\addons\sourcemod\configs\admins_simple.ini
И добавьте после комментариев такую строчку:
"STEAM_0:1:16547568" "99:z"
Естественно вам нужно заменить steam id на свой.
Что она делает? Она назначает пользователя со steam id равным STEAM_0:1:16547568 администратором 99 уровня (его не сможет кикнуть, забанить и т. п администратор с меньшим уровнем) и полным доступом (флаг z). Подробнее о флагах читайте в
документации к SourceMod..
Примерно так admins_simple.ini выглядит для меня:
Помните, строчки начинающиеся с «//» – воспринимаются парсером как комментарии и игнорируются.
//-- Owner --//
"STEAM_0:1:16547568" "99:z"
//-- Admins --//
"STEAM_0:0:9840420" "2:abc"
"STEAM_0:1:21561811" "2:abc"
//-- Reserved slots --//
"STEAM_0:1:13486251" "1:a"
"STEAM_0:1:20834770" "1:a"
Пользовательские карты и правка списка карт.Для того, чтобы установить пользовательскую карты вам нужно просто скопировать их в папку maps (например D:\servers\tf2\orangebox\tf\maps).
Лучшие образцы пользовательских карт водятся на
fpsbanana.comДля начала можно обратить внимание на эти:
* cp_floodzone2_final
* ctf_convoy_v2
* pl_frontier
Теперь создавайте в папке tf\addons\sourcemod\configs\ файл adminmenu_maplist.ini и заполняйте его списком карт (за основу можно взять mapcycle.txt в корневой папке).
У меня он выглядит так:
cp_well
cp_granary
cp_dustbowl
cp_gravelpit
ctf_2fort
cp_badlands
pl_goldrush
cp_fastlane
ctf_turbine
pl_badwater
cp_steel
cp_egypt_final
cp_junction_final
plr_pipeline
pl_hoodoo_final
koth_sawmill
koth_viaduct
cp_yukon_final
koth_harvest_event
ctf_doublecross
cp_gorge
cp_freight_final1
cp_floodzone2_final
ctf_convoy_v2
pl_frontier
Последнее что осталось сделать заменить в файле \addons\sourcemod\configs\maplists.cfg все строчки
"target" "mapcyclefile"
на эти:"file" "addons/sourcemod/configs/adminmenu_maplist.ini"
Настройка резервных слотовЗачем они нужны? Чтобы вы и выбранные вами игроки могли подключиться к серверу даже если он полон.
Основных вариантов поведения сервера два:
* При заходе игрока с флагом «a» (этот флаг означает резервный слот) с сервера кикается игрок с максимальным пингом без флага «a». (
sm_reserve_type 1)
* Если сервер полон, то игрок с флагом «a» всё же сможет подключиться к серверу и при этом он займёт один резервный слот. На мой взгляд этот вариант предпочтительней, но требует от сервера больше ресурсов. (
sm_reserve_type 0 – по умолчанию)
Предположим что максимальное количество игроков на вашем сервере – 24.Открывайте \cfg\sourcemod\sourcemod.cfg
Для первого варианта меняем настройки так:
sm_reserve_type 1
sm_reserved_slots 24
Для второго так:
sm_reserve_type 0
sm_reserved_slots 6
sm_hide_slots 1
Без третьей опции резервные слоты будут отображаться как обычные – и как следствие огорчать игроков пытающихся тщетно подключиться к серверу, но не имеющих флага «а».
Итак, мы сделали 6 публичных слотов резервными, но это значит, что количество доступных обычным игрокам слотов уменьшилось на 6. Чтобы компенсировать это открывайте файл run.bat и меняйте максимальное количество игроков с 24 на 30.
Теперь, даже если на сервере будут 24 игрока к нему всё равно смогут подключиться ещё 6 игроков для которых включены резервные слоты.
Контроль действий других администраторовЕсли вы планируете наделять административными правами не только себя, то вам будет полезна следующая опция:
Откройте \cfg\sourcemod\sourcemod.cfg найдите
sm_show_activity и измените её значение на
16:
sm_show_activity 16
Теперь администраторы с флагом «z» будут видеть имена других администраторов.
ПроверкаЗапускайте сервер и вводите следующие команды в консоли сервера:
meta list
sm plugins list
Они выводят списки плагинов (Sourcemod и Metamod идут с базовыми плагинами из коробки)
Если сервер ругается на неизвестные команды – в первую очередь проверьте .vdf файл.
Теперь запускайте игру, подключайтесь к серверу (чтобы узнать ip / порт используйте команду «status»), открывайте уже игровую консоль и вводите в ней
sm_admin – вы должны увидеть окошко с командами администратора.
Рекомендую привязать эту команду к определённой клавише, чтобы не набирать её каждый раз полностью:
bind "l" "sm_admin"
Плагины sourcemodПлагины это файлы
.smx которые кладутся в папку
\orangebox\tf\addons\sourcemod\plugins.
Иногда в комплекте с плагином идёт его конфигурационный файл – я буду писать куда его надо поместить, однако обычно это
\orangebox\tf\cfg\sourcemod или
\orangebox\tf\addons\sourcemod\configs. Если вы не создадите этот файл сами – в большинстве случаев игра создаст его сама, заполнив настройками по умолчанию.
Если в комплекте с плагином есть файл
.phrases.txt его надо поместить в
\orangebox\tf\addons\sourcemod\translations\Я рекомендую установить следующие плагины для
Team Fortress 2:
TF2 MaxClass –
лимит на максимальное количество игроков за определённый классMaxClass.txt в \orangebox\tf\addons\sourcemod\configs
Для лимита в три игрока для всех классов замените содержимое MaxClass.txt на это:
"MaxClassPlayers"
{
//Default config if the map tree is not found
"default"
{
//When there is 1 to 24 players in the server
"1-24"
{
//Team2 = red AND team3 = blue
//set to 0 if you want this to only work on one team
"red" "1"
"blue" "1"
//Put -1 for no limit, 0 for disalowed, and any other number to set the limit
"scout" "3"
"sniper" "3"
"soldier" "3"
"demoman" "3"
"medic" "3"
"heavyweapons" "3"
"pyro" "3"
"spy" "3"
"engineer" "3"
}
}
}
TF2: Killer’s Info –
информация об убийце (оружие и оставшееся здоровье) – версия для tf2TF2 Melee Mode –
плагин позволяет включить/выключить режим запрещающий использовать любое оружие кроме рукопашного.Для установки плагина требуется только файл .smx
Однако сам плагин не добавляет в админ меню никаких команд – это неудобно. Добавим свой пункт в меню сами:
Открывайте файл \addons\sourcemod\configs\adminmenu_custom.txt и заменяйте его содержимое на следующее:
"Commands"
{
"Fun Commands"
{
"Melee only"
{
"cmd" "sm_meleemode_enable #1"
"execute" "server"
"1"
{
"type" "list"
"title" "Melee only:"
"1" "1"
"1." "On"
"2" "0"
"2." "Off"
}
}
}
И эти универсальные плагины (будут работать для любого source сервера):Killer info display –
информация об убийце (оружие и оставшееся здоровье) – версия для любой игрыAuto Recorder –
плагин автоматически начинает запись демок, если на сервере находится от 4-ёх человек (по умолчанию).TeamSwitch –
позволяет перебрасывать игрока из одной команды в другую.High Ping Kicker – Lite Edition плагин автоматически кикает с сервера игроков с пингом выше заданного.Создайте/отредактируйте servers\tf2\orangebox\tf\cfg\sourcemod\hpk_lite.cfg изменив sm_maxping на свой вкус:
// 0 = Off | 1 = On -- Admins immune to High Ping?
// -
// Default: "1"
sm_adminsimmune "1"
// 0 = Off | 1 = On -- HPK Enabled?
// -
// Default: "1"
sm_hpk_enabled "1"
// Number of grace checks for high ping.
// -
// Default: "10"
sm_maxchecks "10"
// Max ping allowed for clients.
// -
// Default: "150"
sm_maxping "250"
// When to start checking ping after map start. (Seconds)
// -
// Default: "15.0"
sm_startcheck "15.0"
Spray Tracer–
информация о том, кто поставил спрей при наведении на него прицела.Advertisements –
всплывающие сообщения во время игры.advertisements.smx в \addons\sourcemod\plugins
advertisements.txt в \addons\sourcemod\configs – именно из этого файла будут браться выводимые сообщения.
Так он выглядит у меня:
"Advertisements"
{
"1"
{
"type" "T"
"text" "ksevelyar.ru"
}
"2"
{
"type" "T"
"text" "dobroserver@ksevelyar.ru"
}
"3"
{
"type" "T"
"text" "{TIMELEFT} minutes left."
}
"4"
{
"type" "T"
"text" "{YELLOW} {TIME}"
}
}
Однако если вы поместите в поле «text» кириллический текст – в игре будут отображаться иероглифы. Для того, чтобы это исправить нужно сменить кодировку файла на UTF-8 без BOM.
Так это можно сделать в notepad++:
Так разные типы сообщений («type» «CHST») выглядят в игре:
Лучше всего на мой взгляд выглядит тип
T (вверху слева), то, что длинное сообщение в него не влезает, недостатком назвать нельзя – всю громоздкую информацию надо помещать в motd – всплывающие сообщения не должны отвлекать от игры.
По умолчанию интервал между сообщениями – 30 секунд, слишком мало на мой взгляд, открывайте servers.cfg и добавляйте эту опцию:
sm_advertisements_interval 180
Custom Votes –
позволяет обычным игрокам (без админских флагов доступа) голосовать за смену карты, кик, бан, отключение микрофона и т. д.Чтобы установить плагин распакуйте содержимое customvotes.zip в папку с алиасом игры.
Голосования по умолчанию (вводятся в чат):
voteban, votekick, votemute, votemap, votecrits, votenextmap, votescramble, voteextend
Как добавить своё голосование?
На примере плагина TF2 Melee Mode:
Открывайте папку \addons\sourcemod\configs\customvotes\
И создавайте в ней файл .cfg – название может быть любым. Если в этом файле будет только одно голосование – логично назвать его melee.cfg, если несколько – customvotes.cfg
Внутрь поместите это:
"Votes"
{
"melee"
{
"title" "Turn melee only #1?"
"type" "chat"
"command" "sm_meleemode_enable #1"
"trigger"
{
"command" "vmelee"
"notice" "%u wants to turn melee only #1"
"percent" "60"
}
"params"
{
"1" "onoff"
}
}
}
Обратите внимание на первую «command». В неё помещена команда плагина TF2 Melee Mode. Естественно там может быть любая другая команда которая принимает значение 1 или 0 – например sv_alltalk. Вторая «command» внутри «trigger» определяет какое слово должен ввести игрок чтобы инициировать голосование.
Как добавить ещё одно голосование в этот файл? Смотрите структуру playervotes.cfg и core.vote.cfg и делайте по аналогии.
Say Sounds –
ещё один опциональный плагин, позволяет проигрывать свои звуки при подключении игрока на сервер и при выполнении особых событий.Не обязательно использовать посторонние звуки – внимательно осмотрите содержимое папки \sound. Свои звуки нужно помещать в эту же папку.
Конфигурационный файл – \addons\sourcemod\configs\saysounds.cfg
И выглядит так для моего сервера tf2:
"Sound Combinations"
{
"JoinSound" // Sound to play when a player Joins the server
{
"file" "misc/welcome.mp3"
"admin" "0"
"single" "1"
"volume" "0.9"
}
"STEAM_0:1:16547568"
{
"exit" "ambient/lightsoff.wav"
"admin" "0"
"volume" "0.7"
}
"suicide"
{
"file" "ambient/cow2.wav"
"admin" "0"
"actiononly" "1"
"action" "suicide"
"param" "suicide"
}
"headshot"
{
"file" "misc/hs.mp3"
"admin" "0"
"actiononly" "1"
"action" "headshot"
"param" "headshot"
}
}
Полезные плагины sourcemod, которые отключены по умолчанию:Mapchooser – голосование за следующую карту в конце раунда.
rockthevote – ввод rtv в окно чата инициирует голосование за выбор карты.
Просто скопируйте эти плагины из \addons\sourcemod\plugins\disabled\ в \addons\sourcemod\plugins\
После добавления всех необходимых плагинов сервер надо перезапустить. Чтобы убедиться, что нужные плагины загружены – используйте команду
sm plugins list. Помните, sourcemod (и его плагины) как и metamod, надо обновлять вручную.
если у вас есть вопросы на эту тему – ищите эту информацию сами.Автор: ksevelyar