поковырялся я в этом m_dlg.script файле. Увы разобраться и понять не получилось. И откуда он берёт тексты для диалогов тоже осталось для меня загадкой.
Старый способ тоже конечно возможен, но имеет немало минусов и НЕ имеет плюсов.
Скриптовой вариант позволяет создавать действительно динамические, интерактивные диалоги, в которых фразы можно формировать из актуальных данных.
Сейчас как раз этим и заинтересовался Отшель[НИК] и вот пример из его текста-вопроса:
phr = Dlg_AddPhrase(dlg, "hunters_quest_dialog_21", "21", "2", -10000) scr = phr:GetPhraseScript() scr:AddPrecondition("m_dlg.check_quest_item") scr:AddAction("m_dlg.relocate_quest_item")
"hunters_quest_dialog_21" - текст фразы, берется стандартно из текстовых xml-лек и может составляться из фрагментов и т.п.
"21" - номер/индекс данной фразы
"2" - индекс родительской фразы
scr:AddPrecondition - добавление условия появления фразы
scr:AddAction - добавление action-а ну и так же по аналогии с инфопоршнями и т.д.
Советую посмотреть и разобраться на примере из m_dlg.script файла, но эти диалоги пока активны для варинта ЧН.
Например весь диалог в xml-ке по выбору из возможных 12-ти вариантов обмена у Сидорыча артефактов на капсулы представлен в виде:
<dialog id="dialog_af_to_caps"> <init_func>m_dlg.init_af_to_caps_dialog</init_func> </dialog>ну и конечно собственно функция function init_af_to_caps_dialog(dlg)
Если ты разберешся с этим, то сможешь писать действительно новые удобные диалоги. Можно их сделать подключаемыми, т.е. при отсутствии аддона - отсутствие файлов с диалогами не будут приводить к фатальным вылетам.