Введение  Система сюжетной информации (ССИ) нужна для обеспечения происхождения и запоминания сюжетных событий в игре. При помощи ССИ можно создавать порции сюжетной информации (info portions). 
 При помощи скриптовых функций можно давать или забирать информацию у объектов Inventory Owner в игре. 
 Функции скриптового game_object 
 give_info_portion(info_id) - получить информацию по идентификатору(строковому). 
 give_info_portion_via_pda(info_id, who) - получить информацию по идентификатору от указанного объекта. 
 disable_info_portion(info_id) - убрать информацию. 
 has_info(info_id) - есть ли информация. 
 dont_has_info(info_id) - отсутствует ли информация. 
 Каждая из таких порций имеет уникальный текстовый id и является просто флажком в реестре, который автоматически загружается и сохраняется. 
 К возможностям info portion относится: 
 запуск функции по отношению к персонажу при получении info_portion (action); 
 добавления локаций на карту (location); 
 возможность инициирования диалогов актером (dialog); 
 возможность инициирования диалогов у актера (при разговоре с персонажем, который имеет info_portion) (actor_dialog); 
 добавления статей в энциклопедию (article); 
 добавление заданий и в меню заданий (task); 
 удаление из реестра уже известных info_portions (disable). 
 [править] 
 Структура Info Portion в XML-файле 
 
 <info_portion id="actor_start"> 
 
 <!-- скриптовые функции, которые будут вызваны при получении info_portion персонажем, аргументом скриптовый объект персонажа --> 
 <action>info_test1.test_task1</action> 
 <action>...</action> 
 
 <!-- локации, которые будут показаны на карте --> 
 <location > 
 <level>0</level> 
 <x>-250</x> 
 <y>-127</y> 
 <icon name="Dealer" x="2" y="2" width="1" height="1"></icon> 
 <text>Bring artefacts to the Dealer</text> 
 </location> 
 <location >.....</location> 
 
 <!-- список диалогов, который может инициировать Info Portion непосредственно у актера--> 
 <dialog>trader_job</dialog> 
 <dialog>trader_talk_about</dialog> 
 <dialog>stalker_talk_about</dialog> 
 
 <!-- список диалогов, который может инициировать персонаж с Info Portion у актера--> 
 <actor_dialog>trader_job</actor_dialog> 
 <actor_dialog>trader_job</actor_dialog> 
 
 <!-- список id, деактивируемых info_portions у персонажа при получении данной--> 
 <disable>actor_start01</disable> 
 <disable>actor_start02</disable> 
 
 <!-- список id статей в энциклопедии, которые будут добавлены --> 
 <article>boar</article> 
 <article>flesh</article> 
 
 <!-- задание --> 
 <task> 
 
 <!-- первое задание в списке является основным и выделяется большим шрифтом --> 
 <objective> 
 <text>test task primary</text> 
 
 <!-- 
 Скриптовая функция, возвращает текущее состояние задания,используя константы 
 task.completed - задание (цель выполнена) task.in_progress - в стадии выполнения task.fail - провалено 
 --> 
 <script_condition>info_test1.test_task1</script_condition> 
 </objective> 
 
 <!-- остальные задания - второстепенные --> 
 <objective> 
 <text>test task secondary 01</text> 
 <script_condition>info_test1.test_task2</script_condition> 
 </objective> 
 
 <objective> 
 <text>test task secondary 01</text> 
 <script_condition>info_test1.test_task3</script_condition> 
 </objective> 
 
 </task> 
 
 </info_portion>