Changeset - 507290565c1f
[Not reviewed]
default
0 1 0
Silverwing - 6 years ago 2019-01-27 18:18:11

fix crash when visiting dypatreanotrr at night
1 file changed with 2 insertions and 1 deletions:
0 comments (0 inline, 0 general)
atlantis_dyp_night.lua
Show inline comments
 
--[[
 
 Дипатреанотр, ночь
 
]]
 

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

	
 
dyp_night_south = room {
 
    nam = 'dyp_night_south';
 
    underwater = true;
 
    disp = 'Дипатреанотр, южная окраина';
 
    view = [[Левиафан завис чуть в стороне от Дипатреанотра. На севере горят яркие огни центральных зданий поселения -- библиотеки и дома вождя. Покрытый тьмой город представляет собой нагромождение каменных домиков без четко выраженных улиц или проходов. ]];
 
    dsc = [[Вы стоите на южной окраине Дипатреанотра. К северу от вас расположены неказистые каменные дома жителей города. ]];
 
    way = {
 
        kh_vroom("К центру", "dyp_night_center");
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
}
 

	
 
dyp_night_center = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = "dyp_night_center";
 
    underwater = true;
 
    disp = 'Дипатреанотр, центр';
 
    entered = function(s)
 
        if s.state == 0 then
 
            s.state = 1;
 
            pr [[С трудом пробираясь в темноте среди хаотично наставленных каменных домиков, вы добираетесь до центра города. ]];
 
        end;
 
    end;
 
    dsc = [[Центральная плозадь Дипатреанотра пустынна -- навьяры мирно спят в своих домах. На востоке ярко сияют окна библиотеки, а на западе -- вход в дом вождя. ]];
 
    dsc = [[Центральная площадь Дипатреанотра пустынна -- навьяры мирно спят в своих домах. На востоке ярко сияют окна библиотеки, а на западе -- вход в дом вождя. ]];
 
    view = [[Центральная площадь Дипатреанотра пустынна -- навьяры мирно спят в своих домах. На востоке ярко сияют окна библиотеки, а на западе -- вход в дом вождя. Прожектор Левиафана выключен, чтобы ваше присутствие было менее заметно в темноте. ]];
 
    obj = {
 
        'dyp_obelisk';
 
    };
 
    way = {
 
        kh_vroom('К библиотеке', 'dyp_night_library_entrance');
 
        kh_vroom('К дому вождя', 'dyp_night_chief_house_entrance');
 
        kh_vroom('на юг', 'dyp_night_south');
 
    };
 
}
 

	
 
dyp_night_library_entrance = room {
 
    var {
 
        anna_state = 0;
 
        jack_state = 0;
 
        walter_state = 0;
 
    };
 
    nam = "dyp_night_library_entrance";
 
    underwater = true;
 
    disp = 'Дипатреанотр, вход в библиотеку';
 
    dsc = [[Двухэтажное здание библиотеки -- старейшее в Дипатреанотре. Выстроенное из массивных каменных плит и хорошо обслуживаемое, оно сохранилось в превосходном состоянии. Двери здания распахнуты, изнутри исходит слабый свет. ]];
 
    entered = function(s)
 
        if s.state == 0 then
 
            if char_anna.follow and s.anna_state == 0 then
 
                if rel_anna > 0 then
 
                    s.anna_state = 1;
 
                    return [[Из динамика доносится голос Анны: "Удивительно. Жаль, что у меня нет времени изучить это место как следует".]];
 
                end;
 
            elseif char_wright.follow and s.jack_state == 0 then
 
                if rel_jack > 0 then
 
                    s.jack_state = 1;
 
                    return [[Из динамика доносится голос Джека: "Сколько же времени нужно, чтобы изучить все, хранящееся здесь". ]];
 
                end;
 
            elseif char_radcliffe.follow and s.walter_state == 0 then
 
                s.walter_state = 1;
 
                return [[Из динамика доносится голос Уолтера: "Дрейк, у нас есть всего пара часов до рассвета. Не думаю, что за это время мы найдем то что мы ищем". ]];
 
            end;
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("К центру", "dyp_night_center");
 
        kh_vroom("В библиотеку", "dyp_night_library_floor1");
 
    }
 
}
 

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

	
 
dyp_night_library_floor2 = room {
 
    nam = "dyp_night_library_floor2";
 
    disp = 'Дипатреанотр, библиотека, второй этаж';
 
    underwater = true;
 
    dsc = [[Второй этаж библиотеки мало чем отличается от первого -- точно такие же колонны, покрытый водорослями, точно такие же стеллажи с табличками. Здесь гораздо больше полок содержат блестящие диски и металлические таблички. ]];
 
    obj = {
 
        'dyp_night_tablets';
 
    }
 
}
 

	
 
dyp_night_tablets = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = "dyp_night_tablets";
 
    dsc = 'В углу аккуратно разложены в несколько стопок каменные и металлические {таблички}. ';
 
    act = function(s)
 
        if s.state == 0 then
 
            if char_anna.follow then
 
                psub("dyp_night_anna_hint");
 
                if rel_anna > 0 then
 
                    return [[Вы аккуратно берете верхнюю табличку из стопки. Анна опускается на пол рядом с вами и начинает рассматривать таблички, одну за другой. Из динамика доносится ее голос: "Дэвид, я нашла".]];
 
                else
 
                    return [[Вы аккуратно берете верхнюю табличку из стопки. Анна опускается на пол рядом с вами и начинает рассматривать таблички, одну за другой. Из динамика доносится ее голос: "Дрейк, я нашла".]];
 
                end;
 
            else
 
                return [[Вы аккуратно берете верхнюю табличку из стопки. Вы почти ничего не понимаете из того, что на ней написано. Вам нужен кто-то, кто достаточно хорошо знает язык навьяров. ]];
 
            end;
 
        else
 
            return [[Вам здесь больше нечего делать. ]];
 
        end;
 

	
 
    end;
 
}
 

	
 
dyp_night_anna_hint = dlg {
 
    nam = 'dyp_night_anna_hint';
 
    disp = 'Анна Рэдклифф';
 
    entered = function(s)
 
        dyp_stones_known = true;
 
        dyp_lib_stone_state = 1;
 
        return [[Анна поднимается с пола и поворачивается к вам. В динамике вы слышите ее взволнованный голос: "Я нашла то, что мы искали. Недалеко от храма есть пещера, но чтобы войти в нее, нужны три ключа. Ключи спрятаны здесь, в Дипатреанотре". ]];
 
    end;
 
    phr = {
 
        {'Хорошо, будем искать.', 'Анна молча кладет табличку на место. ', code [[back();]]};
 
        {'Как выглядят эти ключи?', 'Анна отвечает: "Не знаю. Здесь не указано, но здесь есть изображение статуи, похожей на ту, что мы видели внизу".'}
 
    };
 
}
 

	
 
dyp_night_chief_house_entrance = room {
 
    var {
 
        jack_state = 0;
 
        walter_state = 0;
 
    };
 
    nam = 'dyp_night_chief_house_entrance';
 
    disp = 'Дипатреанотр, перед домом вождя';
 
    underwater = true;
 
    dsc = [[Дом вождя Дипатреанотра не уступает размерами библиотеке. Двухэтажное здание не раз расширялось и достраивалось. Часть его сложена из обработанных каменных плит, другая -- из булыжников, как большинство зданий города. Широкая выложенная камнем улица ведет отсюда к центральной площади города. Из главного зала исходит слабый свет. ]];
 
    entered = function(s)
 
        if char_radcliffe.follow and rel_radcliffe > 0 and s.walter_state == 0 then
 
            s.walter_state = 1;
 
            return [[Из динамиков доносится голос Уолтера: "Неслабый себе домик вождя отгрохал. Сразу видно, заботится о населении". ]];
 
        elseif char_wright.follow and rel_jack > 0 and s.jack_state == 0 then
 
            s.jack_state = 1;
 
            return [[Из динамиков доносится голос Джека: "Не думал, что современные навьяры не способны даже нормально обработать камень". ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("К центру", "dyp_night_center");
 
        kh_vroom("В дом", "dyp_night_chief_house_hall");
 
    };
 
}
 

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

	
 
dyp_night_chief_house_2nd_floor = room {
 
    nam = 'dyp_night_chief_house_2nd_floor';
 
    disp = 'Дипатреанотр, дом вождя, второй этаж';
 
    dsc = [[Коридор второго этажа пуст. Слабый свет водорослей, покрывающих пол и стены позволяет вам легко ориентироваться внутри. Справа от вас расположена дверь. Впереди коридор поворачивает направо. ]];
 
    nolamp = true;
 
    way = {
 
        kh_vroom('За угол', 'dyp_night_chief_house_2nd_floor2');
 
        kh_vroom('На первый этаж', 'dyp_night_chief_house_2nd_floor2');
 
        kh_vroom('В дверь', 'dyp_night_chief_house_treasury');
 
    }
 

	
 
}
 

	
 
dyp_night_chief_guard = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'dyp_night_chief_guard';
 
    dsc = function(s)
 
        if s.state == 0 then
 
            return [[Рядом с дверью стоит охранник. Он с недоумением смотрит на вас. У вас есть несколько мгновений, чтобы что-нибудь предпринять. ]];
 
        else
 
            return [[Рядом с дверью лежит труп охранника. ]];
 
        end;
 
    end;
 
    use = function(s, o)
 
        if o == item_harpoon then
 
            s.state = 1;
 
            return [[Вы стреляете в охранника гарпуном и он падает на пол. ]];
 
        end;
 
    end
 
};
 

	
 
dyp_night_chief_house_2nd_floor2 = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'dyp_night_chief_house_2nd_floor2';
 
    disp = 'Дипатреанотр, дом вождя, второй этаж';
 
    dsc = [[Слабый свет водорослей, покрывающих пол и стены позволяет вам легко ориентироваться внутри. Перед вами расположена дверь. ]];
 
    nolamp = true;
 
    left = function(s)
 
        if dyp_night_chief_guard.state == 0 then
 
            walk("game_over_dyp_night_caught");
 
        end;
 
    end;
 
    obj = {
 
        'dyp_night_chief_guard';
 
    };
 
    way = {
0 comments (0 inline, 0 general)