diff --git a/atlantis_catching_the_tail.lua b/atlantis_catching_the_tail.lua deleted file mode 100644 --- a/atlantis_catching_the_tail.lua +++ /dev/null @@ -1,1413 +0,0 @@ ---[[ - iraa'pha'anot'rr -]] -ctt_iraa_city = room { - nam = "Центр Ираафаанотра"; - dsc = [[ - Вы находитесь у центра навьярского поселения Ираафаанотр. Поверхность под вами словно сделана из цельного куска камня. Несколько каменных строений возвышаются поблизости. - ]]; - underwater = true; - entered = function(s) - if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0 and not char_learr.follow) then - pr [[ - Леарр входит в шлюз вслед за вами: "Я вместе-с-тобой-пойду". - ]]; - - char_learr:accompany(true); - char_radcliffe:accompany(false); - char_wright:accompany(false); - char_anna:accompany(false); - elseif (ArrayUtils.indexOf(pl.party, 'anna') ~= 0 and not char_anna.follow) then - pr [[ - Анна входит в шлюз вслед за вами: "Я пойду вместе с вами, вам наверняка понадобится помощь". - ]]; - char_learr:accompany(false); - char_radcliffe:accompany(false); - char_wright:accompany(false); - char_anna:accompany(true); - end; - end; - obj = { - "ctt_iraa_obelisk", - "ctt_iraa_chieftain", - "ctt_iraa_guards" - }; -}; - -ctt_iraa_obelisk = obj { - nam = "ctt_iraa_obelisk"; - dsc = [[ - Недалеко от вас стоит {обелиск}, на котором светящимися красками нанесено название города. - ]]; - act = function(s) - if (ctt_iraaphaanotrr_chieftain.state == 1) then - iraaphaanotrr_found = true; - - pr [[ - Каменный обелиск, на который нанесено название города. Внизу вы видите какие-то символы, но вы не понимаете их назначения. - ]]; - if (char_learr.follow) then - pr [[ - По головным плавникам Леарр бегут цветные полосы: "[Схема показывает к-храму-дорогу. Когда мы на-левиафан-вернемся, я покажу как добраться туда]". - ]]; - end; - if (char_anna.follow) then - pr [[ - Анна подходит к вам и внимательно осматривает символы. вы слышите ее голос в динамиках: "Это путь к храму. Когда вернемся на Левиафан, я покажу это место на нашей карте". - ]]; - end; - else - pr [[ - Каменный обелиск, на который нанесено название города. Внизу вы видите какие-то символы, но вы не понимаете их назначения. - ]]; - end; - end; -}; - -ctt_iraa_guards = npc { - nam = "ctt_iraa_guards"; - dsc = [[ - Рядом с вождем стоят двое {стражников}, вооруженных копьями. - ]]; - phr = { - [[ - "Ты с-вождем-говори". - ]], - [[ - "Что ты хочешь?" - ]], - [[ - "Я ничего-знаю. Ты вождя-спроси". - ]] - }; -}; - -ctt_iraa_chieftain = npc { - var { - state = 0; - }; - nam = "ctt_iraa_chieftain"; - dsc = [[ - Перед вами стоит {вождь} Ираафаанотра. - ]]; - dlg = "ctt_iraa_chieftain_dlg"; -}; - -ctt_iraa_chieftain_dlg = dlg { - nam = "Вождь Ираафаанотра"; - entered = function(s) - if (have(item_navjiarr_chart_1)) then - pon("charts"); - else - poff("charts"); - end; - return [[ - Перед вами стоит вождь Ираафаантора - немолодой навьяр. На шее у него коралловое ожерелье. Он внимательно осматривает вас. После чего по его головным плавникам начинают бежать цветные полосы: "[Мы рады-видеть вас. Я знаю, зачем вы пришли]". - ]]; - end; - phr = { - {tag="charts", false, "Мне нужны карты из храма", [[ - Вождь отрицательно качает головой: "[Мы не дадим их вам сейчас]". - ]]}; - {"Вы можете нам помочь?", [[ - Вождь кивает: "[Вы идите в храм. Вы там что ищете найдете. Вы возвращайтесь потом. Я помогу вам еще]". - ]]}; - {tag="temple", false, "Как мы найдем храм?", [[ - Вождь указывает на символы в нижней части обелиска. - ]], code [[ - ctt_iraaphaanotrr_chieftain.state = 1; - ]]}; - {always=true, "Мы пойдем", [[ - Вождь прощается с вами: "[Вы возвращайтесь. Нам есть что обсудить]". - ]], code = [[ - back(); - ]]}; - }; -}; - - -ctt_iraa_near_temple = room { - var { - state = 0; - }; - nam = "Храм Ираафаанотра, вход"; - underwater = true; - dsc = [[ - Храм Ираафаанотра представляет собой обычную пещеру в скале неподалеку от города. Над входом в пещеру вытесан символ, раскрашенный цветами Ираафаанотра. - ]]; - entered = function(s) - if (char_anna.follow and s.state == 0) then - pr [[ - В динамиках скафандра вы слышите голос Анны Рэдклифф: "Этот символ - ни что иное, как карта, указывающая путь к городу. В отличие от самого города, здесь я не вижу указаний ни на одно место, кроме храма и Ираафаанотра". - ]]; - end; - s.state = 1; - end; - way = { - vroom("Войти", "ctt_iraa_temple_entrance"); - vroom("В Левиафан", "leviathan_airlock"); - }; -}; - -ctt_iraa_temple_entrance = darkroom { - nam = "Храм Ираафаанотра, первый этаж"; - dsc_halflit = [[ - Вы находитесь в небольшом темном проходе естественного происхождения. Проход позади вас ведет к выходу. Перед собой вы видите узкий проход, ведущий вглубь пещеры. - ]]; - dsc_dark = [[ - В темноте вы с трудом различаете очертания стен пещеры. - ]]; - entered = function(s) - if (char_anna.follow) then - char_anna.accompany(false); - pr [[ - В динамиках вы слышите голос Анны Рэдклифф: "Глаза навьяров лучше приспособлены к темноте, поэтому они нормально ориентируются в этих помещениях. Будь готов к тому, что с зажженой лампой ты не увидишь всего. Я подожду тебя здесь". - ]]; - end; - - if (char_learr.follow) then - char_learr.accompany(false); - pr [[ - Вы видите цветный полосы, бегущие по плавникам Леарр: "Уильям-ты в-полной-темноте-только-все-увидишь. Свет-здесь-не-друг. Я здесь-тебя-жду". - ]]; - end; - end; - obj = { - "ctt_iraa_l1_hint" - }; - way = { - kh_vroom("Вглубь пещеры", "ctt_iraa_l1_front", 1); - kh_vroom("К выходу", "ctt_iraa_near_temple", 2); - }; -}; - -ctt_iraa_l1_hint = obj { - nam = "ctt_iraa_l1_hint"; - dsc = function(s) - if (pl.has_light) then - return [[ - На полу перед вами лежит большая металлическая {пластина}, покрытая странными узорами. - ]]; - else - return [[ - На полу перед вами лежит большая металлическая {пластина}, покрытая узорами, отражающими свет проникающий от входа. - ]]; - end; - end; - act = function(s) - if (pl.has_light) then - return [[ - Вы рассматриваете пластину со всех сторон, но не можете понять, для чего она здесь. - ]]; - else - return [[ - В темноте вы видите проступающие на пластине контуры коридора: - 00110 - 00010 - 0K111 - K1001 - 0011K - ]]; - end; - end; -}; - -ctt_iraa_l1_front = darkroom { - nam = "Храм Ираафаанотра, первый этаж"; - dsc_halflit = [[ - Вы стоите перед входом в большую комнату. В отличие от коридора в котором вы находитесь, к ее созданию явно причастны разумные существа. - Перед собой вы видите прямоугольное помещение разделенное на двадцать пять квадратов, - ]]; - dsc_dark = [[ - Вы стоите посреди темной пещеры. В темноте вы не видите даже пути назад. - ]]; - way = { - kh_vroom("Вглубь пещеры", "ctt_iraa_l1", 1); - kh_vroom("К выходу", "ctt_iraa_temple_entrance", 1); - }; -}; - -ctt_iraa_l1_map = { - {0, 0, 1, 1, "item_ctt_iraa_key3"}; - {"item_ctt_iraa_key2", 1, 0, 0, 1}; - {0, "item_ctt_iraa_key1", 1, 1, 1}; - {0, 0, 0, 1, 0}; - {0, 0, 1, 1, 0}; -}; - -ctt_iraa_l1 = darkroom { - var { - px = 3; - py = 1; - }; - nam = "Храм Ираафаанотра, первый этаж"; - forcedsc = true; - - entered = function(s) - if (where(item_ctt_iraa_key1) ~= pl) then - item_ctt_iraa_key1:disable(); - end; - if (where(item_ctt_iraa_key2) ~= pl) then - item_ctt_iraa_key2:disable(); - end; - if (where(item_ctt_iraa_key3) ~= pl) then - item_ctt_iraa_key3:disable(); - end; - - if (ctt_iraa_l1_map[s.py][s.px] ~= 1 and ctt_iraa_l1_map[s.py][s.px] ~= 0 and where(ctt_iraa_l1_map[s.py][s.px]) ~= pl) then - print "enable item" - stead.ref(ctt_iraa_l1_map[s.py][s.px]):enable(); - end; - end; - - dsc_halflit = function(s) - - end; - - dsc_dark = [[ - Вы стоите в темном помещении. Ни единого проблеска света. - ]]; - - obj = { - "item_ctt_iraa_key1", - "item_ctt_iraa_key2", - "item_ctt_iraa_key3" - }; - - way = { - kh_vroom("Вперед", function(s) - if (ctt_iraa_l1.px == 4 and ctt_iraa_l1.py == 5) then - return ctt_iraa_l1_end; - end; - - ctt_iraa_l1.py = ctt_iraa_l1.py + 1; - - if (ctt_iraa_l1.py == 5 and ctt_iraa_l1.px ~= 3) then - path("Вперед", ctt_iraa_l1):disable(); - else - path("Вперед", ctt_iraa_l1):enable(); - end; - - if (ctt_iraa_l1_map[ctt_iraa_l1.py][ctt_iraa_l1.px] == 0) then - return "game_over_trap"; - else - return "ctt_iraa_l1"; - end; - end, 1); - kh_vroom("Назад", function(s) - if (px == 3 and py == 1) then - return ctt_iraa_l1_front; - end; - - ctt_iraa_l1.py = ctt_iraa_l1.py - 1; - - if (ctt_iraa_l1.py == 1 and ctt_iraa_l1.px ~= 3) then - path("Назад", ctt_iraa_l1):disable(); - else - path("Назад", ctt_iraa_l1):enable(); - end; - - if (ctt_iraa_l1_map[ctt_iraa_l1.py][ctt_iraa_l1.px] == 0) then - return "game_over_trap"; - else - return "ctt_iraa_l1"; - end; - end, 1); - kh_vroom("Налево", function(s) - ctt_iraa_l1.px = ctt_iraa_l1.px - 1; - - if (ctt_iraa_l1.px == 1) then - path("Налево", ctt_iraa_l1):disable(); - else - path("Налево", ctt_iraa_l1):enable(); - end; - - if (ctt_iraa_l1_map[ctt_iraa_l1.py][ctt_iraa_l1.px] == 0) then - return "game_over_trap"; - else - return "ctt_iraa_l1"; - end; - end, 1); - kh_vroom("Направо", function(s) - ctt_iraa_l1.px = ctt_iraa_l1.px + 1; - - if (ctt_iraa_l1.px == 5) then - path("Направо", ctt_iraa_l1):disable(); - else - path("Направо", ctt_iraa_l1):enable(); - end; - - if (ctt_iraa_l1_map[ctt_iraa_l1.py][ctt_iraa_l1.px] == 0) then - return "game_over_trap"; - else - return "ctt_iraa_l1"; - end; - end, 1); - }; -}; - -item_ctt_iraa_key1 = obj { - nam = "item_ctt_iraa_key1"; - disp = "Красный ключ"; - seen_level = 1; - dsc = [[ - На полу рядом с вами валяется небольшой {ключик}. - ]]; - inv = [[ - Небольшой коралловый ключик красноватого цвета. - ]]; - tak = [[ - Вы забираете ключик себе. - ]]; -}; - -item_ctt_iraa_key2 = obj { - nam = "item_ctt_iraa_key2"; - disp = "Зеленый ключ"; - seen_level = 1; - dsc = [[ - На полу рядом с вами валяется небольшой {ключик}. - ]]; - inv = [[ - Небольшой коралловый ключик зеленоватого цвета. - ]]; - tak = [[ - Вы забираете ключик себе. - ]]; -}; - -item_ctt_iraa_key3 = obj { - nam = "item_ctt_iraa_key3"; - disp = "Синий ключ"; - seen_level = 1; - dsc = [[ - На полу рядом с вами валяется небольшой {ключик}. - ]]; - inv = [[ - Небольшой коралловый ключик синеватого цвета. - ]]; - tak = [[ - Вы забираете ключик себе. - ]]; -}; - -ctt_iraa_l1_end = darkroom { - nam = "Храм Ираафаанотра, первый этаж"; - dsc_halflit = [[ - Вы находитесь в небольшой пещере перед массивной каменной дверью. Позади вас - главный зал первого этажа храма. - ]]; - dsc_dark = [[ - Вы находитесь в темной пещере. - ]]; - way = { - kh_vroom("Подняться", "ctt_iraa_l2", 1):disable(); - kh_vroom("Назад", "ctt_iraa_l1", 1); - }; - - life = function(s) - if (ctt_iraa_keyhole1.key_in == item_ctt_iraa_key3 and - ctt_iraa_keyhole2.key_in == item_ctt_iraa_key1 and - ctt_iraa_keyhole3.key_in == item_ctt_iraa_key2) then - path("Подняться"):enable(); - else - path("Подняться"):disable(); - end; - end; - - obj = { - 'ctt_iraa_keyholes', - 'ctt_iraa_keyhole1', - 'ctt_iraa_keyhole2', - 'ctt_iraa_keyhole3' - }; -}; - -ctt_iraa_keyholes = obj { - nam = "ctt_iraa_keyholes"; - seen_level = 2; - dsc = function(s) - if (pl.has_light) then - return [[ - Перед собой вы видите три замочные скважины, расположенные одна над другой, визуально почти ничем не отличающиеся: - ]]; - else - return [[ - Перед собой вы видите три замочные скважины, расположенные одна над другой: - ]]; - end; - end; -}; - -ctt_iraa_keyhole1 = obj { - var = { - key_in = nil - }; - nam = "ctt_iraa_keyhole1"; - seen_level = 2; - dsc = function(s) - if (s.key_in) then - return [[ - В {верхнюю скважину} вставлен ключ. ^ - ]]; - elseif (pl.has_light) then - return [[ - {Верхняя скважина} пуста. ^ - ]]; - else - return [[ - Из {верхней скважины} исходит слабое синеватое свечение. - ]]; - end; - end; -}; - -ctt_iraa_keyhole2 = obj { - var = { - key_in = nil; - }; - nam = "ctt_iraa_keyhole2"; - seen_level = 2; - dsc = function(s) - if (s.key_in) then - return [[ - В {среднюю скважину} вставлен ключ. ^ - ]]; - elseif (pl.has_light) then - - return [[ - {Средняя скважина} пуста. ^ - ]]; - else - return [[ - Из {средней скважины} исходит слабое красноватое свечение. - ]]; - end; - end; -}; - -ctt_iraa_keyhole3 = obj { - var = { - key_in = nil; - }; - nam = "ctt_iraa_keyhole1"; - seen_level = 2; - dsc = function(s) - if (s.key_in) then - return [[ - В {нижнюю скважину} вставлен ключ. ^ - ]]; - elseif (pl.has_light) then - return [[ - {Нижняя скважина} пуста. ^ - ]]; - else - return [[ - Из {нижней скважины} вы видите слабое зеленоватое свечение. - ]]; - end; - end; - use = function(s, o) - if (s.key_in) then - take(s.key_in); - s.key_in = nil; - return [[ - Вы забираете ключ. - ]]; - else - if (o == item_ctt_iraa_key1 or o == item_ctt_iraa_key2 or o == item_ctt_iraa_key3) then - s.key_in = o; - remove(s.key_in); - return [[ - Вы вставляет ключ в скважину. - ]]; - end; - return [[ - Это сюда не подходит. - ]]; - end; - end; -}; - -ctt_iraa_l2 = darkroom { - nam = "Храм Ираафаанотра, второй этаж"; - dsc_halflit = [[ - Большая круглая пещера. В центре ее вы видите три совершенно одинаковых пьедестала - ]]; - dsc_dark = [[ - В темноте вы ничего не видите. - ]]; - way = { - kh_vroom("Подняться", "ctt_iraa_l3", 1):disable(); - kh_vroom("Спуститься", "ctt_iraa_l1_end", 1); - }; - obj = { - "ctt_iraa_pedestal1"; - "ctt_iraa_pedestal2"; - "ctt_iraa_pedestal3"; - }; -}; - -item_ctt_iraa_spear = obj { - nam = "item_ctt_iraa_spear"; - disp = "Копье"; - inv = [[ - Коралловое копье. - ]]; -}; - -ctt_iraa_pedestal1 = obj { - var { - state = 0; - }; - nam = "ctt_iraa_pedestal1"; - dsc = function(s) - if (s.state == 0) then - return [[ - На {пьедестале слева} установлено коралловое копье. - ]]; - else - return [[ - Пьедестал слева пуст. - ]]; - end; - end; - act = function(s) - if (s.state == 0) then - s.state = 1; - return [[ - Копье рассыпается у вас в руках. - ]]; - else - return [[ - Пьедестал пуст. - ]]; - end; - end; -}; - -ctt_iraa_pedestal2 = obj { - var { - state = 0; - }; - nam = "ctt_iraa_pedestal2"; - dsc = function(s) - if (s.state == 0) then - return [[ - На {центральном пьедестале} установлено коралловое копье. - ]]; - else - return [[ - Центральный пьедестал пуст. - ]]; - end; - end; - act = function(s) - if (s.state == 0) then - s.state = 1; - take(item_ctt_iraa_spear); - path("Подняться"):enable(); - return [[ - Вы забираете копье. Из дальнего конца пещеры вы слышите скрежет и видите, как массивная каменная плита открывает проход на третий этаж. - ]]; - else - return [[ - Пьедестал пуст. - ]]; - end; - end; -}; - -ctt_iraa_pedestal3 = obj { - var { - state = 0; - }; - nam = "ctt_iraa_pedestal1"; - dsc = function(s) - if (s.state == 0) then - return [[ - На {пьедестале справа} установлено коралловое копье. - ]]; - else - return [[ - Пьедестал справапуст. - ]]; - end; - end; - act = function(s) - if (s.state == 0) then - s.state = 1; - return [[ - Копье рассыпается у вас в руках. - ]]; - else - return [[ - Пьедестал пуст. - ]]; - end; - end; -}; - -ctt_iraa_l3 = darkroom { - nam = "Храм Ираафаанотра, третий этаж"; - dsc_halflit = [[ - Вы находитесь в небольшом коридоре. - ]]; - dsc_dark = [[ - В темноте вы ничего не видите, кроме зияющего вдалеке выхода наружу. - ]]; - obj = { - "ctt_iraa_statue1"; - "ctt_iraa_statue2"; - "ctt_iraa_statue3"; - }; - way = { - kh_vroom("Спуститься", "ctt_iraa_l2", 1); - kh_vroom("Подняться", "ctt_iraa_top", 1); - }; -}; - -ctt_iraa_statue1 = obj { - var { - has_spear = false; - }; - nam = "ctt_iraa_statue1"; - seen_level = 1; - dsc = function(s) - if (s.has_spear) then - return [[ - Первая {статуя} держит в руках коралловое копье. - ]]; - else - return [[ - Первая {статуя} стоит с протянутыми руками. - ]]; - end; - end; - act = function(s) - if (s.has_spear) then - take(item_ctt_iraa_spear); - - return [[ - Вы забираете копье. - ]]; - end; - end; - use = function(s, o) - if (o == item_ctt_iraa_spear) then - remove(item_ctt_iraa_spear); - s.has_spear = true; - return [[ - Вы помещаете копье в протянутые руки статуи. Ничего не происходит - ]]; - end; - - return [[ - Это сюда не подойдет. - ]]; - end; -}; - -ctt_iraa_statue2 = obj { - var { - has_spear = false; - }; - nam = "ctt_iraa_statue2"; - seen_level = 1; - dsc = function(s) - if (s.has_spear) then - return [[ - Вторая {статуя} держит в руках коралловое копье. - ]]; - else - return [[ - Вторая {статуя} стоит с протянутыми руками. - ]]; - end; - end; - use = function(s, o) - if (o == item_ctt_iraa_spear) then - remove(item_ctt_iraa_spear); - take(item_navjiarr_chart_iraa); - s.has_spear = true; - return [[ - Вы помещаете копье в протянутые руки статуи. Табличка на постаменте статуи отодвигается в сторону и в открывшейся нише вы находите фрагмент навьярской карты. - ]]; - end; - - return [[ - Это сюда не подойдет. - ]]; - end; -}; - -ctt_iraa_statue3 = obj { - var { - has_spear = false; - }; - nam = "ctt_iraa_statue3"; - seen_level = 1; - dsc = function(s) - if (s.has_spear) then - return [[ - Последняя {статуя} держит в руках коралловое копье. - ]]; - else - return [[ - Последняя {статуя} стоит с протянутыми руками. - ]]; - end; - end; - act = function(s) - if (s.has_spear) then - take(item_ctt_iraa_spear); - - return [[ - Вы забираете копье. - ]]; - end; - end; - use = function(s, o) - if (o == item_ctt_iraa_spear) then - remove(item_ctt_iraa_spear); - s.has_spear = true; - return [[ - Вы помещаете копье в протянутые руки статуи. Ничего не происходит - ]]; - end; - - return [[ - Это сюда не подойдет. - ]]; - end; -}; - -ctt_iraa_top = room { - nam = "Храм Ираафаанотра, вершина скалы"; - dsc = [[ - Вы стоите на вершине скалы, рядом с задним входом в храм Ираафаанотра. Внизу вы видите ожидающий вас Левиафан. Аккуратная лестница, вырезанная в скале позволит вам легко спуститься вниз, к гланому входу. - ]]; - way = { - kh_vroom("Вернуться в храм", "ctt_iraa_l3"); - kh_vroom("Спуститься к главному входу", "ctt_iraa_near_temple"); - }; -}; - ---[[ - Dyp'atre'anot'rr -]] - -ctt_dyp_city = room { - nam = "Дипатреанотр"; - dsc = [[ - Вы находитесь на окраине Дипатреанотра. - ]]; - underwater = true; - way = { - kh_vroom("В Левиафан", "leviathan_airlock"); - }; - entered = function(s) - if ArrayUtils.indexOf(pl.party, 'anna') ~= 0 and not char_anna.follow then - char_learr:accompany(false); - char_radcliffe:accompany(false); - char_wright:accompany(false); - char_anna:accompany(true); - return [[ - Вы не успеваете выйти, как в шлюз входит Анна. Она говорит: "Я пойду с вами. Я знаю навьярский язык и, надеюсь, буду полезна". - ]]; - end; - end; - obj = { - "ctt_dyp_guards", - "ctt_dyp_priest" - }; -}; - -ctt_dyp_guards = npc { - nam = "ctt_dyp_guards"; - dsc = [[ - Четверо {стражников} стоят перед вами. Они запрещают вам входить в город: "[Ты в-город-не-пройдешь]". - ]]; - phr = { - "Ты в-город-не-пройдешь", - "Ты не-входи", - "He'vji'a'rr не-войдет" - }; -}; - -ctt_dyp_priest = npc { - nam = "ctt_dyp_priest"; - dsc = [[ - Рядом со стражниками стоит пожилой {навьяр}. На шее у него ожерелье из кораллов, а в правой руке - посох, на вершине которого укреплен металлический диск. - ]]; - dlg = "ctt_dyp_priest_dlg"; -}; - -ctt_dyp_priest_dlg = dlg { - var { - state = 0; - }; - nam = "Жрец"; - entered = function(s) - if (s.state == 0 and have(item_navjiarr_chart_1)) then - pon("have_map"); - end; - return [[ - Навьяр привествует вас: "[Я рад-видеть вас]". - ]]; - end; - phr = { - {"[Я ищу Лсэрианотр]", [[ - Навьяр выглядит изумленно. Стражники переглядываются, не зная, как быть. Некоторое время он раздумывает, как поступить и наконец отвечает: [Хевьяр туда не идет]. - ]], code [[ psub('lseryanotrr'); ]]}; - {tag="have_map", false, "[Мне нужня эта карты][показать фрагмент карты]", [[ - Навьяр с интересом разглядывает металлическую пластинку. Через некоторое время он сообщает вам: "[У нас есть то, что вы ищете. Это в храме. Хевьяр должен пройти испытание, чтобы попасть в храм]". Он рисует посохом на земле схему пути в храм Дипатреанотра. После чего стирает ее и говорит: "Ты возвращайся, когда пройдешь испытание". - ]], code [[ ctt_dyp_priest_dlg.state = 1; dypatreanotrr_temple_found = true; back(); ]]}; - {always=true, "[Я пойду]", [[ - Навьяр остается не подвижен. - ]], code [[ back(); ]]}; - {tag="lseryanotrr"}; - {"[Почему?]", [[ - [Лсэрианотр - город навьяров. Хевьяр туда не идет]. - ]]}; - {"[Вы знаете, где он находится?]", [[ - [Хевьяр туда не идет. Об этом не говорим больше]. - ]], code [[ pret(); ]]}; - }; -}; - -ctt_dyp_temple_l1_map = { - {"в югозападном углу", "у южной стены", "в юговосточном углу"}, - {"у западной стены", "в центре", "у восточной стены"}, - {"в северозападном углу", "у северной стены", "в северовосточном углу"}, -}; - -ctt_dyp_temple_l1 = room { - var { - was_seen = false; - px = 3; - py = 1; - path = {1}; - cpath = {1,4,7,8,9,6,3,2,5}; - solved = true; - }; - nam = "Храм Дипатреанотра, первый этаж"; - dsc = function(s) - if (s.solved) then - return [[ - Вы находитесь в большом квадратном зале. Пол состоит из девяти нажимных плит, на одной из которых вы и стоите. Все плиты находятся в нажатом состоянии. - ]]; - else - return [[ - Вы находитесь ]].. ctt_dyp_temple_l1_map[s.py][s.px] ..[[ зала. Пол состоит из девяти нажимных плит, на одной из которых вы и стоите. - ]]; - end; - end; - check = function(s) - if (s.solved) then - return; - end; - local pos = s.px * s.py; - local has = false; - for i = 1, #s.path do - if (s.path[i] == pos) then - has = true; - end; - end; - if (not has) then - if (s.cpath[#s.path + 1] == pos) then - table.insert(s.path, pos); - else - s.path = { pos }; - end; - end; - if (#s.path == #s.cpath) then - s.solved = true; - way("На север"):disable(); - way("На юг"):disable(); - way("На восток"):disable(); - way("На запад"):disable(); - way("Выйти из храма"):enable(); - way("Пройти дальше"):enable(); - else - if (s.px == 1) then - way("На запад"):disable(); - else - way("На запад"):enable(); - end; - if (s.px == 3) then - way("На восток"):disable(); - else - way("На восток"):enable(); - end; - - if (s.py == 1) then - way("На юг"):disable(); - else - way("На юг"):enable(); - end; - if (s.py == 3) then - way("На север"):disable(); - else - way("На север"):enable(); - end; - end; - end; - entered = function(s) - s:check(); - if (not s.was_seen) then - s.was_seen = true; - pr [[ - Как только вы входите в храм, дверь за вами закрывается. Вы оказываетесь в запертой комнате. Пол и потолок комнаты покрыты светящимися водорослями, позволяя вам без проблем видеть все находящееся внутри. - ]]; - end; - end; - way = { - kh_vroom("На север", function(s) - ctt_dyp_temple_l1.py = ctt_dyp_temple_l1.py + 1; - ctt_dyp_temple_l1:check(); - return false; - end); - kh_vroom("На восток", function(s) - ctt_dyp_temple_l1.px = ctt_dyp_temple_l1.px - 1; - ctt_dyp_temple_l1:check(); - return false; - end); - kh_vroom("На запад", function(s) - ctt_dyp_temple_l1.px = ctt_dyp_temple_l1.px + 1; - ctt_dyp_temple_l1:check(); - return false; - end); - kh_vroom("На юг", function(s) - ctt_dyp_temple_l1.py = ctt_dyp_temple_l1.py - 1; - ctt_dyp_temple_l1:check(); - return false; - end); - kh_vroom("Выйти из храма", "ctt_dyp_temple_entrance"):disable(); - kh_vroom("Пройти дальше", "ctt_dyp_temple_l2"):disable(); - }; -}; - -ctt_dyp_button_ctr = function(nam, index) - return obj { - nam = nam; - dsc = function(s) - local im = "images/dyp_bg.png"; - for i = 1, #ctt_dyp_temple_l2.buttons[index] do - im = im .. ";images/dyp_" .. tostring(ctt_dyp_temple_l2.buttons[index][i]) .. ".png"; - end; - if (ctt_dyp_temple_l2.pressed_buttons[index]) then - return "{Рычаг с символами " .. img(im) .."} включен.^"; - else - return "{Рычаг с символами " .. img(im) .."} выключен.^"; - end; - end; - act = function(s) - ctt_dyp_temple_l2:check(index); - return [[ - Вы переключаете рычаг и узор на полу комнаты меняется - ]]; - end; - }; -end; - -ctt_dyp_temple_l2 = room { - var { - active_parts = {false, false, false, false, false, false, false, false, false, false, false, false}; - pressed_buttons = {false, false, false, false, false, false, false, false}; - solved = false; - }; - buttons = { - {1, 5, 9, 11, 12}; - {1, 2, 3, 4}; - {4, 8, 10, 11, 12}; - {2, 4, 5, 6}; - {1, 5, 7, 9, 10, 11, 12}; - {2, 6, 9, 10, 12}; - {1, 3, 7, 8}; - {3, 7, 9, 10, 11}; - }; - pic = function(s) - local pic = 'images/dyp_bg.png'; - local cnt = 0; - for i = 1, #s.active_parts do - if (s.active_parts[i]) then - cnt = cnt + 1; - pic = pic .. ";images/dyp_" .. tostring(i) .. ".png"; - end; - end; - if (cnt > 0) then - return pic; - else - return nil; - end; - end; - nam = "Храм Дипатреанотра, второй этаж"; - dsc = [[ - Большой круглый плохо освещенный зал. В центре зала расположено восемь рычагов, рядом с которыми нанесены какие-то символы. - ]]; - obj = { - ctt_dyp_button_ctr("ctt_dyp_b1", 1); - ctt_dyp_button_ctr("ctt_dyp_b2", 2); - ctt_dyp_button_ctr("ctt_dyp_b3", 3); - ctt_dyp_button_ctr("ctt_dyp_b4", 4); - ctt_dyp_button_ctr("ctt_dyp_b5", 5); - ctt_dyp_button_ctr("ctt_dyp_b6", 6); - ctt_dyp_button_ctr("ctt_dyp_b7", 7); - ctt_dyp_button_ctr("ctt_dyp_b8", 8); - }; - way = { - kh_vroom("На первый этаж", "ctt_dyp_temple_l1"):disable(); - kh_vroom("На третий этаж", "ctt_dyp_temple_l3"):disable(); - }; - check = function(s, index) - s.pressed_buttons[index] = not s.pressed_buttons[index]; - - for i = 1, #s.active_parts do - s.active_parts[i] = false; - end; - - for i = 1, #s.pressed_buttons do - if (s.pressed_buttons[i]) then - for j = 1, #s.buttons[i] do - s.active_parts[s.buttons[i][j]] = not s.active_parts[s.buttons[i][j]]; - end; - end; - end; - - s.solved = true; - for i = 1, #s.active_parts do - if (not s.active_parts[i]) then - s.solved = false; - break; - end; - end; - - if (s.solved) then - path("На первый этаж"):enable(); - path("На третий этаж"):enable(); - end; - end; -}; - -ctt_dyp_temple_l3 = room { - nam = "Храм Дипатреанотра, третий этаж"; - dsc = [[ - Небольшая овальная комната, в центре которой расположены три статуи. На стене выгравирована надпись на навьярском языке: "[Каждый получит свое. Воин - оружие. Мудрец - знания. Вождь - власть]". - ]]; - entered = function(s) - if (not ctt_dyp_statue1.looked) then - ctt_dyp_statue_ped1:disable(); - end; - if (not ctt_dyp_statue2.looked) then - ctt_dyp_statue_ped2:disable(); - end; - if (not ctt_dyp_statue3.looked) then - ctt_dyp_statue_ped3:disable(); - end; - if (not ctt_dyp_statue1.set or not ctt_dyp_statue2.set or not ctt_dyp_statue3.set) then - lifeon(s); - end; - end; - left = function(s) - lifeoff(s); - end; - life = function(s) - if (ctt_dyp_statue1.set and ctt_dyp_statue2.set and ctt_dyp_statue3.set) then - return [[ - Двери открываются, позволяя вам пройти дальше. - ]]; - end; - end; - way = { - kh_vroom("На второй этаж", "ctt_dyp_temple_l2"):disable(); - kh_vroom("Вглубь храма", "ctt_dyp_temple_corridor_1"):disable(); - }; - obj = { - 'ctt_dyp_spear', - 'ctt_dyp_statue1', - 'ctt_dyp_statue_ped1', - 'ctt_dyp_statue2', - 'ctt_dyp_statue_ped2', - 'ctt_dyp_statue3', - 'ctt_dyp_statue_ped3' - }; -}; - -ctt_dyp_spear = obj { - nam = "ctt_dyp_spear"; - dsc = [[ - На полу у входа лежит коралловое {копье}. - ]]; - act = function(s) - take(s); - return [[ - Вы поднимаете копье. - ]]; - end; -}; - -ctt_dyp_lightdisk = obj { - nam = "ctt_dyp_lightdisk"; - dsc = [[ - {светодиск}. - ]]; - act = function(s) - take(s); - return [[ - Вы поднимаете светодиск. - ]]; - end; -}; - -ctt_dyp_key = obj { - nam = "ctt_dyp_key"; - dsc = [[ - {ключ}. - ]]; - act = function(s) - take(s); - return [[ - Вы поднимаете ключ. - ]]; - end; -}; - -ctt_dyp_statue1 = obj { - var { - looked = false; - set = false; - }; - nam = "ctt_dyp_statue1"; - dsc = function(s) - if (s.set) then - return [[ - {Первая статуя} изображает навьяра, задумчиво смотрящего перед собой. В левой руке статуи лежит фигурка ската. - ]]; - else - return [[ - {Первая статуя} изображает навьяра, задумчиво смотрящего перед собой. Левая рука статуи вытянута, словно в ожидании чего-то. - ]]; - end; - end; - act = function(s) - if (not s.looked) then - s.looked = true; - ctt_dyp_statue_ped1:enable(); - return [[ - Вы замечаете выемку в пьедестале под статуей. - ]]; - else - return [[ - Вы не замечаете ничего интересного. - ]]; - end; - end; - use = function(s, o) - if (o == ctt_dyp_ray) then - remove(ctt_dyp_ray); - s.set = true; - return [[ - Вы помещаете фигурку ската в руку статуи. - ]]; - end; - end; -}; - -ctt_dyp_statue2 = obj { - var { - looked = false; - set = false; - }; - nam = "ctt_dyp_statue2"; - dsc = function(s) - if (s.set) then - return [[ - {Вторая статуя} изображает навьяра в боевой стойке. В правой руке статуи лежит фигурка акулы. - ]]; - else - return [[ - {Вторая статуя} изображает навьяра в боевой стойке. Правая рука статуи вытянута, словно в ожидании чего-то. - ]]; - end; - end; - act = function(s) - if (not s.looked) then - s.looked = true; - ctt_dyp_statue_ped2:enable(); - return [[ - Вы замечаете выемку в пьедестале под статуей. - ]]; - else - return [[ - Вы не замечаете ничего интересного. - ]]; - end; - end; - use = function(s, o) - if (o == ctt_dyp_shark) then - remove(ctt_dyp_shark); - s.set = true; - return [[ - Вы помещаете фигурку акулы в руку статуи. - ]]; - end; - end; -}; - -ctt_dyp_statue3 = obj { - var { - looked = false; - set = false; - }; - nam = "ctt_dyp_statue3"; - dsc = function(s) - if (s.set) then - return [[ - {Третья статуя} изображает навьяра, гордо смотрящего вперед. В правой руке статуи лежит фигурка навьяра. - ]]; - else - return [[ - {Третья статуя} изображает навьяра, гордо смотрящего вперед. Правая рука статуи вытянута, словно в ожидании чего-то. - ]]; - end; - end; - act = function(s) - if (not s.looked) then - s.looked = true; - ctt_dyp_statue_ped3:enable(); - return [[ - Вы замечаете выемку в пьедестале под статуей. - ]]; - else - return [[ - Вы не замечаете ничего интересного. - ]]; - end; - end; - use = function(s, o) - if (o == ctt_dyp_navjiarr) then - remove(ctt_dyp_navjiarr); - s.set = true; - return [[ - Вы помещаете фигурку навьяра в руку статуи. - ]]; - end; - end; -}; - -ctt_dyp_statue_ped1 = obj { - nam = "ctt_dyp_statue_ped1"; - dsc = [[ - В пьедестале первой статуи вы замечаете {выемку}. - ]]; - act = [[ - На пьедестале выгравировано копье. - ]]; - use = function(s, o) - if (o == ctt_dyp_spear) then - remove(ctt_dyp_spear); - take(ctt_dyp_shark); - return [[ - Копье полностью входит в выемку. В пьедестале открывается другая выемка, в которой лежит маленькая фигурка акулы. - ]]; - end; - end; -}; - -ctt_dyp_statue_ped2 = obj { - nam = "ctt_dyp_statue_ped2"; - dsc = [[ - В пьедестале второй статуи вы замечаете {выемку}. - ]]; - act = [[ - На пьедестале выгравирован ключ. - ]]; - use = function(s, o) - if (o == ctt_dyp_key) then - remove(ctt_dyp_key); - take(ctt_dyp_navjiarr); - return [[ - Ключ входит в выемку. В пьедестале открывается другая выемка, в которой лежит маленькая фигурка навьяра. - ]]; - end; - end; -}; - -ctt_dyp_statue_ped3 = obj { - nam = "ctt_dyp_statue_ped3"; - dsc = [[ - В пьедестале третьей статуи вы замечаете {выемку}. - ]]; - act = [[ - На пьедестале выгравирован ключ. - ]]; - use = function(s, o) - if (o == ctt_dyp_lightdisk) then - remove(ctt_dyp_lightdisk); - take(ctt_dyp_navjiarr); - return [[ - Светодиск входит в выемку. В пьедестале открывается другая выемка, в которой лежит маленькая фигурка ската. - ]]; - end; - end; -}; - -ctt_dyp_shark = obj { - nam = "ctt_dyp_shark"; - dsp = "Акула"; - inv = [[ - Каменная фигурка акулы. - ]]; -}; - -ctt_dyp_navjiarr = obj { - nam = "ctt_dyp_navjiarr"; - dsp = "Навьяр"; - inv = [[ - Каменная фигурка навьяра. - ]]; -}; - -ctt_dyp_ray = obj { - nam = "ctt_dyp_ray"; - dsp = "Скат"; - inv = [[ - Каменная фигурка ската. - ]]; -}; - -ctt_dyp_temple_corridor_1 = room { - nam = "Храм Дипатреанотра, коридор"; - dsc = [[ - Узкий извилистый темный коридор, ведущий куда-то вглубь скалы. - ]]; - way = { - kh_vroom("Идти дальше", "ctt_dyp_temple_corridor_2"); - kh_vroom("Идти назад", "ctt_dyp_temple_l3"); - }; -}; - -ctt_dyp_temple_corridor_2 = room { - nam = "Храм Дипатреанотра, коридор"; - dsc = [[ - Узкий извилистый темный коридор, ведущий куда-то вглубь скалы. - ]]; - way = { - kh_vroom("Идти дальше", "ctt_dyp_temple_corridor_3"); - kh_vroom("Идти назад", "ctt_dyp_temple_corridor_1"); - }; -}; - -ctt_dyp_temple_corridor_3 = room { - nam = "Храм Дипатреанотра, коридор"; - dsc = [[ - Конец коридора. Массивная каменная дверь закрывает проход. Перед дверью установлен небольшой пьедестал. - ]]; - way = { - kh_vroom("Выйти из храма", "ctt_dyp_temple_entrance"):disable(); - kh_vroom("Идти назад", "ctt_dyp_temple_corridor_2"); - }; - obj = { - "item_navjiarr_chart_dyp"; - }; -}; \ No newline at end of file diff --git a/atlantis_dlg.lua b/atlantis_dlg.lua --- a/atlantis_dlg.lua +++ b/atlantis_dlg.lua @@ -608,13 +608,8 @@ char_svetlova_dlg = dlg { else if (atl_iyh_state == 9) then atl_iyh_state = 10; - conflict_resolved = 1; + conflict_resolved = 1; psub('iyh_more'); - take("item_map_2"); - take("item_talk_device"); - take("item_navjiarr_chart_1"); - take("item_navjiarr_chart_2"); - take("item_navjiarr_chart_3"); if (atl_iyh_artifacts_on_atlantis) then return [[Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Добрый день, Дрейк. Мы изучили артефакты, найденные вами в храме. Среди всего прочего, мы нашли несколько фрагментов карты, которые я возвращаю вам - они понадобятся вам в ваших поисках. К сожалению, это именно что фрагменты и мы не можем по ним определить местоположение чего бы то ни было. Однако, недостающие фрагменты могут быть в расположенных неподалеку навьярских города - Дипатреанотре и Ираафаанотре". Она достает из-под стола небольшой чемоданчик с лампочками и кнопочками и вручает его вам: "Этот прибор позволит вам общаться с навьярами под водой. Просто набирайте слова как на клавиатуре печатной машинки, при этом будут последовательно зажигаться лампочки соответствующих цветов". Затем она достает карту, на которой отмечены Атлантида, Ираафаанотр и Дипатреанотр и так же отдает ее вам: "Вы можете взять эту карту". ]]; else diff --git a/atlantis_iyhehevjiarr.lua b/atlantis_iyhehevjiarr.lua --- a/atlantis_iyhehevjiarr.lua +++ b/atlantis_iyhehevjiarr.lua @@ -826,8 +826,7 @@ iyh_left_room_3 = room { kh_vroom("В скрытый проход", "iyh_temple_hidden_room_1"):disable(); }; obj = { - --"item_navjiarr_chart_1" - "iyh_old_navjiarr_body", + "iyh_old_navjiarr_body", "iyh_item_record", "iyh_room_wall", "iyh_room_wall_gap" @@ -1397,7 +1396,6 @@ iyh_outro_svetlova = room { remove(item_legend_of_dark_source); remove(item_legend_of_first_city); remove(item_legend_of_hunter); - remove(item_navjiarr_chart_1); remove(item_navjiarr_chart_2); remove(item_navjiarr_chart_3); end; @@ -1435,7 +1433,6 @@ iyh_outro_aikerrjarr = room { remove(item_legend_of_dark_source); remove(item_legend_of_first_city); remove(item_legend_of_hunter); - remove(item_navjiarr_chart_1); remove(item_navjiarr_chart_2); remove(item_navjiarr_chart_3); end; @@ -1458,6 +1455,7 @@ iyh_outro_learr_shockfish_dead = room { end; end; leviathan_cabin_3.lock = false; + remove(char_learr, where(char_learr)); remove(item_statuette); remove(item_temple_disk); @@ -1465,7 +1463,6 @@ iyh_outro_learr_shockfish_dead = room { remove(item_legend_of_dark_source); remove(item_legend_of_first_city); remove(item_legend_of_hunter); - remove(item_navjiarr_chart_1); remove(item_navjiarr_chart_2); remove(item_navjiarr_chart_3); end; @@ -1495,7 +1492,6 @@ iyh_outro_learr_temple_destroyed = room remove(item_legend_of_dark_source); remove(item_legend_of_first_city); remove(item_legend_of_hunter); - remove(item_navjiarr_chart_1); remove(item_navjiarr_chart_2); remove(item_navjiarr_chart_3); end; @@ -1532,7 +1528,6 @@ iyh_outro_learr = dlg { remove(item_legend_of_dark_source); remove(item_legend_of_first_city); remove(item_legend_of_hunter); - remove(item_navjiarr_chart_1); remove(item_navjiarr_chart_2); remove(item_navjiarr_chart_3); walk("iyh_outro_learr_2"); @@ -1546,7 +1541,6 @@ iyh_outro_learr = dlg { remove(item_legend_of_dark_source); remove(item_legend_of_first_city); remove(item_legend_of_hunter); - remove(item_navjiarr_chart_1); remove(item_navjiarr_chart_2); remove(item_navjiarr_chart_3); walk("iyh_outro_learr_2"); @@ -1560,7 +1554,6 @@ iyh_outro_learr = dlg { remove(item_legend_of_dark_source); remove(item_legend_of_first_city); remove(item_legend_of_hunter); - remove(item_navjiarr_chart_1); remove(item_navjiarr_chart_2); remove(item_navjiarr_chart_3); walk("iyh_outro_learr_2");