Баги Оцифровки: Изнанка кода

Глава 1 Хитбокс мертвеца

Текстура неонового сейфа в секторе «Альфа-Москва» лагала с частотой тридцать герц. Цифровая сталь на стыке массивной двери и стены то наливалась тяжелым зеркальным глянцем, то проваливалась в матовую сырую серость базовой сетки.
Глеб Шарапов остановился на пороге хранилища, не позволяя левой подошве пересечь желтую ограничительную линию «зеленой зоны». Привычный жест — пальцы скользнули в карман помятого, серого земного плаща, нащупали ребристый бок старой бензиновой зажигалки. Щелчок. Зубчатое колесико крутанулось под большим пальцем, высекая сухой сноп искр, но огонь не загорелся. Фитиль оставался сухим уже три года — с того самого Дня Ноль, когда физику этой планеты стерли и перекомпилировали под нужды Системы. Курить здесь было невозможно. Организм больше не требовал никотина, легкие не знали вкуса дыма, но палец упрямо продолжал крутить колесико. Каждый раз, когда ломалась очередная логическая цепочка.
— Логи чисты, говорю тебе, Аудитор. Уноси свой плащ, здесь нечего копать.
Старший страж Системы в тяжелых латах из полированной кости, на которых лениво переливались фиолетовые руны тридцатого уровня защиты, сплюнул под ноги. На мраморном полу элитного банка сгусток слюны мгновенно превратился в россыпь серых пикселей и растаял, оставив после себя лишь системную строчку лога очистки.
— Если логи чисты, почему этот кусок кода больше не дышит? — Глеб не повернул головы.
Его левый глаз, замененный при получении класса Аудитора на тяжелый, тускло мерцающий объектив-анализатор с тремя кольцами ручной фокусировки, со скрипом провернулся. Мир перед Шараповым потерял фальшивую глянцевую красоту дорогого банковского интерьера. Вместо золоченых пилястр и бархатных портьер объектив вывел плотную сетку векторов, координат и тегов.
В центре хранилища, откинувшись на спину прямо перед открытой ячейкой, лежал труп. Гектор Лихачев, лидер топ-клана «Золотой Век», донат первого ранга, человек, чье имя на форумах Системы произносили с придыханием. Его игровой ник — Молот-ТГ — до сих пор висел над головой, но буквы уже потеряли золотое свечение, став грязно-серыми. Рядом с ником мерцала полоска здоровья. Ровный, пустой прямоугольник. HP: 0/15000.
Вокруг горла мертвеца вилась тонкая, едва заметная глазу полоса багрового цвета. Из раны не текла кровь в земном понимании этого слова — Система не любила излишней грязи в безопасных локациях. Вместо этого из рассеченной шеи Гектора лениво вываливались мелкие, подергивающиеся цепочки красных символов: ошибки компиляции урона.
— Да потому что это баг! — страж раздраженно грохнул подтоком тяжелой алебарды о пол. — Сервер лаганул. У Гектора был скрытый дебафф на сердце, или текстура сейфа прищемила хитбокс шеи при закрытии. Вон, глянь на дверь — ее до сих пор трясет. Завтра прилетит хотфикс, труп уберут на кладбище перерождения, клану выплатят компенсацию в золотых монетах. Какое убийство в зеленой зоне? Тут системный запрет на извлечение оружия! Скрипты безопасности блокируют любой клинок на подлете к порогу!
Глеб проигнорировал крик. Он медленно опустился на одно колено, стараясь не задевать невидимую границу зоны безопасности. Объектив-анализатор зажужжал, меняя фокусное расстояние. Дистанция: 1.42 метра. Коллизия объектов: отсутствует. Наличие посторонних ID в комнате на момент смерти: ноль.
Страж был прав в одном — правила Системы казались нерушимыми. «Зеленая зона» банка «Альфа-Москва» являлась абсолютным программным изолятором. Здесь блокировались любые агрессивные навыки, оружие автоматически отправлялось во временный инвентарь, а уровень агрессии игроков принудительно сбрасывался до нуля. Убить здесь кого-то было так же невозможно, как земному человеку пройти сквозь кирпичную стену.
И все же Гектор был мертв. Окончательно. Надпись [Статус: Декомпиляция через 02:14:11] над телом говорила о том, что точка возрождения для этого конкретного игрока заблокирована. Система стирала его из базы данных навсегда.
— Баг, говоришь? — тихо выговорил Шарапов. Его правый, человеческий глаз сощурился, замечая то, что пропускал машинный анализатор. — При баге геометрии тела Систему выкидывает в аварийный лог. Жертву выталкивает на ближайшую свободную координату. А Гектор лежит ровно там, где его настиг удар. Он не падал. Он сполз по стене.
Глеб протянул руку, активируя классовый навык [Аудит Локального Пространства]. Из его ладони вырвался тонкий веер бледно-зеленых лазерных лучей. Они скользнули по неоновому сейфу, по залитому кодовой грязью горлу мертвеца и замерли на косяке массивной бронированной двери.
Объектив защелкал быстрее. На сетке векторов, прямо на стыке двух тяжелых плит из цифрового титана, обнаружилась странная аномалия. В месте, где петля двери уходила в стену, линии каркаса не сходились друг с другом. Между ними оставался зазор. Ничтожно малый. Один пиксель по горизонтали. Для обычного глаза — идеальная монолитная стена. Для Системы — микроскопическая кодовая пустота. Пустота, в которой не существовало физических законов локации.
— Ну и что ты там нашел? — страж подошел ближе, его костяные доспехи глухо загремели. — Дыра в текстуре? Да таких по всей Москве после весеннего обновления тысячи. Строительный мусор Системы. Через нее даже иголку не просунешь.
— Иголку — нет, — Глеб поднялся, его плащ тяжело колыхнулся. — А вот предмет с измененным вектором атаки — вполне.
Он сделал два шага назад, выходя в общий коридор банка, где системные ограничения были чуть мягче. Глаз-анализатор продолжал удерживать подсвеченную красным цветом однопиксельную щель в дверном косяке.
— Эй, костяной, — позвал Глеб стража. — Какой длины было копьё у Ланселота из клана «Новый Порядок»? Они вчера как раз штурмовали пригородный данж.
— При чем тут Ланселот? — нахмурился страж. — Ну, «Пика Пронзающего Небо». Две сотых единицы длины по системной метрике. Метра три с половиной, если по-вашему, по-старому. И что?
— То, что у этой пики есть уникальное свойство, — Глеб снова щелкнул зажигалкой, глядя на летящие искры. — [Игнорирование промежуточных хитбоксов]. Она создана для того, чтобы пробивать щиты тяжелой пехоты. Система при расчете удара учитывает только две точки: координату кончика острия и координату рукояти в руках владельца. Все, что находится между ними, для алгоритма расчета урона — пустое место.
Страж замер. Руны на его доспехах испуганно мигнули, сменив цвет на тревожный желтый.
— Ты... ты хочешь сказать...
— Я хочу сказать, что убийце не нужно было заходить в хранилище, — Глеб указал пальцем на дальний угол коридора, находившийся в трех метрах от двери сейфа. — Он встал вон там. В слепой зоне камер наблюдения Системы. Дождался, пока Гектор откроет ячейку и наклонится за золотыми сертификатами. Его шея оказалась ровно на линии этой кодовой щели.
Шарапов подошел к стене, присел и указал на едва заметную царапину на полу коридора — там, где внешняя текстура гранита была слегка смазана, словно по ней провели чем-то невероятно тяжелым и острым.
— Убийца активировал навык [Линейный Выпад]. Пика пошла вперед. Для Системы стена и закрытая дверь банка — это непреодолимое препятствие, если бить в лоб. Но убийца целился точно в этот пропущенный программистами пиксель между косяком и петлей. Кончик копья проскочил сквозь микро-коллизию геометрии. А так как у оружия включено игнорирование промежуточных объектов, Система просто не заметила, что древко проходит сквозь тридцать сантиметров бронированной стали. Для алгоритма пика двигалась в пустом пространстве.
Глеб сделал паузу, давая стражу время переварить информацию. Тишина в коридоре банка стала осязаемой, нарушаемой лишь мерным, раздражающим жужжанием лагающего сейфа.
— Кончик пики материализовался внутри безопасной зоны, — продолжил Аудитор, его голос звучал сухо, как у судьи, зачитывающего старый приговор МУРа. — Прямо в хитбоксе шеи Гектора. Система зафиксировала критический урон со спины. Защитные скрипты «зеленой зоны» не сработали, потому что само оружие физически не пересекало порог — его рукоять оставалась здесь, в коридоре, где извлечение клинков разрешено. Удар, смерть, мгновенный откат оружия назад через ту же щель. Логи чисты. Убийца ушел через главный ход, пока вы тут ждали системных администраторов.
Страж медленно перевел взгляд с царапины на полу на микроскопическую щель в двери. Его челюсть слегка отвисла. На лице, оцифрованном с легкими искажениями, проступил подлинный, животный страх перед механикой мира, которую он считал божественной и непогрешимой.
— Но... это же эксплойт, — пробормотал он. — Это использование недокументированных функций Системы. За это полагается перманентный бан аккаунта и стирание...
— За это полагается уголовная статья, — отрезал Глеб. — Насильственное лишение жизни, совершенное группой лиц по предварительному сговору или в одиночку, с использованием технологических уязвимостей. Но твоя Система не знает слова «убийство», если на него не выдан официальный квест. Она пишет: «сбой компиляции».
Шарапов повернулся спиной к стражу и решительно перешагнул желтую линию, входя в хранилище. Теперь, когда общая картина была ясна, его аналитический глаз искал конкретную деталь. Убийца, способный рассчитать удар с точностью до пикселя и знающий геометрию углов банка «Альфа-Москва», не мог действовать наугад. Ему нужен был маркер. Точка привязки координат на стороне жертвы.
Глеб подошел к телу Гектора. Мертвец все еще сжимал в левой руке пустой кожаный свиток для хранения игровых ценностей. На полу под его правым коленом, наполовину ушедший в текстуру дорогого ковра, лежал маленький металлический предмет.
Объектив Аудитора сфокусировался на нем. Прибор выдал строчку: [Объект: Земное происхождение. Физический вес: 14 грамм. Магические свойства: отсутствуют].
Глеб наклонился и аккуратно, двумя пальцами, вытащил предмет из ковровой сетки. Это был тяжелый металлический жетон. Сталь потемнела, края были зазубрены, словно по ним прошлись наждаком, но в центре отчетливо читалась выбитая надпись: Министерство Внутренних Дел РФ. Управление уголовного розыска. И личный номер.
Пальцы Шарапова дрогнули. Зажигалка в кармане плаща сама собой провернулась, издав сухой, мертвый металлический щелчок.
Этот номер он знал наизусть. Он сам выбивал его на дубликате жетона, когда они обмывали назначение на должность старшего оперуполномоченного в душном кабинете на Петровке. За две недели до того, как небо над планетой треснуло, и вместо облаков люди увидели ползущую строку загрузки Ядра.
— Олег... — едва слышно выдохнул Глеб, чувствуя, как внутри, где-то под программным слоем Аудитора, глухо и больно забилось старое, человеческое сердце.
Олег Данилов. Его напарник. Человек, который три года назад во время Первой Волны Оцифровки упал в разверзшуюся текстурную дыру прямо на Тверской, когда город перестраивался под системные локации. Все логи утверждали, что его аккаунт был декомпилирован в первые секунды Дня Ноль. Удален как системный мусор.
Глеб сжал жетон в кулаке. Острые металлические края больно въелись в кожу, но полоска его собственного здоровья даже не колыхнулась — внутри банка урон от предметов был заблокирован.
— Аудитор! — крикнул страж от двери, заметив, что Шарапов замер. — Что там? Нашел что-то?
Глеб медленно убрал жетон в глубокий карман плаща, прямо к безжизненной зажигалке. Когда он повернулся к стражу, его объектив-анализатор горел ровным, холодным, изумрудным светом. Человеческий глаз был сух и пуст.
— Ничего, — громко сказал Шарапов, перешагивая через труп доната. — Системный мусор. Ошибка компиляции, как ты и говорил. Передай руководству, пусть вызывают ассенизаторов кода. Здесь больше не на что смотреть.
Он шел по роскошному коридору банка, не обращая внимания на испуганные взгляды элитных клиентов, прижимавшихся к стенам при виде его помятого земного плаща. Мир вокруг продолжал лагать, сыпать искрами битых пикселей и притворяться идеальным цифровым раем. Но Глеб Шарапов теперь точно знал: этот рай был построен на гнилой изнанке, и где-то там, в глубине текстурных дыр, его мертвый напарник прямо сейчас взводил курки новых идеальных убийств. И никакие системные логи не смогут его защитить, когда старый сыщик выйдет на след.



Отредактировано: 30.05.2026





Понравилась книга?
Отложите ее в библиотеку, чтобы не потерять