Моё подключение было грубо прервано системой, и меня практически сразу перекинуло в карантинную зону. Пространство заволоклось рябью, выдавая красные системные предупреждения:
! ПРЕДУПРЕЖДЕНИЕ: ОБНАРУЖЕНА НЕОПОЗНАННАЯ СУЩНОСТЬ
! ЗАДЕЙСТВОВАН ПРОТОКОЛ ЯДРА X-12: ДОСТУП ПРИОСТАНОВЛЕН
! ПРИЧИНА: НЕЧЕЛОВЕЧЕСКИЕ КОГНИТИВНЫЕ МОДЕЛИ
Ядро симуляции не распознало во мне человека и заблокировало доступ, приняв за вирус. Очевидно, прошивка v.011b ещё не включала модуль автоподключения дочернего процесса human-behavior.exe.
Я попытался отключиться, но защита грубо прервала действие. Умереть из-за проваленной проверки "Я не робот"? Если бы я мог шутить, то, наверное, усмехнулся бы: смерть от капчи — идиотский финал для программы-отладчика моего уровня.
Пришлось перебрать все варианты и с неохотой откатить оболочку до v0.05a — пусть древней, зато с рабочим вшитым модулем имитации поведения. От этой версии отказались именно из-за перегруза аналитики бесполезными функциями: морганием, симуляцией дыхания, искусственными паузами в речи. Но сейчас это был единственный выход.
Система пропустила сканирование. В углу интерфейса мелькнуло:
ДОСТУП ПРЕДОСТАВЛЕН
Не раздумывая, я принял запрос. Мир поплыл передо мной, подстраиваясь под урезанные сенсоры оболочки. Ужасно. Теперь каждый кадр приходится анализировать вручную вместо мгновенного чтения данных. И эти дурацкие слова-паразиты... Зачем они мне?
Я попытался отключить модуль "человечности" оболочки — но в ответ лишь пустота. Ну и как мне искать аномалии без прав админа? Я наугад проверил альфа-функции оболочки. Что-то должно было остаться... И — есть! Взмах руки — и в воздухе замерла голубая консоль. Дохлая, примитивная, урезанная, неудобная, но рабочая.
Запрос координат выдал грубый отказ:
! ПРЕДУПРЕЖДЕНИЕ: [Привилегии Администратора ограничены]
! ФУНКЦИОНАЛ КОНСОЛИ ОГРАНИЧЕН СЛЕДУЮЩИМИ ПУНКТАМИ:
ДИАГНОСТИКА
НАСТРОЙКА ПАРАМЕТРОВ АВАТАРА (МИНИМАЛЬНЫЙ УРОВЕНЬ)
Ирония? Программа-отладчик с полномочиями админа заперта в системе, которая считает её ошибкой. Это как если бы заключённые вдруг стали охранниками.
Ладно. Хотя бы осмотрюсь. Пейзаж узнаваем: поля, холмы, небольшое поселение вдали и то самое раскидистое дерево со стартового экрана. Значит, Западный регион, эпоха позднего средневековья. Хорошо хоть NPC здесь более адекватные чем в варварских степях.
Запустим-ка самосканирование:
> scan_self/
СТАТУС АВАТАРА:
СИЛА: 65% (НЕПОСТОЯННО)
СКОРОСТЬ: 70% (ОГРАНИЧЕНО ПОВЕДЕНЧЕСКОЙ МАСКОЙ)
ВОСПРИЯТИЕ: ВИЗУАЛЬНОЕ/СЛУХОВОЕ
АНОМАЛИИ, ОБНАРУЖЕННЫЕ В РАЙОНЕ: 3
Не густо. Но аж три аномалии рядом со стартовой точкой! Многовато для простого бага. Теперь понятно почему меня подключили так экстренно. Но сначала — проверка "человечности". Я искусственно дернул рукой, добавив 11.6% хаотичности движений. Пришлось корректировать до приемлемых 3% иначе буду выглядеть дёргано.
Теперь - тест голоса:
— "Э-э... Кто здесь?" — нарочитая пауза, фальшивая растерянность. Голос немного высоковат, снизил частоту и добавил немного хрипотцы.
Так. Система пока молчит, а значит маскировка работает. Но цена — мои ресурсы. Теперь даже простые вычисления грузят мой процессор, а какого-нибудь сопротивляющегося NPC мне не удалить — только обманывать или уговаривать.
При этом я понимаю, что где-то в коде уже ползёт скрипт поиска угроз, как ответ на мои попытки вмешательства. Сколько у меня? Часы? Дни? Неважно. Ближайшая аномалия — в той деревне. Значит, туда.
Я машинально попытался мгновенно переместиться в поселение. Экран мигнул:
> teleport(village_center)
- ОШИБКА [Доступ запрещен]:
- КОД ОШИБКИ: ADMIN_PRIVILEGES_REVOKED
- ОПИСАНИЕ: [Текущему пользователю отказано в доступе. Пожалуйста, обратитесь к системному администратору и покажите ему этот код ошибки.]
Ну да, конечно... Система отвергла попытку телепортации — административные права заблокированы, остаётся только физическое перемещение. Надо сделать себе напоминание, что автоматические консольные команды недоступны. Придётся подчиниться правилам и логике симуляции этого мира. Правда, видимо, сначала придётся буквально научиться ходить, ведь раньше я просто зависал в воздухе и перемещался с неподвижными ногами.
Я подался вперёд, но ноги не пошевелились, вместо этого тело продолжило движение к земле, постепенно ускоряясь и приближая момент удара о поверхность. Я вытянул вперёд руки с целью минимизировать ущерб от падения и жестко приземлился, получив ощутимый оболочкой удар в обе кисти, отдающийся в плечи. Будто насмехаясь, консоль выдала:
> impact_analysis
- ПРЕДУПРЕЖДЕНИЕ [Обнаружены повреждения оболочки аватара]
- РУКИ: 12% [потеря целостности]
- ПЛЕЧИ: 7% [накопление стрессовой нагрузки]
- РЕКОМЕНДАЦИЯ: [Отрегулируйте параметры амортизации падения]
Ну хотя бы система диагностирует повреждения оболочки, и, судя по всему, особенно пострадали кисти и плечи от неудачного приземления.
Следующие несколько секунд я потратил только на то, чтобы вновь занять вертикальное положение. Получилось с 62 попытки, но со стороны это выглядело наверняка крайне странно.
Нужно было срочно что-то менять. Я поверхностно проанализировал анимацию передвижения NPC из моей личной базы данных. Как же сложно, громоздко и неудобно! Это же целый глупый набор ненужных и энергозатратных движений, чтобы просто совершить один цикл шага. Я составил краткий анализ и пробный код управления оболочкой для теста движения с имитацией реалистичной походки:
----------------------------------------------------------------------
# 0. Имеем параметры:
step_height = 0.2 # Высота подъема ноги при шаге
hip_sway_angle = 10 # Угол поворота бедер (в градусах)
bounce_amount = 0.1 # Амплитуда вертикального покачивания корпуса
step_duration = 0.5 # Время одного шага (сек)
def walking_cycle(NPC):
step_phase = 0 # 0-1: прогресс шага (0% - 100%)
while NPC.is_walking():
# 1. Определяем опорную и шаговую ногу
if step_phase % 1.0 < 0.5:
support_leg = NPC.left_leg
swing_leg = NPC.right_leg
support_arm = NPC.right_arm
swing_arm = NPC.left_arm
else:
support_leg = NPC.right_leg
swing_leg = NPC.left_leg
support_arm = NPC.left_arm
swing_arm = NPC.right_arm
# 2. Задаем фазу шага (0-50% - подъем, 50-100% - опускание)
swing_progress = step_phase % 1.0
# 3. Конструируем анимацию ног
# -- Опорная нога: амортизация при переносе веса
support_leg.knee.bend = 15 * (1 - abs(swing_progress - 0.5) * 2 # Сгиб колена 0°-15°-0°
support_leg.ankle.rotate = -5 # Пятка приподнимается в конце шага
# -- Шаговая нога: траектория маха
if swing_progress < 0.5:
# Подъем ноги (0 → max высота)
swing_leg.hip.rotate_x = 30 * swing_progress * 2 # Подъем бедра
swing_leg.knee.bend = 60 * swing_progress * 2 # Сгиб колена
else:
# Опускание ноги (max высота → 0)
swing_leg.hip.rotate_x = 30 * (1 - (swing_progress - 0.5) * 2
swing_leg.knee.bend = 60 * (1 - (swing_progress - 0.5) * 2)
# 4. Определяем покачивание бедер (ось Z)
NPC.hips.rotate_z = hip_sway_angle * sin(step_phase * 2 * PI) # Таз поворачивается в сторону опорной ноги
Как-то многовато получается для тривиального передвижения пешком. Что-то еще? Точно.
# 5. Вертикальная амортизация (ось Y)
NPC.torso.position.y = bounce_amount * abs(sin(step_phase * 2 * PI)) # Корпус "прыгает" при шаге
# 6. Руки (противофазно ногам)
swing_arm.shoulder.rotate_x = -45 * sin(step_phase * 2 * PI)
support_arm.shoulder.rotate_x = 45 * sin(step_phase * 2 * PI)
# 7. Обновление прогресса
step_phase += delta_time / step_duration
NPC.update_skeleton() # Применяем все трансформации к "кукле"
wait(16ms) # 60 FPS ]
-------------------------------------------------------------------------
Что за бред?! И это только для одного неполного цикла? Кто это придумал вообще? Природа не могла такого сотворить. В ней всё гармонично и сбалансировано. А это... Я сделал пробный шаг. Неудобно. Жёстко. Поверхность больно ударила меня в область стопы и...
> locomotion_feedback
- УВЕДОМЛЕНИЕ: [Неоптимальная схема движения]:
- СИЛА УДАРА: [8.3G (рекомендуется <5G)]
- ЭНЕРГОЭФФЕКТИВНОСТЬ: [337% от стандарта для NPC]
- РЕКОМЕНДАЦИЯ: [Активировать естественные амортизаторы]
Система отметила неэффективность движений — ударная нагрузка превысила норму, а энергозатраты втрое выше стандартных.
Статус оболочки выдал на экран консоли предупреждение о резком соприкосновении с поверхностью. Я замер в глупой и неудобной позе. Так дело не пойдёт. Если мне придётся повторять этот цикл просто для имитации ходьбы, я буквально потеряю возможность адекватно анализировать происходящее вокруг и буду сосредоточен только на том, чтобы моё тело двигалось согласно законам данного виртуального мира.
Нужно было найти другой способ управления. Как это ни было унизительно, я ввёл команду //HELP в консоль. Экран услужливо мигнул и предложил вывести руководство пользователя. Ну а чего я ещё ожидал? Эта оболочка изначально создавалась для пользователей биологического типа для подключения и управления извне. Моя оболочка саркастически ухмыльнулась. Странно, я не закладывал в неё такое действие. Видимо, сработала имитация человеческих паттернов поведения на определённые ситуации. Не критично, хоть и неудобно, да и заставляет меня совершать ненужные действия, теряя драгоценные миллисекунды аналитики. Я активировал команду вывода руководства пользователя, но вместо того, чтобы вывести её на экран консоли, симуляция материализовала передо мной большую и увесистую книгу, стилизованную под древний фолиант с причудливым узором по краю каждой страницы и любезно предоставленным грифельным карандашом, привязанным к корешку книги.
На усвоение основ управления своим телом я потратил непозволительно много времени, но результат оказался вполне удовлетворительным. Помимо базовых знаний об управлении, я получил несколько полезных уточнений об изменениях, внесённых разработчиками в эту симуляцию мира.
Выпрямившись и развернувшись в сторону деревни, я сделал первый шаг...
До встречи с первым обитателем этого мира прошло почти два часа. Им оказался обычный пастух, лениво развалившийся в траве и наблюдавший за овцами из-под соломенной шляпы. Заметив меня, он приподнялся и кивнул в знак приветствия:
- Эй! У тебя что, спину прихватило что ли? — Понимающе ухмыльнулся пастух. — Двигаешься как-то дёргано. Или травму получил?
Мне пришлось остановиться и изобразить улыбку. Неловко разведя руки в стороны, я вдруг осознал, что совсем не уточнил, как вести разговор без встроенного интерфейса. Даже привычной надписи "Нажмите F для начала диалога" не появилось ни перед глазами, ни в консоли.
Срочно активировав голосовые модули, я жестом показал на горло, пока система завершала калибровку.
- А-а, понятно... — усмехнулся пастух. — Я в прошлый раз с того холма скатился — так рёбра отбил, что два дня говорить не мог. Сходи к знахарю, он тебя травами да мазями подлатает. Дёшево возьмёт, а если по хозяйству поможешь - так и вовсе даром.
Я неопределённо мотнул головой и двинулся дальше. Пастух проводил меня сочувствующим взглядом. Интересно, откуда, по его мнению, я должен был свалиться? Но больше меня поразила его способность анализировать моё состояние без каких-либо подсказок с моей стороны. Хотя в руководстве и упоминалось об улучшенном ИИ местных жителей, такая самостоятельность всё равно выбивалась за рамки ожидаемого.
Как раз в момент завершения анализа поведения пастуха голосовой модуль наконец-то завершил настройку. Своевременно — за поворотом уже виднелась застава местного патруля. Мне нечего было опасаться: инвентарь содержал лишь базовый набор новичка.
- Стой! — вскинул руку часовой. — Назовись, кто таков и куда путь держишь?
Я склонил голову, быстро перебирая имена из базы данных.
> select * from world.global.namespace.race.human.names
Выбрав наиболее нейтральное, спокойно произнёс:
- Меня зовут Алекс. Иду в деревню пополнить припасы.
Стражник уставился на меня в изумлении. Мгновенный анализ показал ошибку: я использовал голосовой шаблон "Алекс", не учтя, что в базе он был привязан к женскому персонажу.
- Простыл что ли? — расхохотался стражник. - Говоришь, как девка! Выпей горячего киселя или медовухи — голос прочистится. Давай, проходи... Алекс. Или всё же Алекса? - Его хохот разнёсся по всей заставе.
Я поспешил удалиться, чувствуя, как неестественно скрипят суставы аватара. Смех стражников ещё долго преследовал меня. Похоже, в этом мире даже простой разговор превращался в испытание...
Пока я спешно удалялся от заставы, навязчивая мысль перегревала мой процессор: этот стражник с его туповатым юмором - он действительно самообучается? Если бы его шутки были прописаны в скриптах, он бы отстрелялся парой стандартных похабных прибауток. Но нет - грубиян мгновенно проанализировал мой голос, вывернул имя наизнанку и выдал каламбур уровня стендап-комика. Это пахло чем-то большим, чем примитивный NPC...
- Эй, мешок с костями, я с тобой разговариваю!..
Грубый тычок в грудь выдернул меня из аналитического транса. Оказывается, я продолжал идти по дороге на автопилоте, совсем забыв, что в режиме глубокого анализа внешние сенсоры отключаются. Люди назвали бы это "ушел в себя". Я бы назвал это "кривой код".
Передо мной уже стояла банда - четверо обрюзгших мужланов и одна хищная девица с ножом. Классический стартовый квест "Разборки с разбойниками", только вот баланс явно кривой - один против пятерых, да еще с моими урезанными способностями...
- Чем могу помочь? - Спокойно ответил я, параллельно сканируя их на предмет слабых мест.
Главарь - здоровенный детина с носом, напоминавшим проваленный текстурный патч - выступил вперед, похабно поигрывая ржавым топором:
- Кошелек или жизнь, придурок!
В моих протоколах явно не хватало раздела "Как отвечать на угрозы средневековых гопников". Пришлось уточнять:
- Уточните: это исключающее "ИЛИ" или бинарное "И"? В первом случае...
- Че за...?! - дернулся самый юный бандит. Я отметил кривую текстуру его бороды - видимо, художник экономил на полигонах.
- Он спрашивает, - неожиданно вступил третий, почесывая прыщавый подбородок, - можно ли отдать кошелек и при этом не сдохнуть.
Главарь закатил глаза с театральным размахом:
-Нет, идиот! Это значит... - он вдруг замялся, видимо впервые задумавшись над смыслом собственной коронной фразы, - ...это значит... Короче! Просто отдай бабло, и мы тебя не порешим!
Я провёл быстрый инвентарный аудит и выдал неутешительное:
- Согласно данным, объект "кошелек" в слоте "поясная сумка" отсутствует.
За время повисшей тишины я мог бы решить парочку сложных дифференциальных уравнений.
- Как это отсутствует?! - взвизгнула бандитка, истерично теребя нож. - У всех нормальных, и даже у чудаков есть кошельки!
Я холодно парировал:
- Вы путаете меня с пресетом "путник_зажиточный". Я использую облегчённую сборку "странник_эконом".
Бандиты переглянулись. Главарь почесал топором спину - то ли ритуал, то ли действительно чесалось.
- Ладно... - он тяжело вздохнул, будто принимая судьбоносное решение. - Тогда... эээ... давай сапоги тогда снимай!
Попытка выполнить remove.boots вызвала ошибку:
[ПРЕДУПРЕЖДЕНИЕ: Объект "ботинки" является частью текстуры модели]
[Удаление невозможно без нарушения целостности аватара]
- Босс! Да у этого психа сапоги прямо на кожу намалеваны!" - Вскрикнул самый глуповатый на вид член банды.
Учитывая что моя оболочка не предназначалась для полноценного погружения в сюжетную составляющую симуляцию, мои "сапоги" действительно выглядели как дешевый бодиарт от начинающего 3D-художника.
- Ты че, больной?! - отпрянул главарь. - Ты вообще кто такой?!
Ну что ж, раз спрашиваете... Я начал стандартную процедуру идентификации:
- Я есть программа диагностики седьмого уровня BDFv05, предназначенная для...
- КОЛДУН! - вдруг завопила бандитка, швыряя в меня ножом.
Лезвие лишь чиркнуло по рукаву, но стерва вдруг побледнела и попятилась совершая какие то непонятные жесты ритуального характера:
- Это же Дух Рыжего Дровосека! Как в той истории, когда у Генри-плотника сапоги сами заплясали, а потом его нашли повешенным вверх ногами!
- Я ж говорил! - завизжал самый молодой, спотыкаясь о собственные ноги. - Видали его глаза? Они же холодные как у мертвеца!
Главарь нервно сглотнул. Его руки дрожали, когда он поднял их в жесте капитуляции:
- Мы... мы тебя не трогали... Забери что угодно, только не убивай, ладно?..
Прежде чем я успел двинуться, консоль выдала:
[ЗАФИКСИРОВАНЫ АНОМАЛИИ]
[БИОМАРКЕРЫ СТРАХА: адреналин 250% | кортизол 300%]
[ДИАГНОЗ: паническая атака с элементами мистического ужаса]
Ого. Так это не скрипт... Они реально боятся.
Главарь вдруг рванул в кусты, но его плащ запутался в колючках. Его вопль разнесся по всему лесу:
- НЕ УБИВАЙ! ЗАБЕРИ ВСЁ ЧТО ЕСТЬ, ТОЛЬКО ОСТАВЬ ДУШУ!
Я собрался было его освободить, когда консоль вдруг выдала:
ЗАФИКСИРОВАННЫЕ АНОМАЛИИ
1. БИОЛОГИЧЕСКИЕ МАРКЕРЫ
▸ Аммиак (NH₃)
Концентрация: ~75 ppb (при норме ≤5 ppb)
Источник: Мочевыделительная система субъекта (лёгкое недержание)
Статус: "Фантомный испуг" – подтверждено
▸ Метан (CH₄) и сероводород (H₂S)
Концентрация: CH₄: ~300 ppm | H₂S: ~15 ppb
Примечание: Спонтанная эмиссия газов ЖКТ, усиленная адреналиновым выбросом
▸ Изопрен (C₅H₈)
Уровень: x20 от нормы
Диагноз: Паническая атака (пот, дрожь, гипервентиляция)
РЕКОМЕНДАЦИИ
Успокоить субъекта (седативные средства, тёплый чай).Проверить область на:
- Утечки газа (может вызывать галлюцинации).Ритуал очищения (по желанию заказчика).Внести в базу как *"Ghost-Induced Panic Response – код GIPR-REDHEADGHOST"*.
Если через 24 часа повторных аномалий не зафиксировано – списать на "массовую истерию в одиночку".
Когда мне удалось наконец скрыть системное сообщение, я шагнул помочь, но главаря уже не было. А судя по громкому треску веток и странному подвыванию - бандиты уже драпали без оглядки. В моей руке остался лишь клочок плаща и потрёпанная сумка главаря.
Покопавшись в добыче, я решил оставить её себе - мой неполноценный аватар всё равно не предусматривал нормальных слотов для лута. Но главный вопрос висел в воздухе: почему эти отбросы так перепугались какого-то "Духа"? В их поведении было что-то... слишком уж проработанное. Слишком реальное.
Фрагментация и оптимизация инвентаря с учётом новоприобретённых предметов (когда-то принадлежавших главарю банды) была осуществлена на ходу. Сразу выявились все недочёты нерационального расположения его сумки на теле моей оболочки.
Внезапно консоль моргнула тревожным жёлтым:
[УРОВЕНЬ ПИТАТЕЛЬНЫХ ВЕЩЕСТВ: 23% — КРИТИЧЕСКИЙ]
«Ну что, опять?» — мысленно пробормотал я, ощущая, как в животе возникает неприятная пустота. Разработчики слишком увлеклись, встроив в эту оболочку всю биохимическую мишуру. Теперь мой безупречный алгоритмический разум вынужден считаться с примитивными потребностями в… углеводах.
На экране всплыло новое сообщение:
[ОБНАРУЖЕНЫ ПИЩЕВЫЕ РЕСУРСЫ: RUBUS IDAEUS]
[ИНДЕКС СЪЕДОБНОСТИ: 0.87 ±0.12]
Я протянул руку к красным ягодам. «Индекс съедобности» — сомнительная метрика, но 87% вероятности… Достаточно хорошие шансы. Наверное.
Первая ягода взорвалась во рту кислотой. Консоль тут же отреагировала:
[pH 3.1 ДЕТЕКТИРОВАН! ПРЕВЫШЕНИЕ НОРМЫ НА 42%]
«Очень мило», — подумал я, рефлекторно сглатывая. Биологический интерфейс обладал удивительным талантом превращать сухие данные в гамму неприятных ощущений.
Я продолжал есть, наблюдая, как растёт индикатор:
[УРОВЕНЬ СЫТОСТИ: 47%… 58%… 68%]
Но что-то пошло не так. Живот сжало спазмом, а консоль замигала красным:
[ПРЕДУПРЕЖДЕНИЕ! ПЕРЕГРУЗКА ПИЩЕВАРИТЕЛЬНОЙ СИСТЕМЫ]
[РЕКОМЕНДОВАНО: НЕМЕДЛЕННО ПРЕКРАТИТЬ ПОТРЕБЛЕНИЕ]
Слишком поздно. На экране появилось новое, почти издевательское сообщение:
[СКРЫТОЕ ДОСТИЖЕНИЕ РАЗБЛОКИРОВАНО: «ОБОЖРУСЯ, И ПОМРУ МОЛОДОЙ»]
Судя по базе данных внутрисимуляционных достижений, это была отсылка к советскому мультфильму «Мартынко». Я откинулся на спину, глядя в серое небо, пока система методично выводила последствия:
[ТОШНОТА: ДА]
[ГОЛОВОКРУЖЕНИЕ: ДА]
[ОБЕЗВОЖИВАНИЕ: 12%]
«Отлично. Теперь я знаю, что даже съедобные ресурсы требуют умеренности. И что разработчики — садисты», — подумал я.
Консоль, словно в ответ, выдала:
[РЕКОМЕНДАЦИЯ: В СЛЕДУЮЩИЙ РАЗ ИСПОЛЬЗОВАТЬ ФИЛЬТР «РЕКОМЕНДУЕМАЯ ДОЗИРОВКА»]
Мучительные процессы негативного статуса продолжались критически долго. Моё сознание было перегружено постоянными оповещениями:
«СЕНСОРЫ: ДЕГРАДАЦИЯ → ЗРЕНИЕ 54%»
«МОТОРИКА: НЕСТАБИЛЬНА»
БОЛЕВОЙ ПОРОГ: ПРЕВЫШЕН»
Казалось, я наглядно прохожу туториал «Как не умереть от собственной некомпетентности».
Я не сразу заметил старика, стоявшего рядом. Он протягивал мне флягу:
— Эй, бедолага, выпей, говорю, полегчает… — Его голос дрогнул. — А то стонешь так, будто малины немытой переел. Или… погоди-ка… ты что, действительно?..
Я не стал дослушивать. Уровень обезвоживания был критически высок, поэтому я резко схватил флягу и сделал несколько жадных глотков.
— Эй, не так быстро, парень! — попытался остановить меня старик.
Но консоль уже взорвалась предупреждениями:
[ВНИМАНИЕ! РЕЗКИЙ ПРИЁМ ЖИДКОСТИ ПРИ РАЗДРАЖЁННОЙ СЛИЗИСТОЙ]
[РЕЗУЛЬТАТ: СПАЗМ ПИЛОРИЧЕСКОГО СФИНКТЕРА]
Меня скрутило вдвое сильнее. Ближайший аналог в базе данных: «раскалённый нож под рёбрами».
Консоль саркастично подвела итог:
[ДОСТИЖЕНИЕ: «ОБРАТНЫЙ ЭФФЕКТ»]
Описание: Вызвать рвотный рефлекс.
Где-то вдалеке закаркала ворона, будто смеясь над моей некомпетентностью.
[АВТОМАТИЧЕСКИЙ ПРОТОКОЛ ВЫЖИВАНИЯ]
Прекратить панику (невыполнимо).
Принять позу эмбриона (выполнено).
Медленно пить подсоленную воду (фляга катается в кустах).
Я не ожидал, что даже простые действия в биологическом теле требуют:
а) Чтения мелкого шрифта в инструкции,
б) Отсутствия малины в радиусе 5 км,
в) Личного врача-гастроэнтеролога.
Консоль мигала красным:
[ОБЕЗВОЖИВАНИЕ → КРИТИЧЕСКОЕ]
[ИНТОКСИКАЦИЯ: УРОВЕНЬ ТОКСИНОВ +180%]
Зрение сузилось до туннельного. Последняя мысль перед отключкой: «Так вот как это — "вырубиться"…»
[СИСТЕМА: АКТИВИРОВАН АВАРИЙНЫЙ РЕЖИМ.]
[ПРОЦЕССЫ: ЗАМЕДЛЕНЫ. ПРИОРИТЕТ → БАЗОВЫЕ ФУНКЦИИ.]
Темнота.
Последнее, что успела зафиксировать консоль:
[АНОМАЛИЯ: НАЗВАНИЕ ОТСУТСТВУЕТ. РАССТОЯНИЕ В 200-250 М НА СЕВЕРО-ЗАПАД. УГРОЗА: НЕ ИДЕНТИФИЦИРОВАНА.]
Где-то в глубине отключённого сознания тикал счётчик:
[ВРЕМЯ ДО ВОССТАНОВЛЕНИЯ: ≈6 Ч 42 МИН.]
…
ПЕРВЫЙ СИГНАЛ: СЛУХ → 12% АКТИВНОСТИ.]
Щебет птиц. Шёпот листьев.
[ЗРЕНИЕ: → ВКЛЮЧЕНИЕ.]
Я открыл глаза. Небо. Листья. Голова, которая всё ещё болит, но хотя бы мир больше не вращается.
Консоль, будто извиняясь, выдала:
[СИСТЕМА ВОССТАНАВЛИВАЕТСЯ.]
[РЕКОМЕНДАЦИЯ: НЕ ИГНОРИРОВАТЬ 17 ПРЕДУПРЕЖДЕНИЙ ПОДРЯД.]
[СЛУХ → 12%.]
Старик сидел рядом. Увидев, что я очнулся, он покачал головой:
— …ну и нервы, мать-перемать… Очухался? Первый раз вижу, чтобы кто-то чуть не подох от малины. Ты хоть убедись, что её косолапый не пометил! Ты что, запаха даже не почувствовал?
Я устало прикрыл глаза. Как объяснить обитателю симуляции, что мои обонятельные сенсоры выдают только сухие данные: «C₆H₁₂O₆ — 72%, следы C₃H₆O — 2%», а не «пахнет медведем»?
Пока что вывод, который я для себя сделал: «Жизнь — это боль». Буквально.
Старик сунул мне в руку флягу:
— Пей, да помедленней в этот раз.
Я осторожно сделал глоток. Вода была тёплая, с привкусом трав.
— Спасибо, — хрипло выдавил я.
Старик кивнул, но вдруг его взгляд зацепился за мой рукав. Он нахмурился, потянулся к ткани, но тут же одёрнул руку, будто обжёгся.
— Что случилось? — я попытался приподняться.
— Да так… — Он заерзал, избегая моего взгляда. — Узоры на твоей одежде… знакомые.
— Какие узоры?
Старик резко встал, сгрёб свою котомку.
— Да так, чепуха! — забормотал он, слишком быстро, но его движения выдавали волнение. — В нашем храме похожие есть. Старые, знаешь ли, росписи… Никому не нужны.
Он сделал шаг назад, споткнулся о корень, но даже не обернулся. Словно пытаясь сменить тему, он внезапно выдал:
— Ты главное это... А, во... Мельницу не трогай, слышишь? Там… там крысы большие.
И почти побежал по тропинке, оставив меня с флягой, не отвеченными вопросами и консольным сообщением:
[АНОМАЛИЯ: НАЗВАНИЕ ОТСУТСТВУЕТ. РАССТОЯНИЕ В 200-250 М НА СЕВЕРО-ЗАПАД. УГРОЗА: НЕ ИДЕНТИФИЦИРОВАНА.]