что такое resolver override в чите
Описание функций читов CS: GO
Сегодня я бы хотел поделится с вами своими знаниями о читах и их функциях на всеми нами любимую игру Counter-Strike: Global Offensive или же попросту CS:GO. Начнём с того, какие виды читов бывают.
Прежде всего читы делятся на 2 типа, это:
Ключевое их отличие это метод взаимодействия с игрой.
Как можно уже понять из названия, Internal софты зачастую являются .dll файлами и их нужно вводить в игру специальными программами – “Инжекторами”. Они могут считывать и записывать данные из/в память игры и таким образом взаимодействуют с ней. На данный момент большинство софтов являются именно Internal софтами, и имеют довольно обширный функционал.
External и Internal софты также делятся ещё на несколько типов по своему основному предназначению в игре и типу игроков, которые будут с ним играть:
Это Legit софты, Rage, и так называемые “Универсальные” софты, в которых комбинируется сразу много функций и есть как Rage, так и Legit.
Теперь более детально рассмотрим Rage и Legit софты, функции, которые к ним относятся и их предназначения.
Legit. При переводе с английского уже можно понять, за что отвечают такие читы, переводится как “Легальный”. Legit предназначен в первую очередь для того, что бы играть с читами и получать преимущество незаметно для патруля и других игроков соответсвенно, что бы не быть забаненым естесвенно. Актуален по большей части для игры на официальных серверах Valve с Прайм-Аккаунтом. Идеально подходит для калибровки званий и играх на основных читерских аккаунтах. В Legit стиле игры также можно условно выделить Full Legit (Для игры на лигах, по типу Faceit, или если за тобой наблюдают и нельзя палится с читами) и то, что сильно отходит от Легита – Semi-Rage. О нём мы поговорим немножечко позже.
Из основных функций, которые есть во всех читах можно отметить такие:
FOV – радиус работы Аима. Говоря проще, чем больше ФОВ – тем за дальшее расстояние от прицела до противника будет происходить доводка. Зачастую в Легите используют FOV около 10 (Может варьироваться в зависимости от чита)
Вторая основная функция, которая работает совместно с FOV – это Smooth. Smooth это скорость доводки прицела до противника. В разных читах Smooth работает по разному. В некоторых читах, чем больше Smooth – тем быстрее скорость доводки до противника, а в некоторых наоборот, чем больше, то тем плавнее. Ещё существует такое довольно распространённое выражение как “Smooth 0” Под ним подразумевается мгновенная доводка до противника при нажатии кнопки выстрела. Зачастую используется на AWP и SSG-08.
RCS – Recoil Control System – Система контролирования отдачи при стрельбе “зажимом” из штурмовых винтовок по типу АК-47. Зачастую выставляется в процентах от 0% до 100%. Чем больше процентов – тем сильнее будет уводить прицел вниз и тем кучнее будут лететь пули в противника. Работает только при зажиме на противников. Не контролирует отдачу при стрельбе в стены или ещё куда либо. Для этого есть RCS Standalone – при его вкючении отдача контролируется всегда.
Hitbox Selection тоже одна из немаловажных функций в легите. Тут всё просто, какую часть тела вы выберете, туда и будет доводить прицел. Зачастую на пистолетах ставят голову, а например на AWP – тело. Также существует очень полезная и удобная фича – Nearest – “Ближайший”. при её включении доводка будет происходить до той части тела, к которой ближе всего находится прицел.
Target Switch Delay – задержка после убийства одного противника до наводки на следующего. Измеряется в миллисекундах (ms). Особенно полезно, если вы стреляете в толпу людей. При убийстве одного у вас перекинет прицел на следующего, а с этой функцией – сначала пройдёт время и только тогда перекинет на следующего. Значительно уменьшает вероятность спалится. Зачастую ставят от 200 ms и вплоть до 600 ms.
Теперь же разберёмся, что такое Rage и какие в нём есть функции.
Рейдж предназначен для игры против других жёстких читеров и на специальных серверах, где играют только читеры. Это называется HvH – Hack Versus Hack. А по простому – Читеры Против Читеров.
Основные функции в рейдже, которые есть во всех читах:
Не менее важная функция в Рейдже – это AutoWall – прострел через стены. Она работает со значениями HitChance и MinDamage, которые я уже описал выше. Её желательно включать, так у вас появляется возможность простреливать некоторые тонкие объекты на карте и преимущество над противником, если вы прострелите его раньше!
AutoWall также есть и в легите, но использовать его для легита я не советую, так как высока вероятность спалится! Чуть подробнее я об этом распишу, когда мы будем затрагивать Semi-Rage.
BodyAim – автоматическая стрельба в тело, если читу сложно попасть по голове противника. Для него может задаваться отдельный MinDamage.
AutoStop – Чит автоматически приостанавливается, когда может выстрелить для уменьшения разброса и более высокого шанса попадания.
AimStep/Speed Limit – функция, предназначенная для игры по рейджу в казуальных режимах, что бы не кикала VAC ошибка. Если играете в обычном, перелётных снайперах, бой насмерть – включайте её. Она ограничивает скорость смены углов, на позволительную VAC на этих серверах и таким образом вас не кикает VAC Error. Также нужно отключать Анти-Аимы.
SlowWalk – новая функция в читах, при активации которой, зажимая клавишу, вы начианете медленно ходить и по вам сложнее попасть. Так же благодаря снижении скорости передвижения Slow Walk увеличивает точность стрельбы. Это один из вариантов работы рассинхронизации – Desync, о котором вы можете прочитать чуть ниже.
И тут мы плавно подошли к одной из важнейших составляющих рейджа – Анти-Аимы!
Гайд Что такое ресольвер и с чем его едят
Ресольвер (англ. resolver)
Как все мы знаем, за локальную анимацию, анимацию врагов, анимацию тиммейтов отвечает структура animstate (важно!)
Анимстейт (англ. animstate)
Наглядный пример обновления локальных анимаций вы можете увидеть даже без читов.
Попросите тиммейта покрутиться быстро, и смотрите, как его тело, т.е широта будет дергаться и обновляться.
Конечно в реалиях на вашей анимации это будет совсем по другому, скорее всего, вы даже не заметите разницы.
Далее переходим к типам ресольверов:
1. Детект сайдов
2. Обновление анимаций
3. Детект фейка
Данный тип считается уже устаревшим, ибо кроме статиков и джиттеров в >30 градусов оно не фиксит.
Детект сайдов.
Самый популярный тип ресольверов на данный момент, используется в большинстве хвх-читах:
1. Onetap v3\v4
2. Neverlose
3. Nixware
4. Fatality
5. Furios
6. Nemesis
7. Monolith
(не точная информация).
Далее, переходим к типу-ресольвер-кейсов.
Resolving-case (рус. ресольвинг-кейс)
Это уникальный тип детекта любого угла, прям любого.
Используется и в детекте сайдов, и в фейке, и в анимациях.
Вкратце объясню:
delta1 = 30.0f
delta2 = 15.2.f
delta3 = 58.6f
Гайд получился очень простым, скорее даже пустым.
Время 5 утра почти, завтра дополню ещё нужным материалом для полноты картины.
Спасибо за прочтение гайда, всем удачной школы!
Зачем и где именно писать @Override?
На самом деле аннотация @Override указывает, что далее мы собираемся переопределять метод базового класса.
Аннотация служит лишь для контроля успешности действия при сборке проекта.
Из этого я вообще ничего не понял, зачем и где именно его писать. Чужой код разбирал, удалил @Override в чужом коде, без него тоже все работает, но все таки это нужно для чего то
Это аннотация пишется над методами, которые переопределяются из супер класса.
Это что-то вроде страховки, гарантирующая что 100% переопределен метод.
Компилятор, когда встретит данную аннотацию, проверит, чтоб сигнатуры методов в супер классе и в под классе совпадали, т.е. вы переопределили метод, и в полиморфизме будит вызываться переопределенный метод.
Если вдруг вы ошиблись в сигнатуре метода (например пропустили букву в название), то компилятор выдаст ошибку
Ладно equals() можно запомнить очень быстро. Базовый метод, как-никак. Часто на слуху. Но в нетривиальных случаях можно неплохо подпортить себе нервы, пытаясь отдебажить проблему, которую можно было переложить на компилятор аннотацией @Override.
Resource Override
В этой заметке я попытаюсь сделать краткий обзор браузерного расширения Resource Override.
Для чего предназначен?
Подменять стили указанного сайта своими.
Дебаг css и js на боевом сайте.
Переходим по ссылке и жмем на кнопку установить.
На странице настроек доступы четыре действия:
— Подменить файл другим через URL;
— Подменить файл другим через файл;
— Вставить свой файл;
Последним я не пользовался, поэтому расскажу о первых трех.
Допустим вы разрабатываете на локалке. У вас настроен сборщик, который поднимает сервер.
В итоге URL выглядит как-то так — localhost:3000
Стили компилируются в один bundle — styles.min.css, который также используется на боевом сайте. Это значит, что мы можем посмотреть, как будут выглядеть новые стили на проде.
Для этого достаточно добавить в группу новое правило: URL → URL
В поле from указываем на каком сайте мы хотим подменить стили, а в to — местоположение наших стилей:
Аналогично предыдущему способу, только вместо locahost:3000/styles.min.css необходимо вставить код во встроенный текстовый редактор расширения. Это удобно только для маленьких файлов.
Вставить свой файл
Уже без привязки к URL.
Если лень писать Chrome расширения — можно просто вставить кусок JS кода.
Если это вас заинтересовало и вы хотите узнать о расширении поподробнее, то советую посмотреть видео Kyle Paulsen:
Посты на эти и другие темы публикую в канале: https://t.me/filimonovvadim
Как я в десять раз ускорил работу таблицы Google одной строкой CSS
Наша компания использует Google Search Console для проверки статуса индексации и оптимизации видимости наших веб-сайтов. Также в консоли можно проверить, какие внешние веб-сайты ссылаются на вашу страницу. Однажды я просматривал страницу «Top linking sites» и заметил сильное торможение скроллинга. Оно происходило, когда я выбирал отображение большого массива данных (500 строк) вместо стандартных 10 результатов.
Раздел «Top linking sites» в Google Search Console, 500 строк на страницу
Я интересуюсь производительностью фронтенда, поэтому не мог удержаться и решил разобраться, в чём дело. В конце концов, Google активно стремится к повышению веб-производительности, поэтому стоит ожидать, что собственные публичные приложения компании будут хорошим эталоном.
Этап 1 — Запись профиля производительности
В подобных случаях невероятно полезны профили производительности: часто бывает достаточно посмотреть отчёт, чтобы понять, почему какой-то элемент имеет низкую производительность. Я открыл DevTools / Performance и начал запись, немного прокрутил список вниз, а затем остановил запись. И вот что я увидел:
Профиль производительности скроллинга таблицы данных «Top linking sites», очень низкий FPS
Эти красные треугольники в блоках «Task» дают нам понять, что при скроллинге какие-то операции занимают больше времени, чем это приемлемо. Обычно для достижения идеального скроллинга в 60 FPS мы стремимся, чтобы эти блоки выполнялись менее чем за 16 мс. На показанном выше изображении блоки с красными треугольниками в среднем выполняются примерно 150 мс, что приводит приблизительно к 6–7 FPS. Да ладно, Google, ты ведь способен на большее!
Этап 2 — Разбираемся в причинах
Шкала времени наверху показывает, насколько занят CPU различными видами задач: оранжевый цвет — это JavaScript, фиолетовый — это структура и стили, а зелёный — отрисовка. Здесь всё фиолетовое, то есть проблема не в JavaScript, а в DOM/стилизации:
График показывает, что CPU занят обработкой структуры
Это подтверждается каскадным графиком под графиком CPU. В нём используются те же цветовые обозначения и в большинстве записей присутствует много оранжевого и немного меньше фиолетового и зелёного. В нашей записи видно, что время в основном тратится на обновление слоёв, это видно по тексту в фиолетовых блоках, гласящему Update layer tree:
На каскадном графике видено, что скроллинг тормозит из-за «Update layer tree»
Слои создаются для скроллящегося контента, переводного контента и так далее. Возможно, их очень много? Давайте выясним!
Этап 3 — Изучаем слои
В Chrome DevTools содержится впечатляющее количество полезных инструментов, но некоторые из них найти довольно сложно. Одним из таких скрытых сокровищ является панель Layers; чтобы найти её, нужно нажать кнопку меню в DevTools и выбрать More tools / Layers. В моём случае это выглядит так:
Панель «Layers» в Chrome DevTools; слой заполнен кучей контента
Слоёв не очень много, но есть парочка огромных. Похоже, в них куча контента, и это приводит нас к выводу о том, что используемый Google datagrid не применяет виртуализированный рендеринг. Частично это объясняет причины торможения, но 500 строк — это всё равно не очень много. Должно быть что-то ещё…
Этап 4 — Изучаем DOM
Теперь нажимая на панель Elements, мы видим следующее, сначала для всей таблицы:
Live expression демонстрирует количество элементов-потомков для выбранного элемента
Как мы видим, для отображения всего 500 строк он создаёт больше 16 тысяч элементов DOM, что немного излишне. Нажав на тело документа, мы увидим следующее:
Вся страница содержит больше 38 тысяч (!) элементов, а так быстрое приложение не пишут! Очевидно, что ситуацию можно было бы улучшить, использовав data grid с виртуализированным рендерингом, но давайте посмотрим, можно ли сделать что-то меньшими усилиями.
Этап 5 — Улучшаем ситуацию
Учитывая данные в профиле производительности, я подозреваю, что структура всей страницы создаётся при скроллинге таблицы. А создание структуры такого количества элементов — это затратная операция. Если бы был какой-то способ ограничения её влияния…
Хорошие новости — он существует! Я попробовал применить один тайный рецепт, снова поскроллил, и теперь ситуация стала гораздо лучше. И это чётко видно из следующего профиля производительности:
Скроллинг сильно улучшился!
Каждый кадр теперь занимает примерно 16 мс, и мы скроллим почти на 60 FPS вместо 6–7. Потрясающе!
Что же я сделал? Просто добавил одну строку CSS в