«РАЗРЫВ СВЯЗИ: ОШИБКА 0х000023 КРИТИЧЕСКОЕ_ПРЕРЫВАНИЕ»
«РАЗРЫВ СВЯЗИ: ОШИБКА 0х000001 КРИТИЧЕСКАЯ_ОШИБКА_ПРОЦЕСС_СМЕРТЬ»
Сэцуши застыл, отрешенно смотря на мост. По лезвию катаны стекла капля крови.
00D ЦУКУЕМИ
Сузуки Кабуто вызвали на место чрезвычайного происшествия посреди ночи. Оператор не уточнил детали, но попросил прибыть в суши-бар «Тануки» как можно быстрее. За последнюю неделю это был уже то ли тридцать второй, то ли тридцать третий вызов — казалось, будто бы пользователи начали специально выискивать баги в системе, чтобы развлечь себя или попытаться преодолеть те или иные программные ограничения. В офисе вообще ходили слухи о целенаправленных попытках саботировать работу симуляции группой кибертеррористов, но никаких доказательств, даже косвенных, они пока не смогли обнаружить: баги происходили в разное время, при различных обстоятельствах и с разными пользователями, что исключало умышленную порчу программного обеспечения по предварительному сговору. Могла ли быть причина в захламлении самого кода? Исполнительный директор Хироси Хамакаси уверял, что код безупречен, и что его защитные протоколы на основе искусственного интеллекта способны самостоятельно корректировать ошибки. Тогда почему приходится «фиксерам», программистам с правами отладки, исправлять баги вручную? И почему Хироси никого не допускает до «ядра», основного кода симуляции? Если речь действительно шла о всеобщем благополучии, то логичнее было бы выявить причину ошибок и исправить код, а не каждый раз латать возникающие бреши в симуляции. Впрочем, Сузуки — всего лишь фиксер из отделения дебага. Ему и без этого хватало своих проблем.
Дорога заняла у него не больше десяти минут, хотя навигатор показывал двадцать три — маршруты на карте каждый раз прокладывались окольными путями, поэтому Сузуки привык ориентироваться по памяти, срезая там, где карты предлагали сделать большой бесполезный крюк. Припарковавшись напротив трехэтажного суши-бара, Сузуки закурил сигарету и вышел из машины. Возле входа уже собралась толпа зевак, на две трети состоявшая из настоящих пользователей, которые с любопытством пытались заглянуть внутрь, а остальные, что были искусственными персонажами, отчаянно пытались зайти в бар, руководствуясь своими скриптами — но полиция, оцепившая вход, преграждала им путь. Сузуки протиснулся через толпу и показал своё удостоверение фиксера.
— Ебануться, — усмехнулся он, затягиваясь сигаретой.
В дверном проеме, наполовину застряв в текстуре, с бешеной скоростью тряслась бутылка соджу.
— Только не прикасайтесь, она мощно отбрасывает в случайную сторону, — крикнул ему официант из бара. — В итоге ни войти, ни выйти. Люди тут заперты уже часа три. Мы пытались ее как-то сдвинуть, и стреляли по ней, и стулом били, ничего не помогло. Стул, вон, отлетел так, что весь бар разнёс. Один из ботов пытался зайти, так его под пол куда-то занесло, до сих пор оттуда пытается сделать заказ.
— Понятно, — кивнул Сузуки и присел на корточки, включая режим отладки.
СИСТЕМА «ИНВИЗ»: РЕЖИМ ОТЛАДКИ (0.2)
Объект: бутылка_соджу_вишня_05
Масса: 0,480
Форма коллизии: цилиндр
Симуляция физики: включено
Кинематика: выключено
Положение по оси Х: [динамическое], расчёт…
Положение по оси Y: [динамическое], расчёт…
Связь: нет
Статус объекта: неактивен
Сузуки открыл дополнительные параметры объекта, включил линейное затухание и повысил до максимального значения. Бутылка застыла на месте, но осталась наполовину в текстуре. Скорее всего ее специально положили на дверной проем и попытались закрыть дверь, нарушая коллизию объектов из-за принудительного скрещения. В большинстве случаев бутылка бы, конечно, вылетела из проема, но существовали такие места, где скрипт ломался, и дверь проезжала его насквозь. Тот, кто ее положил, наверняка рассчитывал на подобный результат. Зачем? Сузуки скачал лог объекта «бутылка_соджу_вишня_05», поменял параметр «кинематики» и вытащил бутылку, подкрутив ее положение по осям.
— Почему так происходит? — спросил один из полицейских. — Мы недавно приехали на вызов, а там пользователя запечатало в стену. Мы его вытащили конечно, но он там провисел не менее пяти часов, пока его случайно не заметил прохожий. Ничего не помнил.
— Я ездил туда для анализа с группой других фиксеров. Кто-то специально поставил во дворе нагромождение мусора таким образом, что прохождение по нему вызывало отбрасывание в сторону из-за сбоя в вычислении коллизий. Ювелирная работа. Потом еще специально «вколотили» его в стену подручными предметами или собственным силами — мы даже проводили следственный эксперимент. Завелся какой-то шутник, которого надо поймать и посадить в карцер на пару лет.
— Ну, это уж совсем. Наверняка молодняк играется, ничего ж страшного. Он там сойдет с ума от в карцере от скуки за первые дни, я уж знаю.
— Будет уроком другим. Я уже заебался. Он не только мешает функционированию, но и постепенно переходит на самих пользователей.
Пользователи по обе стороны суши-бара громко зааплодировали, радуясь исправленному багу: одни могли наконец поехать домой, другие — выпить и поесть. В возникшей суматохе никто не расслышал женский крик на втором этаже. Перепуганная девушка сбежала по лестнице, перепрыгивая через целый пролёт, и позвала на помощь:
— Полиция! Там в туалете застряли люди… В кабинках…
Они поднялись на второй этаж, и девушка указала на мужской туалет.
— Мой муж не выходил уже минут сорок, я приоткрыла дверь, чтобы узнать все ли с ним в порядке, и увидела, что они там все застряли в текстурах…
Сузуки с полицейскими зашли в туалет. Пятеро мужчин обездвижено висели в дверях кабинок, не предпринимая никаких попыток выбраться. Шестой, будучи ботом, безнадежно пытался проникнуть в одну из кабинок — при взаимодействии дверь с телом приоткрывалась, заедала и возвращалась за исходную позицию.
— Рис для суши называется «шари», что дословно переводится как «останки Будды», — произнес растерявшийся бот. — Вероятно, белоснежный рис напоминал простым людям целомудренные останки Будды.
Сузуки включил режим отладки, проигнорировав монолог бота, взял в оптический интерфейс ближайшую дверь и отключил коллизию объектов, высвобождая первого пользователя.
— Богатый селеном тунец способствует выработке качественной спермы, — продолжал говорить бот, обращаясь ко всем присутствующим сразу. — В то же время лосось, благодаря высокому содержанию омега три, помогает повысить либидо.
Чтобы пользователь подобным образом застрял в двери необходимо было знать миллисекундную мертвую зону анимации закрытия, когда объект переходил из статуса «открыто» в статус «закрыто» — мельчайший промежуток, во время которого дверь как бы на мгновение исчезала в переходных состояниях; если во время этой мертвой зоны прыгнуть в дверной косяк, то существовала ничтожно малая вероятность застрять в текстуре. Провернуть такой трюк, еще и пять раз подряд, было бы сложно даже для опытного фиксера. Либо этот нарушитель знал о каких-то новых изъянах системы, либо он сам обладал системой отладки, попросту редактируя свойства объектов для своих целей. Но зачем? Неужели просто для того, чтобы повеселиться?
— Говорят, что раньше рис мариновали с пресноводным карпом и морской солью в течении длительного времени — вплоть до целого года. Таковым считался традиционный рецепт суши, — произнес очередную реплику бот.
— Да заткнись ты нахуй, — вспылил Сузуки.
Он вынул второго пользователя — мужчина спокойно подошёл к раковине и помыл руки, словно с ним ничего не происходило.
— Кто вас запечатал? — поинтересовался полицейский.
— Я не помню. Ничего не помню.
— А вы что скажете? Тоже память отбило? — спросил полицейский у остальных.
— Мы не помним, — одновременно ответили они, отчего Сузуки застыл на месте: его смутила безупречная синхронизация их голосов.