Changeset - 9c2c000e2bbd
[Not reviewed]
default
0 1 0
Silverwing - 6 years ago 2018-12-22 21:35:56

Chapter 1: Bug in Dypatreanotrr
1 file changed with 2 insertions and 2 deletions:
0 comments (0 inline, 0 general)
atlantis_dyp.lua
Show inline comments
 
@@ -16,772 +16,772 @@ global {
 
    dyp_lib_stone_state = 0;
 
};
 

	
 
--[[
 
Дипатреанотр город
 
]]
 

	
 
dyp_entry = lcutscene("dyp_entry", "Левиафан, рубка", [[Дипатреанотр расположен всего в нескольких часах пути от Атлантиды. Как только вы прибываете на место, вашим глазам открывается картина неприглядного поселения -- небольшой деревушки, состоящей из не более чем сотни домов, сгрудившихся вокруг обелиска в центре, посреди которой возвышается каменный обелиск. Вы не замечаете никаких улиц, кроме одной, соединящей дом вождя с центральной площадью. Вы направляете Левиафан к центру и субмарина, послушная вашим указаниям, замирает рядом с обелиском. ]], "Вы прибыли в Дипатреанотр. ", leviathan_wheelhouse);
 

	
 
dyp_center = room {
 
    nam = "dyp_center";
 
    underwater = true;
 
    handwheel_room = "dyp_temple_navigation";
 
    disp = "Дипатреанотр, центр";
 
    view = [[Левиафан находится над центром Дипатреанотра -- небольшого навьярского поселения. Вокруг небольшой центральной площади неровными кругами расположены небольшие каменные дома. Явно выраженные улицы отсутствуют, за исключением широкой, выложенной камнем дороги от площади до дома вождя. В другом конце площади расположено большое здание библиотеки. ]];
 
    dsc = [[Вы находитесь на центральной площади Дипатреанотра -- небольшого навьярского поселения. Вокруг небольшой центральной площади неровными кругами расположены небольшие каменные дома. Явно выраженные улицы отсутствуют, за исключением широкой, выложенной камнем дороги от площади до дома вождя. В другом конце площади расположено большое здание библиотеки. ]];
 
    obj = {
 
        "dyp_obelisk";
 
    };
 
    entered = function(s)
 
        if atl_rep_dyp < 0 then
 
            dypatreanotrr_night_found = true;
 
            return [[Ва встречают враждебные взгляды вооруженных навьяров. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("К библиотеке", function(s)
 
            if atl_rep_dyp < 0 then
 
                pr [[Группа вооруженных навьяров преграждает вам путь. ]];
 
                return false;
 
            end;
 
            return "dyp_library_entrance";
 
        end);
 
        kh_vroom("К дому вождя", function(s)
 
            if atl_rep_dyp < 0 then
 
                pr [[Группа вооруженных навьяров преграждает вам путь. ]];
 
                return false;
 
            end;
 
            return "dyp_chief_house_entrance"
 
        end);
 
        kh_vroom("В Левиафан", function(s)
 
            if atl_rep_dyp < 0 then
 
                pr [[Группа вооруженных навьяров преграждает вам путь. ]];
 
                return false;
 
            end;
 
            return "leviathan_airlock"
 
        end);
 
        kh_vroom("К окраине", function(s)
 
            if atl_rep_dyp < 0 then
 
                pr [[Группа вооруженных навьяров преграждает вам путь. ]];
 
                return false;
 
            end;
 
            return "dyp_outskirts"
 
        end);
 
    };
 
};
 

	
 
dyp_outskirts = room {
 
    nam = "dyp_outskirts";
 
    underwater = true;
 
    disp = "Дипатреанотр, окраина";
 
    dsc = [[Вы стоите на южной окраине Дипатреанотра. К северу от вас расположены неказистые каменные дома жителей города. Отсюда прекрасно виден зависший над центральной площадью Левиафан. ]];
 
    obj = {
 
        "dyp_guardian";
 
    };
 
    way = {
 
        kh_vroom("К обелиску", "dyp_center");
 
    };
 
};
 

	
 
dyp_guardian = npc {
 
    nam = "dyp_guardian";
 
    dsc = [[Рядом с вами неспешно прогуливается {стражник}, вооруженный копьем. Кажется, ваш вид его нисколько не удивляет и не беспокоит. ]];
 
    phrases = function(s)
 
        if language_known then
 
            return {
 
                [[Стражник не обращает на вас внимания. ]];
 
                [[По головным плавникам стражника бегут цветные полосы: "Ты говори с вождем, не со мной". ]];
 
            };
 
        else
 
            return {
 
                [[Стражник не обращает на вас внимания. ]];
 
                [[По головным плавникам стражника бегут цветные полосы. К сожалению, вы не понимаете, что он пытается вам сказать. ]];
 
            };
 
        end;
 
    end;
 
    dlg = function(s)
 
        if dyp_quest_state == 4 then
 
            return "dyp_guardian_dlg";
 
        end;
 
    end;
 
};
 

	
 
dyp_guardian_dlg = dlg {
 
    nam = "dyp_guardian_dlg";
 
    disp = "Стражник";
 
    entered = function(s)
 
        if language_known then
 
            psub("speak");
 
            return [[По головным плавникам стражника бегут цветные полосы: "Ты говори с вождем, не со мной". ]];
 
        else
 
            psub("no_speak");
 
            return [[По головным плавникам стражника бегут цветные полосы. К сожалению, вы не понимаете, что он пытается вам сказать. ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="no_speak"};
 
        {always = true; "[Уйти]", code [[ back(); ]]};
 
        {tag="speak"};
 
        {"[Кодировщик] Я ищу навьяра по имени Аэдиенрр. Он проходил здесь недавно.", [[Стражник кивает: "Аэдиенрр из Ираафаанотра ушел на восток несколько дней назад. Кажется, он направлялся к обелискам". ]], code [[ dyp_quest_state = 5; ]]};
 
        {always = true; "[Уйти]", code [[ back(); ]]};
 
    };
 
};
 

	
 
dyp_obelisk = obj {
 
    nam = "dyp_obelisk";
 
    dsc = [[В центре площади стоит большой каменный {обелиск}, с нанесенными на него символами. ]];
 
    act = function(s)
 
        if here() == dyp_center and atl_rep_dyp < 0 then
 
            return [[На обелиске, традиционно для навьяров, начертано название города и вырезана карта, указывающая путь к храму. ]];
 
        end;
 
        if dyp_stones_known then
 
            p [[У самого основания обелиска вы видите небольшое изображение, вырезанное в камне. Некогда оно было разрезано на шестнадцать частей, а части перепутаны между собой. ]];
 
            walkin("dyp_obelisk_puzzle");
 
        else
 
            return [[На обелиске, традиционно для навьяров, начертано название города и вырезана карта, указывающая путь к храму. ]];
 
        end;
 
    end;
 
};
 

	
 
dyp_obelisk_puzzle = room {
 
    var {
 
        state = {
 
             0, 1, 2, 3,
 
             4, 5, 6, 7,
 
             8, 9,10,11,
 
            12,13,14,15
 
        };
 
        set = false;
 
    };
 
    win = "";
 
    nam = "Дипатреанотр, центр";
 
    underwater = true;
 
    entered = function(s)
 
        if not s.set then
 
            s.set = true;
 
            local details = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
 
            local matches = 3;
 
            for i = 1, 16 do
 
                local item;
 
                local index;
 
                repeat
 
                    index = rnd(#details);
 
                    item = details[index];
 
                until matches > 0 or item ~= s.state[i] or i == 16;
 
                table.remove(details, index);
 
                s.state[i] = item;
 
            end;
 
            local k = 1;
 
            for i = 1, 16 do
 
                if s.state[i] == 1 then
 
                    for j = i + 1, 16 do
 
                        if s.state[i] > s.state[j] and s.state[j] ~= 12 then
 
                            k = k + 1;
 
                        end;
 
                    end;
 
                else
 
                    k = k + math.floor(i / 4);
 
                end;
 
            end;
 
            if k % 2 == 0 then
 
                for i = 16, 1, -1 do
 
                    if s.state[i] == 14 then
 
                        s.state[i] = 15;
 
                    elseif s.state[i] == 15 then
 
                        s.state[i] = 14;
 
                    end;
 
                end;
 
            end;
 
        end;
 
    end;
 
    pic = function(s)
 
        local p = 'images/dyp15.png';
 
        for i = 1, #s.state do
 
            local f = s.state[i];
 
            p = p .. ';images/dyp15_' .. tostring(f) .. '.png@' .. tostring(math.floor((i - 1) / 4) * 40) .. ',' .. tostring((3 - (i - 1) % 4) * 40);
 
        end;
 
        return p;
 
    end;
 
    dsc = [[У самого основания обелиска вы видите небольшое изображение, вырезанное в камне. Некогда оно было разрезано на шестнадцать частей, а части перепутаны между собой. ]];
 
    click = function(s, x, y)
 
        local ty = math.floor(x / 40);
 
        local tx = 3 - math.floor(y / 40);
 
        local tile = tx + ty * 4 + 1;
 
        if (s.state[tile] ~= 15) then
 
            if (tile - 4 > 0) and s.state[tile - 4] == 15 then
 
                tx = s.state[tile];
 
                s.state[tile] = s.state[tile - 4];
 
                s.state[tile - 4] = tx;
 
            elseif tx > 0 and s.state[tile - 1] == 15 then
 
                tx = s.state[tile];
 
                s.state[tile] = s.state[tile - 1];
 
                s.state[tile - 1] = tx;
 
            elseif tx < 3 and s.state[tile + 1] == 15 then
 
                tx = s.state[tile];
 
                s.state[tile] = s.state[tile + 1];
 
                s.state[tile + 1] = tx;
 
            elseif (tile + 4) <= 16 and s.state[tile + 4] == 15 then
 
                tx = s.state[tile];
 
                s.state[tile] = s.state[tile + 4];
 
                s.state[tile + 4] = tx;
 
            end;
 
        end;
 
        local f = "";
 
        for i = 1, #s.state do
 
            f = f .. "," .. tostring(s.state[i]);
 
        end;
 
        print(f);
 
        if not s:check_win() then
 
            walkin(here());
 
        else
 
            p = [[Одна из каменных плит рядом с обелиском отодвигается. В образовавшейся выемке вы видите небольшой светящийся красным светом камень. Вы забираете камень себе. ]];
 
            put(dyp_item_stone_red, pl);
 
            walk(dyp_center);
 
        end;
 
    end;
 
    check_win = function(s)
 
        for i = 1, #s.state do
 
            if s.state[i] ~= 16 - i then
 
                return false;
 
            end;
 
        end;
 
        return true;
 
    end;
 
    way = {
 
        kh_vroom("Отойти", "dyp_center");
 
    };
 
};
 

	
 
dyp_navjiarr = npc{
 
    nam = "dyp_navjiarr";
 
    dsc = [[Немногие {навьяры}, находящиеся сейчас на площади с интересом оглядываютс на Левиафан и вас. ]];
 
    phrases = {
 
        "Не стоит их беспокоить. ",
 
        "Вряд ли они смогут сказать вам что-то полезное. "
 
    };
 
};
 

	
 
dyp_library_entrance = room {
 
    nam = "Дипатреанотр, вход в библиотеку";
 
    underwater = true;
 
    dsc = [[Двухэтажное здание библиотеки разительно отличается от большинства строений Дипатреанотра. Выстроенное из массивных каменных плит, а не из булыжников, как остальные, оно хорошо сохранилось несмотря на достаточно большой возраст. Ровные стены тщательно очищаются навьярами от ила и водорослей, сохрнаяя здание в первозданном виде. ]];
 
    way = {
 
        kh_vroom("К обелиску", "dyp_center");
 
        kh_vroom("В библиотеку", "dyp_library_floor1");
 
    };
 
};
 

	
 
dyp_library_floor1 = room {
 
    nam = "Дипатреанотр, библиотека, первый этаж";
 
    underwater = true;
 
    dsc = [[Первый этаж здания библиотеки представляет собой огромный зал. Множество колонн, установленных ровными рядами, поддерживают потолок, между ними и вдоль стен установлены массивные стеллажи, заполненные различными записями. Большинство их сделаны на каменных табличках, но изредка встречаются и древние металлические. Ваше внимание привлекает одна из полок, заполненная небольшими блестящими дисками из неизвестного материала. ]];
 
    obj = {
 
        "dyp_library_statue"
 
    };
 
    way = {
 
        kh_vroom("Наружу", "dyp_library_entrance");
 
        kh_vroom("На второй этаж", "dyp_library_floor2");
 
    };
 
};
 

	
 
dyp_library_floor2 = room {
 
    nam = "Дипатреанотр, библиотека, второй этаж";
 
    underwater = true;
 
    dsc = [[Второй этаж библиотеки мало чем отличается от первого -- точно такие же колонны, точно такие же стеллажи. Здесь гораздо больше полок содержат блестящие диски и металлические таблички. ]];
 
    obj = {
 
        "dyp_librarian";
 
    };
 
    way = {
 
        kh_vroom("На первый этаж", "dyp_library_floor1");
 
    };
 
};
 

	
 
dyp_librarian = npc {
 
    var {
 
        state = 0;
 
    };
 
    nam = "dyp_librarian";
 
    dsc = function(s)
 
        if s.state == 0 then
 
            return [[Перед вами на полу сидит {навьяр}. Вокруг него разложены какие-то записи, которые он рассматривает, время от времени перекладывая с места на место. ]];
 
        else
 
            return [[Перед вами на полу сидит {Эйлехиарр}. Вокруг него разложены какие-то записи, которые он рассматривает, время от времени перекладывая с места на место. ]];
 
        end;
 
    end;
 
    dlg = "dyp_librarian_dlg";
 
};
 

	
 
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("lse");
 
        end;
 
    
 
        if language_known then
 
            psub("speak");
 
            if (dyp_librarian_dlg.state == 0) then
 
                dyp_librarian_dlg.state = 1;
 
                return [[Перед вами, прямо на полу сидит навьяр. Рядом с ним разложены какие-то записи, которые он внимательно рассматривает, иногда перекладывая с места на место. Заметив вас, он поднимается и приветствует вас: "Я, Эйлехиарр из Дипатреанотра, приветствую тебя хевьяр. Ты говори, зачем ты пришел". ]];
 
            else
 
                return [[Эйлехиарр сидит на полу, перекладывая какие-то записи. Заметив вас он поднимается и приветствует вас: "Ты говори, зачем ты пришел". ]];
 
            end;
 
        else
 
            psub("no_speak");
 
            return [[Перед вами, прямо на полу сидит навьяр. Рядом с ним разложены какие-то записи, которые он внимательно рассматривает, иногда перекладывая с места на место. Заметив вас, он поднимается. По плавникам на его голове начинают бежать цветные полосы, но вы не понимаете, что он хочет вам сказать. ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="no_speak"};
 
        {always=true, "[Уйти]", code [[ back(); ]]};
 
        {tag="speak"};
 
        {"[Кодировщик] Что ты делаешь?", [[Эйлехиарр отвечает: "Эти записи сильно повреждены. К счастью у нас есть несколько копий этого текста. Но мои предшественники умудрились испортить все три!" ]]};
 
        {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(); ]]};
 
    };
 
};
 

	
 
dyp_item_stone_blue = obj {
 
    nam = "dyp_item_stone_blue";
 
    disp = [[Синий камень]];
 
    inv = [[Небольшой круглый камень, излучающий яркий синий свет. ]];
 
};
 

	
 
dyp_item_stone_green= obj {
 
    nam = "dyp_item_stone_green";
 
    disp = [[Зеленый камень]];
 
    inv = [[Небольшой круглый камень, излучающий яркий зеленый свет. ]];
 
};
 

	
 
dyp_item_stone_red = obj {
 
    nam = "dyp_item_stone_red";
 
    disp = [[Красный камень]];
 
    inv = [[Небольшой круглый камень, излучающий яркий красный свет. ]];
 
};
 

	
 
dyp_item_wand = obj {
 
    nam = "dyp_item_wand";
 
    disp = "Жезл";
 
    inv = [[Жезл из неизвестного металла, покрытый навьярскими письменами. ]];
 
};
 

	
 
dyp_library_statue = obj {
 
    nam = "dyp_library_statue";
 
    dsc =function(s)
 
        if dyp_lib_stone_state > 1 then
 
            return [[В центре зала стоит статуя навьяра. В правой руке он держит табличку, которую сосредоточенно рассматривает. Левая рука статуи выглядит так, словно в ней должен находиться какой-то небольшой предмет, однако он отсутствует. ]];
 
        else
 
            return [[В центре зала стоит статуя навьяра. В правой руке он держит табличку, которую сосредоточенно рассматривает. В левой руке статуи лежит небольшой светящийся синий {камень}. ]];
 
        end;
 
    end;
 
    act = function(s)
 
        if dyp_lib_stone_state == 0 then
 
            return [[Красивая старая статуя. Навьяр изображен пораительно подробно -- вы можете разглядеть каждую чешуйку. Небольшой камень лежит в руке статуи так, что его очень легко вынуть. ]];
 
        elseif dyp_lib_stone_state == 1 then
 
            dyp_lib_stone_state = 2;
 
            take("dyp_item_stone_blue");
 
            return [[Вы легко вынимаете камень из руки статуи. ]];
 
        elseif dyp_lib_stone_state == 2 then
 
            return [[Красивая старая статуя. Навьяр изображен пораительно подробно -- вы можете разглядеть каждую чешуйку. ]];
 
        end;
 
    end;
 
};
 

	
 
dyp_chief_house_entrance = room {
 
    nam = "dyp_chief_house_entrance";
 
    underwater = true;
 
    disp = "Дипатреанотр, перед домом вождя";
 
    dsc = [[Дом вождя Дипатреанотра не уступает размерами библиотеке. Двухэтажное здание очневидно не раз расширялось и достраивалось. Часть его сложена из обработанных каменных плит, другая -- из булыжников, как большинство зданий города. Широкая выложенная камнем улица ведет отсюда к центральной площади города.]];
 
    dsc = [[Дом вождя Дипатреанотра не уступает размерами библиотеке. Двухэтажное здание очевидно не раз расширялось и достраивалось. Часть его сложена из обработанных каменных плит, другая -- из булыжников, как большинство зданий города. Широкая выложенная камнем улица ведет отсюда к центральной площади города.]];
 
    way = {
 
        kh_vroom("К обелиску", "dyp_center");
 
        kh_vroom("В дом", "dyp_chief_house_hall");
 
        kh_vroom("В дом", "dyp_chief_house");
 
    };
 
};
 

	
 
dyp_chief_house = room {
 
    nam = "dyp_chief_house";
 
    underwater = true;
 
    disp = "Дипатреанотр, дом вождя";
 
    dsc = [[Приемная дома вождя представляет собой огромный зал с ровными рядами стройных каменных колонн, удерживающих потолок. В дальнем конце зала установлен каменный трон, перед которым установлен массивный каменный стол. ]];
 
    way = {
 
        kh_vroom("Наружу", "dyp_chief_house_entrance");
 
    };
 
    obj = {
 
        "dyp_chief";
 
    };
 
};
 

	
 
dyp_chief = npc {
 
    nam = "dyp_chief";
 
    dsc = [[{Вождь Дипатреанотра} сидит на троне с закрытыми глазами. Руки его сложены на груди. В правой он держит небольшой золотистый жезл, в навершии которого укреплен круглый камень, излучающий яркий зеленый свет. Светло-синяя чешуя покрыта узором из татуировок. Как и другие навьяры он одет в костюм из водорослей. На левой руке дремлюего вождя вы видите искусный браслет из блестящего металла. ]];
 
    dlg = "dyp_chief_dlg";
 
};
 

	
 
dyp_chief_dlg = dlg {
 
    var {
 
        lse = false;
 
        aed = false;
 
    };
 
    nam = "dyp_chief_dlg";
 
    disp = "Вождь Дипатреанотра";
 
    entered = function(s)
 
        if not language_known then
 
            psub("no_speak");
 
            return [[Как только вы приближаетесь к столу, глаза вождя открываются. Он поднимается с трона. Руки его остаются сложенными на груди, а взгляд его желтых глаз устремляется на вас. По его головным плавникам бегут цветные полосы. К сожалению, вы не понимаете, что он пытается вам сказать. ]];
 
        else
 
            psub("speak");
 
            if atl_iyh_state == 10 and not s.lse then
 
                s.lse = true;
 
                pon("lseryanotrr");
 
            end;
 
            if dyp_quest_state == 1 and have(item_electric_lamp, pl) and item_electric_lamp.state == 2 then
 
                pon("quest1");
 
            end;
 
            if dyp_quest_state == 2 and have(item_shark_tooth, pl) then
 
                pon("quest2");
 
            end;
 
            if dyp_stones_known and dyp_quest_state == 0 then
 
                pon("quest");
 
            end;
 
            poff("quest3");
 
            if have(dyp_item_star_map_copy) or have(dyp_item_star_map) then
 
                pon("quest3");
 
            end;
 
            if dyp_quest_state == 4 and not s.aed then
 
                s.aed = true;
 
                pon("aedienrr");
 
            end;
 
            return [[Как только вы приближаетесь к столу, глаза вождя открываются. Он поднимается с трона. Руки его остаются сложенными на груди, а взгляд его желтых глаз устремляется на вас. По его головным плавникам бегут цветные полосы: "Чем скромные навьяры из Дипатреанотра обязаны визиту почтенного хевьяра? Ты говори". ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="no_speak"};
 
        {always=true, "[Уйти]", code [[ back(); ]]};
 
        {tag="speak"};
 
        {tag="lseryanotrr", false, "[Кодировщик] Я ищу карту пути в Лсэрианотр.", [[Вождь отвечает: "Не мое дело следить за этим. Ты спроси в храме или в библиотеке". ]]};
 
        {tag="quest", false, "[Кодировщик] Мне нужен камень из твоего жезла. Что я могу предложить в обмен на него?", [[Глаза вождя загораются, он ухмыляется. По плавникам быстро, словно в нетерпении бегут цветные полосы: "Принеси мне три вещи, что я попрошу и получишь жезл вместе с камнем". ]], code [[psub("agree_quest");]]};
 
        {tag="quest1", false, "[Отдать светильник] [Кодировщик] Вот то, что ты просил. Что тебе еще нужно?", [[Вождь с интересом рассматривает принесенный вами прибор, после чего ставит его на стол перед собой и говорит: "Еще мне нужен акулий зуб". ]], code [[ remove("item_electric_lamp", pl); dyp_quest_state = 2; ]]};
 
        {tag="quest2", false, "[Отдать зуб акулы] [Кодировщик] Вот то, что ты просил. Что тебе еще нужно?", [[Вождь кладет зуб на стол рядом со светильником и говорит: "Я хочу карту небесных огней из Ираафаанотра. Принеси ее и забирай этот жезл вместе с камнем". ]], code [[ remove("item_shark_tooth", pl); dyp_quest_state = 3; psub("agree_quest2"); ]]};
 
        {tag="quest3", false, "[Отдать карту небесных огней] Вот то, что ты просил. Я могу забрать камень?", function(s)
 
            if have(dyp_item_star_map_copy) then
 
                remove(dyp_item_star_map_copy, me());
 
            else
 
                remove(dyp_item_star_map, me());
 
                atl_rep_iraa = atl_rep_iraa - 1;
 
            end;
 
            dyp_map = true;
 
            take(dyp_item_stone_green);
 
            atl_rep_dyp = atl_rep_dyp + 1;
 
            return [[Вождь отдает вам свой жезл со словами: "Благодарю тебя, честный хевьяр и держу свое слово". ]];
 
        end};
 
        {tag="aedienrr", false, "[Кодировщик] Ваш город посещал Аэдиенрр из Ираафаанотра недавно?", [[Вождь отвечает: "Не мое дело следить за этим. Спроси у стражников". ]]};
 
        {always=true, "[Кодировщик] Я пойду.", [[Вождь прощается с вами: "Ты возвращайся". Он садится обратно на трон и закрывает глаза. ]], code [[ back(); ]]};
 
        {tag="agree_quest"};
 
        {always=true,"[Кодировщик] Что ты хочешь, чтобы я принес?", [[Вождь отвечает: "Первая вещь, что мне нужна -- это светящаяся капсула из вашего города". ]], code [[ dyp_quest_state = 1; pret(); ]]};
 
        {always=true,"[Кодировщик] Я передумал. ", [[Вождь пожимает плечами. ]], code [[ pon("quest"); pret(); ]]};
 
        {tag="agree_quest2"};
 
        {always=true,"[Кодировщик] Как к этому отнесутся в Ираафаанотре?", [[Вождь отвечает: "Они могут быть против. Уговори их". ]], code [[ pret(); ]]};
 
        {always=true,"[Кодировщик] Я не буду этого делать.", [[Вождь отвечает: "Я отдам посох только за карту небесных огней". ]], code [[ pret(); ]]};
 
    };
 
};
 

	
 
--[[
 
Дипатреанотр храм
 
]]
 

	
 
dyp_temple_entry = lcutscene("dyp_temple_entry", "Левиафан, рубка", [[Храм Дипатреанотра располагается в нескольких часах пути от Атлантиды на Левиафане. К массивным дверям храма, вырезанным в толще скалы, ведет широкая каменная лестница, некогда украшенная резными орнаментами, ныне осыпавшимися и раскрошившимися. Над входом вырезано изображение, состоящее из нескольких концентрических кругов и каких-то символов. ]], "Вы прибыли в Храм Дипатреанотра. ", leviathan_wheelhouse);
 

	
 
dyp_temple_guard = npc {
 
    nam = "ctt_dyp_temple_guard";
 
    dsc = [[У ворот стоят два навьяра, вооруженные копьями. При вашем приближении они начинают нервничать -- переглянувшись, они перехватывают копья, готовясь при необходимости прогнать вас. По плавникам одного из них бегут цветные полосы: темно-фиолетовая, зеленая, оранжевая -- шире чем остальные, серая, ярко-розовая, желтая -- снова широкая, салатовая, снова широкая желтая и, наконец, широкая бледно-оранжевая. После небольшой паузы, полосы появляются снова. ]];
 
    phrases = {
 
        [[Стражник не реагирует на ваши попытки начать общение. ]];
 
    };
 
    
 
};
 

	
 
dyp_temple_carving_look = room {
 
    nam = "Храм Дипатреанотра, вход";
 
    pic ="images/iyh_navjiarr_map.png"; 
 
    dsc = [[Над входом в храм вырезана схема, состоящая из нескольких концентрических кругов. Часть схемы полностью стерлась от времени. ]];
 
    obj = {
 
        vway("continue", "{Продолжить}", "dyp_temple_entrance");
 
    };
 
};
 

	
 
dyp_temple_carving = obj {
 
    nam = "dyp_temple_carving";
 
    dsc = [[Над входом в храм вырезано {изображение} состоящее из нескольких кругов и еще каких-то символов. Часть изображения стерлась от времени, однако остальная часть все еще читаема. ]];
 
    act = function(s)
 
        walkin("dyp_temple_carving_look");
 
    end;
 
};
 

	
 
dyp_temple_entrance = room {
 
    nam = "Храм Дипатреанотра, вход";
 
    dsc = [[Перед вами находится вырезанный в скале вход в навьярский храм. Массивные каменные ступени ведут к громадным двустворчатым дверям, украшенным полустершимися орнаментами. Некогда яркие краски потускнели -- осторожные навьяры не решаются их обновить. ^Скала продолжается на восток и на юго-запад от храма. Вдалеке на севере видны длинные, вытянувшиеся на несколько метров вверх водоросли. К северо-западу заметен каменный обелиск. ]];
 
    view = [[Через иллюминаторы вы видите вырезанный в скале вход в навьярский храм. Массивные каменные ступени ведут к громадным двустворчатым дверям, украшенным полустершимися орнаментами. Некогда яркие краски потускнели -- осторожные навьяры не решаются их обновить. ^Скала продолжается на восток и на юго-запад от храма. Вдалеке на севере видны длинные, вытянувшиеся на несколько метров вверх водоросли. К северо-западу заметен каменный обелиск. ]];
 
    underwater = true;
 
    handwheel_room = 'dyp_temple_navigation';
 
    obj = {
 
        "dyp_temple_guard";
 
        "dyp_temple_carving";
 
    };
 
    way = {
 
        kh_vroom("В храм", function(s)
 
            pr('Охранники не колеблясь убьют вас, если вы попытаетесь войти. ');
 
            return false;
 
        end):disable();
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
};
 

	
 
dyp_temple_east = room {
 
    nam = "Океан";
 
    view = [[Вы находитесь у подножья скалы, протянувшейся на многие километры на восток от вас. На западе она сворачивает к югу. В освещенной мощным прожектором Левиафана скале вы видите раверзшуюся пасть пещеры. ]];
 
    dsc = [[Вы находитесь у подножья скалы, протянувшейся на многие километры на восток от вас. На западе она сворачивает к югу. Перед собой вы видите разверзшуюся пасть пещеры, освещенную мощным прожектором Левиафана. ]];
 
    underwater = true;
 
    handwheel_room = 'dyp_temple_navigation';
 
    way = {
 
        kh_vroom("В пещеру", "dyp_temple_cave_entrance");
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
};
 

	
 
dyp_temple_south_west = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь у подножья скалы. К юго-западу от вас скала сворачивает на юг и тянется на многие километры. К северо-востоку вы видите храм Дипатреанотра. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_south_far = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь у подножья скалы, протянувшейся на многие километры на юг. На севере скала сворачивает к востоку. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_north_west = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        if dyp_quest_state ~= 5 then
 
            return [[Нет смысла покидать Левиафан здесь. ]];
 
        end;
 
    end;
 
    underwater = true;
 
    handwheel_room = 'dyp_temple_navigation';
 
    view = [[Перед вами возвышается массивный каменный обелиск. Некогда он был украшен резными орнаментами, но сейчас все они практически полностью стерлись. К юго-востоку от вас возвышается отвесная скала, протянувшаяся на многие километры с юга на восток. Вдалеке на западе вы видите каменные строения навьярского города -- Дипатреанотра. ]];
 
    dsc = [[К юго-востоку от вас возвышается отвесная скала, протянувшаяся на многие километры с юга на восток. Вдалеке на западе вы видите каменные строения навьярского города -- Дипатреанотра. ]];
 
    obj = {
 
        "dyp_temple_west_footprints";
 
        "dyp_temple_north_west_obelisk";
 
    };
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
};
 

	
 
dyp_temple_west_footprints = obj {
 
    nam = "dyp_temple_west_footprints";
 
    dsc = [[На илистом дне вы видите {следы}. ]];
 
    act = [[Следы навьяра ведут на север. ]];
 
};
 

	
 
dyp_temple_north_west_obelisk = obj {
 
    nam = "dyp_temple_north_west_obelisk";
 
    dsc = [[Перед вами возвышается массивный каменный {обелиск}. Некогда он был украшен резными орнаментами, но сейчас все они практически полностью стерлись. ]];
 
    act = [[Древняя каменная конструкция, с неизвестной целью помещенная в этом месте. ]];
 
};
 

	
 
dyp_temple_north = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над высокими стеблями водорослей, едва заметно колышущимися в спокойной воде. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_crevice_middle = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. На юге вы видите длинные стебли водорослей, поднимающиеся на несколько метров над землей. Вдалеке на севере протянулась параллельно ущелью высокая отвесная скала. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_crevice_east = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. На юго-западе вы видите длинные стебли водорослей, поднимающиеся на несколько метров над землей. Вдалеке на севере протянулась параллельно ущелью высокая отвесная скала. На северо-востоке вы видите огромный скелет кита, с незапамятных времен покоящийся там. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_crevice_far_east = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. На севере вы видите огромный скелет кита, с незапамятных времен покоящийся там. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_crevice_west = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. На юго-востоке вы видите длинные стебли водорослей, поднимающиеся на несколько метров над землей. На северо-западе возвышается каменный обелиск, а еще дальше на севере параллельно ущелью протянулась высокая отвесная скала. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_crevice_far_west = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. Вдалеке на севере и на юге от вас возвышаются каменные обелиски. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_warning = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        if dyp_quest_state ~= 5 then
 
            return [[Нет смысла покидать Левиафан здесь. ]];
 
        end;
 
    end;
 
    view = [[Перед вами возвышается массивный каменный обелиск. Большая часть изображенного на нем стерлась. ]];
 
    dsc = [[Вы находитесь посреди бескрайней илистой равнины. К северу вы видите скалу, протянувшуюся с запада на восток. К югу вы видите глубокое ущелье, протянувшееся параллельно скале. ]];
 
    underwater = true;
 
    handwheel_room = 'dyp_temple_navigation';
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
    obj = {
 
        "dyp_temple_obelisk_footprints";
 
        "dyp_temple_warning_obelisk";
 
    };
 
};
 

	
 
dyp_temple_obelisk_footprints = obj {
 
    nam = "dyp_temple_obelisk_footprints";
 
    dsc = [[На илистом дне вы видите {следы}. ]];
 
    act = [[Следы навьяра ведут на север. ]];
 
};
 

	
 
dyp_temple_warning_obelisk = obj {
 
    nam = "dyp_temple_warning_obelisk";
 
    dsc = [[Перед вами возвышается массивный каменный {обелиск}. Некогда он был украшен резными орнаментами, но сейчас все они практически полностью стерлись. ]];
 
    act = [[Древняя каменная конструкция, с неизвестной целью помещенная в этом месте. ]];
 
};
 

	
 
dyp_temple_cliff_1 = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        if dyp_quest_state ~= 5 then
 
            return [[Нет смысла покидать Левиафан здесь. ]];
 
        end;
 
    end;
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. Здесь в скале вы видите вход в глубокую темную пещеру. К юго-востоку от вас возвышается каменный обелиск. ]];
 
    underwater = true;
 
    handwheel_room = 'dyp_temple_navigation';
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
        kh_vroom("В пещеру", "dyp_crab_cave");
 
    };
 
    obj = {
 
        "dyp_temple_cliff_1_footprints";
 
    };
 
};
 

	
 
dyp_temple_cliff_1_footprints = obj {
 
    nam = "dyp_temple_cliff_1_footprints";
 
    dsc = [[На илистом дне хорошо сохранились {следы} множества тонких ног. ]];
 
    act = [[Следы множества тонких ног, тянущиеся с востока, ведут в пещеру. ]];
 
};
 

	
 
dyp_temple_cliff_2 = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        if dyp_quest_state ~= 5 then
 
            return [[Нет смысла покидать Левиафан здесь. ]];
 
        end;
 
    end;
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. Вдалеке на юге возвышается каменный обелиск. ]];
 
    dsc = [[Вы стоите у подножия высокой скалы, протянувшейся с востока на запад к северу от вас. К югу от вас возвышается каменный обелиск. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
    underwater = true;
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
    obj = {
 
        "dyp_temple_cliff_2_footprints";
 
    };
 
};
 

	
 
dyp_temple_cliff_2_footprints = obj {
 
    nam = "dyp_temple_cliff_2_footprints";
 
    dsc = [[Здесь {следы} навьяра обрываются. ]];
 
    act = [[Следы обрываются, но не просто так. Здесь явно произошла драка, скорее всего с каким-то морским животным. Вы замечаете следы множества тонких ног, ведущие на запад. ]];
 
};
 

	
 
dyp_temple_cliff_3 = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. Вдалеке на юго-западе возвышается каменный обелиск. ]];
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. К юго-западу от вас возвышается каменный обелиск. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_cliff_4 = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. Вдалеке на юге вы видите ущелье, протянувшееся параллельно скале. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_cliff_5 = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. Вдалеке на юге вы видите ущелье, протянувшееся параллельно скале. На юго-востоке вы видете скелет кита, покоящийся здесь многие десятилетия. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_whale = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Рядом с вами покоится скелет громадного кита. Древние кости занесены илом, однако все еще прекрасно видны с большого расстояния. На севере вы видите вырезанный в скале вход в древний навьярский храм. На юге глубокое ущелье протянулось с востока на запад. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
};
 

	
 
dyp_temple_navigation = dlg {
 
    nam = "Штурвал Левиафана";
 
    entered = function(s)
 
        psub(stead.deref(where(submarine_leviathan)));
 
        return where(submarine_leviathan).view;
 
    end;
 
    phr = {
 
        {tag="dyp_temple_entrance"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_east");
 
            psub("dyp_temple_east");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На северо-восток, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На северо-запад, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_north_west");
 
            psub("dyp_temple_north_west");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юго-запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_south_west");
 
            psub("dyp_temple_south_west");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
0 comments (0 inline, 0 general)