ADMIN: Kak_tak
Меню сайта
Категории раздела
Мои файлы [12]
Мини-чат
Наш опрос
Оцените мой сайт
Всего ответов: 242
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Файлы » Мои файлы

~Создание сервера для игры CS:S~
29.10.2009, 20:46
1.Введение.
2.Получение дистрибутива.
3.Тестирование и запуск сервера. Основные настройки.
4.Делаем сервер доступным для клиентов nosteam.

1.Введение.
Данная инструкция предназначена для тех, кто хочет установить выделенный сервер Counter-Strike: Source. Ее можно взять за основу и для других модов Source, поддерживаемых VALVe. Предполагается, что человек, создающий сервер, неплохо разбирается в операционной системе и ему не нужно отвечать на вопросы из книжки Wndows (Linux) для чайников. Поэтому здесь рассматривается лишь последовательность шагов по установке выделенного сервера на знакомую вам платформу.

2.Получение дистрибутива.
Настойчиво рекомендую брать дистрибутив сервера и обновлять его через steam. Это бесплатно, быстро и своевременно. Единственное препятствие для работы со стимом, когда машина, на которой установлен сервер, не имеет доступа в Интернет или находится за фаероллом с закрытыми портами, необходимыми для скачки сервера или обновлений. Утилита для получения дистрибутива сервера и его обновления, на сегодняшний день может работать из под Windows и получать дистрибутив для сервера Linux и наоборот. Так что вам остается лишь найти машину, имеющую прямой доступ в Интернет. Только после того, как вы оказались в тупике и не можете сами получить дистрибутив сервера или его обновление со steam, тогда уже берите предоставленный кем-то дистрибутив и при каждом обновлении ждите, что кто-то сделает патч для вашего сервера.

Для получения дистрибутива сервера и его дальнейшего обновления через steam используется утилита Windows HLDS Update Tool и Linux HLDS Update Tool. Это архивы, после распаковки которых вы получите файлы HldsUpdateTool.exe для Win и steam для Linux. Если с HldsUpdateTool.exe все понятно, то файл steam еще необходимо сделать запускающимся: chmod +x steam
Теперь утилита готова для запуска:
HldsUpdateTool.exe - для Win
./steam - для Linux
При первом запуске утилита обновится до последней версии и после обновления выдаст синтаксис доступных команд.

Use: hldsupdatetool -command [parameters] [flags]

Commands:

update: Install or update HLDS
parameters:
-game - Mod name: cstrike, tfc, dod, dmc, valve, czero, or ricochet
-dir - HLDS Install dir (if dir not specified, will use value from last run of tool)
flags:
-verify_all - Verify all HLDS files are up to date
-retry - Automatically retry every 30 seconds if the Steam Network is busy

For example: hldsupdatetool -command update -game cstrike -dir c:\hlds

version: View installed versions
list: View available games

Командой

hldsupdatetool -command list

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


** 'game' options for Source DS Install:

"Counter-Strike Source"
"Counter-Strike Source-linux"
"Counter-Strike Source-win32"
"hl2mp"
"hl2mp-linux"
"hl2mp-win32"

Осталось лишь набрать команду для получения дистрибутива:
HldsUpdateTool.exe -command update -game "Counter-Strike Source" -dir c:\srcds
и процесс пошел. Если утилита HldsUpdateTool у вас находится в той же директории, где будет располагаться сервер, то вместо -dir c:\srcds делаем -dir .
По окончанию работы утилиты вы получите надпись
HLDS installation up to date
Это значит, что вы получили последнюю версию сервера.
Создайте скриптик для последующих обновлений сервера Update.bat (update.sh для Linux)

C:\SRCDS\hldsupdatetool.exe -command update -game "Counter-Strike Source" -dir .

или для Linux:

#!/bin/bash
cd /home/cs/srcds_l
./steam -command update -game 'Counter-Strike Source' -dir .

и теперь можно переходить к тестированию и основным настройкам.

3.Тестирование и запуск сервера. Основные настройки.
Для запуска сервера также необходимо создать скрипт запуска. Для теста просто запустим сервер строкой

srcds.exe -console -game cstrike +maxplayers 16 +map de_dust

или для Linux

./srcds_run -game cstrike +maxplayers 16 +map de_dust

Если сервер был скачан без ошибок, то вы увидите появившуюся консоль сервера. Если этого не произошло, возвращайтесь к пункту Получение дистрибутива.
В консоли сервера после всех инициализаций можем набрать:

version - консоль покажет версию сервера;
stats - консоль покажет основные параметры работы на данный момент – загрузку процессора, fps, количество игроков.
exit - закрыть сервер.

Убедились что сервер работает? Теперь попробуйте зайти на него своим клиентом. Если у вас лицензионный клиент, то вы зайдете на свой сервер без проблем.

Не рекомендуется играть с той же машины, на которой стоит выделенный сервер!

После удачного теста сервера переходим к созданию скрипта запуска. В Windows это можно сделать ярлыком: щелкаем правой клавишей на рабочем столе, выбираем Создать/Ярлык, в появившемся окне «Создание ярлыка» пишем c:\srcds\srcds.exe или находим srcds.exe через Обзор, даем имя ярлыку и говорим Готово. На рабочем столе появился новый ярлык. Заходим в его Свойства, выбираем закладку Ярлык и в строке Объект, где у нас уже прописано С:\SRCDS\srcds.exe, дописываем:
С:\SRCDS\srcds.exe -console -game cstrike +maxplayers 16 +map de_dust
Если вы хотите, что бы сервер стартовал автоматически при запуске/перезагрузки машины, то сделайте такой же ярлык в Программы/Автозагрузка.

Основные параметры строки запуска и конфигурации сервера не сильно отличаются от серверов на движке HL1 и поэтому можно воспользоваться Конфигуратором, приведенным на этом форуме. Там же есть пояснения по каждому параметру.

Теперь рассмотрим запуск сервера на платформе Linux. Простой скрипт запуска start_css.sh:

#!/bin/bash
cd /home/cs/srcds_l
./srcds_run -game cstrike +maxplayers 16 +map de_dust > /home/cs/server_css.log 2>&1 &

При этом, сервер будет писать все свои действия в /home/cs/server_css.log. Останавливаем сервер с помощью скрипта:

#!/bin/bash
kill `ps ax -H --cols 1000|grep -e "-game cstrike"|grep -e "srcds_"|grep -v grep|awk '{printf("%s\n",$1);}'`

Многие пользуются screen. Как запускать сервер с его использованием, подробно описано в статье Выделенный Counter-Strike Server (LINUX).

Вам осталось выбрать тип сервера, который вы хотите запустить – лановый (+sv_lan 1 в строке запуска) или доступный из интеренета (+sv_lan 0), будет ли сервер защищен античитом от VALVe – VAC (по умолчанию защищен) или нет (-insecure в строке запуска), нужно, что бы ваш сервер отображался в глобальном списке серверов (включено по умолчанию) или нет (-nomaster в строке запуска).
Основная работа позади. Сервер скачан, запущен и работает. Установка дополнительных плагинов на сервер в этой статье рассматриваться не будет. Если вам не нужны игроки с нелицензионным клиентом, то на этом и заканчивайте. Если хотите что бы играли – читаем дальше.

4.Делаем сервер доступным для клиентов nosteam.
Если вы прошли все предыдущие пункты и у вас рабочий сервер, то нелицензионный клиент при входе на него получит следующую ошибку:
STEAM validation rejected
Как бороться?

Первый шаг – утанавливаем +sv_lan 1 в строке сервера, а так же –insecure, т.к. VAC бесполезен на лансерверах.

Второй - с помощью поломанных библиотек отменяем валидацию стима. Для Win32 это делается заменой /bin/steam.dll. Тут имеем 2 варианта. Можно поставить steam.dll из steamemu от hCUP. Вы без труда найдете его через глобальный поиск. Вам нужно лишь заменить steam.dll и сделать в корне каталога сервера файл steamemu.ini со строчкой:

[HL2.EXE_CSTRIKE]

Все нелицензионные клиенты запросто могут подсоединиться к вашему серверу. А вот с лицензионными могут возникнуть проблемы. Возможно ситуация изменится с последующими версиями SteamEmu и steam.dll от них, но на данный момент лицензионный клиент получает ошибку

SteamGetEncryptedUserIDTicket failed (1)
reason-- SteamGetEncryptedUserIDTicket() failed with error 1: Unknown internal error occurred - AS command error .

Если вас не беспокоят лицензионные клиенты, оставьте так, если хотите, что бы сервер был доступен всем, то используем второй вариант - берем библиотеки steam.dll и steamy.dll от Emporio и кладем их в вашу папку сервера /bin. Теперь и стимные и нестимные клиенты могут зайти на ваш сервер. Оба файла тоже не составит труда найти в интернете. При втором варианте файл steamemu.ini в корневом каталоге сервера не понадобится.

Теперь Linux. Для отмены валидации нужно заменить файл /bin/libsteamvalidateuseridtickets_i486.so. Размер сломанного файла – 14’542 байта. Где взять ? – ищите.
Не забывайте держать сломанные библиотеки в другом месте или с измененным именем, т.к. при обновлении стимом они переписываются заново на родные, не ломанные. После каждого обновления не забывайте поставить эти файлы снова.

Следующая проблема возникает при подсоединении к вашему серверу нелицензионных игроков из интернета. У вас стоит +sv_lan 1, т.е ваш сервер предназначен только для игры внутрисетевых пользователей. А игроки извне должны иметь свой SteamID, который имеется только у лицензионных клиентов и сервер отказывает нелицензионщикам по причине непрохождения проверки на class C. Т.е. нелицензионный игрок не имеет уникального SteamID, но и ввиду невнутрисетвого IP не может быть отнесен к лановому. Код проверки на Class C кроется в библиотеке engine.dll (engine_*.so для Linux). Ломается с помощью simple patcher (sp.exe):

sp.exe NoClassC.s engine.dll
SIMPLE PATCHER 0.99beta (c) Victor Romanoff 2:5054/2.256
Patching file ENGINE.DLL
Signature found at 105205d, 00019AF5h
done.

Simple Patcher вы найдете в интернете, а содержание файлика NoClassC.s на сегодняшний день такое:

; Linux i486 and i686
#search 00 00 00 74 ?? 83 F8 03 74 ?? 31
#change 00 00 00 EB ?? 83 F8 03 74 ?? 31
; Linux amd
#search 01 B2 01 74 ?? 83 F8 03 74 ?? BA
#change 01 B2 01 EB ?? 83 F8 03 74 ?? BA
; Win32 engine.dll no class C by AdEpT
#search 8B ?? FF 92 E0 00 00 00 84 C0 75 ?? 8B
#change 8B ?? FF 92 E0 00 00 00 84 C0 EB ?? 8B

За его возможными изменениями следите на форуме. Оговорюсь, что многие Win32 сервера не испытывают данной проблемы с Сlass С, поэтому прежде чем патчить, попросите знакомого попробовать зайти на ваш сервер нелицензионным клиентом. Возможно, вам и не понадобится эта уловка.
Еще одна особенность - Simple Patcher понимает только восьмизначные имена, поэтому библиотеки engine_*.so для Linux вам придется переименовать перед работой с патчером в любое имя, не более 8 знаков, к примеру, engine.so. Патчить таким образом эти библиотеки вам придется каждый раз после их обновления.

Категория: Мои файлы | Добавил: Kak_tak
Просмотров: 1036 | Загрузок: 0 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
~Top~
Rambler's Top100
~Clock~



More Cool Stuff At POQbum.com

~Mp3 Player~

Get Your Own Player!


Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Company [F.S] © 2024
    Бесплатные сервера для всех игр