Files
SashegDev b45e47fd47 Панель пинга в углу экрана
Рисуется средствами самой игры: мост отдаёт команды её собственному батчу, с её
шрифтовым атласом и её масштабом интерфейса. Поэтому панель не выглядит
чужеродной и меняет размер вместе с настройкой интерфейса.

Гаснет вместе с HUD по той же клавише, что и компас, и мод об этой клавише не
знает: хук живёт в отрисовке компаса, а компас не рисуется, когда HUD скрыт.

Пинг считает мост: вендорский сетевой слой не хранит задержку, а единственный
сигнал, доступный на любом сервере, - отклонение интервала keep-alive от
собственного расписания сервера. Число помечено "~": это оценка, а не круговой
оборот.

Конфиг: enabled, opacity, position, offsetX/Y, lossAbove.
2026-10-17 03:45:23 +03:00

48 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# rsxm-hud
Панель пинга в углу экрана, нарисованная средствами самой игры.
## Как это выглядит
Тёмная полупрозрачная плашка в левом верхнем углу: `ping 42 ms`, а потери
добавляются справа, только когда они больше порога. Палитра, отступы и масштаб -
те же, что у компаса и полосок еды и здоровья, потому что рисует их тот же код
игры.
## Как это работает
Мод не рисует ничего сам. Он говорит мосту «нарисуй», а мост отдаёт команды
собственной системе отрисовки игры - тот же батч, тот же шрифтовый атлас, тот
же масштаб интерфейса. Поэтому панель не выглядит чужеродной и меняет размер
вместе с настройкой интерфейса.
Панель гаснет вместе с HUD по той же клавише, что и компас: мод не знает про
эту клавишу вообще. Хук живёт в отрисовке компаса, а компас не рисуется, когда
HUD скрыт.
## Пинг
Вендор заменил сетевой слой на свой, поля задержки в нём нет, и игра пинг нигде
не считает. Считает мост, по одному доступному везде сигналу: сервер шлёт
keep-alive раз в 15 секунд по своему расписанию, и отклонение интервала прихода -
это сеть. Число помечено `~`, потому что это оценка, а не измеренный круговой
оборот; она сходится за несколько выборок.
## Настройки
`%LOCALAPPDATA%\rsx-mod\config\rsxm-hud.json`:
enabled главный выключатель, независимый от клавиши HUD
opacity 0.05..1, прозрачность плашки и текста
position top-left | top-right | bottom-left | bottom-right
offsetX/Y отступ от края
lossAbove показывать потери, только если они выше этого процента
## Сборка
build.cmd
Нужен только JDK. Компилируется против `rsx-api.jar` и `rsxm-lib.jar`, но не
содержит ни одного: библиотека лежит в `libs\` и подмешивается в системный
class path при старте игры.