diff --git a/atlantis_dyp.lua b/atlantis_dyp.lua --- a/atlantis_dyp.lua +++ b/atlantis_dyp.lua @@ -272,9 +272,17 @@ dyp_librarian = npc { }; dyp_librarian_dlg = dlg { + var { + lse = false; + }; nam = "dyp_librarian_dlg"; disp = "Эйлехиарр"; entered = function(s) + if atl_iyh_state == 10 and not s.lse then + s.lse = true; + pon("lseryanotrr"); + end; + if language_known then psub("speak"); if (dyp_librarian_dlg.state == 0) then @@ -293,7 +301,7 @@ dyp_librarian_dlg = dlg { {always=true, "[Уйти]", code [[ back(); ]]}; {tag="speak"}; {"[Кодировщик] Что ты делаешь?", [[Эйлехиарр отвечает: "Эти записи сильно повреждены. К счастью у нас есть несколько копий этого текста. Но мои предшественники умудрились испортить все три!" ]]}; - {"[Кодировщик] Я ищу карту пути в Лсэрианотр.", [[Эйлехиарр задумчиво оглядывает помещение. Делает несколько шагов в одну сторону, потом в другую. Садится рядом со своими записями, снова встает. Наконец, он берет с одной из полок металлическую табличку и сообщает: "Здесь говорится о пещере рядом с храмом. Три ключа закрывают вход". ]], code [[pon("three_keys");]]}; + {tag="lse", "[Кодировщик] Я ищу карту пути в Лсэрианотр.", false, [[Эйлехиарр задумчиво оглядывает помещение. Делает несколько шагов в одну сторону, потом в другую. Садится рядом со своими записями, снова встает. Наконец, он берет с одной из полок металлическую табличку и сообщает: "Здесь говорится о пещере рядом с храмом. Три ключа закрывают вход". ]], code [[pon("three_keys");]]}; {tag="three_keys", false, "[Кодировщик] Где найти эти ключи?", [[Эйлехиарр отвечает: "Здесь, в Дипатреанотре. Один ты можешь забрать внизу, у статуи". ]], code [[ dyp_stones_known = true; dyp_lib_stone_state = 1; ]]}; {always=true, "[Кодировщик] Я пойду.", [[Эйлехиарр прощается: "Ты возвращайся". ]], code [[ back(); ]]}; }; @@ -429,7 +437,7 @@ dyp_chief_dlg = dlg { return ""; end; end}; - {tag="aedienrr", "[Кодировщик] Ваш город посещал Аэдиенрр из Ираафаанотра недавно?", [[Вождь отвечает: "Не мое дело следить за этим. Спроси у стражников". ]]}; + {tag="aedienrr", false, "[Кодировщик] Ваш город посещал Аэдиенрр из Ираафаанотра недавно?", [[Вождь отвечает: "Не мое дело следить за этим. Спроси у стражников". ]]}; {always=true, "[Кодировщик] Я пойду.", [[Вождь прощается с вами: "Ты возвращайся". Он садится обратно на трон и закрывает глаза. ]], code [[ back(); ]]}; {tag="agree_quest"}; {always=true,"[Кодировщик] Что ты хочешь, чтобы я принес?", [[Вождь отвечает: "Первая вещь, что мне нужна -- это светящаяся капсула из вашего города". ]], code [[ dyp_quest_state = 1; pret(); ]]}; diff --git a/utils.lua b/utils.lua --- a/utils.lua +++ b/utils.lua @@ -165,9 +165,12 @@ end); function npc(tab) if (not tab.act) then tab.act = function(s) - if (s.dlg) then - local dlg = EngineUtils.getValue(s.dlg, s); - walkin(dlg); + local dlg = nil; + if s.dlg then + dlg = EngineUtils.getValue(s.dlg, s); + end; + if dlg then + walkin(dlg); else local phrases = EngineUtils.getValue(s.phrases, s); return phrases[rnd(#phrases)];