Последние рекорды серверов
Pro Nub

Новая LJ Статистика

Опубликовано Kpoluk 4 Янв 2020 в 08:52
Вчера нам успешно удалось внедрить на основные серверы новую LJ стату. По ней будет выпущена отдельная статья, а сейчас мы отметим только самые важные моменты. Отчасти я старался сделать стату похожей на uq_jumpstats, чтобы переход на неё был более плавным, однако всё же есть существенные отличия и новые фичи. Начнём с того, что новую стату можно включить или выключить с помощью команды /lj (наряду с /ljstats), а меню настроек статы вызывается командой /ljs, при этом по сути открывается вторая страница основного меню настроек. Вообще, давайте посмотрим на новый вид меню. На первой странице находятся уже знакомые вам общие настройки:


Здесь из нового только то, что у Open Start Menu появилась новая опция - теперь можно в качестве стартового меню, отображаемого при заходе на сервер, выбрать как Main Menu, так и KZ Menu. У меня стоит Off, так как kz меню я пользуюсь редко, бинды успешно заменяют основные пункты.

На второй странице находятся настройки LJ статы, которые должны быть всегда под рукой:


За включение LJ статы овечает Stats Mode, причём действует эта настройка независимо от всех остальных (то есть если вы выключили LJ стату, то ShowPre и JumpOff вместе с ней не пропадут). У Stats Mode помимо очевидного варианта Off есть также Simple (то же, что обычная стата) и Advanced. Режим Advanced - это одно из основных нововведений, в нём стату покажет в том случае, когда вы прыгаете с большой высоты (при этом в dist укажет как дистанцию, так и высоту) или наоборот на место, расположенное выше, а также когда прыгаете до касания телепорта, слайда или воды. Если стата определила, что вы пытались прыгнуть блок, то она покажет стату как обычно - в момент, когда вы окажетесь на той же высоте, что и в начале прыжка. Вот пример новой sbj статы (fail на 230 блоке):


В основной стате указаны название техники и fuser2. Напоминаю, что fuser2 - это тот самый параметр CS, из-за которого дистанция bhop и countjump так сильно различаются. Когда мы прыгаем bhop блок, fuser2 в момент отталкивания от земли становится равным 1315, и затем каждый фрейм уменьшается на 10, то есть через 1.31 секунды обнуляется. Однако в момент бхопа на блоке 1.31 секунды после lj прыжка ещё не прошло, поэтому на скриншоте видно, что fuser2 равен 595. Чем больше его значение, тем ниже (а значит и короче) будет прыжок. Если бы мы например прыгали drop bhop с большой высоты, то fuser2 обнулиться успел бы, и с точки зрения CS наш прыжок ничем бы не отличался от прыжка при countjump.

Далее в основной стате идёт дистанция dist и все элементы престрейфа (начиная с последнего), которые и определили название техники. В моём случае я оттолкнулся от земли (lj престрейф) и затем сделал stand-up bhop (sbj престрейф). В скобках у sbj указано количество FOG (frames on the ground), то есть сколько фреймов на земле я провёл, когда делал бхоп. Далее указано количество стрейфов. Maxspeed в основной стате нет. Дело в том, что uq_jumpstats писало не максимальную скорость, а просто сумму по второму столбцу стрейфовой статы и престрейфа. Вместо maxspeed в консоли указывается endspeed (то есть скорость в момент приземления), плюс в стрейфовой стате можно включить отображение суммы по второму столбцу (смотреть третью страницу настроек ниже).

Что касается самой стрейфовой статы, здесь тоже есть отличия. Сразу можно заметить, что вместе с jumpoff и block указано также last, то есть расстояние, которого не хватило, чтобы долететь до блока. Также в глаза бросается, что в первом столбце пишется не номер стрейфа, а клавиша. Во втором, как и в обычной стате, пишет разницу gain и loss, а в третьем loss. В четвёртом столбце указана длительность стрейфов, однако не в процентах, а в количестве фреймов (благодаря этому в режиме Advanced сразу понятно, как стрейфы при падении с большой высоты соотносятся со стрейфами при обычном lj). Ну и последний столбец, как и в обычной стате, показывается эффективность стрейфов, то есть отношение количества стрейфов, которые давали прирост скорости, к общему количеству фреймов для каждого стрейфа в процентах. Впрочем, для последнего столбца есть и новые варианты (об этом на третьей странице настроек).

Вернёмся к списку настроек. Помимо Stats Mode здесь внимание стоит обратить на опции ShowPre. Pre + Post Speed покажет тип прейстрейфа, количество FOG, скорость до и после прыжка (это касается не только bhop, но также и double duck):


Если же выбрать Speed + Difference, то покажет округлённое значение скорости перед прыжком и потери скорости после прыжка:


Как видите, bhop престрейф может быть окрашен в три цвета. Выбор цвета определяется следующим образом:

  • зелёный - bhop 1 FOG без потерь скорости (скорость перед прыжком была меньше 299.973 юнита/с)
  • синий - bhop 2 и больше FOG с минимальными потерями скорости (скорость перед прыжком была больше 299.973 юнита/с)
  • красный - bhop с потерей скорости (все остальные случаи)
Для double duck всё проще - 2 FOG даёт зелёный престрейф, 3 и больше красный (1 FOG быть не может). Другие типы престрейфа имеют белый цвет. Все престрейфы дублируются в консоли (причём указывается также точная максимальная скорость для данного оружия). Выводится прейстрейф в том же HUD канале, что и /speed и /keys (кстати это новая универсальная команда для /showkeys и /speckeys), поэтому если отображаются скорость или клавиши, то престрейф начинает обновляться с их частотой, из-за чего можно заметить его мерцание, не пугайтесь. Цвет скорости и клавиш по умолчанию белый, но если отображается цветной престрейф, то цвет перенимается у него. Считайте, что это не баг, а фича. Кстати это же касается и /speclist, он переехал в тот же канал, где пишет количество cp и gc, так что если вы в паузе, то красным станет и сам speclist. При этом строчка с cp и gc теперь сдвинута правее, благодаря чему speclist может вместить в себя больше игроков, а его положение не так сильно отличается на разных разрешениях.

Третья страница настроек:


Здесь есть три новых настройки. Благодаря Always show Strafe Stats стрейфовая стата будет показываться при любом прыжке, независимо от того, показало при этом основную стату или нет. Show total gain in Strafe Stats это как раз то, о чём шла речь выше - под вторым столбцом стрейфовой статы покажет сумму по всем стрейфам. В Last column of Strafe Stats помимо опции Efficiency можно выбрать также Overlaps и Desync. Overlaps покажет в последнем столбце количество фреймов с перекрытиями в начале стрейфа, то есть когда помимо основной была нажата ещё какая-то клавиша. Например, если при переключении стрейфа с A на D вы нажали D когда A ещё не была нажата, то это считается перекрытием. Значения Overlaps больше 1 приводят к снижению Efficiency. Desync показывает показывает количество фреймов, когда движение мыши происходило в сторону, противоположную стрейфу (рассинхрон). Как известно, мышь должна чуть запаздывать по сравнению с нажатиями клавиш, однако слишком сильное запаздывание несёт в себе опасность. Если Desync будет больше 2, то Efficiency с большой вероятностью пострадает. Таким образом, Overlaps и Desync помогают выяснить конкретную причину потерь скорости при стрейфах. Причём в консоли показывает сразу все три величины. Если вам и этого мало, то есть специальная команда /dt (или /detailed), которая помимо самой стрейфовой статы выведет в консоль подробную информацию по каждому фрейму - gain-loss, зажатые клавиши, направление движения мыши. Злоупотреблять этим в Advanced режиме не стоит, так как если в консоль выведется слишком много информации, вас может выкинуть из игры (хотя мне такого добиться не удалось).

С третьей страницы можно также попасть в Pre Menu, где настраивается, какие престрейфы будут отображаться при включённом ShowPre:

Заметьте, что если перед duck вы находились на земле больше 10 фреймов, то это duck pre, а если меньше, то dd pre. А вот cj pre, как подсказывает надпись в меню, отвечает не за duck, а за прыжок.

Также обратите внимание на то, что включение конктретных престрейфов командами чата типа /ljpre, /duckpre, /multibhop возможно только при включённом ShowPre. Это может показаться неудобным, но сделано для того, чтобы не возникало вопросов, почему после прописывания команды не появляется престрейф. Таким образом, через меню можно настроить, какие конкретно престрейфы вы обычно используете, а уже в процессе отключить или включить что-то командой чата.. Сам ShowPre можно включить не только через меню и командой чата /showpre, но и командой /pre.

Рядом с Pre Menu расположено Enable Menu, которое задаёт, для каких техник включена LJ стата:


Здесь только у jumpbug есть третий режим под названием trainer, про который я когда-то рассказывал в новости о новой bug стате, эта информация будет в статье про LJ стату. Также стоит отметить, что у highjump в отичие от longjump в основной стате пишется рядом с названием количество FF (Friction Frames), то есть фреймов, в течение которых на вас действовало трение edgefriction.

Ну и последняя четвёртая страница настроек:


Если кто-то посчитает цветной престрейф не очень удобным, то он может переключить Prestrafe Color в White, и тогда все престрейфы станут белыми. С настройкой Fade in Pause вы уже знакомы, а Block teleport to you была удалена, так как существовала на тот случай, если телепортация к другому игроку создаст для него неудобства, но за несколько лет никаких проблем не возникло.

На этом пока всё, настоятельно советую покопаться в описанных настройках, так как стата затем перекочует на наш LAN сервер (uq_jumpstats там тоже останется, но для игры с ней надо будет включить её в plugins.ini). На лане меню настроек будет примерно таким же, а вот в конфиге можно будет настроить намного больше всего, и место вывода на экране, и цвета, и что именно дублировать в консоль, и минимальные дистанции для техник и т. д. Так что если найдёте какой-то баг или будет пожелание, пишите прямо сейчас. За комментарии без конкретики в духе "ну мне чёт не очень, раньше было лучше" буду наказывать. Приятной вам игры.