Сегодня мы научимся добавлять amxx плагин для cs сервера. Для установки мы предполагаем что у вас уже имеется готовый cs сервер на amx mod. Как устанавливать плагины на сервер?
Допустим вы скачали какой-нибудь новый плагин (пример: Plygin.amxx) и хотите установить его на ваш сервер. - Перед установкой обязательно остановите сервер (выключите его) - Ищем папку "...\Valve\cstrike\addons\amxmodx\plugins" (пример: "C:\Program Files\Valve\cstrike\addons\amxmodx\plugins") и копируем в неё наш новый плагин. - Далее необходимо описать новый плагин в специальном файле, где записаны все подключённые к серверу плагины - идём в папку "...\amxmodx\configs" и находим там файл Plygins.ini (открываем его с помощью блокнота) - Спускаемся на самую нижнюю строчку файла, сделаем небольшой отступ вниз и напишем там например такое: ; Мои плагины Это нужно для удобства, чтобы отделить стандартный набор плагинов от тех, что вы сами добавляете в систему Символ: ";" (Точка с запятой) в начале строки означает в этом файле - комментарий, т.е всё что будет написанно в строке далее после него не будет учитываться системой... там можно писать практически всё что угодно (но лишь на этой строке, после этого символа) P.S. Если вы хотите выключить какие-то плагины, достаточно перед их названием поставить ";" (без кавычек естественно) Пример: ;Plygin.amxx - Плагин выключен - Спускаемся на строку ниже надписи "; Мои плагины" и пишем с новой строки: Plygin.amxx ;Комментарий к плагину, описание Название плагина обязательно пишется с расширением "amxx" Рекомендуется на строке после названия оставлять описание плагина, это для вашего же удобства! - Сохраняем изменения в Plygins.ini - Всё, плагин установлен!:)
Вот пример файла plugins\plugins.ini:
; AMX Mod plugins
; Это список плагинов, которые будут загружены при включении Counter-Strike ; Что бы отключить какой-то плагин надо поставить в начале строки символ ; (точка с запятой).
; Основные плагины
admin.amx ; база для администратирование (необходим для админских дрючек) ;admin_mysql.amx ; admin base - MySQL version (comment admin.amx) admincmd.amx ; простые админские команды в консоли adminhelp.amx ; справка для админских команд ;adminslots.amx ; резервирование слотов menufront.amx ; front-end для админских меню cmdmenu.amx ; командное меню (speech - базар, settings - настройки) ;plmenu.amx ; меню для управления игроками (kick - выброс игрока из игры, ban - запрещение игроку инрать, client cmds.) ;restmenu.amx ; запрет на выбранное оружие mapsmenu.amx ; меню карт (vote - голосование, changelevel - смена уровня) ;antiflood.amx ; анти-засорение сервера разговором ;adminchat.amx ; чат консольными командами ;adminvote.amx ; голосование за админа nextmap.amx ; отображение следующей карты по мап-циклу timeleft.amx ; отображение оставшегося времени на карте mapchooser.amx ; aразрешает голосование за следующуу карту ;scrollmsg.amx ; отоюражение прокручивающихся сообщений imessage.amx ; отображение информационных сообщений ;welcomemsg.amx ; console motd @ client connection stats.amx ; статистика посчле смерти или в конце раунда (CSStats Module необходим!) stats_logging.amx ; запись статистики по оружию (CSStats Module необходим!) telemenu.amx ; меню телепортирования (не обходим Fun Module!) miscstats.amx ; звуковое оглошение событий, напр. двоёное убийство или убийство ножом pausecfg.amx ; разрешает останавливать плагины statscfg.amx ; позволяет управлять плагинами, меню и командами статистики
; Добавочные плагины:
warcraft3FT.amx ; Warcraft 3 Frozen Throne ;matrix_weapon_mode.amx ; включает Матрицу plugin_mines.amx ; даёт возвожность покупать и ставить мины ;Vexd_Rocket.amx ; можно пускать ракеты (глючит) ;Vexd_TripMine.amx ; включает растяжки (глючит) amx_atac.amx ; АТАС - наказание за убийство своего (TK) amx_atac_cfg.amx ; настраивает АТАС gore.amx ; включает обилие крови и разрыв до костей ;Bullettime.amx ; режим замедленных пуль (как в Матрице) admin_ghost.amx ; можно сделать админа невидимым, неубиваемым и т.д. laser_guns.amx ; лазерное оружие (хрен знает, не понял) start_health.amx ; начальное здоровье (не работает с Матрицей и Warcraft'om) amx_gasnades.amx ; газ вместо дыма в дымовых гранатах (8-5) ;amx_chicken_plugin.amx ; превращает выбранного игрока в курицу (необходим chicken_mm.dll) ;player_ghosts.amx ; можно видеть духов умерших ;throwing_knives.amx ; можно бросать ножи (чё-то у меня не бросает) ;cs_flamethrower.amx ; метание огня - огнемёт - отнимает или деньги или броню ;unlimited_nades.amx ; позволяет дать игроку бесконечные гранаты inviswars.amx ; война невидимок - при включении все становяться невидимыми до выстрела stalkermode.amx ; позвоялет любому игроку превратиться в сталкера и обратно he_arena.amx ; выключает всё оружие, но даёт всем бесконечные гранаты
При копировании материала ссылка на источник обязательна!
Делаем цветное лого Прежде всего вам потребуется программа Half-life Logo Creator можно её скачать у нас с сайта Теперь запускаем ее и начнем, пожалуй.
1. Выдает окно укажите папку с counter strike тама есть ярлык hl.exe 2. Нажимаем Open 4. Рисунок автоматически конвертится в 256-цветный вид. 5. Нажимаем Autosize и рисунок автоматически изменяет размер до максимально возможного. 6. Выбираем для какого (или каких) модов мы хотим сделать лого, в нашем случаи это кс 1.6. 7. Если нужно редактируем изображение с помощью встроенных инструментов. 8. Сохраняешь картинку в таком названии tempdecal и pldecal 9. Нажимаем Make WAD , т.е. создаем наш лого 10. Если все сделано без ошибок, то появляется такое сообщение"WAD creation succesfull" о том, что лого сделан. 11. Теперь файл tempdecal и pldecal кидаем сюда ...\cstrike\, заменяем файлы 12. Запустив CS не заходите в опции не чего не изменяйте жмите "T" вот ваш лого
Ну вот и все, и ничего сложного!
При копировании материала ссылка на источник обязательна!
Итак, установка карт для CS 1.6, прежде всего распакуйте архив WinRAR'oм, затем следуйте инструкции. Рабочий пример: E:\Games\Counter-Strike 1.6\cstrike Русская локализация: E:\Games\Counter-Strike 1.6\cstrike_russian
Какие файлы могут присутствовать и куда их копировать:
Вейпоинты .pwf для podbot копировать в папку \wptdefault. Также могут присутствовать .wad файлы содержащие текстуры - их копируйте в корень папки, то есть \cstrike
При копировании статьи - ссылка на первоисточник обязательна: https://cs-games.net.ru
Как установить модели для CS?, куда копировать файлы оружия, игроков, звуков?- вы узнаете в этой статье. Зачастую играя в CS надоедают стандартные модели, поэтому стоит их менять, вносить новые краски в свою жизнь. Итак приступим:
Какие файлы могут быть: возьмём к примеру ак47; v_ak47.mdl - это то что вы видите у себя в руках; p_ak47.mdl - это то что вы видите у друга или у противника в руках; w_ak47.mdl - это вы видите на земле; ak47-1.wav - это звуковые файлы;
Файлы с расширением *.mdl ---> копировать в папку "\cstrike\models" - это если вы скачали модель оружие:
Пример: \cstrike\models\v_ak47.mdl
Примечание: Также не стоит забывать, что в кс 1.6 существует щит )), поэтому,- модели щитов с пистолетами и ножом находятся: \cstrike\models\shield
Файлы с расширением *.mdl ---> копировать в папку "\cstrike\models\player\*" - это если вы скачали модель игрока:
Примечание: в папке player находятся подпапки для каждого бойца в CS
Файлы с расширением *.wav ---> копировать в папку "\cstrike\sound\" "\cstrike\sound\weapons" - это если вы скачали звук для оружия:
Пример: \cstrike\sound\weapons\ak47-1.wav
Важно:
Вопрос: После установки модели оружия - карты не запускаются. Что делать? Всем у кого не запускается CS(выдает ошибку после замены оружия), - пишите в консоли команду MP_CONSISTENCY 0 - запретит проверку моделей, чтобы каждый раз не прописывать команду - добавьте её в конфиг.
При копировании статьи - ссылка на первоисточник обязательна: https://cs-games.net.ru
Как же всё таки установить ботов для кс? - вопрос изрядно мне поднадоел (в личке по поводу ботов - целые дискуссии ;D), поэтому решил написать небольшой "тутор" на эту тему. Итак приступаем.
1. Прежде всего идём сюда и качаем искуственный интелект(ZBot 1.5 думаю вам известен );
2. На "выхлопе" получаем архив, следственно делаем роз-архивацию - и перед нами должна быть папочка "zbot1.5"
3. Копируем папку cstrike в папку с игрой(должна произойти замена файлов)
4. Ну и собственно самое главное: "Какую команду ввести в консоль чтоб боты забегали?" Ответ: их существует несколько: bot_add_ct - +1 бот за контеров bot_add_t - +1 бот за теров
Нажать латинскую букву "H" выпадет меню, да прямо в кс )), следуйте инструкциям - там тоже можно добавить ботов.
И ещё пару дельных советов для игры с ботами: 1. Иногда хочется устроить "сникерс рубанию" и сыграть с ботами на равных 1:20(один против двадцати), но у многих возникаю проблемы: - "Я выставил против себя 20 ботов, а они автоматом переходят за меня, что делать?" - Отвечаю: делаем следующее открываем консоль, пишем mp_limitteams 20 - это значит что за одну команду может играть 20 человек, и mp_autoteambalance 0 - автобаланс отключён. 2. Для того чтобы избавить себя от рутийного занятия - штурмовать консоль для добавления ботов, советую волшебную команду bot_quota 19 - что же она значит, разбираем - bot_quota - автоматическое добавление ботов, число в конце означает сколько ботов будет добавлено(автоматический автобаланс). Как видите ничего сложного, на этом даный урок заканчивается, пишите коменты буду рад, удачи.
При копировании статьи - ссылка на первоисточник обязательна: https://cs-games.net.ru
Внутри архива находятся сжатые папки необходимых файлов, заканчивающийся на. spr. Это спрайты. Полные имена спрайтов радара: radar640.spr или/и radaropaque640.spr. Теперь скопируйте. spr файлы Найдите cstrike папку и откройте ее. Внутри должна быть папка с именем sprites. Если нет папки sprites вы должны создать её! Откройте папку sprites и вставьте (.spr-файлы). Если вас попросят заменить какие-либо файлы, нажмите кнопку "Да". Вы уже установили новый радиолокатор:) СОВЕТ: Переключатель между твердым и прозрачным радаром cl_radartype 0 и cl_radartype 1. ПРИМЕЧАНИЕ: Если у вас твердый или прозрачный радар не работает ваш hud.txt файл, возможно, поврежден или изменён.
Как установить прицел.
Имя этого спрайта часто (но не всегда) sniper_scope.spr. Если имя не sniper_scope.spr, необходимо также файл с именем weapon_awp.txt. Скопируйте спрайт (.spr-файл), а также weapon_awp (. TXT), если таковой имеется. Если есть файл с именем scope_arc.tga, scope_arc_ne.tga, scope_arc_nw.tga и scope_arc_sw.tga вы должны скопировать их тоже. Найдите cstrike папку и откройте ее. Внутри должна быть папка с именем sprites. Если нет папки sprites вы должны создать её! Откройте папку sprites и вставьте (.spr-файлы) и weapon_awp.txt (и. TGA файлов, если таковые имеются). Если вас попросят заменить какие-либо файлы, нажмите кнопку "Да". Вы уже установили новый прицел:)
Как установить значки.
Имя нужного спрайт 640_hud7.spr. Скопируйте спрайт (.spr-файл). Найдите cstrike папку и откройте ее. Внутри должна быть папка с именем sprites. Если нет папки sprites вы должны создать её! Откройте папку sprites и вставьте (.spr-файлы). Если вас попросят заменить какие-либо файлы, нажмите кнопку "Да". Вы уже установили новые значки:)
Как установить кровь и/или пулевые отверстия.
Имя нужного файла decals.wad. Скопируйте файл decals.wad. Найдите cstrike папку и вставте decals.wad файл. Вы уже установили новый вид крови и/или пулевые отверстия:) ПРИМЕЧАНИЕ: Пулевые отверстия и кровь, находятся в одном и том же файле decals.wad, при замене данного файла, будут перезаписаны вышеописанные модификации. Заменить кровь можно также спрайтами, для этого вам нужно спрайты с именем blood.spr, blooddrop.spr и bloodspray.spr(некоторых из них может и не быть) скопировать в папку cstrike\sprites с заменой файлов.
Как установить мигание лампочки бомбы.
Имя нужного спрайта ledglow.spr. Скопируйте спрайт (.spr-файл). Найдите cstrike папку и откройте ее. Внутри должна быть папка с именем sprites. Если нет папки sprites вы должны создать её! Откройте папку sprites и вставьте (.spr-файлы). Если вас попросят заменить какие-либо файлы, нажмите кнопку "Да". Вы уже установили новый спрайт:)
Как установить цветное лого.
Имя нужного файла tempdecal.wad, если не такое имя - переименуйте файл. Скопируйте файл (.wad-файл). Найдите cstrike папку и вставьте файл(должна произойти замена). Установить файлу tempdecal.wad свойство "Только чтение" ПРИМЕЧАНИЕ: если у вас уже имеется папка cstrike_russian всё выше перечисленное нужно провести с ней(подсказка от kot23rus)
Как установить радио иконки.
Имя нужных файлов radio.spr(для иконок радиокоманд) и voiceicon.spr(иконка "тим спик", когда говорите по микрофону), некоторые файлы могут отсутствовать, если не такое имя - переименуйте файлы. Скопируйте файл(ы) (.spr-файл). Найдите cstrike\sprites папку и вставьте файл(ы).
При копировании статьи - ссылка на первоисточник обязательна: https://cs-games.net.ru
Итак приступаем. Что нам нужно: 1. Видеокарту ATI или NVIDIA. 2. Ну и собственно кс В)
Пример №1 ATI: 1. Лезем в папку C:\Windows\System32 (у всех по разному), находим файл под названием atioglxx.dll (или юзаем поиск). 2. Лезем в папку E:\Games\CounterStrike 1.6\gldrv, находим файл под названием 3dfxgl.dll, делаем копию этого файла на всякий случай. 3. Из пункта 1 файл atioglxx.dll копируем в папку пункта 2 и переименовываем в 3dfxgl.dll
Пример №2 NVIDIA: 1. Лезем в папку C:\Windows\System32 (у всех по разному), находим файл под названием nvoglnt.dll (или юзаем поиск). 2. Лезем в папку E:\Games\CounterStrike 1.6\gldrv, находим файл под названием 3dfxgl.dll, делаем копию этого файла на всякий случай. 3. Из пункта 1 файл nvoglnt.dll копируем в папку пункта 2 и переименовываем в 3dfxgl.dll
Далее обязательно условие vsinc=off Ну и собственно то, о чём вы так долго мечтали ), запускаем кс, открываем консоль пишем следующую комманду developer и ставим значение 1 (по умолчанию 0), fps_max 2000, net_graph 1 и наблюдаем как фпс скачет от 200 и более. Примечание: перед тем как начать копировать и заменять файлы, попробуйте сначала в консоль прописать developer 1 и fps_max 2000, если fps не повысится - тогда проводите процедуру с заменой файлов.
ps: в данном режиме получилось сыграть на бесплатных серверах, поэтому не советую использовать вышеописанное на стиме.
При копировании статьи - ссылка на первоисточник обязательна: https://cs-games.net.ru
Итак мы будем делать в кс 100fps (fps-fraps per second-кадры в секунду) для чего это нужно? Ну попробуйте прописать в консоле fps_max 20 и поиграть,и сразу поймете зачем нам 100 :)
К сожалению по дефолту в кс стоит обычно 60 fps.Так как в дровах видео включа такая вещь как вертикальная синхронизация (vsync).
Для начала заходим в cs и пишем в консоле команду net_graph 3 В нижнем углу справа появляются циферки и показывает 60 fps
1.Заходим в дрова совей видеокарты, для тех у кого карточки от nvidia, находим пункт производительность и качество,далее ищем вертикальную синхронизацию, кликаем на неё и снимаем галочку в "управляемое приложением" и ползунок двигаем влево.
Для Ati с Control Panel правой кнопкой мыши по рабочему столу - свойства, параметры, дополнительно,3D, OpenGL, Специальные... -Ждать вертикальной синхронизации - ползунок в крайнее левое положение.
2.Дальше нужно поставить максимальную герцовку монитора.На жк мониках она ограничена 75 герцами.Если моник CRT то надо поставить 100 герц,если монитор не очень древний должен держать 100 герц.
3.Так же нужно прописать герцовку в самой игре это делается так: для обладателей стима сначала заходим в раздел "Мои игры" тыкаем правой кнопкой на игре контр страйк и выбираем свойства. Потом тыкаем на кнопку "установить параметры запуска" и прописываем такую фразу -freq 75 или 100 в зависимости от герцовки вашего монитора и жмем окей.
Для обладателей левой версии кс, нажимаем правой кнопкой по ярлычку, потом выбираем свойства и добавляем все ту же надпись либо -freq75 либо -freq 100
4.Теперь после запуска кс у вас должно показывать 100 fps P.S. по поводу видеокарты 100 фпс без дыма выдержит даже видео карта geForce 4 mx 440, если у вас карта не старее этой, то можете смело сделать выше описанное для улучшения производительности, желаю удачи :)
В связи со всеми вопросами о vsync (вертикальная синхронизация), hz(герцы), fps(ФПС - количество кадров в секунду времени) и т.д. посвящается:
Представим вопрос товарища Х:
"Как енто понимать твою! У меня X800 cупер друпер монитор который на 1280*1024 держит 200hz и в CS1.6 при проверке fps (cl_showfps 1) у меня показывает только 60FPS. А ведь я поменял команду на fps_max 100".
Приблизительный ответ:
" Отруби vsync и все будет чики поки..."
А теперь непосредственно к етой проблеме: vsync (вертикальная синхронизация) синхорнизирует (уравнивает) значение вашей герцовки и FPS в игре. Т.е. если у вас для разрешения 800*600 стоит 85герц, то при значении vsync on у вас также будет 85FPS.
Вопрос: "Но у меня в винде на разрешении 1024*768 стоит 100герц, vsync on, в игре при таком же разрешении почему-то все равно 60FPS и если убить vsync то все как надо- 100FPS. В чем проблема?"
А проблема даже очень проста - во всем виноват Маздай... Почему то при переходе в полноэкранный режим в играх он сбрасывает значение hz со 100 (или что там у вас) до 60... Вот поентому такая вот непонятка и получается.
Что же происходит когда мы играем при 60hz с vsync off и fps_max 100: "Да, контра показывает нам что типа мы видим все 100кадров в секунду, на самом же деле- фигвам... Мы уже слепнем на 40 FPS- из-за ентого картинка дерганная и резкая. Я рекомендую играть только с vsync on (включить вертикальную синхронизацию- у всех по разному- я использую омега драйфера- Свойства дисплеянастройкиРасширенныеAdvanced 3d3dWait for Vertical Sync- значение Always ON)- картинка намного мягче, плавнее, контра красивше становится... Да и...
Вообщем теперь к делу- то бишь как ето исправить: Для ползователей ATI коим я являюсь посоветую вот ето: http://www.radeon2.ru/refreshfix_eng.html Проверено - мин нет... Для пользователей Nvidia коим я когда-то являлся (во времена TnT, Gforce 2) советую поискать nvidia refresh rate fix (пока работает вот ента ссылка: http://www.majorgeeks.com/download.php?det=1547) Либо универсальный метод: RefreshLocker ( http://www.home.no/koston/refreshlock.rar ) Работает везде...
Последняя так сказать памятка- при использовании HZ которые ваш бедный монитор не поддерживает либо поддерживает с трудом(аля монитор 15дюймов samtron 15e, кажись так и HZ в 120 на разрешение 1024*768) возможен конкретный попадалово на сумму равную цене нового монитора- так что не переусердствуйте (большинство мониторов, особенно новых, без проблем держат 100hz на 800*600) Если пользуете RefreshLock то всегда ставьте галку в Always use the fastest safe frequency for mode( чтобы уж точно не спалить).
По поводу разговоров, что мы видим только 30кадрофф в секунду- енто отдельная тема для обсуждения, скажу только, что было доказано- человеческий глаз способен видить и свыше 200FPS... Енто относится к любителям Сорса, которые кричат что 40FPS в игре больше чем надо, что далее как бы так мы нифига не видим... Кто не видит- сходите к окулисту...
Сетевой код CS 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 "загружает" и сам процессор сервера. (Кстати такое "увеличение" каким-то образом загружает процессор по максимуму на таких картах как 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% в каждую секунду времени, так как вы получаете ограниченное количество обновлений в секунду с сервера. Когда увеличивается количество обновлений, интерполированная фигура становится более аккуратной. В 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: ставим в 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.
Многим из вас известно, что CS-комьюнити и судейский комитет WCG столкнулись с немалой проблемой во время проведения турнира WCG 2007, которая вылилась в полный хаос в расписании игровых дней гранд-финала. Да, я говорю о известном duck-jumpe, или silent-run'е – называйте его как хотите – баге, который появляется, если игрок чередует нажатие клавиши присяда несколько раз подряд.
И пусть сейчас отношение к этому багу стабилизировалось и уже не вызывает бури негативных эмоций, но следует понимать, что, правильно использованный, он дает игроку два неадекватных преимущества над соперником.
WCG: после своего вылета fnatic обсуждают с судьями запрет duck-jump'а
Во-первых, этот метод позволяет игроку передвигаться так быстро, как бы он двигался при беге, но в то же время скрадывает звук передвижения модели и вам кажется, будто применяющий duck-jump противник бежит далеко от вас. Посему этот метод позволяет игроку или группе игроков атаковать различные бомбплэнты без боязни быть полностью замеченными. Фактически до тех пор, пока удерживающие бомбплэнт CT не увидят всех террористов, они не могут информировать о раше своих напарников, без боязни выдать в эфир ложную информацию. Кроме того, как мы уже говорили, игрок duck-jump'ер сможет перебраться от одной точки до другой за кратчайшее время, не выказав при этом своего реального месторасположения.
Но есть и другая проблема – эта техника позволяет игроку нарушать физику хитбоксов модели, которые при возникновении бага duck-jump'а кардинальным образом меняют расположение хитбоксов игрока и затрудняют прицельный огонь по нему. Так, например, хитбоксы его головы будут находиться совсем не там, где прорисована его голова, что зачастую не дает вам сделать хедшот несмотря на то, что вы правильно прицелились. Потому мы приравниваем использование duck-jump'а к известным эксплойтам и хакам, таким как developer 1, ex_interp 1 и другим багам.
Именно поэтому вкупе с тем, что весь WCG-комитет считает, что дисциплина не должна быть испорчена таким элементом, столь сильно влияющим на игровой процесс, этот эксплойт был запрещен на WCG 2007. Да, мы признаем – мы считаем этот эксплойт не безобидным, но таким же нечестным, как и другие игровые баги, запрещенные ранее. И запрет duck-jump'а для нас также был вопросом уважения к киберспортсменам.
Но некоторые игроки высказали отличные от нашей точки зрения – и мы готовы прислушаться к ним. Главным аргументом в наших с ними спорах было то, что все они привыкли использовать этот баг, чтобы застать противника врасплох. Так как лишь некоторые лиги (в основном скандинавские и азиатские) позволяют использовать этот баг, мы не могли согласиться с их утверждением, настаивая на том, что построенная ими картина, где все прогеймеры мира привыкли и используют этот баг, в корне неверна.
Однако несмотря на это, нам так и не удалось достигнуть консенсуса
Потому мы стоим на перепутье – у нас есть три возможности.
1) Оставить старое правило: спрашивать команды, не были ли они свидетелями применения duck-jump'а со стороны своих противников, и если были, то в каком раунде.
2) Избавиться от правила, разрешив использование duck-jump'а.
3) (По-моему, самое честное и прогрессивное) – ввести в игру WCG-мод, в котором модель игрока, использующего duck-tap более двух раз, не будет подпрыгивать, тем самым лишая duck-jump всякого смысла. Однако люди привыкшие к нему, все еще смогут его использовать, пусть скрытые преимущества оного и перестанут работать. Это, в свою очередь, позволит судьям сконцентрироваться на судейской работе, слежении за гостингом и разговорами между умершими членами команды.