Книга Бот, страница 107. Автор книги Максим Кидрук

Разделитель для чтения книг в онлайн библиотеке

Онлайн книга «Бот»

Cтраница 107

— Сколько тебе нужно времени? — спросила Лаура.

— Думаю, нескольких часов хватит.

— Ты справишься так быстро?

— Это простая процедура. Кроме того, я успел хорошо разобраться в командах мозгового компилятора.

— Тогда за работу!

Тимур перелопатил уже достаточно отрывков программного кода, чтобы понимать принципы программирования ботов. Кроме того, в его распоряжении было руководство, составленное в свое время Джепом, Хортом и другими работавшими в «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.

— Оно не хочет компилироваться, — стиснув зубы, произнес Тимур.

— Вижу, — помрачнел Алан.

— Что означает эта ошибка? — ткнула пальцем в экран Лаура.

Вход
Поиск по сайту
Ищем:
Календарь
Навигация