Способы выдачи info portion

Материал из Modders-wiki - Библиотека знаний модмейкеров S.T.A.L.K.E.R.
Перейти к: навигация, поиск
Способы выдачи info_portion
Описание
Авторaka_sektor
СоавторBoBaH_671
Тип статьируководство
АктуальностьТЧ, ЧН, ЗП
Необходимый софтТекстовый редактор

В данной статье, представлены известные способы выдачи инфопорций в игре.

Для ТЧ/ЧН необходимо зарегистрировать info_portion в любом из файлов подключенных в секции [info_portions], файла gamedata\scripts\system.ltx:

<info_portion id="infoportion_name"></info_portion>

Для ЗП этого делать не нужно, т.к. чтение секции [info_portions] закомментировано в движке.

В диалоге

Путь: gamedata\config\gameplay\dialogs_$.xml

Выберите диалог, потом активирующую фразу, и после неё вставьте следующий код:

<give_info>infoportion_name</give_info>

infoportion_name — имя инфопорции.


Пример:

<phrase id="dialog_name">
<text>dialog_text</text>
<give_info>infoportion_name</give_info>
<next>12</next>
</phrase>

Готово. Инфопорция будет выдана при активации указанной фразы в игре.

Функцией

function funct_name()
give_info("infoportion_name")
end
  • funct_name — имя вашей функции, оно же используется для вызова. Пишется только по-английски и без пробелов. Вместо пробелов используйте знак подчеркивания (_).
  • give_info — стандартная функция использующаяся для выдачи инфопорций.

При этом, обратите внимание, что функция может быть вызвана повторно, т.е. инфопорция будет повторно выдана.

Чтобы инфопорция выдалась только один раз, используйте код:

function funct_name()
if not has_alife_info("infoportion_name") then
give_info("infoportion_name")
end
end

Подробнее о вызове функции: Способы вызова функции

Готово. Инфопорция будет выдана при вызове указанной функции в игре.

Функцией, при взятии предмета[1]

Путь: gamedata\scripts\xr_conditions.script

function funct_name()
if (db.actor:object("item_section_name") ~= nil) and not (db.actor:has_info("infoportion_name")) then
db.actor:give_info_portion("infoportion_name")
end
end

item_section_name — имя секции предмета.

Подробнее о вызове функции: Способы вызова функции

Готово. Инфопорция будет выдана при вызове указанной функции после взятия указанного предмета в игре.

Callback функцией

Подробности в разборе callback функций

При обыске тела NPC

Для ТЧ/ЧН задайте в графе Custom Data спавн-секции выбранного NPC, следующий код:

[known_info]
infoportion_name

Для ЗП такой код:

[logic]
active = nil
known_info = known_info

[known_info]
infoportion_name

Готово. Инфопорция будет выдана при обыске тела выбранного NPC.

Источник

  1. Пост пользователя "psevdoгринго" на AMK форуме