Система сюжетной информации (InfoPortions) — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(→Источник) |
RedPython (обсуждение | вклад) м (restored) |
||
Строка 1: | Строка 1: | ||
− | + | ==Введение== | |
− | + | Система сюжетной информации (ССИ) нужна для обеспечения происхождения и запоминания сюжетных событий в игре. | |
+ | При помощи ССИ можно создавать порции сюжетной информации (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-файле== | ||
+ | |||
+ | <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> | ||
+ | </xml> | ||
+ | |||
+ | |||
+ | ==Источник== | ||
+ | |||
+ | '''GSC GW X-Wiki''' | ||
+ | |||
+ | [[Категория:Конфигурационные файлы]] |
Текущая версия на 13:59, 21 мая 2011
Содержание
Введение
Система сюжетной информации (ССИ) нужна для обеспечения происхождения и запоминания сюжетных событий в игре. При помощи ССИ можно создавать порции сюжетной информации (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>
Источник
GSC GW X-Wiki