· Counter-Strike с нуля
Если вы захотели сыграть в Counter-Strike по Интернету или просто поиграть в CS, но не знаете как и что надо сделать, то прочтите следующий мануал.
1) Сама Контра
2) Последний патч v28
3) Боты и профайл для них
4) Cheating-Death (только для игры по Интернету)
Перейдем непосредственно к самой установке!!!!
Устанавливаем контру в любое место (для примера в D:GamesCS1.6).
Туда же распаковываем патч для CS под названием cs16patch_full_v28.exe.
На этом установка контры закончена и вы уже можете играть по сети, но у вас не будет ботов, и вы не сможете поиграть на многих Интернет серверах, т.к. они требуют античит (Тот самый Cheating-Death)!!!!!
Прейдем к установке ботов:
Скачиваем архивы с названием Zbot и Профили участников нашего форума для Zbot по ссылке, которую я дал выше.
Распаковываем архив под названием Zbot в папку с CS (у меня это D:GamesCS1.6),
Далее обязательно распаковываем файл BotProfile.rar в папку D:GamesCS1.6cstrike,
Т.к. без него боты работать не будут!
Запускаем контру, создаём карту и прописываем в консоли bot_add.
Теперь заключительная часть для тех, кто хочет играть по Интернету!
Установка Cheating-Death (далее просто CD):
Установка проходит мигом, просто устанавливаем его в любую папку кроме CS.
Например, C:Program FilesCheating-Death.
Далее запускаем CD, а затем контру, ИМЕННО В ТАКОМ ПОРЯДКЕ! И пишем в консоли:
connect IP ( где IP - это адрес сервера, к которому вы хотите присоединится!)
· Настройка AMX 0.9.6
Настраиваем АМХ 0.9.6
1. Открываем файл - cstrike/addons/amx/users.cfg с помощью блокнота.
; Flags
; a – не пускать игрока на сервер при неверном пароле
; b – регистрация клан тега
; c – админ заходит только с этими значениями authid/wonid
; d – админ заходит только с этого ip
; e – пароль не проверяется (необходимо только совпадение name/ip/wonid)
; Access
; a - immunity- иммунитет (Против игрока не могут быть использованы команды kick, ban, slay, slap и т.д.)
; b - reservation - резервация (игрок сможет пользоваться резервным слотом)
; c - amx_kick command – доступ к команде amx_kick
; d - amx_ban and amx_unban commands - доступ к команде amx_ban и amx_unban
; e - amx_slay and amx_slap commands - доступ к команде amx_slay и amx_slap
; f - amx_map command - доступ к команде amx_map
; g - amx_cvar command - доступ к команде amx_cvar (не все переменные могут быть доступны)
; h - amx_cfg command- доступ к команде amx_cfg
; i - amx_chat and other chat commands - доступ к команде amx_chat и другим чат командам
; j - amx_vote and other vote commands - доступ к команде amx_vote и другим командам голосования
; k - access to sv_password cvar - доступ к переменной sv_password (через команду amx_cvar)
; l - access to amx_rcon command and rcon_password cvar- доступ к переменной amx_rcon и rcon_password (через команду amx_cvar)
; m – произвольный уровень A (если вы используете нестандартные амх плагины)
; n - произвольный уровень B
; o - произвольный уровень C
; p - произвольный уровень D
; q - произвольный уровень E
; r - произвольный уровень F
; s - произвольный уровень G
; t - произвольный уровень H
; u – доступ к графическому меню управления ; z – пользователь
Внизу строчки:
; Example of admin account configuration
; "Player" "my_password" "abcdefghijklmnopqrstu" "a"
Добавляем строчку:
"nickname" "123456" "abcdefghijklmnopqrstu" "a"
Вместо "nickname" пишем свой ник, а вместо "123456" ставим свой пароль и сохраняем.
2. Открываем файл cstrikeaddonsamxamx.cfg с помощью блокнота.
// Default access
amx_default_access ""
эта строчка отвечает за права пользователя “по умолчанию” т.е. те права, которые будут даны ВСЕМ игрокам на сервере.
Например amx_default_access "j" – даст возможность ЛЮБОМУ игроку на сервере подымать голосования на смену карты, кик и т.д.
Следующая строка
// Name of setinfo which should store the password on client
// f.e. with current settings admin should have line in his config: setinfo _pw hello
amx_password_field "_pw"
Отвечает за то, какой префикс будет использован для указания пароля для входа на сервер игроком с правами админа.
Замените "_pw" на любое другое, например: "mypass"
Вам, чтоб получить свои админские права, надо прописать в своём конфиге:
setinfo mypass 123456
Следующая строчка:
// Mode of logging to a server
// 0 - disable logging, players won't be checked (and access won't be set)
// 1 - normal mode which obey flags set in accounts
// 2 - kick all players not on list amx_mode 1
Управляет доступом на сервер:
0 – игроки не проверяются на права (и их права игнорируются)
1 – нормальный режим
2 – не пускать на сервер игроков, не входящих в список админов.
Следующая строчка:
// Show admins activity
// 0 - disabled
// 1 - show without admin name
// 2 - show with name
amx_show_activity 2
Отвечает, будет ли показано имя админа, от имени которого выполняются те или иные команды. Например, если админ наберет в консоли “amx_tsay white BbI BCE JIAMKu, A 9I /7A/7KA” (графическое сообщение в нижнем левом углу белого цвета), то на экране все увидят, кому именно принадлежат эти слова.
Значения:
0 – отключено (команды не показываются)
1 – показывать без указания имени админа.
2 – указывать с именем админа.
Далее, строка:
// Frequency in seconds and text of scrolling message amx_scrollmsg "Welcome to %hostname% -- This server is using AMX -- Visit http://amxmod.net" 300
Показывает сообщение типа “бегущая строка” внизу в центре экрана с интервалом в 300 секунд. Может быть исправлено на любое ваше, если хотите.
Пример:
amx_scrollmsg "Welcome to %hostname% - visit our site on http://cs.tut.by" 300
Следующая строчка:
// Center typed colored messages (last parameter is a color in RRRGGGBBB format)
amx_imessage "Welcome to %hostname%" "000255100"
amx_imessage "This server is using AMXnVisit http://amxmod.net" "000100255"
Непосредственно информационные сообщения - можете изменять по своему вкусу. Эти сообщения показываются по очереди, с вышеуказанным интервалом. Цифры в конце – цвет сообщения в RGB формате.
Следующая строчка:
// Frequency in seconds of colored messages
amx_freq_imessage 120
Указывает время в секундах, через которое будут отображаться информационное сообщение в центре экрана.
Следующая строчка:
// Set in seconds how fast players can chat (chat-flood protection) amx_flood_time 0.75
Отвечает за режим “антифлуда” - интервал в секундах, между показом сообщений от игрока (сообщение, которое будет послано до указанного времени, будет игнорировано и не показано другим игрокам)
Следующая строчка:
// Reservered slots working mode (for more details see comments in a plugin source)
// 0 - disables checking for slots usage
// 1 - kick by shortest playing time when server goes full
// 2 - kick by worst ping when server goes full
// 3 - kick player without reservation when enters to a reserved slot
amx_reservation 3
Отвечает за режим выделения резервных слотов входящим на сервер админам:
0 – никого не кикать и помещать на резервные слоты (если публичные слоты заняты, на резервные попадут только игроки с правами на него; если не заняты, то игроки с правами на резервный слот сначала займут публичные слоты.)
1 – кикать тех игроков, которые меньше всех успели поиграть
2 – кикать тех, у кого наибольший пинг.
3 – кикать тех, кто занял резервные слоты без прав на них.
Следующая строчка:
// Amount of reserved slots
amx_reserved_slots 2
Указывает количество резервных слотов на сервере.
Следующая строчка:
// Displaying of time remaining
// a - display white text on bottom
// b - use voice
// c - don't add "remaining" (only in voice)
// d - don't add "hours/minutes/seconds" (only in voice)
// e - show/speak if current time is less than this set in parameter
amx_time_display "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"
Управляет тем, как будет анонсироваться сообщение игрокам, об оставшемся до смены карты, времени. Начинает анонсирование за 20 минут до смены. Потом за 10,5,3,1 минут и с 11 секунды начинается посекундный отсчет до смены карты.
amx_time_display "режимы" "время"
Режимы:
a – показывать время на экране
b – использовать голос для анонсирования времени
c – не добавлять слово “осталось” (только голосовое анонсирование)
d – не добавлять слова “часы/минуты/секунды” (только голосовое анонсирование)
e – производить обратный отсчет, оставшегося до смены карты времени (в секундах) Время – время в секундах, когда будет анонсироваться оставшееся до смены карты время.
Следующая строчка:
// Announce "say thetime" and "say timeleft" with voice
amx_time_voice 1
Сопровождать ли голосом анонсирование текущего времени (если игрок набрал "say thetime") и времени, оставшегося до смены карты (если игрок набрал "say timeleft").
1 – анонсировать голосом, 0 – не анонсировать голосом.
Следующая строчка:
// Minimum delay in seconds between two voting sessions
amx_vote_delay 10
Интервал в секундах, между активациями графического меню голосований(смена карты, кик и др.). Голосование, которое будет поднято до указанного времени, будет игнорировано и не показано другим игрокам.
Следующая строчка:
// How long voting session goes on
amx_vote_time 10
Указывает время в секундах, в течении которого будет проводиться голосование т.е. время отображения графического меню выбора на экране у игрока.
Следующая строчка:
// Display who votes for what option
amx_vote_answers 1Отвечает за то, будет ли показано на экране игрока,за что проголосовал каждый игрок. 1- показывать, 0 – нет.
Следующая строчка:
// Some ratios for voting success
amx_votekick_ratio 0.40
amx_voteban_ratio 0.40
amx_votemap_ratio 0.40
amx_vote_ratio 0.02
Указывает количество голосов, которое необходимо набрать, для положительного решения соответствующего вопроса.
1 – необходимо единогласное решение всех игроков на сервере
0.40 – необходимо только 40% голосов от всех игроков на сервере.
0.02 - необходимо только 2% голосов от всех игроков на сервере.
Следующая строчка:
// Max. time to which map can be extended
amx_extendmap_max 90Время в минутах, на которое максимально может быть продлена текущая карта.
Следующая строчка:
// Step for each extending
amx_extendmap_step 15
Шаг в минутах, на который будет продлеваться текущая карта.
Ограничено переменной amx_extendmap_max. Т.е. если amx_extendmap_max 90 и amx_extendmap_step 15, то карту можно продлить 6 раз (90/15=6) по 15 минут.
Вывод на экран админского меню АМХ осуществляется командой в консоли:
amxmodmenu (лучше забиндить на кнопку)
· Сетевой код в Counter-Strike 1.6
Команды с префиксом sv_ sys_ являются серверными командами и предназначенными только для сервера. Если вы хотите же узнать их значение или изменить, их следует исполнять непосредственно на самом сервере, либо с использованием rcon пароля...
Также ента статья предназначена в основном для обладателей выделенных, высокоскоростных линий и-нета и для LAN.
Общая информация:
1)cl_cmdrate: команда определяет сколько пакетов в секунду пошлете вы, клиент к серверу. Очевидно, чем выше енто значение, тем быстрее сервер реагирует на действия которые вы совершаете (поворот мышью, прыжок, бег, стрельба и прочее). Итак, если вы на выделенке и притом оочень хорошей- то смело ставьте высокое значение. Если же вы посадили на свой DSL Cable или что там у вас ишо и своего друга- вы наверняка будете наблюдать частые и высокие скачки лага. Енто все из-за высокого значения команды. Большинство высокоскоростных доступов к и-нет не обеспечивают своего пользователя высоким upload (к примеру, большинство aDSL которые предоставляют компании- енто 768download- где-то 90КБ/128upload- где-то 16КБ), который так необходим для ентой команды.
2)cl_updaterate: енто противоположность cl_cmdrate- количество пакетов/секунду которые вы получаете от сервера (То бишь ваша download скорость). Здесь, чем выше значение, тем более вы синхронизированны с сервером. Так как только сервер решает, попадают ваши выстрелы или нет, то вам нужно большое количество обновлений информации с сервера- ради эксперимента, попробуйте поставить значение cl_updaterate в 5-10- и попробуйте убить кого. Получится интересная картина- вы будете ишо стрелять (одни выстрел например) по противнику, а на его мониторе, он вас как секнду назад завалил.
3)sv_maxupdaterate: команда контролирует количество пакетов/секунду которое позволено серверу послать клиенту. Из ентого следует что если на сервере sv_maxupdaterate "60", а на клиенте cl_updaterate "101" то клиент будет обновляться со значением cl_updaterate "60"
4)sys_ticrate: команда устанавливает количество "кадров" в секунду, которые сервер может вычислить. По умолчанию значение равно 100. Почему серверные fps так важны? А ентот параметр как раз таки и отображает, как "чусвтует себя" сервер. Мы все когда нить играли на ооочень хороших серверах что складывалосьт такое впечатление что они хостуются на Tl-83 plus и мы могли бы покляться что играем мы на LAN а не на HSI-net
sys_ticrate только присваивает максимальное значение fps которые может осилить ваш server. Но на деле сервер не может дотянуть без помощи до такого sys_ticrate- енто связано и с некоторыми процессами в самой операционной среде, но в основном из-за провайдера. Имейте ввиду, что увеличение fps "загружает" и сам процессор сервера. (Кстати такое "увеличение" каким то макаром загружает процессор по qмаксимуму на таких картах как de_inferno и de_aztec). По умолчанию сервер основанный на Win32 выдает среднее fps 64, а на Linux- 50fps. "Ускорение" сервера дает возможность получить fps выше 512 в некоторых случаях. Влияние такое высокого серверного fps достаточно спорное, но я думаю вы с легкостью заметите разницу в игре уже при 200fps.
Целостность- вот главное. Скачки fps со 100 до 512 скорее всего создадут больше проблем, так что разумным будет ограничить sys_ticrate в районе 150-200, если конечно сервер позволяет стабильно работать при 150-200.
Если у вас есть rcon пароль к серверу, вы можете с легкостью проверить серверный fps- напишите rcon stats в консоли, чтобы проверить, "ускорен" ли ваш сервер, временно поставьте значение sys_ticrate "10000" и исполните команду rcon stats. Если ваш fps выше чем 1000- значит "ускорен"
5)ex_interp(интерполяция- это восстановление значения функции в промежуточной точке по известным ее значениям в соседних точках.)
Итак, вы не можете быть синхронизированны с сервером на все 100% в каждую секунду времени, так как вы получаете ограниченное количество обновлений в секунду с сервера. Для примера: [img-right]interp.jpg" border="0"
Данный рисунок отражает линейную интерполяцию круга. Когда увеличивается количество обновлений, интерполированная фигура становится более аккуратной. В Cs данной фигурой выступает движение игрока/в секунду времени. Сервер в данном случае будет тем самым "идеальным кругом" (ведь только сервер имеет абсолютно точную позицию игрока/в кажудую секнду времени), а вот клиенту придется интерполировать между двумя "верными" пакетами.
Вот здесь и появляется ex_interp. Данная команда отражает количество времени (в секундах) для интерполяции между каждым "удачным" обновлением с сервера.Так как интерполяция относится к клиентской части, то естественно возникают неточности и ошибки в самой игре. Так как мы не можем получить 100% точности апдейтов с сервера (особенно в и-нете) то интерполяция играет важную роль в самой игре.
Рекомендации для online игр
rate:
Я практически уверен что значение 20000 будет доступно большинству высокоскоростных и-нет соединений. А вот использование значений выше 20000 может наоборот привести к снижению производительности.
Рекомендую: rate 20000
sv_maxrate:
Значение в большинстве своем равно 0. Обьясню почему это скорее всего не оптимально для online игры. sv_maxrate "0" будет определять значение rate для каждого клиента и пытаться заполнить его заполнить. Представьте что движок HL позволяет игрокам использовать значения rate выше 20000 (например 999999999999), и сервер будет пытаться заполнить все 999999999999. Енто приведет к пустому увеличению нагрузки на канал сервера. Я советую безопасное и вместе с тем хорошее значение sv_maxrate "20000". В большинстве случаев sv_maxrate 0 и sv_maxrate 20000 будут эквивалентны, но береженного бог бережет.
Рекомендую: sv_maxrate 20000
cl_cmdrate:
В идеале значение этой команды должно быть равно серверному(!- большинство людей считают что клиентским- вкорне не верно) fps. Если вы посылаете серверу пакеты чаще чем он способен обработать- (скажем серверный fps=80, а значение cl_cmdrate 101) то некоторые пакеты будут просто "скинуты" сервером, необработаны ( 101-80=21 необработанный пакет). По сути енти 21 пакета погоды не делают, просто приведут к забиванию вашего upload ( и увеличению траффика), что тоже погоды не делает.
Рекомендую: смело ставим cl_cmdrate равное серверному fps либо выше.
ex_interp:
Cтавим в 0 без размышлений. CS автоматически поставит ее значение ex_interp= 1/cl_updaterate ( в консоли увидите “ex_interp forced up to xx msec”). При значении 0, изменение значения команды cl_updaterate будет автоматически менять и значение ex_interp. Я РЕКОМЕНДУЮ МЕНЯТЬ ЗНАЧЕНИЕ ТОЛЬКО CL_UPDATERATE, ПОЗВОЛЯЯ CS поменять значение ex_interp. Вы уже не можете поставить значение ex_interp ниже чем 1/cl_updaterate, а вот ставить его выше- енто уже просто нечестно. Ставить значение выше 1/cl_updaterate приведет к тому, что вам придется стрелять немного позади модельки противника ( получается так, что вы видите проивника немного раньше чем положено). К примеру, при использовании cl_updaterate 101, верное значение ex_interp= 1/101=0.009, но по умолчанию ex_interp= 0.1 а енто выше чем 1/101- вот тут и возникает глюк...
Рекомендую: ex_interp 0- стреляем туда, куда целимся
cl_updaterate:
Бытует мнение что значение данной команды надо подбирать следующим методом: присваиваем значение cl_updaterate 101 и снижаем его до тех пор пока параметр choke ( его можно увидеть, если набрать в консоли команду net_graph 3) не будет равен 0 или ооочень низок. По мне, так choke- енто самое последнее о чем стоит беспокоиться. Правильное значение cl_updaterate- енто более глубокий вопрос чем просто choke. Значение sv_maxupdaterate на сервере для чемпов должно иметь значение 101 ( так настроен сервер для CAL CPL)- из ентого можно сделать вывод что в идеале значение cl_updaterate=101. Однако большинство серверов в online имеют значение sv_maxupdaterate "30" или просто неспособны вычислить 101 sv_maxupdaterate. Из чего следует что сервер просто неспособен послать вам 101 пакет/секунду. Так все таки какое значение? Большинство могут сказать " Я поставлю 101, а сколько дойдет- всё моё", но тут уже играет отрицательную роль высокое значение ex_interp, что нарушит баланс между этими командами.
Для того, чтобы подобрать оптимальное значение cl_upodaterate (ex_interp "0") стави его в 101 и начинаем снижать его до тех пор пока модельки игроков не будут слегка двигаться скачками ( при ex_interp 0 и cl_updaterate 101 - они будут оочень сильно пропускать). Не надо бояться ставить значение cl_updaterate ниже 50 если енто необходимо. Большинство серверов sv_maxupdaterate "30" так что cl_updaterate 30 будет лучшим значением.
Стоит отметить что начинать подборку cl_updaterate надо " сверху вниз" а не наоборот.
Рекомендую: равно серверному fps и не выше sv_maxupdaterate
sys_ticrate:
Для нахождения оптимального значения данной переменной необходимо произвести несколько экспериментов. Прежде всего, если ваш сервер не "ускорен" то значение переменной ticrate выше 100 ни к чему не приведет. Если же сервер находится на хорошей платформе (богатый провайдер), то бишь "ускоренный", у вас появляется место для полета фантазии. Не смотря на то что "чем больше серверное fps тем лучше", эффект от увеличения sys_ticrate выше 200 (а может и еще меньше) на самом деле не окажут такого уж хорошого влияния на игру. А вот использовать sys_ticrate "200" или ниже сделает игру более стабильной даже если придется пожертвовать минимальным количеством производительности. Представьте вдобавок, что компьютер, исползуемый под игровой сервер тянет аж несколько HLDS (например CS1.6 и CZ) и для обоих sys_ticrate "10000" нагрузка на процессор возможно будет черезмерной. Такое положение вещей может привести к потери производительности самой игры. В конце можно добавить, что если вы хотите получить, скажем, 140fps то вам нужно выставить значение sys_ticrate выше предпологаемого где-то на 20-50. (Например сервер может спокойно тянуть 150fps, значит значение sys_ticrate будет 150+30= 180.)
Рекомендую: sys_ticrate 110-180- зависит от качества сервера.
Слово о LAN
Повод, по которому большинство известных турниров, таких как CPL, WCG используют cl_updaterate 101- зависит от качества сервера. На таких чемпах все сервера обычно "ускорены" что делает реалным такое высокое значение cl_updaterate. Для того чтобы быстро узнать "ускорен" ли сервер, достаточно просто обратить внимание на пинг- у простого сервера, fps которого 50-60, все игроки имеют средний пинг 15ms, а вот на "ускоренном" -5 ms.
· Ставим Metamod
Установка метамода by X-Plane
http://metamod.org/
версия 1.17.3
Загружаем метамод версии 1.17.3 для Windows отсюда: http://metamod.org/ и распаковываем его.(правая кнопка мыши - extract here) в папку "Мои документы"
1. создаём в "Моих документах" папку с названием "addons"
2. в папке "addons" создаём папку с названием "metamod"
3. открываем её, и создаём в ней папку с названием "dlls"
4. в папку "dlls" вставляем файл "metamod.dll" (который получили после распаковывания архива)
5. открываем блокнот (notepad), выбираем: file; save as, в появившемся окне file name: пишем plugins.ini , а в окошке file type выбираем - all files, сохраняем в нашу папку "metamod"
6. находим папку с контрой "cstrike" директория игры cstrike (у меня например так: C:/Program Files/Valve/cstrike, зависит от того, куда вы установили игру)
7. открываем папку "cstrike" и вставляем в неё нашу папку "addons"
8. в папке "cstrike" находим файл "liblist", открываем с помощью блокнота и заменяем строчку:
gamedll "...."
на следующую:
gamedll "addons/metamod/dlls/metamod.dll"
и сохраняем файл.
Теперь метамод установлен, и можно устанавливать основные моды для игры: AMX или ADM, CDserver и другие..
· Ставим cd-server-4.21.0
Порядок установки популярного античита Cheating Death
Ставим cd-server-4.21.0 by X-Plane
(требуется наличие метамода)
Загружаем cd-server-4.21.0 отсюда:
http://files.unitedadmins.com/files/cd- … 1_0-en.zip
Распаковываем в чистую папку
1. открываем папку "addons" (директория игры cstrike/addons), создаём там папку под названием "cdeath"
2. вставляем в папку "cdeath" файл cdmod.dll
3. открываем файл "plugins" в папке cstrike/addons/metamod с помощью блокнота и добавляем строчку и сохраняем:
win32 addons/cdeath/cdmod.dll
В принципе, cd-server-4.21.0 установлен и будет работать по умолчанию - кикать всех клиентов без Cheating-Death, однако есть дополнительные команды и настройки которые описаны в мануале на английском языке, например, вы не хотите, что бы клиента кикало, тогда можно настроить так, что если у игрока нет CD то прога добавляет к его нику приставку: [No C-D] X-Plane (прописать в server.cfg и listenserver.cfg строчку: cdrequired 0)
Есть возможность выбора версии CD, если вы согласны, что бы клиентов не кикало и не добавляло приставку к имени, если у них определённая клиентская версия CD - например не ниже 4.24 (прописать в server.cfg и listenserver.cfg строчку: cdrequiredversion "4.24")