local npcs_requiring_task_dialog = {
character_desc_pripyat = {"trader_pri_a15_mlr"},
character_desc_jupiter = {"jup_a6_stalker_barmen"},
character_desc_bar = {"bar_informator_mlr"},
}
local custom_dialogs = {
character_desc_garbage = {
baraholka_trader = [[
baraholka_trader_the_living_fire_1
baraholka_trader_the_living_fire_2
]]
},
character_desc_bar = {
bar_informator_mlr = [[
bar_informator_mlr_the_living_fire_2
bar_informator_mlr_the_living_fire_3
bar_informator_mlr_the_living_fire_4
bar_informator_mlr_the_living_fire_5
]]
},
character_desc_yantar = {
yan_stalker_sakharov = [[
yan_stalker_sakharov_the_living_fire_1
yan_stalker_sakharov_the_living_fire_2
yan_stalker_sakharov_the_living_fire_3
yan_stalker_sakharov_the_living_fire_4
yan_stalker_sakharov_the_living_fire_5
]]
},
character_desc_escape = {
esc_2_12_stalker_trader = [[
esc_2_12_stalker_trader_the_living_fire_1
]]
}
}
function on_xml_read()
RegisterScriptCallback("on_xml_read", function(xml_file_name, xml_obj)
for file_name, npcs in pairs(npcs_requiring_task_dialog) do
if xml_file_name:find(file_name .. ".xml") then
for _, npc in ipairs(npcs) do
local query_res = xml_obj:query("specific_character[id=" .. npc .. "]")
if not (type(query_res) == "table" and size_table(query_res) == 1) then return end
local el = query_res[1]
local task_dialog = [[
dm_ordered_task_dialog
dm_ordered_task_completed_dialog
]]
xml_obj:insertFromXMLString(task_dialog, el, #el.kids)
end
end
end
for file_name, npcs in pairs(custom_dialogs) do
if xml_file_name:find(file_name .. ".xml") then
for npc, dial in pairs(npcs) do
local query_res = xml_obj:query("specific_character[id=" .. npc .. "]")
if not (type(query_res) == "table" and size_table(query_res) == 1) then return end
local el = query_res[1]
xml_obj:insertFromXMLString(dial, el, #el.kids)
end
end
end
end)
end