Дождь в этом мире не пах свежестью. Он пах озоном и жженой пластмассой.
Я открыл глаза и тут же зажмурился от резкой боли в затылке. Попытался вдохнуть, но вместо воздуха в легкие попала мутная жижа. Я лежал лицом в канаве, а над головой раздавался монотонный, сводящий с ума звук.
Пип. Пип. Пип.
Прямо перед глазами, в паре сантиметров от переносицы, висело полупрозрачное окно. Оно мелко дрожало и шло рябью, как старый монитор с битым кабелем.
[FATAL ERROR: User_Identity not found]
[Attempting to load default_asset_04... Success]
[Status: Critical Damage. HP: 2/45]
— Какого… — прохрипел я, выплевывая грязь. Голос был чужим. Слишком высоким, надтреснутым.
Я перевернулся на спину. Небо над головой было странным — серым, тяжелым, а тучи двигались по идеально ровным траекториям, словно их тащили на невидимых ниточках.
— Эй, обрубок! Ты живой там или как?
Надо мной выросла фигура. Здоровый мужик в кожаном доспехе, побитом молью. Над его головой висела аккуратная золотистая плашка:
[Сержант Громм. Ур. 12. Стража деревни «Нижние Гнилушки»]
[Статус: Агрессия — 45%. Настроение — Скверное]
Громм пнул меня сапогом в бок. Система тут же отозвалась багровой вспышкой:
[HP -1. Текущее значение: 1/45. Внимание! Состояние «При смерти»]
— Вставай, корявый! Опять из-за тебя отчет писать? Барон велел выставить дозор на южной тропе, а ты в канаве дрыхнешь?
Я смотрел на него и не видел сурового воина. Я видел кучу полигонов и кривые скрипты. У него левое плечо слегка «проваливалось» в текстуру доспеха, а борода топорщилась неестественными треугольниками.
— Послушай… Громм… — я попытался подняться, опираясь на скользкий край канавы. — У тебя… текстура плывет. И, кажется, утечка памяти в секторе.
Сержант замер. Его глаза на мгновение остекленели — типичная пауза NPC, когда скрипт не находит подходящего ответа на нестандартную реплику.
— Совсем мозги отшиб, доходяга? — наконец выдал он, сплюнув на землю. — Какая память? Какие мамины текстуры? Живо на пост! Пока крысы склад с зерном не сожрали.
Он развернулся и зашагал прочь. Его походка была цикличной — ровно четыре шага, затем легкое подергивание правого колена, и снова четыре шага. «Зацикленная анимация 02», — мелькнуло в голове.
Я сел, привалившись спиной к гнилому забору. Пальцы нащупали на поясе ржавый кинжал.
[Ржавый нож новичка. Урон: 1-2. Прочность: 3/50]
— Так, ладно, — прошептал я себе под нос, чувствуя, как внутри закипает профессиональный азарт сисадмина. — Если это галлюцинация, то слишком детальная. Если это загробный мир, то его кодил стажер за еду.
Я сосредоточился, пытаясь вызвать командную строку. В реале я мог закрытыми глазами настроить сервер через терминал. Почему здесь должно быть иначе?
«Открыть консоль. Ввод», — мысленно скомандовал я.
Перед глазами всплыло новое окно. Оно было красным, все в мелких значках «?», но в самом низу мигал курсор.
> _
Я ввел первую пришедшую в голову команду: whoami.
[Response: NULL. Role: UNDEFINED. Location: Sector_Alpha_01 (Instance: Village_Gnilushki)]
— NULL, значит? — я усмехнулся, вытирая кровь с разбитой губы. — Отлично. В системе, где всё прописано до последнего пикселя, нет ничего опаснее переменной, которая официально не существует.
Где-то со стороны склада раздался пронзительный визг.
[Внимание! Инициация боевого сценария: «Нашествие серых крыс»]
Я посмотрел на свой ржавый нож, потом на забор. Текстура забора в одном месте была прозрачной с обратной стороны — классическая «дыра» в коллизии.
— Ну что, проверим этот мир на баги?
Крысы не заставили себя ждать. Это были не просто животные, а типичные стартовые мобы: перекачанные туши размером с хорошего бульдога, с красными глазами-бусинками и дергаными движениями.
[Серый грызун. Ур. 3. ХП: 20/20] — всплыло над ближайшей тварью.
Для моего текущего состояния (1 ХП из 45) эта крыса была страшнее финального босса. Один укус — и «Game Over».
Сержант Громм уже вовсю махал алебардой у входа в амбар, но его движения были предсказуемы. Он бил по дуге, а крысы, подчиняясь скрипту, отскакивали назад ровно на полметра.
— Эй, корявый, помоги! — гаркнул сержант, пока одна из тварей вцепилась ему в кожаный понож.
Я не двинулся с места. Мой взгляд был прикован к углу амбара, где две текстуры — бревенчатая стена и каменный фундамент — сходились под странным углом. В месте их стыка изображение едва заметно дрожало.
— Есть, — выдохнул я.
Я рванул к этому углу. Крыса, заметив новую цель, издала мерзкий писк и бросилась на меня.
[Внимание! Инициация преследования. Дистанция: 5 метров... 3 метра...]
В последний момент я буквально вжался в угол амбара. Обычный человек просто ударился бы о дерево, но я «нащупал» системную пустоту. Мое левое плечо и часть туловища прошли сквозь бревна.
Крыса прыгнула, клацнув зубами в миллиметре от моего горла, но… замерла в воздухе. Её морда уткнулась в невидимую преграду. Система не понимала, как обсчитать урон: цель (я) находилась одновременно и внутри игрового объекта, и снаружи.
[Error: Invalid Target Position. Raycast failed]
Тварь бесновалась, пытаясь достать меня лапами, но её анимация атаки просто «сбрасывалась» в начальную фазу каждые полсекунды. Для мира я стал призраком.
— Моя очередь, — я вытащил ржавый кинжал.
Я не бил наотмашь. Я медленно занес руку и аккуратно «вставил» острие в глаз крысы. Система залагала. Поскольку я находился в «нулевой зоне», мой удар не имел вектора силы, но программа видела пересечение двух объектов: «Кинжал» и «Глаз моба».
[Critical Hit! (Ignore Defense)]
[Damage: 2. Status: Bleeding]
Я начал методично двигать кинжалом туда-сюда, словно пилой. Полоска жизни крысы начала стремительно сереть. 18... 15... 10...
— Что ты там делаешь, идиот?! — заорал Громм, отбиваясь сразу от троих. — Ты в стене застрял?!
— Я провожу техническое обслуживание! — крикнул я в ответ, нанося последний удар.
Крыса лопнула, рассыпавшись на серые искры, которые тут же впитались в мой интерфейс.
[Опыт: +50]
[Внимание! Уровень повышен! Текущий уровень: 2]
[Доступны нераспределенные очки характеристик: 5]
Мое ХП мгновенно восстановилось до полного, а перед глазами снова выскочила консоль:
> _
Я быстро ввел: set User_Identity.Intellect +5.
Мир вокруг на мгновение стал четче. Звуки дождя обрели объем, а красные надписи ошибок перестали так сильно резать глаза. Но радость была недолгой. Из-за амбара вылезла Крысиная Матка — размером с доброго кабана, с золотистой каемкой над уровнем.
[Королева Грызунов (Элитный противник). Ур. 8. ХП: 450/450]
— Ну вот, — я покрепче перехватил нож. — Теперь проверим, работает ли здесь «God Mode».
Битва с Королевой превратилась в проверку моих нервов. Громм, увидев тушу размером с кабана, издал нечленораздельный вопль и уронил алебарду. Скрипт стражника выдал критический сбой: Status: Panic. Logic: Disabled.
Королева Грызунов не просто бегала — она совершала «Рывок», от которого земля подрагивала. Я понял: если она врежется в мой «багнутый» угол, амбар просто сложится, и меня раздавит текстурами.
Нужно было действовать на опережение.
Я выскочил из стены и побежал к колодцу в центре двора. Королева взвизгнула, её глаза вспыхнули алым.
[Skill Active: Stampede. Speed +200%]
Она неслась на меня, как локомотив. В последний момент я запрыгнул на край колодца, но не остановился, а начал быстро-быстро «дрожать» на месте, зажимая клавиши воображаемого управления. В старых движках был баг: если прыгать на наклонную поверхность под углом 45 градусов, вектор скорости суммировался, и персонажа выталкивало вверх.
— Гравитация? Не слышали, — прошептал я.
Мои ноги оторвались от камня. Система не успела обсчитать падение, и я буквально поплыл по воздуху над головой разъяренной крысы.
[Warning: Physics Engine Overload. Calculating trajectory...]
Пока Королева в недоумении тормозила, врезавшись в колодец, я оказался прямо над её загривком. Падая сверху, я всадил нож не в спину, а в точку, где у модели моба сходились «кости» скелета — так называемый Pivot Point.
Для программы это выглядело так, будто объект «Нож» оказался внутри центральной точки объекта «Босс».
[Critical Error: Divide by Zero]
[System: Collision Overflow]
ХП Королевы не просто уменьшилось — оно обнулилось мгновенно. Её модельку неестественно вывернуло, растянуло в бесконечную тонкую линию (классический «спагетти-баг») и… она лопнула с оглушительным звуком удаляемого файла.
На месте взрыва Королевы осталась кучка серых пикселей, которые постепенно материализовались в предметы. Громм, все еще дрожа, подполз поближе.
— Ты… ты её проклял? Она просто растаяла!
Я не слушал. Я смотрел на предмет, который выпал из босса. Это был меч, но он выглядел странно: его лезвие было прозрачным, а эфес постоянно менял цвет.
Я поднял его. Рука не почувствовала веса. Вообще.
[Item: Placeholder_Sword_99]
[Type: Invalid]
[Weight: -1.0 kg]
[Durability: NaN / NaN]
[Attack: 0 (True Damage: 9999)]
— Ого, — присвистнул я.
Это был «заглушка» — предмет, который разработчики используют для тестов и забывают удалить из кода. Вес «минус один» означал, что если я привяжу его к поясу, то стану прыгать выше, так как общая масса моего тела уменьшится. А «NaN» в прочности делало его вечным — то, что не имеет числа, нельзя сломать.
— Эй, парень! — Громм поднялся, отряхивая грязь. — Это же святой клинок? Откуда у тебя такие силы? Ты… ты Избранный?
Над головой Громма сменился статус:
[Отношение: Благоговение. Статус: Верный последователь (не подтверждено)]
Я посмотрел на свой новый «Placeholder». Впереди была целая игра, полная ошибок, и я собирался найти их все.