Функции которые запрещено вызывать из других скриптов
Не знаю, может кому-то поможет.
ФУНКЦИИ, КОТОРЫЕ РАЗРЕШЕНО ВЫЗЫВАТЬ ИЗ ДРУГИХ СКРИПТОВ Активация схем производится с помощью функций:
function gulag_activate(npc, ini, section, gulag_name, death, combat, actor_dialogs, trade, hit) Предназначение: активирует заданную схему, используется схемой гулаг. Тип скрипта определяется автоматически по имени секции. Здесь: npc - персонаж, для которого будет активирована схема ini - его customdata section - имя секции, которая должна быть активирована gulag_name - имя гулага, которое будет добавлено спереди к именам путей death, combat, actor_dialogs, trade, hit - имена секций, задающих поведение при смерти и в бою
function assign_storage_and_bind(npc, ini, scheme, section) Предназначение: Вызывает функцию add_to_binder схемы, а также создает (если его еще нет) и возвращает ссылку на storage для схемы. Примечание: в storage при этом могут оставаться старые данные, схема должна очистить его самостоятельно.
function subscribe_action_for_events(npc, storage, new_action) Предназначение: Регистрирует класс для получения нотификаций о таких событиях как сброс схемы, сохранение и т.д. Класс реализует соответствующие функции (reset_scheme() и т.д.), которые будут вызываться из xr_logic в нужные моменты.
function pick_section_from_condlist(actor, npc, condlist) Предназначение: Проверяет условия condlist, и если они успешны - ставит указанные infoportions и возвращает текст. Если условия не выполняются - возвращает nil.
function try_switch_to_another_section(npc, st, actor) Предназчанение: Используя настройки xr_logic из storage персонажа, пытается переключить его на другую схему, если хоть одно из условий переключения сработало. Обычно вызывается из метода update класса персонажа.
function is_active(npc, st) Предназначение: Вызывается из evaluator-а (или в самом начале update у предметов и монстров) для проверки, что данная схема сейчас активна (схема определяется по данным в storage).
function cfg_get_switch_conditions(ini, section, npc) Предназначение: Считывает все возможные условия переключения схем.
function parse_condlist(npc, section, field, src) Предназначение: Распарсивает условия вида: {+infop1} section1 %-infop2%, {+infop3 -infop4} section2 ... в таблицу. Параметры section и field используются только в сообщениях об ошибках. Если строка src считана не из файла, а передается в эту функцию гулагом, то нужно задать следующие параметры: --]] -- section = "[[[gulag_tasks.script]]]" -- field = "[[[gulag_name=имя_гулага]]]" --[[
-- ПРИВАТНЫЕ ФУНКЦИИ ----------------------------------------------------------------------------------------------------
function activate_by_section(npc, ini, section, loading) Предназначение: Активирует указанную секцию. Если в данный момент какая-либо секция уже активирована, сообщает об ошибке.
function switch_to_section(npc, st, section) Предназначение: Выполняет переключение с одной секции на другую, если новая секция не nil. Если же она nil, остается активной старая секция.
function abort_syntax_error_in_cond(npc, section, field) Предназначение: Сообщает о синтаксической ошибке в условиях переключения схем секции section и поля field, и останавливает игру.
function parse_infop(rslt, str) Предназначение: Распарсивает условия вида " +infop1 =func -infop2 " и т.д. (все не перечислены) в таблицу.
function cfg_get_number_and_condlist(ini, section, field, npc) function cfg_get_string_and_condlist(ini, section, field, npc) function cfg_get_condlist(ini, section, field, npc) Предназначение: Считывает из customdata различные условия переключения схем.
function add_condition(lst, at, cond) Предназначение: Добавляет условие в список условий переключения схем.
function cfg_get_overrides(ini, section, npc) Предназначение: Считывает настройки для схем общего поведения.
function generic_scheme_overrides(npc) Предназначение: Возвращает ссылку на настройки схем общего поведения, актуальные для работающей в данный момент схемы, либо nil, если ни одна из секций не активна, либо настройки не заданы.
--]]
--[[ -- Предназначение: -- вызывается при включении набора скриптов через секцию logic у персонажа. Если в секции logic присутствует только -- поле cfg, использует конфигурационный файл, заданный в этом поле, и возвращает новый ini file. -- Здесь: -- npc - персонаж, для которого будет активирована схема -- ini - его customdata -- stype - тип скрипта. Поскольку имя секции все еще неизвестно, его нужно задавать явно. Допустимые значения -- перечислены в файле modules.script. -- section - имя секции logic -- gulag_name - имя гулага, если скрипт включается гулагом, а не биндером --]]