hlds p48 сборка 4617

Раздел посвящён игровым серверам и игрушкам вообще.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Sun
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

hlds p48 сборка 4617

Непрочитанное сообщение Sun » 2009-10-04 14:57:34

Хотел узнать, нужна ли статья про установку Half-Life Didecated Server на 48 портоколе сборка 4617(последняя на время написания поста)? В статье предполагается описать установку сервера с 0 на машину под управлением правильной ОС FreeBSD-7.0, а так же настроить его как steam и no-steam для использования двух протоколов 47 и 48, а так же админки AMXX-1.8.1, ну и на дисерт прикрутить античит и статистику. Надо такую статью?

Аватара пользователя
Pez!
старшина
Сообщения: 436
Зарегистрирован: 2008-01-13 20:02:24
Откуда: москва матушка

Re: hlds p48 сборка 4617

Непрочитанное сообщение Pez! » 2009-10-05 18:57:43

конечно надо ибо та, что на сайте уже устарела
Всёравно все умрут, какая разница....и только серваки с фряхой будут работать ещё некоторое время после.

Аватара пользователя
Sun
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: hlds p48 сборка 4617

Непрочитанное сообщение Sun » 2009-10-09 17:56:49

Установка HLDS сервера не так сложна как можно подумать,я бы сказал установить и завести сам сервер абсолютно не проблема. Поднимать будем сервер по Counter-Strike 1.6 CLASSIC, почему классик? Да потому что не люблю я моды :smile: Нус приступимс:

ПОДГОТОВКА СИСТЕМЫ
Ставить мы будем как вы догадались на правильную ОС FreeBSD, в моем случае это:

Код: Выделить всё

[22:00][nahoste][root][/]#uname -srm
FreeBSD 7.0-RELEASE i386

Первое что нам нужно это обновить сервер, как это сделать каждый решит сам, я же опишу как я это делаю.
Добавляем в /etc/make.conf следующие:

Код: Выделить всё

SUP_UPDATE=
SUP=            /usr/bin/csup
SUPFLAGS=       -g -L 2
SUPHOST=        cvsup7.ru.FreeBSD.org
SUPFILE=        /usr/share/examples/cvsup/standard-supfile
PORTSSUPFILE=   /usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=     /usr/share/examples/cvsup/doc-supfile

Поясню только этот параметр SUPHOST, этой переменной для тех кто не догадался мы задаем сервер обновлений, соответственно выбираем тот который к нам ближе. Далее нам нужно перейти в каталог /usr/ports и дать команду make update.

Продолжаем, теперь когда у нас обновленные порты продолжаем установку, нам нужен эмулятор linux программ для запуска сервера, устанавливаем:

Код: Выделить всё

[22:04][nahoste][root][/]#cd /usr/ports/emulators/linux_base-fc4/
[22:04][nahoste][root][/usr/ports/emulators/linux_base-fc4]#make install clean

и отрехтуем следующие файлы:

Код: Выделить всё

[22:08][nahoste][root][/usr/ports/emulators/linux_base-fc4]#echo "linux_load="yes"">> /boot/loader.conf
[22:08][nahoste][root][/usr/ports/emulators/linux_base-fc4]#echo "linprocfs_load="yes"" >> /boot/loader.conf
[22:08][nahoste][root][/usr/ports/emulators/linux_base-fc4]#echo "linux_enable="YES"" >> /etc/rc.conf
[22:08][nahoste][root][/usr/ports/emulators/linux_base-fc4]#echo "kern.fallback_elf_brand=3" >> /etc/sysctl.conf
[22:08][nahoste][root][/usr/ports/emulators/linux_base-fc4]#echo "kern.ipc.maxsockbuf=524288" >> /etc/sysctl.conf
[22:08][nahoste][root][/usr/ports/emulators/linux_base-fc4]#echo "linprocfs /compat/linux/proc linprocfs rw 0 0" >> /etc/fstab


УСТАНОВКА HLDS
Далее нам нужно создать пользователя от которого у нас будет работать сервер, в моем случае это пользователь hlds и все дальнейшие действие производятся из под него.
Теперь нам нужно определиться с директорией под сервер и скачать бинарник с запакованным steam`om:

Код: Выделить всё

[nahoste][hlds][~]#mkdir steam
[nahoste][hlds][~]#cd steam/
[nahoste][hlds][~/steam]#fetch http://www.steampowered.com/download/hldsupdatetool.bin
[nahoste][hlds][~/steam]#chmod +x hldsupdatetool.bin
[nahoste][hlds][~/steam]#./hldsupdatetool.bin
......................................................
Enter 'yes' to accept this agreement, 'no' to decline: yes
extracting steam.tar.Z...done
[nahoste][hlds][~/steam]#ll
total 11124
-rwxr-xr-x  1 hlds  hlds  3513408  2 сен  2005 hldsupdatetool.bin
-rw-r--r--  1 hlds  hlds     3413  8 апр  2005 readme.txt
-rwxr-xr-x  1 hlds  hlds  7822833  8 апр  2005 steam
[nahoste][hlds][~/steam]#

То что должно получиться в каталоге cs_servers выведено последней командой ll, теперь обновим сам steam:

Код: Выделить всё

[nahoste][hlds][~/cs_servers]#./steam -command update
Checking bootstrapper version ...
Getting version 34 of Steam HLDS Update Tool
Downloading. . . . . . . . . . .
Steam Linux Client updated, please retry the command
[nahoste][hlds][~/steam]#


Теперь остается только стащить со стима сервер и настроить его :smile:

Код: Выделить всё

[nahoste][hlds][~/steam]#./steam -command update -game cstrike -dir .
Checking bootstrapper version ...
Updating Installation
No installation record found at .
No installation record found at .
No installation record found at .
Checking/Installing 'Counter-Strike Base Content' version 35

0.33%   .\cstrike\cl_dlls\client.dll
1.07%   .\cstrike\dlls\cs_i386.so
1.43%   .\cstrike\dlls\mp.dll
1.43%   .\cstrike\events\ak47.sc
1.43%   .\cstrike\events\aug.sc
1.43%   .\cstrike\events\awp.sc
.....................................
62.18%  .\cstrike\torntextures.wad
62.61%  .\cstrike\tswad.wad

Checking/Installing 'Linux Server Engine' version 53

Broken pipe

Возможно закачка может быть прервана, страшного тут ничего нет, это происходит из за загруженности steam сервера. Решение проблемы простое, повторно дать команду на закачку, закачка продолжится с того места на котором остановилась:

Код: Выделить всё

[nahoste][hlds][~/steam]#./steam -command update -game cstrike -dir .
Checking bootstrapper version ...
Updating Installation
Checking/Installing 'Counter-Strike Base Content' version 35


Checking/Installing 'Linux Server Engine' version 53

0.44%   .\core_i386.so
.................................
Checking bootstrapper version ...
Updating Installation
Checking/Installing 'Counter-Strike Base Content' version 35


Checking/Installing 'Linux Server Engine' version 53


Checking/Installing 'Half-Life Base Content' version 12


HLDS installation up to date
[nahoste][hlds][~/steam]#

Все, сервер мы скачали теперь можно перейти к его настройки. В папке steam, это каталог куда у нас качался сервер есть каталог cstrike, в нем находятся интересующие нас файлы, а в частности:
server.cfg - основные настройки сервера
motd.txt - окно при входе на сервер
mapcycle.txt - список карт которые крутятся на сервере

Для начала настроим наш сервер, для этого отрехтуем server.cfg:

Код: Выделить всё

//Server name
hostname "CS-FUN.NAHOSTE.RU :: Classic" //- имя вашего сервера, которое будет видно в списке серверов

//Rcon password
rcon_password "123" - пароль для управления сервером (д.б. известен только вам)

// Server Logging
log on // - включение логирования
mp_logecho 1
mp_logfile 1 // - писать в файл
mp_logdetail 3  // - детализация логв
mp_logmessages 1 // - писать сообщения чата

//settings
mp_allowspectators 0 //- на сервере можно присутствовать спектатором
mp_autocrosshair 0 //- автоаим (примитивный AimBot)
mp_autokick 1 //- кик с сервера простаивающих игроков или Тимкиллеров
mp_autoteambalance 1 //- автобаланс команд (перевес в количестве игроков одной команды над другой не может превышать количества игроков указанных командой mp_limitteams)
mp_buytime 0.1 //- время закупки оружия в начале раунда в минутах
mp_c4timer 30 //- время в сек. до взрыва установленной бомбы
mp_chattime 5 //- Количество секунд, на которое сервер позволяет игрокам писать в общий чат после конца карты и до загрузки новой
mp_decals 200 //- Количество отображаемых одновременно дыр от выстрелов , пятен крови и т.д
mp_fadetoblack 0 //- включение после вашей смерти черного экрана до окончания раунда
//mp_falldamage 1 //- управляет кол-вом снимаемых HP при падении (но она по-моему уже давно убрана из HLDS)
mp_flashlight 1 //- использование фонарика
mp_forcecamera 1 //- установка камеры наблюдения за своей комадой после смерти
mp_forcerespawn 1 //- принудительный быстрый респаун для убитого клиента (если убили не можешь двинутся с того места)
//mp_fraglimit 0 //- количество фрагов, при достижении которого игра на карте будет завершена
mp_freezetime 0 //- время невозможности движения игрока в начале раунда в секундах
mp_footsteps 1 //- слышимость шагов (при беге)
mp_friendlyfire 1 //- повреждения при стрельбе по своим
mp_hostagepenalty 1 //- количество убитых заложников до применения бана в игре
mp_limitteams 2 //- максимальное количество превышения игроков одной команды над другой (от 1 и до бесконечности )
mp_maxrounds 20 //- максимальное количество раундов, при достижении которого игра на карте будет считаться законченной
//mp_playerid 1 - This variable controls what players see when they put their crosshair over an enemy, a hostage, or a teammate
//mp_spawnprotectiontime 10 - кик игрока, сделавшего тимкилл в начале раунда в течении этого количества секунд
mp_roundtime 2 //- время раунда в минутах
mp_startmoney 800 //- стартовое количество денег в начале игры на карте
mp_timelimit 20 //- длительность игры на одной карте в минутах
mp_tkpunish 1 //- применение санкций при ТимКиле (пропуск следующего раунда)
//mp_winlimit 0 //- количество выигрышей одной команды при достижении которого игра на карте считается законченной

//sv_airaccelerate 10 //- задает значение сопротивления воздуха
sv_allowdownload 1 //- возможность скачивания с сервера недостающих карт и т.д.
sv_allowupload 0 //- возможность закачивания на сервер файлов игроков (спрей-логов, карт и т.д.)
sv_alltalk 0 //- разговор в микрофон доступен всем играющим на сервере (включая трупы)
sv_cheats 0 //- разрешение использования читов
//sv_consistency 1 //- проверка клиента, чтобы на сервере могли играть только со стандартными моделями ,звуками и.т.д
sv_contact cs-fun@123.ru //- контакный почтовый адрес администратора сервера
//sv_enableoldqueries 1 //- старый метод запросов для совместимости с программами статистики (например Психостат)
sv_footsteps 1 //- слышимость шагов (при беге)
//sv_friction 4 //- Трение на карте
//sv_gravity 800 //- Гравитация карты
sv_maxrate 19200 //- максимальная пропускная способность сетевого канала сервера с учетом клиентской стороны (ширина канала*128/количество слотов на сервере
                 //- (ропускная способностьX128/server size=sv_maxrate) значение считается по формуле)
//sv_maxspeed 320 //- скорость движения игрока по карте
//sv_maxunlag 0.5 //- максимальная лаг компенсация в секундах
sv_maxupdaterate 96 //- Ограничивает частоту обновлений сервера. Чем выше значение,тем больше пакетов будет послано клиентам (sv_maxupdaterate=sv_maxrate/200 зависит от sv_maxrat
sv_minrate 0 //- минимальная пропускная способность сетевого канала
sv_minupdaterate 10 //- нижний предел частоты обновления сервера
//sv_password "пароль" //- пароль только для входа на сервер, например, на клановый сервер. Не должен совпадать с ркон паролем!
sv_pausable 0 //- возможность паузы на сервере
//sv_rcon_banpenalty 15 //- количество в минутах блокирования доступа к серверу при неправильном определенном количестве попыток ввода ркон пароля
//sv_rcon_maxfailures 5 //- максимальное количество неправильно введенного rcоn_password-а (затем BAN)
//sv_rcon_minfailures 5 //- минимальное количество неправильно введенного rcоn_password-а (затем BAN)
//sv_rcon_minfailuretime 30 //- время, после которого счетчик (sv_rcon_maxfailures) сбрасывается
//sv_specaccelerate 5 //- настройка режима спектатора в режиме "привидения"
//sv_specnoclip 1 //- настройка режима спектатора в режиме "привидения"
//sv_specspeed 3 //- настройка режима спектатора в режиме "привидения"
sv_stats 1 //- сбор статистики использования процессора
//sv_stepsize 18 //- размер шага игрока (если поставить 100-150 то можно на de_aztec, например, из воды прямо к бомбе подняться или на подвесной мост )
//sv_stopspeed 75 //- скорость остановки игрока
//sv_timeout 10 //- время ожидания ответа от клиента в секундах по истечении которого клиент будет отключен
//sv_unlag 1 //- возможность компенсации лагов
sv_voiceenable 1 //- разрешить использовать микрофон или нет

decalfrequency 30 //- время в секундах, через которое игроки могут наносить на поверхности своё следующее спрей-лого
//host_framerate 0 //- задает sys_tickrate сервера (аналог -tickrate в ярлыке запуска)


Далее настроим карты которые будем юзать на сервере, это файл mapcycle.txt его формат очень прост:

Код: Выделить всё

cs_assault
cs_italy
cs_office
cs_siege
de_aztec
de_cbble
de_dust
de_dust2
de_inferno
de_nuke
de_train


Также возможно подправить файлик motd.txt, думаю всем понятно что это типо приветствия при входе на сервер, редактируем по желанию ;-)

Все основные моменты настроены, теперь для проверки запустим наш сервак:

Код: Выделить всё

КОМАНДЫ ЗАПУСКА:
-game (во что играем)
-insecure (отключаем VAC)
-nomaster (не подключаться к мастер серверам, не будет проверяться на мастер серверах valve)
-noipx (не использовать портокол IPX)
-pingbooster (значения 0,1,2,3 из названия ясно типо ускоритель, но грузит проц сцуко, чем выше значение тем больше грузит проц, тем меньше пинги)
+sv_lan (режим работы 0-интернет, 1-локальные сети класса С)
+map (выберем карту при старте сервера)
+maxplayers (количество слотов на серваке)
+ip (на каком интерфейсе будет слушать, 0.0.0.0 слушать на всех)
+port (на каком порту будет запускаться, полезно если на одной машине несколько серверов запущено)


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

Код: Выделить всё

[nahoste][hlds][~/steam]#./hlds_run -game cstrike -insecure -nomaster +sv_lan 1 +ip 0.0.0.0 +port 27020 +map de_aztec
Auto detecting CPU
Using Pentium II Optimised binary.
Auto-restarting the server on crash

Console initialized.
scandir failed:/usr/home/hlds/steam/./valve/SAVE
scandir failed:/usr/home/hlds/steam/./platform/SAVE
Protocol version 48
Exe version 1.1.2.6/Stdio (cstrike)
Exe build: 15:58:06 Jun 15 2009 (4617)
STEAM Auth Server
couldn't exec language.cfg
Server IP address 0.0.0.0:27020
scandir failed:/usr/home/hlds/steam/./valve/SAVE
scandir failed:/usr/home/hlds/steam/./platform/SAVE
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.

Server logging data to file logs/L1014000.log
L 10/14/2009 - 21:24:36: Log file started (file "logs/L1014000.log") (game "cstrike") (version "48/1.1.2.6/Stdio/4617")
L 10/14/2009 - 21:24:36: Server cvar "mp_logdetail" = "3"
Adding master server 69.28.151.162:27010
Adding master server 72.165.61.189:27010
L 10/14/2009 - 21:24:36: Server cvar "mp_buytime" = "0.1"
L 10/14/2009 - 21:24:36: Server cvar "mp_c4timer" = "30"
L 10/14/2009 - 21:24:36: Server cvar "mp_chattime" = "5"
L 10/14/2009 - 21:24:36: Server cvar "mp_fadetoblack" = "1"
L 10/14/2009 - 21:24:36: Server cvar "mp_flashlight" = "1"
L 10/14/2009 - 21:24:36: Server cvar "mp_freezetime" = "0"
L 10/14/2009 - 21:24:36: Server cvar "mp_hostagepenalty" = "0"
L 10/14/2009 - 21:24:36: Server cvar "mp_maxrounds" = "20"
L 10/14/2009 - 21:24:36: Server cvar "mp_roundtime" = "3"
L 10/14/2009 - 21:24:36: Server cvar "sv_allowupload" = "0"
L 10/14/2009 - 21:24:36: Server cvar "sv_contact" = "cs-fun@nahoste.ru"
L 10/14/2009 - 21:24:44: World triggered "Round_Start"
   VAC secure mode disabled.


Эта строчка гласит что сервер запустился и раунд начался:

Код: Выделить всё

L 10/14/2009 - 21:24:44: World triggered "Round_Start"


METAMOD-P && DPROTO
Теперь когда мы проверили сервер, нужно сделать его No-Steam, для этого нам нужно два аддона metamod - для подключения всех прочих аддонов и dproto - для того чтобы на сервер пускало и steam p48 и no-steam p47-48. Приступим:

Создаем директорию под файлы и качаем metamod-p-1.19p32-linux_i586.tar.gz и dproto_0_3_6.rar:

Код: Выделить всё

[nahoste][hlds][~/steam/cstrike]#mkdir files
[nahoste][hlds][~/steam/cstrike]#cd files/
[nahoste][hlds][~/steam/cstrike/files]#fetch http://cs-fun.nahoste.ru/files/srv/metamod-p-1.19p32-linux_i586.tar.gz
metamod-p-1.19p32-linux_i586.tar.gz           100% of   62 kB   28 MBps
[nahoste][hlds][~/steam/cstrike/files]#fetch http://cs-fun.nahoste.ru/files/srv/dproto_0_3_6.rar
dproto_0_3_6.rar                              100% of  115 kB 3858 kBps


Теперь в папке cstrike создаем папку addons:

Код: Выделить всё

[nahoste][hlds][~/steam]#cd cstrike/
[nahoste][hlds][~/steam/cstrike]#mkdir addons


После чего создаем в папке addons папку metamod и dproto, в архиве с dproto есть файл конфигурации dproto.cfg, его мы копируем в папку cstrike, также в архиве с dproto в каталоге bin/linux в нем лежит сошка аддона ее копируем в каталог cstrike/addons/dproto. Из архива с metamod вытягиваем сошку и кидаем ее в папку cstrike/addons/metamod, после чего в этом же каталоге создаем файл настроек metamod`a через него будем подгружать все отстальные аддоны, файл следующего содержания:

Код: Выделить всё

[nahoste][hlds][~/steam/cstrike/addons/metamod]#ee plugins.ini
linux addons/dproto/dproto_i386.so


Теперь нам нужно подключить сам metamod для этого редактируем файл liblist.gam в каталоге cstrike до такого вида:

Код: Выделить всё

game "Counter-Strike"
url_info "www.counter-strike.net"
url_dl ""
version "1.6"
size "184000000"
svonly "0"
secure "1"
type "multiplayer_only"
cldll "1"
hlversion "1111"
nomodels "1"
nohimodel "1"
mpentity "info_player_start"
gamedll "dlls\mp.dll"
gamedll_linux "addons/metamod/metamod_i386.so"
trainmap "tr_1"


Все основной этап работы выполнен, теперь на сервере могут гамать клиенты стим48 и ноу-стим 47-48, долго ждать не будем проверим:

Код: Выделить всё

[nahoste][hlds][~/steam]#./hlds_run -binary ./hlds_i686 -game cstrike -insecure -nomaster +sv_lan 1 +ip 0.0.0.0 +port 27020 +map de_aztec
Auto detecting CPU
Using Pentium II Optimised binary.
Auto-restarting the server on crash

Console initialized.
scandir failed:/usr/home/hlds/steam/./valve/SAVE
scandir failed:/usr/home/hlds/steam/./platform/SAVE
Protocol version 48
Exe version 1.1.2.6/Stdio (cstrike)
Exe build: 15:58:06 Jun 15 2009 (4617)
STEAM Auth Server
couldn't exec language.cfg
Server IP address 0.0.0.0:27020

   Metamod version 1.19p32 Copyright (c) 2001-2006 Will Day
     Patch: Metamod-P (mm-p) v32 Copyright (c) 2004-2007 Jussi Kivilinna
   Metamod comes with ABSOLUTELY NO WARRANTY; for details type `meta gpl'.
   This is free software, and you are welcome to redistribute it
   under certain conditions; type `meta gpl' for details.

[DPROTO]: Version 0.3.6 Linux
[DPROTO]:  Loading config './cstrike/dproto.cfg'
[DPROTO]:  LoggingMode = 2
[DPROTO]:  Config sucessfully loaded.
[DPROTO]: Done.
scandir failed:/usr/home/hlds/steam/./valve/SAVE
scandir failed:/usr/home/hlds/steam/./platform/SAVE
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
Master server communication disabled.

Server logging data to file logs/L1014002.log
L 10/14/2009 - 22:41:59: Log file started (file "logs/L1014002.log") (game "cstrike") (version "48/1.1.2.6/Stdio/4617")
L 10/14/2009 - 22:41:59: Server cvar "mp_logdetail" = "3"
L 10/14/2009 - 22:42:00: Server cvar "mp_buytime" = "0.1"
L 10/14/2009 - 22:42:00: Server cvar "mp_c4timer" = "30"
L 10/14/2009 - 22:42:00: Server cvar "mp_chattime" = "5"
L 10/14/2009 - 22:42:00: Server cvar "mp_fadetoblack" = "1"
L 10/14/2009 - 22:42:00: Server cvar "mp_flashlight" = "1"
L 10/14/2009 - 22:42:00: Server cvar "mp_freezetime" = "0"
L 10/14/2009 - 22:42:00: Server cvar "mp_hostagepenalty" = "0"
L 10/14/2009 - 22:42:00: Server cvar "mp_maxrounds" = "20"
L 10/14/2009 - 22:42:00: Server cvar "mp_roundtime" = "3"
L 10/14/2009 - 22:42:00: Server cvar "sv_allowupload" = "0"
L 10/14/2009 - 22:42:00: Server cvar "sv_contact" = "cs-fun@nahoste.ru"
   VAC secure mode disabled.
L 10/14/2009 - 22:42:08: World triggered "Round_Start"
meta list
Currently loaded plugins:
      description      stat pend  file              vers      src   load  unlod
 [ 1] dproto           RUN   -    dproto_i386.so    v0.3.6    ini   Start Never
1 plugins, 1 running


команда meta list выведет список подключенных аддонов на сервере и их статус.

Основная часть и идея этой статьи расписана, мы создали сервер который пускает два протокола клиентов, а также пускает как стим клиента так ноу - стим клиентов. Позже будет дописано как прикрутить админ мод, настроить статистику и античит. А также выложу скриптик для управление всем этим хозяйством.

AMX MOD X
Ладно сервер вроде поставили, теперь поставим инструменты для администрирования этого добра, приступим. Для этого будем ставить AMXmodX проще говоря админ мод для кс. Качаем AMX Mod X 1.8.1 с официального сайта http://www.amxmodx.org/downloads.php, скачать AMX Mod X Base (это базовые файлы, для всех модов),а также AMX Mod X Cstrike(addon pack for cs). После чего в папку cstrike\addons копируем содержимое архива amxmodx-1.8.1-base.tar, а потом поверх копируем amxmodx-1.8.1-cstrike.tar, в итоге получаем примерно следующую структуру:

Код: Выделить всё

--addons      - папка addons в <server>/cstrike/
        |--dproto                  - здесь установлен Dproto
   |--metamod      - здесь установлен Metamod
   |--amxmodx      - здесь установлен AMX Mod X
      |--dlls      - файл amxmodx_mm.dll должен быть здесь
      |--modules      - папка модулей (.dll)
      |--plugins      - папка плагинов (.amxx)
      |--scripting   - папка исходников плагинов и компилятора скриптов
         |--include   - папка библиотек (includes)
         |--compiled   – скомпилированные плагины
      |--data         - статистика
         |--lang      - переводы на разные языки
      |--configs      - файлы настроек
      |--logs         - логи AMX Mod X


Теперь посмотрим файл конфигурации AMXmodX amxx.cfg в папке amxmodx/configs:

Код: Выделить всё

// 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


Кому что нужно подправит каждый сам. Теперь подключим модули amxmodx:

Код: Выделить всё

;;;
; 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
cstrike
csx
;hamsandwich

У меня пока включено только это,опять таки кому что нужно подключит сам и если не поленится напишет что есть что ;).
Теперь нам нужно подключить amxmodx, для этого добавляем в файл plugins.ini metamod`a такую строчку linux addons/amxmodx/dlls/amxmodx_mm_i386.so:

Код: Выделить всё

[nahoste][hlds][~/steam/cstrike/addons]#echo "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" >> metamod/plugins.ini
[nahoste][hlds][~/steam/cstrike/addons]#ee metamod/plugins.ini
.....................................................................................
linux addons/dproto/dproto_i386.so
linux addons/amxmodx/dlls/amxmodx_mm_i386.so


Теперь проверим,подгружаются ли наши аддоны на сервере или нет, как и в прошлый раз в консоли сервера введем команду meta list:

Код: Выделить всё

meta list
Currently loaded plugins:
      description      stat pend  file              vers      src   load  unlod
 [ 1] dproto           RUN   -    dproto_i386.so    v0.3.6    ini   Start Never
 [ 2] AMX Mod X        RUN   -    amxmodx_mm_i386.  v1.8.1.3  ini   Start ANY
 [ 3] CSX              RUN   -    csx_amxx_i386.so  v1.8.1.3  pl2   ANY   ANY
3 plugins, 3 running


Если все примерно так то все ок,все нормально загружено,поздравляю теперь можно рулить сервером из игровой консоли :smile:
Теперь когда все нужные моды подгружены можно приступить к настройки администраторов и прочего обслуживающего персонала. Для начала посмотрим файл user.ini он находится в каталоге с amxmodx в под каталоге config и имеет следующую структуру:

ФЛАГИ ПОЛНОМОЧИЙ:

Код: Выделить всё

a - Флаг иммунитета. Человека нельзя кикнуть/забанить/сделать slay/slap и т.п.
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, никаких полномочий он при этом не получит)


ФОРМАТ ЗАПИСИ ПОЛЬЗОВАТЕЛЯ:

Код: Выделить всё

<name|ip|steamid> <password> <access flags> <account flags>


ЗНАЧЕНИЯ ПОЛЕЙ:

Код: Выделить всё

<name|ip|steamid> - ник или ip или steam_id
<password> - пароль
<access flags> - флаги полномочий
<account flags> - флаги входа на сервер


Исходя из полученных выше знаний создадим несколько привилегированных юзверей, 1 админ, 2 модератор ,3 вип игрок:

Код: Выделить всё

"192.168.0.100" "" "abcdefghijklmnopqrstu" "de"
"192.168.123.23" "" "abcdfij" "de"
"killer" "megakill" "abz" "ak"


В данном примере показано что для входа на сервер администрации не нужно проходить авторизацию, они авторизуются по IP-адресам, а вот наш привилегированный игрок должен еще подтвердить что он имеет эти привилегии, те он должен в настройках указать правильный логин это раз, и в консоли прописать пароль это два, пароль прописывается командой setinfo _pw "megakill", теперь этот пользователь может спокойно входить на сервер со своими привилегиями VIP`а ;-) , привилегий у него тут две первая дает иммунитет на баны,выкиды и т.д., а второй является возможность подключиться на переполнены сервер на резервный слот.

Так же важно помнить про файл maps.ini в этом же каталоге, в нем желательно прописать все карты которые используются на сервер, в противном случае этих карт вы не уведите в голосовании.

НЕМНОГО ПОЛЕЗНОЙ ИНФОРМАЦИИ(консольные команды AMX):
Админ

Код: Выделить всё

amx_addadmin <playername|auth> <accessflags> [password] [authtype] Добавить админа
amx_addban <authid or ip> <minutes> [reason] Добавить бан к бан-листу сервера
amx_ban <name or #userid> <time> [reason] Забанить игрока
amx_cfg <filename> Выполнить конфиг на сервере
amx_cvar <cvar> [value] Изменить или показать значение cvar
amx_help Список доступных команд
amx_kick <name or #userid> [reason] Кикнуть игрока
amx_last Список недавно вышедших с сервера игроков
amx_leave <tag> [tag1] [tag2] [tag3] Кикнуть всех игроков, у которых нет указанных клан-тэгов
amx_map <mapname> Смена карты
amx_menu Показывает меню, доступное для игроков
amx_modules Лист всех загруженных модулей
amx_nick <original name> <new name> Смена ника игрока
amx_off Приостанавливает плагины
amx_on Снимает паузу с плагинов
amx_pause Поставить или снять паузу
amx_pausecfg Список команд для управления паузами
amx_plugins Лист всех загруженных плагинов
amx_rcon <rcon command line> Выполняет команду на стороне сервера
amx_reloadadmins Обновить админов из users.ini
amx_setlang <language> Установить язык
amx_showrcon <command line> Выполнить команду в консоли сервера и отобразить результат
amx_slap <name or #userid> [damage] Слэп (толчок) игрока, можно с уроном
amx_slay <name or #userid> Слэй (убийство)
amx_unban <authid or ip> Разбанить игрока
amx_who Список игроков на сервере (ip, steam_id, nick, time, ping)


Чат

Код: Выделить всё

amx_chat <message> Послать сообщение всем админам
amx_csay <color> <message> Сообщение для всех по центру
amx_psay <name or #userid> <message> Послать приватное сообщение (одному игроку)
amx_say <message> Послать сообщение всем игрокам
amx_tsay <color> <message> Сообщение для всех слева
say @[@|@|@][w|r|g|b|y|m|c] <text> Сообщение для всех слева
say_team @<text> Показывает сообщение всем админам (HUD)


Голосование

Код: Выделить всё

amx_cancelvote Прерывает предыдущее голосование
amx_vote <question> <answer1> <answer2> Любое голосование
amx_voteban <name or #userid> Голосование за бан игрока
amx_votekick <name or #userid> Голосование за кик игрока
amx_votemap <map> [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(из него доступны все остальные меню)
amxx cmds Показывает команды Amx Mod X
amxx cvars Показывает CVAR-ы Amx Mod X
amxx gpl Показывает лицензию GNU
amxx modules Показывает модули
amxx pause Приостановить запущенный плагин
amxx plugins Показывает плагины
amxx unpause Запустить приостановленный плагин


По AMXmodX вроде бы все. Далее будем разбирать античит.

LAC ANTICHIT
Теперь давайте избавим наших гамеров от мерзких читаков, да бы статистику не портили :)
Использовать будем LAC, взять последние версии можно тут http://lucifer.selfip.org/forum/forumdisplay.php?f=5, там же при необходимости можно найти помощь.
Ну поехали, первое это доставляем на машину с сервером античит, на данный момент последняя версия 0.8А, архив с серверной частью имеет следующие содержание:

Код: Выделить всё

cstrike - копируем в корневую папку сервера
web - это статистика по банам скормит веб серверу
......... - лицензия и мануал

После того как мы скопировали папку cstrike в корень сервера нам нужно подключить модуль в metamod,amxmodx и настроить сам античит:

Для начала подключим античит в metamod:

Код: Выделить всё

# echo 'linux addons/LAC/lac.so' >> cstrike/addons/metamod/plugins.ini

Затем подключим amxx модуль LAC, для этого в plugins.ini amxmodx добавим следующую строку:

Код: Выделить всё

# echo 'lac.amxx' >> cstrike/addons/amxmodx/configs/plugins.ini

И последнее что нам осталось сделать это создать примерный файл конфигурации, кстати по этому вопросу нет лучше мануала чем идущее вместе с сервером редми, да кстати конфиг генерируется сам,нам изначально нужно указать только откуда будет качаться клиентская часть, для примера приведу свой конфиг:

Код: Выделить всё

lac_band "1"^M
lac_log "1"^M
lac_nolac "3"^M
lac_href "http://cs-fun.nahoste.ru/LAC/lac.zip"^M
lac_hdss "75"^M
lac_alias "5"^M
lac_shlim "60000"^M
lac_bantimecvar "120 120 120 120 120 120 120 120 120 120 120"^M
lac_ifkurl "http://lucifer.selfip.org"^M
lac_autoss "0"^M
lac_forceban "1"^M
lac_n3text "[LAC] This server LAC require. To start download RIGHT NOW type /lac in your console!!!"^M

Ниже процитирую редми лака по cvar:
CVAR'ы:

lac_band (по умолчанию 3)
действие при обнаружении чита(любого, тип которого включен другими CVARами).
0 - вообще ничего не делать.
1 - только сообщать.
2 - кикать.
3 - банить на время lac_bantime.

lac_bantimecvar
Время банов для различных читов. В ручную лучше не трогать. Используйте команду lac_bantime

lac_ifkurl (по умолчанию http://lucifer.selfip.org)
Текст который приписывается в конце сообщения, что игрока кикнули за отсутствующий или устаревший LAC. Рекомендуется установить ссылку сайта на котором выложен ЛАК, если сайт http://lucifer.selfip.org недоступен

lac_n3text (по умолчанию [LAC] This server LAC require. To start download RIGHT NOW type /lac in your console!!!)
Этот текст будет показываться при включенном режиме lac_nolac 3, если клиент зашел без лака. Помните, длинна строчки ограничена шириной этого текста на экране. Строки не переносятся.

lac_shlim (по умолчанию 60000)
Уровень определяющий при каком значении будет считаться что у клиента SpeedHack. Само значение характеризует на сколько миллисекунд ушло времени у клиента по сравнению с сервером. Значения менее 20000 не имеют смысла, т.к. все равно минимальный порог 20000. Максимальный порог 4294967295. Если значение установить в 0 SpeedHack на клиенте обнаруживаться не будет.

lac_log (по умолчанию 1)
Ведение логов LAC на сервере в файл lac.log.
1 -включено
0 – выключено.

lac_nolac (по умолчанию 0)
Позволяет пускать на сервер клиентов без LAC
0 - пускать только с клиентом
1 - пускать без клиента, в имя подписывать [NoLAC]
2 - просто пускать без клиента.
3 – пускать без клиента, в имя подписывать [NoLAC], отобрать оружие, все время выводить motd, кикнет через две минуты после подключения.

lac_href (по умолчанию "")
Прямая ссылка на античит. Необходим для работы самозагрузки. Если этот цвар менее 3х символов, он считается не работающим, это влечет к тому, что режим lac_nolac 3 не будет работать. В режиме lac_nolac 1. Не будет доступен ручной запуска загрузки.

lac_autoss (по умолчанию 0)
Включает возможность автоматического снятия скриншотов через заданный промежуток времени.
Время в минутах. Если установить 0 - авто скриншоты выключены.

lac_version (по умолчанию, версия)
Возвращает версию LAC, необходим для сопряжения со сторонними разработками. Самостоятельно менять не рекомендуется. Версии возвращает вида: 0.6а

lac_forceban (по умолчанию 1)
При значении 1, перехватывает команду banid, от плугинов amxx, metamoda. Тем самым можно сделать, чтоб например ATAC мог банить с помощью лака. Для этого в ATAC надо настроить чтоб банил по banid. В результате баны будут даваться лаком. Аналогично и для других плагинов. 0 – выключено.

lac_hdss (по умолчанию 0)
При значении больше 75, будет автоматический снимать скриншоты с игроков которые одним выстрелом нанесли урон больше, чем значение цвара. Для работы это функции должен быть установлен плугин lac.amxx

lac_alias (по умолчанию 5)
Если Лак у клиента нашел количество зарегистрированных alias’ов равное значению цвара, то Лак это расценит как использование читов. Если цвар равен нулю – игнорировать количество alias’ов


Думаю на этом про LAC я закончу, так как Люцифер достаточно расписал редми к античиту, если возникнут конкретные вопросы я готов ответить,но думаю их не будет :smile:

С античитом на этом все, далее следует статистика :smile:

CSF-AC ANTICHIT

Хотя нет, попался на глаза еще один очень интересный проект античита, не требующий клиентской части CSF-AC, сам из себя он представляет просто модуль для amxmodx.Не знаю официально это или нет, но нашел его тут, в прицепи описание там тоже есть, копить не буду, начнем установку:

В архиве будет 2 папки одна сам античит, другая веб стата с детальными логами(есть описание как ставить рассказывать не буду), нам нужна папка HLDS, в ней мы найдем следующие:

Папка анти-чита: addons\amxmodx\configs\csf_anticheat
Папка хранения Блокируемых зон: \csf_zone_guard
Основной файл конфигураций анти-чита: csf_ac_main.cfg
Список запрещенных клавиш: csf_ac_cheatkey.cfg
Список запрещенных сообщений: csf_ac_cheatsay.cfg
Список заблокированных консольных команд: csf_ac_cvarguard.cfg
Список читерских ников / клантегов: csf_ac_cheatnames.cfg
Список сверяемых файлов: csf_ac_filescheck.cfg
Белый список карт для модуля SpeedHack: csf_whitelist.cfg
Плагин: addons\amxmodx\plugins\csf_anticheat.amxx
Файл языка: addons\amxmodx\data\lang\csf_anticheat.txt

Качаем сам плагин http://openfile.ru/517928/.Установка довольно тривиальна копируем содержимое каталога HLDS в корень нашего сервера, после чего добавляем в плагины amx наш csf:
[hlds][~/steam]# ee cstrike/addons/amxmodx/config/plugins.ini

Код: Выделить всё

// Добовляем в самое начало файла такую строку
csf_anticheat.amxx
......................

Собственно на этом установка окончена перезапускам сервер и пользуемся. На практики не могу оценить насколько он хорош этот античит, так как из тех кто играет на сервере плохого не слышал, ну и еще наверное потому что онлайн большую часть времени маленький или вовсе нет вовсе. Могу только сказать одно, по сравнению с античитами которые имеют клиентскую часть, пинг с этим падает на 1-3 не более что в принципе довольно не плохо, если учесть что сервер у меня смотрит и ориентирован по большому счету на городскую сеть, то выше 15 фактически не поднимается.

PSYCHOSTATS
А теперь стата, ставить будем PsychoStats, скачать можно с офф сайта http://www.psychostats.com/downloads/. Для его работы нам потребуется установленный perl, так как психа это парсер логов hlds написанный на перл и сохраняющий в бд(mysql - тоже необходима для складывания результатов),веб сервер с поддержкой php.
Установка:
здесь я опишу только как завести стату
В архиве будет несколько каталогов, нас интересуют следующие файлы:

Код: Выделить всё

Каталог upload - веб морда к стате, кидаем содержимое в www или у кого как настроено
stats.cfg - файл конфигурация
stats.pl - исполняющий файл психи
Каталог lib - скрипты парсера

Копируем stat.cfg, stat.pl и lib в каталог cstrike нашего сервера и настраиваем stat.cfg:

Код: Выделить всё

# stats.cfg should ONLY contain basic database settings.
# any other configuration settings will be ignored.
dbtype = mysql
dbhost = localhost
// прописать если муся работает не на 3306 порту
dbport =
dbname = psychostats
dbuser = user
dbpass = passwd
dbtblprefix = ps_

Не забудьте создать базу под психу!
Теперь нам осталось только прописать в крон исполнение скрипта, не рекомендую ставить менее чем раз в пол часа,а лучше час, во время обработки логов ест много ресурсов. У меня в /etc/crontab записано следующие:

Код: Выделить всё

45      *       *       *       *       hlds    /home/hlds/cstrike/cstrike/stats.pl -log /home/hlds/cstrike/cstrike/logs/

обновление базы происходит раз в час на 45 минуте, действия производятся от пользователя hlds, от него же работает и сервер.
Результаты появятся только через некоторое время, часик подождать придется, еще такая особенность, проверьте включены ли у вас логи,в server.cfg

Код: Выделить всё

// Server Logging
log on // - включение логирования
mp_logecho 1
mp_logfile 1 // - писать в файл
mp_logdetail 3  // - детализация логв
mp_logmessages 1 // - писать сообщения чата

Теперь дело за малым заходим в браузер на хост http://myhost/install и инсталим морду, после установки удаляем каталог install. На этом установка собственно заканчивается. Через какой то промежуток времени можно посмотреть статистику. Единственное что в ней не так, дак это то что нет русского.

Скрипт для управления сервером
- запуск от конкретного пользователя(кроме root)
- команды старт,стоп,рестарт
- запуск во время загрузки ОС(необходимо выполнить echo 'clear_tmp_enable="YES"' >> /etc/rc.conf)

Код: Выделить всё

#!/bin/sh

# PROVIDE: hlds
# REQUIRE: NETWORKING SERVERS
# KEYWORD: shutdown

. /etc/rc.subr

name=hlds
rcvar=`set_rcvar`

load_rc_config $name

: ${hlds_enable="NO"}

start_cmd="hlds_start"
stop_cmd="hlds_stop"
reload_cmd="hlds_reload"

hlds_user="hlds"
hlds_game="cstrike"
hlds_screen_opts="/usr/local/bin/screen -AmdS ${hlds_game}"
hlds_screen_quit="/usr/local/bin/screen -dr ${hlds_game} -X quit"
hlds_path="/home/hlds/cstrike"
hlds_bin="./hlds_run"
hlds_pid="/tmp/${name}.pid"
hlds_port="27015"
hlds_ip="0.0.0.0"
hlds_map="de_dust"
hlds_pl="15"

hlds_opts="-binary ./hlds_i686 -game cstrike -nomaster -insecure -norestart +ip ${hlds_ip} \
+port ${hlds_port} +map ${hlds_map} +maxplayers ${hlds_pl} -pidfile ${hlds_pid}"

hlds_start()
{
    if [ "$hlds_user" = root ]
        then
          echo "From under the user can start a service."
        else
        if [ -f ${hlds_pid} ]
        then
        echo "This service is already running."
        else
          cd ${hlds_path}
          su -m ${hlds_user} -c "${hlds_screen_opts} ${hlds_bin} ${hlds_opts}"
          echo "Started ${name}."
        fi
    fi
}



hlds_stop()
{
        if [ -f ${hlds_pid} ]
        then
        ${hlds_screen_quit}
        kill -9 `ps auxww | grep -v grep | grep -i ${hlds_user} | grep ${hlds_port} | awk '{print $2}'`
        echo "Stopped ${name}."
        rm -f ${hlds_pid}
        else
        echo "${name} doesn't seem to be running."
        fi
}

hlds_reload()
{
    stop
    start
}

run_rc_command "$1"


Технические характеристики:
В среднем уходит примерно 30кб/с входящего трафика на один слот
Около 2-3% проца на один запущенный сервер
Около 100 мб оперативной памяти на один запущенный сервер
Около 10 мб оперативной памяти на одного игрока

Сейчас это все крутится на стареньком Intel Pentium 4 2.4 GHz с 1Gb RAM, 3 пустые сервера кушают 330 мб оперы и 7-10% проца, при полном заполнение серверов не замерял столько народу еще не собиралось, общие количество слотов 43, исходя из расчетов должно хватить.

КОНЕЦ
Последний раз редактировалось Sun 2010-02-11 14:02:00, всего редактировалось 42 раза.

Аватара пользователя
Pez!
старшина
Сообщения: 436
Зарегистрирован: 2008-01-13 20:02:24
Откуда: москва матушка

Re: hlds p48 сборка 4617

Непрочитанное сообщение Pez! » 2009-10-14 5:50:01

-game (во что играем)
-insecure (отключаем VAC)
-nomaster (не делать мастер сервером, не будет выводится во вкладке интернет,но и не будет проверяться на мастер серверах valve) (смысл тот же, только на самом деле обозначает не подключаться к мастер серверам)
-noipx (не использовать портокол IPX)
-pingbooster (значения 0,1,2,3 из названия ясно типо ускоритель, но грузит проц сцуко)
+sv_lan (режим работы 0-интернет, 1-локальные сети класса С)
+map (выберем карту при старте сервера)
+maxplayers (количество слотов на серваке)
+ip (на каком интерфейсе будет слушать, 0.0.0.0 слушать на всех)
-port (а не +port) (на каком порту будет запускаться, полезно если на одной машине несколько серверов запущено)
Всёравно все умрут, какая разница....и только серваки с фряхой будут работать ещё некоторое время после.

Аватара пользователя
aks
мл. сержант
Сообщения: 141
Зарегистрирован: 2008-06-03 9:29:09
Откуда: Россия Нижегородская обл. Дзержинск

Re: hlds p48 сборка 4617

Непрочитанное сообщение aks » 2009-10-14 7:13:37

Могу статью написать об установке left 4 dead

Аватара пользователя
Raven2000
-=_UNIX_=-
Сообщения: 4423
Зарегистрирован: 2006-10-29 17:59:13
Откуда: Там, где нас нет.
Контактная информация:

Re: hlds p48 сборка 4617

Непрочитанное сообщение Raven2000 » 2009-10-14 7:44:18

Ну и где no-steam?
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

Аватара пользователя
ADRE
майор
Сообщения: 2633
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: hlds p48 сборка 4617

Непрочитанное сообщение ADRE » 2009-10-14 12:11:48

гамать гамать! shpilel in the half-life cs and zombie!!! grosse server
//del

Аватара пользователя
Sun
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: hlds p48 сборка 4617

Непрочитанное сообщение Sun » 2009-10-14 16:19:29

Народ статья пока не дописана,пишу клочками потому что времени нет :-D Как допишу жирным шрифтом напишу КОНЕЦ! ;-) Всем кто поправляет оЧепятки ОГРОМНОЕ СПАСИБО! :smile:

Аватара пользователя
fragnat
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-11-02 22:49:49

Re: hlds p48 сборка 4617

Непрочитанное сообщение fragnat » 2009-11-03 10:15:17

Что-то никак не могу подключиться к северу, судя по логу не нравиться клиент nosteam :st:

Аватара пользователя
fragnat
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-11-02 22:49:49

Re: hlds p48 сборка 4617

Непрочитанное сообщение fragnat » 2009-11-03 13:18:37

Всё осилил, надо было запускать сервер командой:
./hlds_run -binary ./hlds_i686 -game cstrike -insecure -nomaster +sv_lan 1 +ip 0.0.0.0 +port 27020 +map de_aztec
После этого на сервер я зашёл ностим клиентом версии 3.5 ;-)
Кстати говоря благодаря вашему описанию я всё таки поднял сервер, везде где я читал описание было неполным.
Спасибо вам. :roll:

Аватара пользователя
Sun
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: hlds p48 сборка 4617

Непрочитанное сообщение Sun » 2009-11-04 17:23:05

подправил в тексте запуск с дпрото, спс за указание на опечатку

coop_gu
проходил мимо

Re: hlds p48 сборка 4617

Непрочитанное сообщение coop_gu » 2009-11-07 22:31:14

меня не пускает на такой сервак с 47 версией, все заработало, но не пускает :(

Аватара пользователя
fragnat
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-11-02 22:49:49

Re: hlds p48 сборка 4617

Непрочитанное сообщение fragnat » 2009-11-08 0:30:39

coop_gu писал(а):меня не пускает на такой сервак с 47 версией, все заработало, но не пускает :(

Забыл сказать что на данный момент dproto последней версии 0.3.7 а не 0.3.6
Попробуй обнови версию.

coop_gu
проходил мимо

Re: hlds p48 сборка 4617

Непрочитанное сообщение coop_gu » 2009-11-09 1:30:30

fragnat писал(а):
coop_gu писал(а):меня не пускает на такой сервак с 47 версией, все заработало, но не пускает :(

Забыл сказать что на данный момент dproto последней версии 0.3.7 а не 0.3.6
Попробуй обнови версию.


неа, не помагает

Аватара пользователя
fragnat
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-11-02 22:49:49

Re: hlds p48 сборка 4617

Непрочитанное сообщение fragnat » 2009-11-09 19:37:30

coop_gu писал(а):
fragnat писал(а):
coop_gu писал(а):меня не пускает на такой сервак с 47 версией, все заработало, но не пускает :(

Забыл сказать что на данный момент dproto последней версии 0.3.7 а не 0.3.6
Попробуй обнови версию.


неа, не помагает

Не знаю, у меня 47 версия протокола на клиенте. Всё играется. Ищи ошибку значит.

Аватара пользователя
Pez!
старшина
Сообщения: 436
Зарегистрирован: 2008-01-13 20:02:24
Откуда: москва матушка

Re: hlds p48 сборка 4617

Непрочитанное сообщение Pez! » 2009-11-09 20:42:58

камрады, я конечно понимаю что тут все телепаты, но вы хоть приводите логи клиента и сервера - ведь быстрее разберемся в чем проблема ...
Всёравно все умрут, какая разница....и только серваки с фряхой будут работать ещё некоторое время после.

Аватара пользователя
Sun
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: hlds p48 сборка 4617

Непрочитанное сообщение Sun » 2009-11-10 5:53:01

ээ может в игровой раздел тему перенести? :smile:

coop_gu
проходил мимо

Re: hlds p48 сборка 4617

Непрочитанное сообщение coop_gu » 2009-11-10 21:01:31

Pez! писал(а):камрады, я конечно понимаю что тут все телепаты, но вы хоть приводите логи клиента и сервера - ведь быстрее разберемся в чем проблема ...


лог сервака

Код: Выделить всё

$ ./hlds_run -binary ./hlds_i686 -game cstrike -insecure -nomaster +sv_lan 1 +ip 0.0.0.0 +port 27020 +map de_aztec
Auto-restarting the server on crash

Console initialized.
scandir failed:/usr/home/coop/steam/./valve/SAVE
scandir failed:/usr/home/coop/steam/./platform/SAVE
Protocol version 48
Exe version 1.1.2.6/Stdio (cstrike)
Exe build: 15:58:06 Jun 15 2009 (4617)
STEAM Auth Server
couldn't exec language.cfg
Server IP address 0.0.0.0:27020

   Metamod version 1.19p32 Copyright (c) 2001-2006 Will Day
     Patch: Metamod-P (mm-p) v32 Copyright (c) 2004-2007 Jussi Kivilinna
   Metamod comes with ABSOLUTELY NO WARRANTY; for details type `meta gpl'.
   This is free software, and you are welcome to redistribute it
   under certain conditions; type `meta gpl' for details.

scandir failed:/usr/home/coop/steam/./valve/SAVE
scandir failed:/usr/home/coop/steam/./platform/SAVE
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
net.cpp (1293) : Assertion Failed: 0 == iRet
net.cpp (1293) : Assertion Failed: 0 == iRet
net.cpp (1304) : Assertion Failed: 0 == iRet
net.cpp (1304) : Assertion Failed: 0 == iRet
Master server communication disabled.

Server logging data to file logs/L1110000.log
L 11/10/2009 - 19:56:31: Log file started (file "logs/L1110000.log") (game "cstrike") (version "48/1.1.2.6/Stdio/4617")
L 11/10/2009 - 19:56:31: Server cvar "mp_logdetail" = "3"
L 11/10/2009 - 19:56:31: Server cvar "mp_buytime" = "0.1"
L 11/10/2009 - 19:56:31: Server cvar "mp_c4timer" = "30"
L 11/10/2009 - 19:56:31: Server cvar "mp_chattime" = "5"
L 11/10/2009 - 19:56:31: Server cvar "mp_flashlight" = "1"
L 11/10/2009 - 19:56:31: Server cvar "mp_forcecamera" = "1"
L 11/10/2009 - 19:56:31: Server cvar "mp_freezetime" = "0"
L 11/10/2009 - 19:56:31: Server cvar "mp_friendlyfire" = "1"
L 11/10/2009 - 19:56:31: Server cvar "mp_hostagepenalty" = "1"
L 11/10/2009 - 19:56:31: Server cvar "mp_maxrounds" = "20"
L 11/10/2009 - 19:56:31: Server cvar "mp_roundtime" = "2"
L 11/10/2009 - 19:56:31: Server cvar "mp_timelimit" = "20"
L 11/10/2009 - 19:56:31: Server cvar "mp_tkpunish" = "1"
L 11/10/2009 - 19:56:31: Server cvar "sv_allowupload" = "0"
L 11/10/2009 - 19:56:31: Server cvar "sv_contact" = "cs-fun@123.ru"
L 11/10/2009 - 19:56:31: Server cvar "sv_maxrate" = "19200"
   VAC secure mode disabled.
L 11/10/2009 - 19:56:39: World triggered "Round_Start"


лог игры:

Код: Выделить всё

] connect 192.168.1.3:27020
NET Ports:  server 27015, client 27005
Server IP address 192.168.1.2:27015
Connecting to 192.168.1.3:27020...
This server is using a newer protocol ( 48 ) than your client ( 47 ).  You should check for updates to your client.


сразу скажу sv_lan менял - не помагает

Аватара пользователя
Pez!
старшина
Сообщения: 436
Зарегистрирован: 2008-01-13 20:02:24
Откуда: москва матушка

Re: hlds p48 сборка 4617

Непрочитанное сообщение Pez! » 2009-11-10 21:31:01

ок, а в консоли кс сервера пропиши meta list - и сюда вывод кинь ... чувствую у тебя dproto не загружен просто
Всёравно все умрут, какая разница....и только серваки с фряхой будут работать ещё некоторое время после.

Аватара пользователя
Sun
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: hlds p48 сборка 4617

Непрочитанное сообщение Sun » 2009-11-10 21:43:48

Начнем с конца:

Код: Выделить всё

This server is using a newer protocol ( 48 ) than your client ( 47 ).  You should check for updates to your client.

Если не догадались до примерный перевод такой:

Код: Выделить всё

Этот сервер использует новы протокол 48 а ваш клиент 47. Вы должны обновить свой клиент.

Далее по логу:

Код: Выделить всё

[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
net.cpp (1293) : Assertion Failed: 0 == iRet
net.cpp (1293) : Assertion Failed: 0 == iRet
net.cpp (1304) : Assertion Failed: 0 == iRet
net.cpp (1304) : Assertion Failed: 0 == iRet

Попробовать запустить голый сервер без аддонов, в крайнем случае обновиться со стима, вероятно проблема исчезнет. Идем далее:

Код: Выделить всё

Protocol version 48
Exe version 1.1.2.6/Stdio (cstrike)
Exe build: 15:58:06 Jun 15 2009 (4617)

По моему должно быть понятно что чистый сервер запускается на 48 протоколе, собственно поэтому вы и получаете ошибку которая переведена выше, если статья была прочитана нормально, а не с наскоку то вы должны были внять вот этот кусок(привожу только то что касается двух протоколов и нон-стима):

Код: Выделить всё

Теперь когда мы проверили сервер, нужно сделать его No-Steam, для этого нам нужно два аддона metamod - для подключения всех прочих аддонов и dproto - для того чтобы на сервер пускало и steam p48 и no-steam p47-48. Приступим:
..................................................
[nahoste][hlds][~/steam/cstrike/files]#fetch http://cs-fun.nahoste.ru/files/srv/dproto_0_3_6.rar
dproto_0_3_6.rar                              100% of  115 kB 3858 kBps
..................................................
[nahoste][hlds][~/steam/cstrike/addons/metamod]#ee plugins.ini
linux addons/dproto/dproto_i386.so

Этими действиями мы установили dproto для того чтоб сервер пускал 47-48 протокол и был нон-стим,если все правильно будет выполнено то в логах должно появиться еще вот это:

Код: Выделить всё

[DPROTO]: Version 0.3.6 Linux
[DPROTO]:  Loading config './cstrike/dproto.cfg'
[DPROTO]:  LoggingMode = 2
[DPROTO]:  Config sucessfully loaded.
[DPROTO]: Done.

Ну а дальше уже настраиваете что вам нужно :smile:

Аватара пользователя
Sun
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: hlds p48 сборка 4617

Непрочитанное сообщение Sun » 2009-11-10 21:44:34

там и так по логу видно что dproto не загружен :no:

coop_gu
проходил мимо
Сообщения: 8
Зарегистрирован: 2009-11-10 22:02:57

Re: hlds p48 сборка 4617

Непрочитанное сообщение coop_gu » 2009-11-10 22:17:39

Sun писал(а):там и так по логу видно что dproto не загружен :no:


Семен-семеныч...


отсутствие этих строк я и не заметил

Код: Выделить всё

[DPROTO]: Version 0.3.6 Linux
[DPROTO]:  Loading config './cstrike/dproto.cfg'
[DPROTO]:  LoggingMode = 2
[DPROTO]:  Config sucessfully loaded.
[DPROTO]: Done.


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

а я еще когда искал обновление на него думаю, да что же такое гугл ниченго не находит :smile:

спасибо, всем за детальный анализ и за статью спасибо ;-)

может сразу подскажете где такая же статья как поставить хороших ботов?
Последний раз редактировалось coop_gu 2009-11-10 22:47:56, всего редактировалось 1 раз.

Аватара пользователя
Sun
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: hlds p48 сборка 4617

Непрочитанное сообщение Sun » 2009-11-10 22:26:54

Код: Выделить всё

может сразу подскажете где такая же статья как поставить хороших ботов?

улыбнуло :ROFL: такие статьи обычно для себя любимого пишутся, чтоб через пол года без особых напрягов настроить где либо вторично :smile: Про ботов искал, нашел есть такие zbot, говорят лютые сволочи, учатся играть у игроков, не имеют вейпонтов. Но разобраться так и не успел,больше интересовала проблема античита.

coop_gu
проходил мимо
Сообщения: 8
Зарегистрирован: 2009-11-10 22:02:57

Re: hlds p48 сборка 4617

Непрочитанное сообщение coop_gu » 2009-11-10 22:46:34

Sun писал(а):

Код: Выделить всё

может сразу подскажете где такая же статья как поставить хороших ботов?

улыбнуло :ROFL: такие статьи обычно для себя любимого пишутся, чтоб через пол года без особых напрягов настроить где либо вторично :smile: Про ботов искал, нашел есть такие zbot, говорят лютые сволочи, учатся играть у игроков, не имеют вейпонтов. Но разобраться так и не успел,больше интересовала проблема античита.


я может не правильно выразился про статью просто :)

да zbot ставил (звери, мне понравились), но под виндами и на голый сервак, а вот с модами...
гуглил по этому поводу - пишут что это проблематично, так ничего и не нашел дельного, поэтому и спрашиваю.

Аватара пользователя
fragnat
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-11-02 22:49:49

Re: hlds p48 сборка 4617

Непрочитанное сообщение fragnat » 2009-11-10 23:36:03

Sun писал(а):да zbot ставил (звери, мне понравились), но под виндами и на голый сервак, а вот с модами...
гуглил по этому поводу - пишут что это проблематично, так ничего и не нашел дельного, поэтому и спрашиваю.

У меня на сервере под линупсом стоят боты, классический вид игры(кое какие дополнения стоят тоже, для юзабельности и ради красивых плюшек)


Вернуться в «Игры»

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и 2 гостя