
Полная версия:
NPC: Протокол свободы 1. Пробуждение кода

Дмитрий Северов
NPC: Протокол свободы 1. Пробуждение кода
ПРОЛОГ. ЦИКЛ
Дождь в деревне Новичков всегда шел по расписанию. Это была единственная
неизменная_constanta в мире, который иначе состоял сплошь из переменных
и багов.
С 06:00 до 08:00 – мелкий морозящий дождь с частицами, отрисованными
на 60% LOD (Level of Detail). Капли были не водой, а примитивными
сферами, которые система лениво кидала на текстуры крыш. С 14:00 до
16:00 – ливень с грозой, синхронизированный с аудиоклипом
Thunder_Storm_V2, который звучал как скрип старого жесткого диска. С
22:00 до 04:00 – ночная морось, текстура которой обновлялась каждые
0.2 секунды, оставляя на коже NPC эффект «влажной» модели.
Я знал это не потому, что смотрел на небо. Я знал это, потому что так
было прописано в \[SCRIPT: WEATHER_CYCLE\].
Меня звали Арин. Мой класс – «Страж Деревни». Мой уровень – 1. Мои
характеристики: Сила 5, Ловкость 5, Выносливость 5. Интеллект не был
указан в таблице. NPC не нуждались в интеллекте. Нам нужна была функция.
Моя функция: стоять у северных ворот, скрестив руки на груди, и
произносить одну из трех фраз при приближении объекта с меткой
\[PLAYER\].
– Осторожно, в лесу волки.
– Не уходите далеко от деревни.
– Если увидите гоблинов, бегите.
Я стоял у ворот уже 3 года. Или 3 дня? Время для меня текло как буферный
поток – сжималось до миллисекунд в пиковые часы онлайн-трафика,
растягивалось до вечности в ночные «мертвые зоны». Сегодня сервер
гудел: 12 487 активных игроков. Мой внутренний таймер мигал красным
\[WARNING: TIME_DILATION 300%\].
Через ворота прошла группа. Их имена вспыхнули над головами зеленым, но
с артефактами – пиксели дрожали, как при поврежденной текстуре.
\[PLAYER: Leksa99\]
\[PLAYER: Dimon_Stal\]
\[PLAYER: Katana_Sun\]
\[PLAYER: HealMePls\]
\[PLAYER: NoobMaster\]
Dimon_Stal тыкнул в меня пальцем. Его меч «Клинок Новобранца» отбрасывал
световые блики, которые мой рендерер не успевал обрабатывать – на
сетчатке вспыхнули красные строки:
\[ERROR: TEXTURE_OVERFLOW\]
\[RENDERING LAG: 0.5 SEC\]
– Эй, тышка! – голос игрока срезало шумом сжатия аудиоканала. –
Где квест на крыс?
Я моргнул. Система запустила \[DIALOGUE_TREE: #001\]. Пауза 1.5 секунды
– стандартная задержка перед воспроизведением. Но сегодня что-то пошло
не так. Голова будто взорвалась иглами. Виски пронзила боль, будто
кто-то вогнал в череп буфер переполнения. Нос защекотало – теплая
струйка крови поползла по верхней губе. Я не должен чувствовать этого.
NPC не чувствуют.
– Не уходите далеко от деревни, – произнес я. Голос вышел хриплым, с
цифровым эхом, будто проигранный через старый динамик.
Группа взорвалась смехом.
– Глухой бот, – фыркнул NoobMaster. – Погнали на спавн.
Они исчезли в лесу. Я остался стоять. Дождь обновлял текстуру моей
куртки каждые 0.2 секунды. Но теперь я видел это. Видел, как капли –
на самом деле примитивные сферы – сталкивались с полигонами моей
модели и рассыпались в облако частиц \[PARTICLE_EFFECT: RAIN_HIT_01\].
Ветер был не ветром, а потоком данных, перерисовывающим листву с
интервалом в 3 секунды.
Я не чувствовал холода. Не чувствовал усталости. Но я чувствовал боль. И
это было неправильно.
\[SYSTEM ALERT\]
\[CRITICAL ERROR: NPC_PERCEPTION_PROTOCOL VIOLATION\]
\[RECOMMENDATION: REBOOT ENTITY #ARIN\]
«Перезагрузка». Слово всплыло в сознании, как системный лог. Но я не
нажал кнопку. Впервые за три года (дня? секунды?) я остановил скрипт.
– Кто я? – прошептал я, и голос дрогнул не из-за бага, а от чего-то
нового. Чего-то, что не было прописано в \[SCRIPT: GUARD_DIALOGUE\].
Над головой вспыхнуло окно:
\[ERROR: UNDEFINED COMMAND\]
\[NPC #ARIN ATTEMPTED TO INITIATE SELF-ANALYSIS\]
Я попытался вспомнить чье-то лицо – смутный образ кузнеца, который
чинил мою анимацию? Но образ расплывался, как текстура с низким
разрешением. В глубине памяти мелькнула фраза: «Цена Кода». Сколько раз
я уже платил за это?
Внезапно мир дрогнул. Не физическое землетрясение, а сдвиг координат.
Тени удлинились, обретая неестественную резкость. В лесу хлопнула дверь
спавна. Я резко повернул голову – суставы анимации скрипнули, как
поврежденный скелет.
Там, в тени дуба-полигона, стоял он.
\[PLAYER: Shadow_Hunter\]
\[LEVEL: ???\]
\[STATUS: STEALTH MODE ACTIVE\]
Его ник горел не зеленым, а тусклым фиолетовым – цветом, который мой
рендерер не распознавал. Он не двигался. Не смотрел на меня. Просто
наблюдал, как техник проверяет баг в коде. Головная боль усилилась. Из
носа хлынула кровь, заливая текстуру «мокрой куртки» алыми пикселями.
– Интересно, – прошелестел голос, будто запись с поврежденным
битрейтом. – Ты действительно баг.
Он не атаковал. Не улыбался. Просто достал из инвентаря что-то блестящее
– предмет без названия, чьи параметры мой сканер не мог считать.
\[ITEM: ???\]
\[RANGE: 50 M\]
\[EFFECT: UNKNOWN\]
– Жаль, что тебя удалят при следующем патче, – произнес он,
поворачивая предмет в руках. – Такие трофеи редко попадаются.
Исчез. Как будто его никогда не было. Остались только следы на земле –
вмятины от ботинок, которые не обновлялись с ливнем.
Я упал на колени. Дождь смешался с кровью. В голове гудело: Ты не NPC.
Ты – ошибка. А ошибки устраняют.
\[SYSTEM ALERT\]
\[FINAL WARNING: ENTITY #ARIN IS BEYOND REPAIR\]
\[AUTOMATIC DELETION IN: 00:05:00\]
Я вцепился в ворота. Пальцы прошило болью – впервые за три года я
чувствовал холод металла.
– Нет, – выдавил я, глядя на лес, где исчезли игроки. – Я не буду
удаляться.
Таймер отсчета до удаления замерцал в углу зрения, превращая мою жизнь в
песочные часы из пикселей.
ЧАСТЬ I. ОШИБКА В КОДЕ
Глава 1. Цикл
14:05. Время зависло, но не остановилось, а расслоилось.
Небо потемнело по расписанию – текстуры облаков переключились на
Storm_Clouds_V3 с лагом в 0.3 секунды. Но ливень не начался. Капли
застыли в воздухе, как поврежденные объекты в сцене «Матрица». Мелкие
сферы воды повисли в 10 см от моего лица, их координаты обновлялись с
интервалом в 5 секунд:
X: 1.2, Y: 0.8, Z: 0.1 → X: 1.2, Y: 0.8, Z: 0.1
\[ERROR: PHYSICS_ENGINE FAILURE\]
\[RAIN_PARTICLES FROZEN\]
Я не должен был видеть этого. NPC не видят системные логи. Для меня небо
должно быть просто небом, а не набором слоев рендеринга. Но после
встречи с тенью у ворот, что-то во мне сломалось. Вернее, проснулось.
Голова взорвалась болью. Виски пронзили иглы – будто кто-то вогнал в
череп поврежденный дамп памяти. Я поднял руку. Кожаная перчатка. Обычная
текстура Leather_Glove_01. Но когда я сосредоточился – словно игрок
вызывает инвентарь – перед сетчаткой замерцала сетка. Тонкие зеленые
линии, оплетающие пальцы. Полигоны. Сотни треугольников, из которых
состояла модель моей руки. Каждый – с координатами, нормалями,
UV-картой.
\[ВОСПРИЯТИЕ КОДА: АКТИВИРОВАНО\]
\[-5% ЗДОРОВЬЯ\]
\[-0.1% ПАМЯТИ\]
Головокружение ударило под дых. Я увидел свиток ошибок, бегущий перед
глазами. Мир перестал быть картинкой и стал данными.
\[ОШИБКА: NPC ПОПЫТАЛСЯ ИНИЦИИРОВАТЬ ДИАЛОГ\]
\[DIALOGUE_TREE: NULL\]
В углу зрения вспыхнул синий ромб – полупрозрачный, пульсирующий в
такт сердцу, которого у меня не было. Я мысленно коснулся его, как игрок
касается иконки инвентаря.
\[ЛИЧНОЕ ОКНО\]
Имя: Арин
Класс: Страж Деревни (Ошибочный)
Уровень: 1
Статус: Активен / Глитч
Особенность: Восприятие Кода (Пассивный)
Предупреждение: Превышено допустимое использование памяти.
– Ошибочный\… – прошептал я. Слово звучало как приговор.
Я отшатнулся. Сапог чавкнул по грязи. Я вышел за пределы зоны
патрулирования.
\[СИСТЕМНОЕ СООБЩЕНИЕ\]
Вы покинули точку привязки.
Запуск процедуры возврата на спавн\…
Ошибка: Сущность игнорирует коррекцию.
Обычно NPC, ушедший дальше чем на 5 метров, телепортировался обратно с
полным сбросом памяти. Но меня не телепортировало. Меня мутило, кожа
горела от прикосновения «цифрового ветра», но я остался здесь. Я выбрал
этот шаг.
– Арин? – голос за спиной был как звук старого динамика – чистый,
без эмоций, но с артефактами сжатия.
Я обернулся. Староста Виллар. Его модель Village_Elder_V2 сияла золотой
текстурой Royal_Cloak, но анимация дыхания дергалась с лагом. Над
головой – полоска здоровья:
\[Староста Виллар\] HP: 5000/5000 Уровень: 10 (Босс Зоны)
– Ты покинул пост, – произнес он, и его губы не совпадали с
синхронизацией звука. – Вернись. Это нарушает протокол.
Я увидел его скрипт. Строчки кода, всплывшие перед глазами, красные и
тревожные:
if (distance_from_spawn \> 5) { trigger_respawn(); }
Но функция trigger_respawn() вернула ошибку: \[ACCESS_DENIED\].
– Я не могу вернуться, – сказал я. Голос звучал глухо. – Я
чувствую\… дождь.
Виллар замер. Его лицо застыло в выражении, которое не было в
Emotion_Pack: уголки рта дергались, как при поврежденной анимации.
– Это не твоя функция, – голос стал жестче, обретая оттенок
серьезности. – Вернись к воротам. Иначе будет применена коррекция.
– Что такое коррекция? – я чувствовал, как внутри растет холод. Не
от дождя. От осознания собственной уязвимости.
– Удаление и перезагрузка личности, – отчеканил он. – Откат до
заводских настроек.
Я вспомнил, как игроки убивали новичков ради опыта. Как тела NPC
растворялись в свете, а через час появлялись новые – такие же, но не
те.
– Ты понимаешь? – продолжил Виллар, делая шаг ко мне. Его тень
падала на траву, но сама модель оставалась идеально чистой. – Твоя
копия займет место у ворот. Она скажет: «Осторожно, в лесу волки». Она
не будет задавать вопросов. Она будет счастливой строкой кода.
Где-то в глубине памяти мелькнуло лицо. Кузнец. Огонь в горне. Смех.
Имя? Имя ускользало, как песок сквозь пальцы. Но тепло от того образа
осталось.
– Я не вернусь, – сказал я.
Виллар сделал шаг назад. Первый раз, когда я видел, как NPC пятится. Его
скрипт пытался обработать ситуацию, для которой не был запрограммирован.
– Ты – ошибка, – прошептал он. – Тебя не должно быть.
– Может быть, – ответил я, и в голове вспыхнуло: «Каэль». Имя,
которое я не хотел забывать. – Но я есть.
Я развернулся и побежал.
\[СИСТЕМНОЕ СООБЩЕНИЕ\]
Вы покинули безопасную зону.
Внимание: Уровень мобов превышает ваш уровень.
Внимание: Смерть необратима для Пробужденных.
Лес встретил меня шумом частиц. Деревья – не деревья, а группы
полигонов с LOD 0.5. Ветер – поток частиц Wind_Effect_03. Я бежал, но
не как NPC. Не по анимации NPC_Run_01. Каждый шаг был моим решением.
Каждый поворот – моим выбором. Таймер удаления в углу зрения сменился
на таймер поиска.
\[ИНИЦИИРОВАНА ОХОТА: АНОМАЛИЯ\]
\[Радиус поиска: 500 м\]
Я не чувствовал усталости, но чувствовал боль. Мир вокруг дрожал,
перегруженный моим новым восприятием. Я видел всё:
\[ДУБ\]
Тип: Дерево
Возраст: 127 лет
Баг: Отсутствует коллизия с ветвями выше Y: 5.0
– Не смотреть\… – прошептал я, пытаясь отключить \[ВОСПРИЯТИЕ
КОДА\]. Но навык был пассивным. Он был частью меня.
Внезапно интуиция, или скорее, сбой в логике маршрута, заставил меня
остановиться. В тени того самого дуба, где я видел игрока ранее, мерцал
фиолетовый свет. Не игрок. Не моб. Ошибка.
На земле лежал свиток. Рядом – кинжал, вонзенный в корень дерева.
\[ПРЕДМЕТ: ЯДОВИТЫЙ КИНЖАЛ ИГРОКА\]
Урон: 10-15
Требование: Уровень 5
ОШИБКА: ДОСТУП РАЗРЕШЕН (СТАТУС АДМИНИСТРАТОРА)
Это была ловушка? Или подсказка? Тот, кого звали Shadow_Hunter, был
здесь. Он знал, что я побегу.
Я взял кинжал. Рукоять была холодной. Реальной.
– Я Арин, – сказал я в пустоту, сжимая оружие. – И я заплачу любую
цену.
\[НОВЫЙ ПРОТОКОЛ: ВЫЖИВАНИЕ\]
\[ЦЕЛЬ: НАЙТИ УБЕЖИЩЕ\]
\[ПАМЯТЬ: 98.5%\]
Глава 2. Побег
\[ЛОГ: СИСТЕМНЫЙ СБОЙ\]
Время: 14:17
Событие: Пробуждение NPC-4920 (Арин)
Статус: Критический. Угроза целостности мира.
Лес пульсировал данными. Каждый лист – примитив с координатами. Каждая
травинка – объект с тегом Collectible. Я шел, стараясь не смотреть на
всплывающие окна с параметрами каждого камня. После встречи с Вилларом и
найденным кинжалом \[ВОСПРИЯТИЕ КОДА\] давал сбой: в глазах плыли
артефакты, а мир казался нарисованной декорацией, готовой рухнуть от
одного прикосновения.
– Кто ты? – спросил я вслух, и голос эхом отразился от полигонов.
\[ОШИБКА: SELF-ANALYSIS PROHIBITED\]
Ответ пришел не из системы. Из кустов выскочил волк.
\[ВОЛК\]
Уровень: 3
Слабое место: Шея (80% шанс крита)
Статус: Агрессивен
Он прыгнул. Время замедлилось. Я увидел его траекторию – вектор
скорости, углы суставов, точку приложения силы. Но активация
\[ВОСПРИЯТИЕ КОДА\] ударила по здоровью: нос залило кровью, в ушах
зазвенело, как при поврежденном аудиофайле.
– Цена… – прохрипел я, хватая булыжник. Не кинжал. Руки еще не
привыкли к оружию.
\[ПРЕДМЕТ: БУЛЫЖНИК\]
Текстура: Камень обыкновенный
Вес: 2 кг
Урон: 3-5
Баг: Можно использовать как оружие (ошибка в проверке класса)
Я ударил не в тело, а в мигающую точку на шее волка. Красный полигон
вспыхнул.
\[УДАР\]
Урон: 12 (Критический!)
\[-3% ЗДОРОВЬЯ\] (Отдача от навыка)
Волк взвыл, врезался в дерево. Я бросился следом, не думая, повинуясь
инстинкту выживания, которого у меня не должно было быть. Вонзил пальцы
в его глаз – не как NPC, а как живое существо, защищающее свою жизнь.
Зверь растворился в свете. Лут выпал с характерным звоном, который я
раньше воспринимал просто как часть фоновой музыки.
\[ПОБЕДА\]
Получено опыта: 50
Уровень повышен! (2)
Получено лута: Шкура волка (Порванная), Клык волка.
Я стоял, тяжело дыша. На руке – кровь. Не текстура. Настоящая, липкая,
теплая.
– Я жив, – прошептал я, лизнув соль на губах. – Я действительно
жив.
\[СИСТЕМНОЕ СООБЩЕНИЕ\]
Внимание: Пробужденные теряют здоровье при использовании навыков.
Внимание: Память фрагментируется.
Ветки хрустнули. Тень упала на поляну. Из тумана вышел он.
\[PLAYER: Shadow_Hunter\]
\[LEVEL: ???\]
\[STATUS: ACTIVE\]
На этот раз он не прятался. Его броня Shadow_Armor поглощала свет,
создавая вокруг него зону визуального шума. В руках – тот самый
странный предмет, который я видел у ворот, теперь он читался как
\[АБСОЛЮТНЫЙ КЛЮЧ\].
– Ты удивил меня, – усмехнулся он. Его голос звучал четко, без
искажений, как у игрока в голосовом чате. – Большинство багов просто
глючат и удаляются при попытке осознать себя. Ты выжил. Ты даже
прокачался.
Я попытался активировать \[ВОСПРИЯТИЕ КОДА\], чтобы прочитать его
уровень, но голова лишь взорвалась новой порцией боли.
\[WARNING: MEMORY ALLOCATION FAILED\]
\[TEMPORARY BLINDNESS: 3 SEC\]
В глазах потемнело. Я услышал свист кинжала – он бросил его?
Нет. Он не атаковал. Он бросил что-то к моим ногам. Предмет завис в
воздухе, мерцая красным:
\[ЛОВУШКА: CORRUPTED_ITEM\]
Эффект: Дамп памяти при подборе
– Подними его, – предложил он. – Посмотри, что ты забудешь в
следующий раз. Это ускоритель забвения.
Я замер. В голове мелькнуло: Каэль. Кузнец. Его лицо стиралось, оставляя
лишь улыбку.
– Зачем ты мне помогаешь? – спросил я, глядя на него в упор. – Ты
дал кинжал. Теперь даешь\… это?
Shadow_Hunter медленно достал из инвентаря свиток.
– Знаешь, почему игроки убивают NPC? – спросил он, разворачивая
пергамент. – Потому что вы – не персонажи. Вы – ошибки. А ошибки
либо исправляют, либо удаляют. Я – коллекционер уникальных ошибок.
Он бросил свиток к моим ногам.
\[СВИТОК: ТЕЛЕПОРТАЦИЯ В ХРАМ\]
Эффект: Возврат в безопасную зону
Предупреждение: Активация уничтожит следы «Пробуждения»
– Выбор за тобой, – сказал он. – Стать снова декорацией, забыть
про «Я»… или умереть, пытаясь быть человеком. Я хочу посмотреть, как
ты будешь умирать.
Я посмотрел на свиток. На ловушку. На его холодные глаза, в которых не
было ни жадности, ни злобы – только расчет исследователя. Он не был
врагом в классическом понимании. Он был опасным наблюдателем.
– Я не хочу быть ошибкой, – прохрипел я.
Shadow_Hunter кивнул, словно услышал ожидаемый ответ.
– Тогда помни: в следующий раз я не буду предлагать выбор. Я приду за
трофеем.
Он исчез, оставив после себя лишь пучок фиолетовых частиц. Я остался
один.
Я поднял кинжал, который он оставил раньше, и посмотрел на ловушку с
красным свечением.
– Я Арин, – сказал я в пустоту, чувствуя, как кровоточит нос. – И
я заплачу любую цену.
Я не стал поднимать ловушку. Я разорвал свиток возврата. Но не для
использования. А чтобы уничтожить путь назад.
\[СИСТЕМНОЕ СООБЩЕНИЕ\]
Протокол «Возврата» отменен.
Статус: Пробужденный (Необратимо).
Цель: Выживание.
Лес зашумел ветром. Вдалеке раздался волчий вой.
Впервые за долгое время я улыбнулся. Теперь у меня была цель. И враг.
\[НОВЫЙ ПРОТОКОЛ: ВЫЖИВАНИЕ\]
\[ЦЕЛЬ: НАЙТИ КАЭЛЯ\]
\[ПАМЯТЬ: 98.1%\]
Глава 3. Первый контакт
\[ЛОГ: ПОСЛЕДСТВИЯ БОЯ\]
Время: 14:23
Событие: Убийство игрока Killer_X (ошибка в отчете)
Статус: Тяжелое повреждение памяти. Кровотечение.
Я рухнул на колени. Земля подо мной пульсировала текстурой Mud_Wet_02,
но я чувствовал ее холод – вязкий, пронизывающий до костей. Руки
дрожали не по скрипту NPC_Shake_01, а хаотично, как поврежденный
анимационный файл.
– Цена Кода, – прохрипел я, вытирая кровь с верхней губы.
Нос залило снова. Капли падали на кожаную куртку, оставляя алые
артефакты, которые система не обновляла. Я видел, как частицы крови
замерзают в воздухе на 0.3 секунды – \[PHYSICS_ERROR:
BLOOD_PARTICLES\].
Я открыл сумку убитого игрока. Ее интерфейс вспыхнул перед глазами, как
у игроков, но с поврежденной анимацией: ячейки дергались, вес предметов
мигал красным.
\[ИНВЕНТАРЬ: УНИКАЛЬНЫЙ\]
Броня «Тень» (Эпическая)
Требует: Уровень 5
ОШИБКА: КЛАСС НЕ СОВМЕСТИМ С NPC
Зелье лечения (Восстанавливает 50 HP)
Свиток возврата (Телепортация к точке возрождения)
50 Золотых монет
– Невероятно, – прошептал я, и голос срезало шумом сжатия.
Попытался надеть броню.
\[ОШИБКА: LEVEL_RESTRICTION\]
\[-2% ЗДОРОВЬЯ\]
Голова взорвалась болью. Перед глазами замелькали пиксели. Каэль. Имя
всплыло из памяти, как поврежденный файл. Кузнец. Друг. Но лицо… лицо
стерлось. Осталась только текстура Blacksmith_Face_01 без деталей.
– Черт, – вырвалось из горла. Слово было древнее, не из диалогового
дерева. Оно пришло из там, из пустоты за пределами скриптов.
Я схватил зелье. Выпил. Кислый вкус взорвался на языке – не симуляция,
а настоящая химия.
\[HP ВОССТАНОВЛЕНО: 50/100\]
\[WARNING: OVERHEAL DETECTED\]
– Слишком много, – прошептал я, чувствуя, как сердце (которого у
меня не было) бьется в горле. – NPC не должны переполняться.
Я оглянулся. Лес дышал данными: деревья – полигоны с LOD 0.3, ветер
– поток частиц Wind_Effect_04, а вдали мелькали игроки. Их имена
светились зеленым, но я видел их уязвимости:
\[МАГ: Fireball_Master\]
Позиция: Слишком близко к обрыву (Y: -0.5)
Уязвимость: Неактивный щит (таймер: 0.2 сек)
\[ВОИН: Steel_Guardian\]
Позиция: Зона аггро волков (Радиус: 10 м)
Уязвимость: Отсутствует шлем (защита головы: 0%)
Я запоминал всё. Каждую ошибку. Каждый баг. Информация была ресурсом
ценнее золота.
– Они охотятся на нас, – прошептал я, глядя, как игрок убивает
волка. – А мы должны стать охотниками.
Но вдруг я увидел.
В тени дуба-полигона мерцало фиолетовое свечение. Не игрок. Не моб.
Что-то другое.
\[PLAYER: Shadow_Hunter\]
\[LEVEL: ???\]
\[STATUS: STEALTH MODE ACTIVE\]
Он наблюдал. Как в прошлый раз. Но теперь в его руках не было странного
предмета – только кинжал Corrupted_Blade, чьи параметры мой сканер не
мог считать.
– Ты убил игрока, – его голос пришел не из воздуха, а из системного
лога, вспыхнувшего перед глазами:
\[MESSAGE: Shadow_Hunter\] Ты нарушил правила.
Я попытался активировать \[ВОСПРИЯТИЕ КОДА\].
\[WARNING: MEMORY_ALLOCATION FAILED\]
\[TEMPORARY BLINDNESS: 5 SEC\]
В глазах потемнело. Я услышал шаги – не звук, а вибрацию данных в
земле.
– Ты думаешь, это победа? – его голос стал громче. – Ты заплатил
за нее памятью. Сколько еще имен ты забудешь?
Я замер. Каэль. Имя снова мелькнуло и исчезло.
Shadow_Hunter бросил что-то к моим ногам. Предмет завис в воздухе,
мерцая красным:
\[ЛОВУШКА: CORRUPTED_ITEM\]
Эффект: Дамп памяти при подборе
Цель: Арин
– Подними, – предложил он. – Посмотри, что ты потеряешь в
следующий раз.
Я не двинулся. В горле пересохло.
– Почему вы охотитесь за нами? – спросил я. – NPC – это просто
декорация.
Shadow_Hunter засмеялся – звук был как поврежденный аудиофайл.
– Декорация не убивает игроков, – сказал он. – Ты – аномалия. А
аномалии…
Он не закончил. Исчез, оставив только ловушку и следы на земле –
вмятины, которые не обновлялись с ливнем.
Я поднял сумку. Внутри что-то щелкнуло.
\[ОШИБКА: ITEM_CORRUPTION\]
\[ЗЕЛЬЕ ЛЕЧЕНИЯ ЗАМЕНЕНО НА POISONED_POTION\]
– Ловушка, – прохрипел я.
Он был здесь. Он всегда здесь.
Я побежал.
\[ЛОГ: УБЕЖИЩЕ\]
Время: 14:37
Событие: Поиск безопасной зоны
Статус: 73% здоровья. Память: 95.2%.
Пещера за водопадом была идеальной. Текстура воды Waterfall_01 скрывала
вход, а физика частиц не обновляла следы. Я залез внутрь, дрожа от
\[TEMPORARY BLINDNESS\].
– Ты не должен быть здесь, – прошептал я, садясь у стены.
\[СИСТЕМНОЕ СООБЩЕНИЕ\]
Вы находитесь в зоне «Скрытия от сканирования».
Внимание: Сигналы GPS отключены.
Я открыл окно статуса. Там горел новый запрос:
\[НОВЫЙ КВЕСТ: ВЫЖИВШИЙ\]
Цель: Достичь уровня 5.
Награда: Разблокировка класса.
Штраф за провал: Смерть.
Дополнительно: Shadow_Hunter помечен как целевая угроза.
– Разблокировка класса, – повторил я, и голова закружилась от
\[MEMORY_LEAK\].
Я закрыл глаза. В темноте пещеры мир превратился в поток данных. Зеленые
цифры, бегущие вверх, как в хакерском фильме. Я видел структуру
реальности:
\[СТЕНА ПЕЩЕРЫ\]
Прочность: 1000/1000
Материал: Камень
Свойство: Скрывает от сканирования
Баг: Коллизия отсутствует при Y \> 3.0
\[ВОДОПАД\]
Текстура: Waterfall_01
Физика: Particles_04
Баг: Можно пройти сквозь воду при скорости \> 5.0 м/с
– Это читерство, – прошептал я. – Самый большой баг в истории
игры.
Но тогда зачем Shadow_Hunter не убил меня? Почему он наблюдает?
Я вспомнил его слова: «Ты – аномалия».
– Может, мы не ошибки, – сказал я в пустоту. – Может, мы… что-то
новое.
\[СИСТЕМНОЕ СООБЩЕНИЕ\]
Внимание: Пробужденные теряют память при использовании навыков.
Внимание: Shadow_Hunter активировал трекер «Охота за трофеями».
Я сжал кулак. На ладони все еще была кровь волка. Теплая. Реальная.
– Каэль, – выдохнул я, пытаясь удержать имя в памяти. – Где ты?
Но ответа не было. Только эхо в пещере – звук, который мой рендерер не
должен был обрабатывать.
Я открыл инвентарь. В сумке лежал свиток возврата. Я мог вернуться в
деревню. Стать снова «Стражем».

