\b;Инструкция \c;factory\n;
Синтаксис:
\s;\c;factory ( cat, program, object );\n;

Начинает строительство бота указанной \l;категории\u cbot\category; и запускает указанную программу в нем после того, как строительство завершится.

\t;cat: \c;\l;int\u cbot\int;\n;
\l;Категория\u cbot\category; робота, которого нужно создать.

\t;program: \c;\l;string\u cbot\string;\n; (default value: \c;""\n;)
Программа, которая будет запускаться на боте после завершения его строительства. Это может быть \l;публичная\u cbot\public; \l;функция\u cbot\function;, имя файла или фрагмент кода.

\t;\l;object\u cbot\object;
\l;BotFactory\u object\factory;, ближайшая по умолчанию.

\t;Возвращаемое значение: \c;\l;int\u cbot\int;\n;
Обычно в случае ошибки выполнение программы прекращается. Вы можете сделать так, что в случае ошибки программа не будет останавливаться, для чего используется инструкция \c;\l;errmode\u cbot\errmode;(0)\n; . В случае ошибки \c;factory();\n; возвращает значение отличное от нуля.
\c;== 0 \n;строительство успешно начато
\c;!= 0 \n;не удалось начать строительство (например в фабрике нет \l;Титана\u object\titan;, технология не исследована)

\t;Примеры

Фрагмент кода:
\c;
\s; extern void New()
\s; {
\s;     factory(WheeledGrabber, "extern void Say123() { message(123); }");
\s; }
\n;

Публичная функция
\c;
\s; extern void New()
\s; {
\s;     factory(WheeledGrabber, "SayHello");
\s; }
\s;
\s; public void SayHello()
\s; {
\s;     message("hello");
\s; }
\n;

Имя файла:

Сохраните это как say-foo.cbot. Примечание. При сохранении обязательно установите флажок «Общее» — чтобы say-foo.cbot оказался внутри папки program/.
\c;
\s; extern void New()
\s; {
\s;     message("Foo");
\s; }
\n;

Используйте функцию factory так:
\c;
\s; extern void New()
\s; {
\s;     factory(WheeledGrabber, "program/say-foo.cbot");
\s; }
\n;
\t;См. также
\c;\l;researched\u cbot\researched;\n;, \c;\l;wait\u cbot\wait;\n;.
\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;.
