Рейты CSS[OB]

Nekro

Терра инкогнита
Сообщения
4,042
Реакции
2,295
Операционная система
Linux
🔥🔥

📝 Борьба рейтов сервера и клиента в CSS: Кто в приоритете?

🚀 Введение

Вопрос о том, как рейты клиента влияют на сервер и наоборот, актуален для многих администраторов серверов Counter-Strike: Source и игроков. Правильные настройки рейтов обеспечивают плавный и честный игровой процесс. Но что произойдет, если настройки сервера и клиента не совпадают? Кто в итоге "побеждает" в этой борьбе? Давайте разберёмся.


⚙️ Что такое рейты и зачем они нужны?

  • Рейты сервера — это сетевые параметры, которые определяют, как часто сервер обновляет информацию и обменивается данными с клиентами.
  • Рейты клиента — это параметры на стороне игрока, которые управляют частотой отправки и получения данных между клиентом и сервером.
Основные параметры включают:

  • rate — пропускная способность для передачи данных.
  • cmdrate — частота отправки команд клиентом на сервер.
  • updaterate — частота получения обновлений от сервера клиентом.
  • cl_interp и cl_interp_ratio — параметры интерполяции, влияющие на отображение движений других игроков.

🔄 Как сервер управляет рейтами клиентов?

Серверные настройки определяют минимальные и максимальные значения, которые могут использовать клиенты. Вот примеры серверных параметров:

sv_minrate "128000"
sv_maxrate "128000"
sv_mincmdrate "100"
sv_maxcmdrate "100"
sv_minupdaterate "100"
sv_maxupdaterate "100"
sv_client_max_interp_ratio "2"
sv_client_min_interp_ratio "2"

Что это значит для клиента?​

  • Если клиент установит rate ниже, чем sv_minrate, сервер заставит его использовать минимум, установленный сервером.
  • Если клиент выставит cmdrate или updaterate выше, чем sv_maxcmdrate или sv_maxupdaterate, сервер ограничит их этими значениями.
  • Интерполяция клиента будет ограничена настройками сервера sv_client_min_interp_ratio и sv_client_max_interp_ratio.
Таким образом, серверные рейты всегда имеют приоритет и задают пределы для клиентов.


🕹️ Оптимальные клиентские настройки

Для сервера с тикрейтом 100 и рейтами 128000 игрокам рекомендуется использовать следующие настройки:

rate "128000"
cl_cmdrate "100"
cl_updaterate "100"
cl_interp "0"
cl_interp_ratio "2"
net_graph "3"

Эти параметры обеспечивают:

  • Стабильный обмен данными с сервером.
  • Минимальную задержку между действиями игрока и их отображением на сервере.
  • Честные условия для всех игроков благодаря фиксированной интерполяции.

🤔 Могут ли клиентские рейты влиять на сервер?

Клиентские рейты не могут напрямую влиять на производительность сервера. Однако:

  1. Плохие настройки клиента могут привести к лагам, задержкам и телепортации самого игрока.
  2. Если клиент использует нестабильные настройки (например, низкий cl_updaterate), это ухудшит его восприятие игры, но сервер продолжит работать стабильно.
  3. Сервер всегда принудительно применяет свои ограничения, не позволяя клиентам использовать неподходящие рейты.

🏆 Вывод

  • Серверные рейты в приоритете: они задают допустимые диапазоны для клиентов и обеспечивают стабильность игры.
  • Оптимальные клиентские настройки позволяют игрокам получать наилучший опыт в рамках ограничений сервера.
  • Фиксированная интерполяция (например, cl_interp_ratio 2) помогает поддерживать честный и предсказуемый игровой процесс для всех.
Настройка серверных рейтов — это ключевой шаг к созданию качественного игрового процесса. А правильные клиентские настройки помогут игрокам максимально использовать возможности сервера.


🔗 Обсуждение темы: Рейты CSS на форуме HLmod.net

💬 Делитесь своими настройками и опытом в комментариях!
🔥🔥

Примеры рейтов:

sv_minrate "128000" // Минимальный рейт для игроков (128 КБ/с).
sv_maxrate "128000" // Максимальный рейт для игроков (128 КБ/с).
sv_mincmdrate "100" // Минимальная частота команд от клиента (100 команд/с).
sv_maxcmdrate "100" // Максимальная частота команд от клиента (100 команд/с).
sv_minupdaterate "100" // Минимальная частота обновлений от сервера (100 обновлений/с).
sv_maxupdaterate "100" // Максимальная частота обновлений от сервера (100 обновлений/с).
sv_client_cmdrate_difference "1" // Разница между cmdrate и updaterate не более 1.
sv_client_max_interp_ratio "2" // Максимальный коэффициент интерполяции (2).
sv_client_min_interp_ratio "2" // Минимальный коэффициент интерполяции (2).
sv_competitive_minspec "1" // Принудительное использование конкурентных настроек.
cl_interp "0" // Автоматический расчёт интерполяции.
cl_interp_ratio "2" // Коэффициент интерполяции (2).

// 📶 Настройки пропускной способности
sv_minrate "128000" // Минимальная пропускная способность для игроков (128 КБ/с).
// Это значение предотвращает использование низкого рейта, что уменьшает лаги.
sv_maxrate "128000" // Максимальная пропускная способность для игроков (128 КБ/с).
// Современные клиенты и серверы способны работать на этом уровне.

// 🕹️ Настройки частоты команд от клиента
sv_mincmdrate "100" // Минимальная частота команд, отправляемых клиентом (100 команд/с).
// Соответствует 100 тикрейту, обеспечивая точность отправки действий.
sv_maxcmdrate "100" // Максимальная частота команд от клиента (100 команд/с).
// Устанавливает верхний предел для cmdrate, соответствующий 100 тикрейту.

// 🔄 Настройки частоты обновлений от сервера
sv_minupdaterate "100" // Минимальная частота обновлений, отправляемых сервером клиенту (100 обновлений/с).
// Это значение поддерживает плавность игры при 100 тикрейте.
sv_maxupdaterate "100" // Максимальная частота обновлений от сервера клиенту (100 обновлений/с).
// Ограничивает максимальный updaterate для всех клиентов.

// ⚖️ Балансировка cmdrate и updaterate
sv_client_cmdrate_difference "1" // Разрешает разницу между cmdrate и updaterate не более 1.
// Гарантирует синхронизацию между отправкой команд и получением обновлений.

// 🕰️ Настройки интерполяции
sv_client_max_interp_ratio "2" // Максимальное значение интерполяции для всех клиентов.
// Интерполяция = 2 / updaterate (для 100 тикрейта это 0.02 секунды).
sv_client_min_interp_ratio "2" // Минимальное значение интерполяции для всех клиентов.
// Фиксирует интерполяцию на уровне 2 для стабильности игры.
cl_interp "0" // Автоматический расчёт минимально возможной интерполяции.
// Позволяет игре подстроиться к оптимальному значению.
cl_interp_ratio "2" // Коэффициент интерполяции (2), что даёт 0.02 секунды при 100 updaterate.

// 🏆 Конкурентные ограничения
sv_competitive_minspec "1" // Обязывает игроков использовать минимальные конкурентные настройки.
// Предотвращает использование конфигураций с пониженной графикой для нечестного преимущества.

🕹️ Клиентские настройки:

rate "128000"
cl_cmdrate "100"
cl_updaterate "100"
cl_interp "0"
cl_interp_ratio "2"
net_graph "3"


🤔 Как клиентские настройки влияют на сервер?


Клиентские настройки влияют на игровой процесс, но в пределах ограничений, установленных сервером. Вот основные моменты:


  1. rate:
    • Клиент может установить любое значение для rate, но сервер ограничивает его значениями sv_minrate и sv_maxrate.
    • Например, если сервер имеет sv_minrate "128000", клиент с более низким rate будет принудительно использовать минимум 128000.
  2. cl_cmdrate и cl_updaterate:
    • Эти параметры управляют частотой обмена данными между клиентом и сервером.
    • Если клиент укажет cl_cmdrate или cl_updaterate выше, чем sv_maxcmdrate или sv_maxupdaterate на сервере, они будут автоматически ограничены сервером.
    • Если клиент установит их ниже серверного minrate, это может вызвать задержки и ухудшить его собственный опыт игры, но на сервере это не вызовет проблем.
  3. Интерполяция (cl_interp и cl_interp_ratio):
    • Интерполяция влияет на отображение движения других игроков на клиенте.
    • Серверные настройки sv_client_min_interp_ratio и sv_client_max_interp_ratio ограничивают интерполяцию клиента.
    • Например, если сервер требует интерполяцию 2, клиент не сможет использовать другое значение.
  4. net_graph:
    • Эта команда отображает сетевую информацию только для клиента и не влияет на сервер.



✅ Вывод:


  • Серверные настройки в приоритете: Они устанавливают пределы для рейт, частоты обновлений и интерполяции.
  • Клиентские настройки могут варьироваться в рамках этих ограничений и влияют только на опыт самого игрока, но не на работу сервера.
  • Проблемы возникают только у самого игрока, если его настройки не соответствуют требованиям сервера (например, лаги, телепортации, задержка в управлении).

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

Буду рад вашим правкам/замечаниям


В этой статье будут рассмотрены все консольные команды касающиеся настройки рейтов Counter-strike Source (CSS) с их подробным описанием.

клиент - сервер​

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

tickrate, cl_updaterate, cl_cmdrate, rate (рейты)​

В процессе игры все происходящее нам кажется непрерывным, но на самом деле это не так. Сервер Counter-Strike Source способен обрабатывать события игрового мира с частотой шестьдесят шесть раз за одну секунду (tickrate 66). Это значение установлено по умолчанию и встроенных возможностей для его изменений не предусмотрено. Исходя из этого, понятно, что клиент не может отправлять и получать данные чаще, чем установленный tickrate.

По умолчанию клиент получает от сервера двадцать пакетов в секунду, каждое изменение в игре вы сможете наблюдать не раньше, чем придет очередной пакет, а значит с частотой двадцать раз за одну секунду. Очевидно, что этого не достаточно, особенно если учесть высокую динамику игры. Вы только представьте себе ситуацию, когда ваш противник стрейфует или резко выбегает из за угла. В таких игровых моментах нужна повышенная информативность от сервера. Частоту обновления данных можно изменить с помощью консольной переменной cl_updaterate. Как упоминалось ранее, скорость приема пакетов ограничена значением tickrate сервера. Значит, максимально возможное значение cl_updaterate составит шестьдесят шесть пакетов в секунду.

cl_updaterate 66
(Установив это значение рейтов, вы будете получать более точные и более информативные данные о происходящем в игре.)


Все сказанное относительно обновления информации от сервера относится и к передаче данных от клиента. Ведь когда вы нажимаете на клавишу клавиатуры или мыши необходимо проинформировать об этом сервер как можно быстрее. Частота отправки пакетов от клиента к серверу настраивается при помощи консольной переменной cl_cmdrate (по умолчанию тридцать пакетов в секунду). Максимальное значение cl_cmdrate не может быть выше, чем tickrate сервера.

cl_cmdrate 66
(С таким параметром рейтов сервер будет максимально быстро получать сведения о ваших действиях.)


Все игроки Counter-strike Source обладают разным подключением к сети интернет. Во избежание потери пакетов подход к настройке клиента должен быть индивидуален для каждого. При помощи консольной переменной rate можно установить максимальное значение данных, которые вы можете принимать, т.е. установить максимальный входящий трафик вашего подключения. В этом случае сервер будет знать о вашей входящей пропускной способности и никогда не пошлет обновлений больше чем установленный rate. По умолчанию значение rate составляет 30000 байт в секунду. Рассчитать правильный rate очень просто, достаточно перевести ваш входящий трафик в байты. Например, мое подключение к интернету 15 Мбит/с (15*2 20 / 8 = 1966080 байт). Ставить такое высокое значение лишено всякого смысла. Поэтому лично я ограничиваюсь rate 262144 (2 Мбит/с)

Почему разработчиками Valve изначально установлены такие низкие значения rate, cl_updaterate и cl_cmdrate. Скорее всего, это исходило из расчета на среднестатистического пользователя с медленным модемным соединением. Но по моему нескромному мнению это могло иметь место еще несколько лет назад, когда ни кто не имел представление что такое доступ в мегабит(ы). В соревновательных режимах применяются максимально возможные рейты.


интерполяция и lerp​

Теперь поговорим об интерполяции, что это и с чем его едят. Выше уже шла речь о том, что клиент получает от сервера информацию в виде пакетов (по умолчанию 20 пакетов в секунду). От сюда следует, что все изменения, происходящие на игровом сервере мы не сможем увидеть чаще, чем будем принимать пакеты. Можно было бы спросить, почему же картинка выглядит такой плавной, ведь это все равно, что смотреть фильм с малой кадровой частотой. Как раз за это и отвечает функция интерполяции. Принцип ее работы очень прост. На основе информации, которую несут в себе входящие пакеты, клиент пытается рассчитать промежуточные значения между ними. Тем самым, клиент заполняет недостающие кадры «фальшивыми».
Рейты - Интерполяция.
( Зеленым обозначены входящие пакеты, красным - кадры рассчитанные на их основе. Эта картинка демонстрирует работу интерполяции, в реальности пакеты приходят значительно чаще)

Как нетрудно догадаться, чем больше клиент будет получать пакетов от сервера, тем меньше интерполяция будет отдавать нам «фальшивых» снимков. Значит при максимально возможном обновлении (cl_updaterate 66), игрок будет получать более точную и честную информацию.

Для настройки интерполяции в клиенте предусмотрено несколько консольных переменных: cl_interp_ratio, cl_interp. Переменная cl_interp_ratio задает число интервалов, через которые будет происходить интерполяция (по умолчанию 2 интервала). Клиент будет ждать до тех пор, пока не придут два пакета, и только потом будут рассчитываться промежуточные значения. В случае потери одного из пакетов расчет будет вестись на основе второго. Установка cl_interp_ratio 1 (один интервал) заставит клиент ждать только один пакет, что сведет задержку интерполяции (lerp) к минимуму.

Высокий lerp приводит к тому, что игрок видит финальную картинку с запаздыванием. Вы, наверное, не раз замечали, как вас убивают, когда вы уже отошли за угол. Этот эффект очень часто называют багом интерполяции и единственное решение - снижение задержек. Но следует отметить, что lerp учитывается при лагокомпенсации на стороне сервера и поэтому игрок не должен думать так, будто бы ему нужно целиться перед противником.

Переменная cl_interp устанавливает величину интерполяции. Рассчитать cl_interp очень просто:

cl_interp=cl_interp_ratio / cl_updaterate
(можно установить cl_interp 0, тогда его значение будет рассчитано автоматически.)


лагокомпенсация​

Лагокомпенсация на сервере сводит к минимуму влияние задержек (пинга) клиент-сервер, а также задержек интерполяции. Представьте себе, что вы играете на сервере, который географически находится далеко от вас и вдобавок у всех игроков разные задержки. Вы делате точный выстрел в бегущего противника. За время прошедшее от нажатия вами на клавишу мыши и доставкой пакета на сервер ваша цель уже давно скрылась за угол, но попадание все равно засчитывается. Это происходит благодаря лагокомпенсации на стороне сервера. Все дело в том, что сервер запоминает позиции всех игроков, делая снимки игрового мира, и при обработке вашего выстрела находит нужный снимок по формуле:

засчитанный выстрел = текущее время сервера - ваш пинг - lerp

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

предсказание (prediction)​

Допустим, что вы подключились к серверу с очень большим пингом, например 200 мс. Любое ваше действие, будь то движение или стрельба, отправляются на сервер в виде пакетов, далее сервер фиксирует эту информацию и отправляет ее вам и всем остальным игрокам. В итоге вы сможете наблюдать свои же действия с задержкой равной пингу. Чтобы испытать это на своей шкуре, создайте игру и введите в консоль sv_cheats 1, net_fakelag 200, cl_predict 0 (cl_predict 0 - отключает предсказание на стороне клиента). Передвигаться, а уж тем более стрелять становится просто невозможно. Для исправления сего, предусмотрена функция предсказания. Клиент пытается сам предугадать события на сервере, относительно ваших действий, не дожидаясь их от него. Это дает игроку чувство комфорта в игре. Но, по причине того, что в момент отправки пакета клиент еще не знает обо всех изменениях происшедших на сервере, могут возникнуть ошибки предсказания, которые порождают скачки изображения. Для того чтобы их сгладить в клиенте предусмотрена консольная переменная cl_smooth (по умолчанию включено) и переменная cl_smoothtime, которой можно настроить время сглаживания.

Надеюсь эта статья помогла вам разобраться с вопросами, касающимися настройки рейтов в Counter-Strike: Source.

Интерполяция
Интерполяция была придумана для того чтобы как раз не происходило никаких дёрганий (или "лагов") в процессе игры.
Возникает вопрос - интерполяция - чо это за уг?
Интерполяция — в математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.
Ну грубо говоря, интерполяция вычисляет промежуточные местоположения моделек по двум прибывшим пакетам, тем самым делая движения моделек плавнее.
Но если ей нужны 2 пакета, то получается, что с первым пакетом обновление игрового мира не происходит(компьютер ждёт второго, чтобы вычислить промежуточные значения), а значит происходит задержка(лерпа).
Лерпа(lerp) - время, за которое происходит интерполяция.
Итак, общая задержка равна ping+lerp.

Клиент-сервер - сетевой код игры созданный на основе обмена пакетами между сервером и клиентом (игрой). В этих пакетах информация о текущем состоянии игрового мира (расположении объектов и т.д.)
cl_updaterate - число пакетов которые клиент получает от сервера каждую секунду.
Интерполяция - получение промежуточных значений какой-либо величины, путем усреднения крайних. Интерполяция служит для сглаживания картинки, т.к. пакетов приходящих от сервера зачастую не хватает для того чтобы картинка смотрелась плавно.
Настройки клиентской части по умолчанию: cl_updaterate 20; cl_interp_ratio 2; cl_interp 0.1.
Как это работает

cl_updaterate 20 означает, что клиент будет получать от сервера пакеты 20 раз в секунду, разница между пакетами - 50 мс. Чтобы предотвратить лагание от возможной потери пакета, интерполяция должна происходить в промежуток времени равный 2*50=100 мс. Чтобы обеспечить такую интерполяцию, необходимо задать параметр cl_interp 0.1. Множитель два означает, что мы хотим интерполировать две области между тремя пакетами пришедшими от сервера: "...". Если мы хотим итерполировать только одну область "._.", мы должны изменить соответствующий параметр. Этим параметром является переменная cl_interp_ratio. Она может принимать значения 2, 1, 0. Как не сложно догадаться, если эта переменная равна нулю, то интерполяция на клиенте будет отсутствовать. В общем случае формула для промежутка такова: lerp = cl_interp, но не может быть меньше cl_interp_ratio/cl_updaterate. Итак, тут мы приходим к самому определению:

lerp - промежуток времени в котором пакеты полученные клиентом будут интерполироваться.

По сути, значение lerp определяет пропорцию между пакетами, пришедшими от сервера, и пакетами, сгенерированными на клиенте. Чем меньше значение lerp, тем меньше пакетов будет "придумано" на клиентской стороне, тем точнее то, что вы видите, будет соответствовать тому, что происходит на сервере. Чем больше значение lerp, тем большую долю в вашей картинке будет играть интерполяция.

После теории перейдем к практике. С самого начала кажется, что в идеале lerp должен быть равен 0, ведь при таком значении lerp нет интерполяции и клиент видит то же, что видит сервер. Вы НЕ можете себе позволить lerp = 0 по двум причинам.

1) Ваш интернет канал оставляет желать лучшего.
Предположим, что вы счастливый обладатель модема или в вашем городе широкополосный интернет пока по карману только избранным или ваш сосед по общежитию по вечерам заливает на торрент пачку свежих немецких фильмов. Это значит, что вы можете себе позволить исключительно скромные сетевые настройки. Скорее всего те, что стоят по умолчанию, а быть может ваши дела еще хуже. При cl_updaterate 20, даже если все пакеты благополучно приходят от сервера к клиенту, вы видите 20 кадров в секунду (не имеет значения, какой у вас компьютер). Человеческий глаз воспринимает эту картинку как дерганую. Если же, не дай бог, потери (choke) есть, то играть вы просто не сможете, так как будете видеть слайдшоу.

2) Настройки серверов не позволяют клиентской части выставлять необходимые значения некоторых переменных.
Главная проблема тут безусловно cl_interp_ratio, на данный момент ни один европейский серверный конфиг не позволяет играть с этой переменной равной нулю. На данный момент я не знаю ни одного паблика с такими настройками. Только несколько КВ-серверов позволяют отключать интерполяцию. Сейчас добавление sv_client_min_interp_ratio 0 (эта команда отвечает за минимальное значение cl_inerp_ratio, которое может иметь клиент находясь на этом сервере) в евроконфиге скорее всего вопрос времени, и я полагаю, ждать осталось не долго. Но факт остается фактом: значение этой серверной переменной по умолчанию равно 1, а это значит, что клиент не может сделать lerp меньше, чем 10 мс.

Если вторая причина вопрос времени, то вот с первой причиной совладать способов не очень много.
Если у вас плохой коннект и постоянно теряются пакеты, то lerp=0 не для вас. Вам нужна интерполяция cl_interp_ratio 2.
Если же интернет не проблема, то тогда рецепт очень прост. Поднимайте рэйты: cl_cmdrate 66; cl_updaterate 66; rate 20000 - это ваш минимум. В идеале на 100 тиковом сервере у вас должно быть cl_cmdrate 100; cl_updaterate 100; rate 25000. Если сервер позволяет, ставьте cl_interp_ratio 0; cl_interp 0.
66, а тем более 100, кадров в секунду - вполне достаточно, чтобы комфортно воспринимать игру без интерполяции и лагов. Если же сервер не позволяет вам играть без интерполяции (пока что, это самый распространенный случай), рецепт очень прост:

  1. Напишите в консоли cl_updaterate и запомните значение этой переменной
  2. Напишите в консоли cl_interp_ratio 1
  3. Разделите 1 на значение cl_updaterate
  4. Напишите в консоли cl_interp и присвойте ему то что получили в пункте 3
Например:
Я играю с cl_updaterate 66, это значит что в 3 пункте я получу 0.0152, следовательно мне нужно написать cl_interp 0.0152. Это даст мне lerp = 15. Что уже довольно неплохо. Так как интерполяция таких временных промежутков не слишком сильно добавляет неточности вашим действиям.
Если вы пишите значение cl_interp меньшее, чем cl_interp_ratio/cl_updaterate, то на net_graph lerp будет отображаться оранжевым цветом. Если же lerp окрашен в желтый, то значит значение lerp больше промежутка времени между отсылаемыми пакетами на этом сервере. В обоих случаях lerp (а значит cl_interp) нужно увеличивать пока тот не станет белым. Если вы будете пытаться играть с НЕ БЕЛЫМ lerp, то вы обрекаете часть своих выстрелов застревать в промежутке клиент-сервер.


photo_2019-08-23_13-08-34.jpg


Вывод

Добивайтесь минимального значения lerp, оставляя его белым на каждом сервере, на котором играете. Это позволит вам снизить к минимуму все проблемы, связанные с вашим соединением с интернетом.

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

idk1703

Участник
Сообщения
50
Реакции
31
По умолчанию в CS:S 66 tickrate
1612120707421.png
Внимание на sv это и является tickrate'ом
А рейты (что справа 67-68) не поднимутся выше этого значения
1612121345360.png
вот теперь 100 tickrate и рейты
server.cfg:
sv_maxrate 0
sv_minrate 50000
sv_maxupdaterate 100
sv_minupdaterate 66
sv_maxcmdrate 100
sv_mincmdrate 66
Сообщения автоматически склеены:

Есть ли актуальные плагины для авторейтов игрокам?
Рейты применяются те что в server.cfg если на клиенте не настроены будут применятся минимальные что вписаны
server.cfg:
sv_minrate 50000
sv_minupdaterate 66
sv_mincmdrate 66
Ниже клиент не сможет поставить
 
Последнее редактирование:

Nekro

Терра инкогнита
Сообщения
4,042
Реакции
2,295
Что вообще значат 4 правых значения и особенно первое? (прилагаю скриншот)
Сообщения автоматически склеены:

При проверки рейтов вывела консоль следующие


C-подобный:
] rate
"rate" = "80000"
** NOTE: The real value is 30000.000 but the server has temporarily restricted it to 80000.000 **
** ПРИМЕЧАНИЕ: Реальное значение составляет 30000.000, но сервер временно ограничил его до 80000.000 **
Сообщения автоматически склеены:

У меня к стати daemon32/tickrate_enabler не установлен, но судя по скрину выдаёт 100 тикрейт
 

Вложения

  • Screenshot_5.png
    Screenshot_5.png
    81.1 КБ · Просмотры: 368
Последнее редактирование:

KUBINATOR

Участник
Сообщения
262
Реакции
69
Что вообще значат 4 правых значения и особенно первое? (прилагаю скриншот)
Сообщения автоматически склеены:

При проверки рейтов вывела консоль следующие


C-подобный:
] rate
"rate" = "80000"
** NOTE: The real value is 30000.000 but the server has temporarily restricted it to 80000.000 **
** ПРИМЕЧАНИЕ: Реальное значение составляет 30000.000, но сервер временно ограничил его до 80000.000 **
Сообщения автоматически склеены:

У меня к стати daemon32/tickrate_enabler не установлен, но судя по скрину выдаёт 100 тикрейт
То что вы выделили это рейты игрока тобиж прописать cl_cmdrate 100 & cl_updaterate 100 . И у вас будет первой и четвёртой строчкой 100
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@Nekro, потому что у тебя текущий 20
1-я и 4-я строка - твои текущие рейты, а 2-я и 3-я - сервера.

Ты бы указал рейты сервера
C-подобный:
sv_minrate
sv_maxrate

sv_minupdaterate
sv_maxupdaterate

sv_mincmdrate
sv_maxcmdrate
 

Nekro

Терра инкогнита
Сообщения
4,042
Реакции
2,295
@Nekro, потому что у тебя текущий 20
1-я и 4-я строка - твои текущие рейты, а 2-я и 3-я - сервера.
Так на сервере минимальные прописаны в 101, а клиент вроде меньше минимальных сделать не может
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@Nekro, вот описание кваров
изображение_2021-01-31_235332.png

Вот только КСС больше сотни не поддерживает, емнип.
C-подобный:
"cl_cmdrate" = "30" min. 10.000000 max. 100.000000
archive
- Max number of command packets sent to server per second
"cl_updaterate" = "66" ( def. "20" )
archive notconnected
- Number of packets per second of updates you are requesting from the server
 

Nekro

Терра инкогнита
Сообщения
4,042
Реакции
2,295
@Nekro, вот описание кваров
Посмотреть вложение 71615
Вот только КСС больше сотни не поддерживает, емнип.
C-подобный:
"cl_cmdrate" = "30" min. 10.000000 max. 100.000000
archive
- Max number of command packets sent to server per second
"cl_updaterate" = "66" ( def. "20" )
archive notconnected
- Number of packets per second of updates you are requesting from the server
Я себе так выставил, но всё равно показывает 20
C-подобный:
sv_minrate "80000"        //Минимально возможное значение Rate для клиентов
sv_maxrate "80000"       //Максимальные возможное значение Rate для клиентов
sv_mincmdrate "101"        //Устанавливает минимальное значение cl_cmdrate для клиентов
sv_minupdaterate "101"    //Минимально возможное значение updaterate(обновление рейтов) для клиентов
sv_maxcmdrate "101"        //Устанавливает максимальное значение cl_cmdrate для клиентов
sv_maxupdaterate "101"    //Максимально возможное значение updaterate(обновление рейтов) для клиентов
sv_client_cmdrate_difference "5"        //Задаёт максимальную разницу между значениями переменных sv_mincmdrate и sv_maxcmdrate на клиенте
 

idk1703

Участник
Сообщения
50
Реакции
31
@Nekro, как выше было сказано
То что вы выделили это рейты игрока тобиж прописать cl_cmdrate 100 & cl_updaterate 100 . И у вас будет первой и четвёртой строчкой 100
это клиентские команды хоть и присваивает серверные значения в net_graph не меняются пока не изменить самому
Сообщения автоматически склеены:

У меня к стати daemon32/tickrate_enabler не установлен, но судя по скрину выдаёт 100 тикрейт
мне интересно как такое может быть т.к.
1612133054988.png

Примечание. Параметр командной строки -tickrate недоступен в CSS, DoD:S, TF2, L4D и L4D2, поскольку изменение тикрейта вызывает проблемы с синхронизацией сервера. Тикрейт установлен на 66 в CSS, DoD S и TF2 и 30 в L4D и L4D2.
Информация взята тут
О net_graph можно почитать тут он хоть для TF2 но не думаю что есть отличия
 
Последнее редактирование:

Reg1oxeN

Участник
Сообщения
403
Реакции
319
Так а почему у меня 20?
потому что там отображается актуальное значение cl_updaterate без sv ограничений.
следующие два значения уже показывают актуальное количество пакетов в секунду.
 

Andy_Clashbit

🏅RPG-шник🏅
Сообщения
70
Реакции
13
Тоже долго искал плаг авто установки рейтов клиенту, но похоже уже нету такой возможности.
То что прописываешь в серверцфг(рейты в смысле) клиентом игнорится(остаются значения те, которые у клиента конфиге)
Решил проблему кривых рейтов, и фейк пинга, и нулевых значений cl_interp, и др проблем связанных с рейтами, через установку правил в smac.
Теперь тех, у кого значения выходящие за рамки указанных мной в правилах, кикает, с сообщением кикнут за неверное значение переменной rate значение сейчас 1000 должно быть 35000
Кикает не сразу, а спустя +-5мин
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
Выложить что ли мою версию плагина контроля рейтов, которая не даёт играть, пока не сменишь рейты (держит в наблюдателях, там как раз можно рейты менять).
Она выводит сообщение в окне, которое видно по нажатию Esc, и в меню. Там же Указывается что в консоль прописать (и даже подсказывает как её открыть для совсем нубов).
Хотя её надо бы допилить до нормального вида.
И в причине кика текст не помещается. =(

изображение_2021-02-01_221548.png изображение_2021-02-01_221602.png изображение_2021-02-01_221631.png
 

cssv92/AWP Убийственный

ВКонтакте: https://vk.com/awpservermrd
Сообщения
147
Реакции
343
Выставил 100 рейты на сервере, но в net_graph показывает не в максимум, когда в ручную прописал рейты, то было увеличения. Есть ли актуальные плагины для авторейтов игрокам?
Нашёл это, кто себе ставил? Это чисто для сервера же? Кто себе ставил? daemon32/tickrate_enabler
Сообщения автоматически склеены:

Так же пишут, что тот же плагин не актуален уже [CS: Source] - Rate Enforcer 1.2
Доброго времени суток, @Nekro

Есть плагин "Tickrate Enabler", да. Он поможет выставить правильные значения на сервере.

Удачи и успехов Вам!
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@EAVC, говорится про настройки игроков, а не сервера.
Сообщения автоматически склеены:

@NISSAN, если это вопрос ко мне, то - хз (как только - так сразу).

Хотя, в принципе, плагином можно и сейчас пользоваться, но он требует небольшой доработки (нет поддержки переводов, например) и чистки кода.
 

w1senc

Участник
Сообщения
9
Реакции
3
@EAVC, говорится про настройки игроков, а не сервера.
Сообщения автоматически склеены:

@NISSAN, если это вопрос ко мне, то - хз (как только - так сразу).

Хотя, в принципе, плагином можно и сейчас пользоваться, но он требует небольшой доработки (нет поддержки переводов, например) и чистки кода.
А как можно получить плагин?
 

Nekro

Терра инкогнита
Сообщения
4,042
Реакции
2,295
Сервер на вдс не хочет ставить больше 66 рейты, пробую Releases · daemon32/tickrate_enabler но расширение не стартует. Кто пробовал ? Установил /cstrike/addons/Tickrate_Enabler.so и /cstrike/addons/metamod/Tickrate_Enabler.vdf
Сообщения автоматически склеены:

Обе надо в /cstrike/addons/
 
Последнее редактирование:

Nekro

Терра инкогнита
Сообщения
4,042
Реакции
2,295
Появился у меня тут знакомый, и утверждает, что самые топ рейты на ножевом сервере:

C-подобный:
sv_minrate "102400"
sv_mincmdrate "100"
sv_minupdaterate "100"
sv_maxrate "102400"
sv_maxcmdrate "100"
sv_client_min_interp_ratio "0"
sv_client_max_interp_ratio "0"
sv_maxupdaterate "100"
sv_client_cmdrate_difference "0"
1. Подскажите, почему sv_client_min/max_interp_ratio именно 0 ?
2. Разве sv_client_cmdrate_difference 0 не сделает ли отключения лимита разницы кваров с клиентской стороны?
3. Какой смысл выставлять рейты в 102400 или в 999999 ? 80000 разве не достаточно?
 

Nekro

Терра инкогнита
Сообщения
4,042
Реакции
2,295
Как выяснилось при значении cl_updaterate 0 у игрока все модели плавают, а сервер его пропускает никак не влияя
 
Сверху Снизу