

AimUrWay
Предварительно необходимые моды
О этом моде
Прицелься правильно — Как ловить рыбу
v0.1.0 — ранняя версия. Загружается и патчится чисто; ассист ощущение ещё не откалиброван по живой игре.
Мягкая помощь в прицеливании для игроков на мышке и клавиатуре, со штрафом к урону, который растёт в зависимости от того, насколько сильно вы этой помощью воспользовались, — плюс конвертер чувствительности из других шутеров.
Цель — это настоящее средство доступности, которое лобби может принять, а не скрытое преимущество.
Хост или клиент?
Полностью на стороне клиента. Не требуется сотрудничество хоста, и никому больше ничего устанавливать не нужно.
- Вращение происходит только при помощи твой камера. Ничего в ней не связано с сетью.
- Штраф к урону реален, а не косметический. Урон в этой игре клиент-авторитативный: : ваш клиент вычисляет урон и сообщает серверу о его применении (
PlayerVitals.LocalHit→Server.ПопаданиеПоИгроку, иProjectileManagerнаносит урон по каждому снаряду на машине стрелка). Поэтому, когда этот мод локально снижает ваш урон, он есть понижено — на серверной стороне нет значения, переопределяющего его.
Это работает в обе стороны, и стоит сказать прямо: поскольку игра доверяет клиентам в вопросах урона, честность этого мода — свойство самого мода, а не то, что обеспечивает сервер. Наказание реально для любого, кто использует эту сборку.
Почему это не аимбот
Игра уже содержит собственную систему помощи при прицеливании (Прицеливание игрока) — для геймпадов, при прицеливании. Этот мод сохраняет данную механику и снимает ограничение для геймпадов. А именно:
- Он перехватывает собственную точку расширения игры.
PlayerCamera.ApplyAimAssist()уже спрашиваетPlayerAimAssist.GetRotationDelta(..)Для небольшого поворота каждый кадр. Именно этот метод является целью патча, поэтому ассист срабатывает там, где задумано игрой, и сохраняет её ощущение. - Оно никогда не целится в игроков. Стандартное сканирование работает
ItemManager.Itemsи забирает предмет каждогоСущество, поэтому он отслеживает только рыбу и животных. Этот мод делает то же самое, и опции наведения на игроков нет — намеренно. Именно это свойство делает защиту «не читерства» обоснованной, и именно поэтому бои с другими игроками остаются без изменений. - Он не может защёлкнуться. Тяготение — это экспоненциальное приближение к цели, жёстко ограниченное
MaxRotationSpeed(по умолчанию 90°/с). В коде нигде нет мгновенной коррекции. - Ты всегда выигрываешь. Вращение уменьшает силу натяжения; после
РучноеПереопределение_ГрадВСек(по умолчанию 140°/с) он полностью останавливается. Резкий рывок всегда побеждает помощь. - Узкий захват. Стандартный угол 12°, требует прямой видимости, ограничен 60 м — собственные цифры игры.
- Оно отказывается работать без наказания. Если пластырь с штрафом к урону не применяется, ассист отключается сам, а не превращается в прямое преимущество.
Штраф к урону пропорционален, а не фиксирован. Мод ведёт постепенно уменьшающийся учёт того, на сколько градусов ведётся прицеливание. это против количества ты Вот перевод: сделал. Именно это соотношение определяет уменьшение:
урон x= 1 - (MaxDamagePenalty * assistShare)
Прицелься вручную и попади: без штрафа. Позволь辅助 навести на цель и выстрели: полный штраф. Он применяется при Прикрепления.Урон, единственное свойство, через которое проходит урон каждого выстрела, поэтому и мгновенные попадания, и летящие снаряды покрыты. Панель характеристик в магазине считывает базовый массив, а не это свойство, так что отображаемые параметры оружия остаются честными.
Конвертер чувствительности
Эта часть точная, а не сделанная на глаз. От PlayerCamera.MouseInput:
LookInput = new Vector2(-raw.y, raw.x) * _sensitivity * SensMulti * 0.025f; _rot += LookInput;
_rot в градусах и сырой Это дельта мыши Input System в отсчётах, то есть:
градусов на отсчёт мыши =
чувствительность × 0.025(при стрельбе от бедра, гдеSensMulti == 1)
Что дает, если использовать см/360 в качестве общей валюты, поскольку она не зависит от FOV и разрешения:
$$\text{чувствительность игры} = \frac{360 \times 2.54}{\text{см/360} \times \text{DPI} \times 0.025} = \frac{36576}{\text{см/360} \times \text{DPI}}$$
Пример с решением: CS2 на 1.0 / 800 DPI — это 51,95 см/360 → эта игра хочет 0.880. Значение игры по умолчанию 0.5 составляет примерно 91 см/360 при 800 DPI, что медленно по меркам киберспорта.
Нажмите F10 для панели. Выберите игру, введите вашу чувствительность и DPI, и она покажет значение для использования, а также см/360 до и после. Применить записывает это через PlayerCamera.SetSensitivity.
Обратите внимание: игра уже корректно масштабирует чувствительность в зависимости от зума — SensMulti = _curFov / _origFov — чтобы чувствительность при прицеливании оставалась пропорциональной без посторонней помощи. Это 360-градусное соответствие дистанции зума, обычный выбор для соревновательной игры.
Поле зрения
Измерено в игре, а не на глазок.
| Диапазон ползунка | 40–140 по вертикали = 66–157 горизонтальное в 16:9 |
| По умолчанию | 74 вертикально = 106.5 горизонтально в 16:9 |
Вот эти ограничения самой игры, считывает значения своего ползунка параметров во время выполнения. Этот мод не расширяет их, и поле FOV на панели ограничивает вводимые вами значения тем же диапазоном.
Две вещи, которые стоит знать.
Unity's поле зрения вертикальный, но каждый шутер указывает горизонтальное значение, так что эти два показателя напрямую не сравнимы. Панель отображает оба значения с учётом соотношения сторон вашего реального разрешения. Приятно, что стандартные 74° по вертикали соответствуют 106,5° по горизонтали — разница менее четверти градуса с 106,26° в CS2, так что стандартный угол обзора уже эквивалентен CS.
Базовая FOV изменяет чувствительность при прицеливании. Потому что SensMulti = curFov / baseFov, прицеливание умножает чувствительность на AdsFov / baseFov. Увеличьте базовый угол обзора — и ваш прицельный огонь станет медленнее. На панели отображается точный множитель для того, что вы держите в руках.
Ошибка сохранения поля зрения
Меню параметров сохраняет ваш угол обзора (FOV) с PlayerPrefs.SetInt("FOV", …) но заряжает его
PlayerPrefs.GetInt("Fov", 74). Ключи PlayerPrefs чувствительны к регистру, поэтому они никогда не пересекаются, и ваш FOV сбрасывается до 74 при каждом запуске — незаметно меняя чувствительность прицеливания до 1,9× на крайних положениях ползунка.
Исправление сохранения FOV (включено по умолчанию) зеркалит сохранённое значение в ключ, который игра реально читает, и принудительно применяет его для текущей сессии, если меню уже загрузило неправильное значение. Проверено в реестре: оба FOV_h193442778 и Fov_h193443802 теперь сохраняйте то же значение.
Примечание: ползунок, судя по всему, вызывает обратный вызов изменения при включении, поэтому первый ремонт может зафиксировать сериализованное значение по умолчанию ползунка, а не выбранное вами значение. Установите свой обзор один раз через панель Применить FOV Кнопка, чтобы закрепить её намеренно, — это записывает оба ключа.
Два способа конвертации
Панель предоставляет вам прямой выбор:
- Сохранить ту же скорость поворота (default) — мышь проходит то же расстояние для полного оборота, что и в вашей другой игре. Игнорирует FOV, так что это точно.
- Учесть разницу в поле зрения — если две игры показывают разные участки мира, это влияет на прицеливание чувствовать то же самое на экране, вместо поворота с той же скоростью. Нужен FOV этой игры.
Большинство людей хотят первый вариант. Второй существует потому, что если вы переходите с игры на 103° к игре на 116°, то совпадение сырой скорости поворота может ощущаться слишком быстрым, даже если цифры совпадают.
Здесь есть FovAdjustStrength в конфиге для второго режима, если вы уже знаете, что хотите сместить корректировку к краю экрана, а не к центру. Если это предложение вам ни о чём не говорит, оно вам не нужно.
Пресеты
Counter-Strike 2 / CS:GO · Valorant · Apex Legends · Overwatch 2 · Team Fortress 2 · Quake
Игры, чувствительность которых зависит от их собственного ползунка FOV (Rainbow Six Siege) или используют нелинейную процентную шкалу (Fortnite), намеренно отсутствует скорее точное, а не приблизительное. Используйте см/360 поле для тех — возьмите цифру из любого онлайн-калькулятора, и она будет точной для любой игры, когда-либо созданной.
Предостережение
Преобразование предполагает, что одна единица дельты Input System равна одному «щелчку» мыши, — это верно при стандартной скорости указателя Windows 6/11 и отключённой опции «усиление точности указателя». Если у вас включено ускорение указателя, ни один конвертер не даст стабильного ответа.
Конфигурация
BepInEx/config/howtofish.aimurway.cfg. Горячие клавиши: F9 辅助开启/关闭, F10 панель конвертера.
Содействие
| Настройки | По умолчанию | |
|---|---|---|
Сила |
0.55 |
Доля усилия, применяемая при подтягивании. Значение 1 соответствует штатной помощи контроллера в игре. |
Острота |
8 |
Как жадно оно сокращает разрыв. Чем выше, тем липче |
MaxRotationSpeed |
90 |
Жесткий предел в °/с. Именно это предотвращает резкие скачки |
ManualOverrideDegPerSec |
140 |
Поверни это быстро, и помощь полностью отходит в сторону |
AcquireAngle |
12 |
Угол захвата цели. Оставьте небольшим |
УголРазрыва |
35 |
Угол, под которым сбрасывается заблокированная цель |
МаксДистанция |
60 |
Метры. Стандартная единица измерения в игре. |
Выстрел от бедра |
ложь |
Ваниль — только ADS; отключение этой опции ближе к замыслу |
ТакжеКонтроллерПомощи |
ложь |
Отключено, чтобы оно никогда не складывалось со встроенной помощью контроллера |
Справедливость
| Настройки | По умолчанию | |
|---|---|---|
ШтрафУрона |
true |
Обменяйте урон на помощь в прицеливании |
МаксимальныйШтрафУрона |
0.3 |
Максимальное снижение при полной доле ассиста. 0.3 = −30% |
PenaltyWindowSeconds |
1.5 |
Как долго использование ассиста продолжает учитываться против вас |
Набор ShowDebugText = true под [Диагностика] чтобы следить за захватом цели, живой помощью и текущим множителем урона — самый быстрый способ настроиться Сила и увидишь, как работает наказание.
Статус и что осталось
Проверено: плагин загружается, привязывается к игре, и обе патча Harmony применяются (PlayerAimAssist.GetRotationDelta, Attachments.get_Damage) без ошибок.
Ещё не готово:
- Ощущение рассинхронизировано. Значения по умолчанию обоснованы, но не протестированы в игре.
СилаиОстротадва параметра, которые нужно настроить в первую очередь, причемПоказатьОтладочныйТекствкл. - Рукопашный бой открыт.
Рукопашный бойимеет собственный путь урона, поэтому штраф на него не распространяется. Сегодня это не проблема, поскольку ассист помогает только при прицеливании на дальних дистанциях. - Никакого раскрытия со стороны лобби. Нет объявления в чате или ограничения со стороны хоста. Если играешь с людьми, которым это важно, скажи им.
Заметки по дизайну
В отличие от мода на прицел, этот изменения поведения, поэтому патчи Harmony неизбежны. Их всего два, оба находятся в стабильных точках расширения, и по-прежнему нет ссылки на этапе компиляции на
Assembly-CSharp — всё разрешается по имени во время выполнения, так что обновление игры сводится к предупреждению в журнале и отключённой функции, а не к сбою.
Лучшие моды для How to Fish
Раскройте весь потенциал How to Fish с XMODhub — исследуйте эти лучшие моды уже сегодня!
Нужна помощь с загрузкой или установкой? Присоединяйтесь к нашему сообществу Discord для поддержки!