
Онлайн книга «Бот»
— Сколько тебе нужно времени? — спросила Лаура. — Думаю, нескольких часов хватит. — Ты справишься так быстро? — Это простая процедура. Кроме того, я успел хорошо разобраться в командах мозгового компилятора. — Тогда за работу! Тимур перелопатил уже достаточно отрывков программного кода, чтобы понимать принципы программирования ботов. Кроме того, в его распоряжении было руководство, составленное в свое время Джепом, Хортом и другими работавшими в «NGF Lab» программистами. Поэтому он без особого труда прорисовал в голове алгоритм и за два часа до рассвета приступил к реализации. Прежде всего создавался экземпляр класса nfBrainAction. Тимур назвал его Operation. Следующим объявлялся экземпляр класса nfImpact. Он инициировался функцией NewImpact (), которая вызывалась из Operation. На этом этапе Тимур получал доступ к мозгу, выходил за пределы мозгового процессора. Затем задавались тип операции (om_Stimulation — стимуляция, а не считывание импульсов) и часть головного мозга, в которой будет проходить стимуляция (LIMBUS — лимбическая система). В переменную Coordinates типа nfImpactCoordinates записывались координаты будущей стимуляции — HYPOTHALAMUS — гипоталамус. Куда посылать импульсы, определила Лаура; именно в гипоталамусе находится центр удовольствия. Параметры импульсов настраивались в структуре Imparam (типа nfImpactParam). Туда передавались значения интенсивности (ii_Normal — средняя) и интервала, через который будут запускаться импульсы (100 миллисекунд). Рабочая часть программы складывалась из конечного цикла. Шестьсот раз вызывалась функция Delight.Activate (). Учитывая заданный интервал, стимуляция должна была продолжаться 60 секунд. В самом конце психиатр посоветовала добавить функцию Imparam.HormoneCheckupOn (). Собственно, функцию выбирал Тимур. Лаура только объяснила физический принцип, который был заложен в программу и без которого стимулятор, вероятнее всего, работать не будет. Дело в том, что за чувственное удовольствие у человека отвечает дофамин — гормон, который вырабатывается мозговым веществом надпочечных желез, а также многими другими органами. Этот гормон действует непосредственно на центр удовольствия. Большинство наркотиков увеличивают поток дофамина в 5 — 10 раз, давая возможность людям, их принимающим, получать удовольствие. Так, амфетамин напрямую увеличивает выброс дофамина, влияя на механизм его транспортировки. Кокаин блокирует механизмы обратного захвата дофамина, увеличивая его концентрацию в синаптическом пространстве. Алкоголь нейтрализует действие антагонистов [116] дофамина. Если наркоман продолжает стимулировать центр удовольствия, мозг адаптируется к искусственному повышению уровня дофамина, тормозя производство гормона и уменьшая количество рецепторов, на него реагирующих. Дальнейшее развитие химической толерантности приводит к необратимым изменениям в нейронах. Удовольствие притупляется, а со временем исчезает совсем. Найденная Тимуром функция HormoneCheckupOn () позволяла «выключать» проверку любого гормона, заставляя мозг игнорировать пагубное влияние на организм. Таким образом Тимур и Лаура застраховались от того, что мозг ботов может адаптироваться к большой концентрации дофамина (hc_Dopamine). Окончательно функция стимуляции приобрела следующий вид: nfBrainAction Operation (System.GetOperation (NEW_DIRECT_ACTION)); if (!Operation.m_lpDispatch) return; nfImpact Delight (Operation.NewImpact (BRAIN_GLOBAL_PENETRATION)); if (Delight.m_lpDispatch! { Delight.SetOperationMode (om_Stimulation, TRUE); Delight.SubGlobalTarget (LIMBUS); nfImpactCoordinates Coordinates (Delight.GetPosition (HYPOTHALAMUS)); if (Coordinates.m_lpDispatch) { Delight.SetTargetCoordinates (Coordinates); Delight.SetOperationType (ot_Pulse, ot_Point); nfImpactParam Imparam (Delight.GetImpactParamDefinition()); if (Imparam.m_lpDispatch) { Imparam.SetImpulseIntensity (ii_Normal); Imparam.HormoneCheckupOn (hc_Dopamine, FALSE); Imparam.SetInterval (100); Imparam.Update (); } } else return; for (int i=0; i<=600; i++) Delight.Activate (); Clear (); } В 7:45 субботним утром бота, который до этого времени непрерывно развлекался с кнопкой «DLGHT», оторвали от пульта. «Малыш» долго приходил в себя. Его лихорадило. Успокоившись, бот вернулся в депрессивное, полукататоническое состояние. Тимур таращился на экран, на котором зависло сообщение. Секунды шли, но с ботом ничего не происходило. Время от времени он отключался, погружаясь в тяжелую дремоту. Потом просыпался и тянулся пальцами к пульту, на котором светилась кнопка «DLGHT». — Ну, давай… давай же… — шептал Тимур. От напряжения у парня на висках выступили капли пота. — Запускай, ну… Догадайся! После прекращения стимуляции у бота упал артериальное давление, началась брадикардия. Никто не знал доподлинно, то ли он дремлет, то ли теряет сознание. Прошло несколько минут. Тимур повторил компиляцию. Процедура заново записалась на мозговой плате. И опять успешно — процессор принял код. Тем не менее бот не запускал модуль. Он или не понимал, или не хотел его активировать. Алан и Хедхантер искоса поглядывали на Тимура. — Я думаю, ему нужно время, — растерянно пробормотал программист. Хотя он подозревал, что проблема не во времени. Возможно, бот не может построить логическую цепочку «стимуляция — кнопка “DLGHT” — запрет пользоваться кнопкой — запись процедуры». — Он просто не улавливает суть процедуры. — Попробуй добавить команду на самозапуск после компиляции, — предложил Алан. Тимур вставил перед телом основной процедуры системную функцию — SetAutoRun (). Она автоматически запускала модуль на выполнение сразу после компиляции. И попробовал скомпилировать измененный код. Результат получился ожидаемый. Реализованный Хортом функционал по обработке макросов заблокировал компиляцию. На информационной панели появился красный восклицательный знак и надпись: COMPILATION FAILED! ERROR 117: INVALID DESCRIPTOR. — Оно не хочет компилироваться, — стиснув зубы, произнес Тимур. — Вижу, — помрачнел Алан. — Что означает эта ошибка? — ткнула пальцем в экран Лаура. |