diff --git a/lseryanotrr_intro.lua b/lseryanotrr_intro.lua --- a/lseryanotrr_intro.lua +++ b/lseryanotrr_intro.lua @@ -0,0 +1,442 @@ +global { + lse_intro_with_phaetlarr = false; + lse_intro_with_learr = false; + lse_intro_with_jack = false; + lse_intro_with_walter = false; + lse_intro_with_anna = false; +}; + +lse_entered = cutscene("lse_entered", "Левиафан, рубка", [[ + Когда после бесконечной череды скал и ущелий перед Левиафаном наконец открылось громадное плато с выросшим по центру колоссальных размеров городом, полностью накрытым прозрачным куполом, защищающим древние строения от проникновения посторонних. Приближаясь вы начинаете замечать отдельные здания, выстроившиеся кольцами вокруг центральной башни-обелиска. Ослепительно-ярким светом горят на этом маяке цветные символы древнего навьярского языка. К сожалению, сейчас вы можете понять только часть их смысла, и она однозначно сообщает название места, куда вы попали: "Первый и главный город навьяров и хевьяров". Весь экипаж Левиафана собирается в рубке, не в силах оторвать взгляд от граниозного зрелища. + ]], "lse_entered2"); +lse_entered2 = cutscene("lse_entered2", "Левиафан, рубка", function(s) + if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then + if (rel_learr > 0) then + pr [[ + Леарр застыла в изумлении и лишь по ее плавникам бегут цветные полосы, означающие "Мои-предки невероятное-это-построили. Я хочу, чтобы мы сейчас-так-могли". Она обращает свой взор к вам и совершенно искренне благодарит вас: "Ты-Дрейк, это-возможным-сделал. Пусть тепло-и-волны вечно-будут-с-тобой". ^ + ]]; + elseif (rel_learr < 0) then + pr [[ + Леарр застыла в изумлении и лишь по ее плавникам бегут цветные полосы, означающие "Мои-предки невероятное-это-построили. Я хочу, чтобы мы сейчас-так-могли". Она обращает свой взор к вам и произносит: "Мы наш-путь-закончили-почти. Наконец-то мы своими-путями-разойдемся". ^ + ]]; + else + pr [[ + Леарр застыла в изумлении и лишь по ее плавникам бегут цветные полосы, означающие "Мои-предки невероятное-это-построили. Я хочу, чтобы мы сейчас-так-могли". По мере вашего приближения она продолжает поглощать взглядом прекрасно сохранившиеся здания города. ^ + ]]; + end; + end; + if (ArrayUtils.indexOf(pl.party, 'phaetlarr') ~= 0) then + if (rel_phaetlarr > 0) then + pr [[ + Фаэтларр неподвижно встал рядом с вами. Не отрывая взгляда, он смотрит через иллюминаторы Левиафана на древний город своего народа. По его плавникам бегут цветные полосы: "Адриан-Блэк здесь, Дрейк. Ты-действуй".^ + ]]; + elseif (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then + pr [[ + Фаэтларр неподвижно встал рядом с Леарр. Не отрывая взгляда, он смотрит через иллюминаторы Левиафана на древний город своего народа. По его плавникам бегут цветные полосы: "Адриан-Блэк здесь. Я ему-за-все-отомщу". ^ + ]]; + else + pr [[ + Фаэтларр неподжвижно стоит в углу рубки. Не отрывая взгляда, он смотрит через иллюминаторы Левиафана на древний город своего народа. По его плавникам бегут цветные полосы: "Адриан-Блэк здесь. Я ему-за-все-отомщу". ^ + ]]; + end; + end; + if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + if (rel_jack > 0) then + pr [[ + При виде купола и всего что находится под ним, Джек восклицает: "Невероятно, Дрейк! Ты только посмотри! Хотелось бы мне знать, как они сделали это. Это в тысячи раз больше нашей маленькой Атлантиды. И весь этот свет!" ^ + ]]; + elseif (rel_jack < 0) then + pr [[ + При виде купола и всего что находится под ним, Джек восклицает: "Невероятно! Хотелось бы мне знать, как они сделали это. Это в тысячи раз больше нашей маленькой Атлантиды! Но наша цель здесь другая. Мы должны остановить найти Блэка и разузнать у него все". ^ + ]]; + else + pr [[ + При виде купола и всего что находится под ним, Джек восклицает: "Невероятно! Хотелось бы мне знать, как они сделали это. Это в тысячи раз больше нашей маленькой Атлантиды!" ^ + ]]; + end; + end; + if (ArrayUtils.indexOf(pl.party, 'anna') ~= 0) then + if (rel_anna > 0) then + pr [[ + Анна сосредоточенно перерисовывает древние символы себе в блокнот, делая какие-то пометки. Лишь на краткий миг она обернулась к вам, чтобы улыбнуться. ^ + ]]; + else + pr [[ + Анна сосредоточенно перерисовывает древние символы себе в блокнот, делая какие-то пометки. Потом она смотрит на Уолтера, словно ища у него поддержки. Тот лишь молча кивает в ответ на взгляд сестры. ^ + ]]; + end; + end; + if (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then + if (rel_walter > 0) then + pr [[ + Какое-то время Уолтер неподвижно стоит рядом со своей сестрой. Затем он подходит к вам и сердечно пожимает вашу руку. ^ + ]]; + elseif (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then + pr [[ + Уолтер неподвижно стоит рядом со своей сестрой. Только изредка он бросает полный неприятия взгляд в вашу сторону. ^ + ]]; + elseif (rel_walter < 0) then + pr [[ + Уолтер неподвижно стоит в углу комнаты. Он смотрит на вас с явной неприязнью. ^ + ]]; + else + pr [[ + Уолтер неподвижно стоит в углу комнаты. Он изучающе смотрит на вас. ^ + ]]; + end; + end; + +end, "lse_entered3"); + +lse_entered3 = cutscene("lse_entered3", "Левиафан, рубка", [[ + Вашему удивлению нет предела, когда яркие зеленые огни указывают вам на открывающийся проем в стене Лсэрианотра - древний город словно приглашает вас внутрь. Не раздумывая, вы направляетесь туда. Части стены словно раздвигаются, пропуская вас внутрь. Вы аккуратно проплываете в открывшийся проход и оказываетесь в огромном хорошо освещенном помещении. Стены, пол и потолок его излучают мягкий белый свет. Но вас удивляет, что зал заполнен водой лишь наполовину и в верхней части вас уже ждет группа навьяров. Среди них выделяется один стоящий в центре. Вместо простого одеяния сшитого из водорослей, он одет в человеческие рубашку и брюки! + Стена позади вас закрывается и вы оказываетесь отрезаны от внешнего мира. Вы дергаете один из рычагов на приборной панели и Левиафан поднимается наверх... +]], "leviathan_wheelhouse"); + +lse_on_enter_learr = dlg { + nam = "lse_on_enter_learr"; + disp = "Левиафан, кают-компания"; + entered = function(s) + if (rel_learr >= 0) then + psub("good"); + return [[ + Леарр первая подходит к вам и говорит: "Я хочу-с-тобой-идти". + ]]; + else + psub("bad"); + return [[ + Леарр первая подходит к вам и говорит: "Я с-тобой-иду". + ]]; + end; + end; + phr = { + {tag="good"}; + {"Оставайся на Левиафане, я не хочу подвергать вас опасности", [[ + Леарр огорченно отступает: "Я понимаю и тебе-доверяю. Я здесь-подожду". + ]], code [[ + if (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then + walk("lse_on_enter_anna_walter"); + elseif (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + {"Хорошо", [[ + Леарр радостно кивает и отправляется в шлюзовую камеру. + ]], code [[ + lse_intro_with_learr = true; + if (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then + walk("lse_on_enter_anna_walter"); + elseif (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + {tag="bad"}; + {"Оставайся на Левиафане, я не хочу подвергать вас опасности", [[ + Леарр отрицательно качает головой: "Я за-себя-решу. Я иду". Не слушая вас, она направляется к шлюзовой камере. + ]], code [[ + lse_intro_with_learr = true; + if (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then + walk("lse_on_enter_anna_walter"); + elseif (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + {"Хорошо", [[ + Леарр кивает и отправляется в шлюзовую камеру. + ]], code [[ + lse_intro_with_learr = true; + if (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then + walk("lse_on_enter_anna_walter"); + elseif (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + }; +}; + +lse_on_enter_anna_walter = dlg { + nam = "lse_on_enter_anna_walter"; + disp = "Левиафан, кают-компания"; + entered = function(s) + if (ArrayUtils.indexOf(pl.party, 'anna') ~= 0) then + if (rel_anna < 0) then + psub("bad_anna"); + return [[ + Уолтер Рэдклифф входит в кают-компанию: "Мы с сестрой идем с тобой". + ]]; + else + psub("bad_no_anna"); + if (rel_walter < 0) then + return [[ + Уолтер Рэдклифф входит в кают-компанию: "Мы с сестрой идем с тобой". + ]]; + else + psub("good_anna"); + return [[ + Уолтер Рэдклифф входит в кают-компанию: "Мы с сестрой хотим идти с тобой". + ]]; + end; + end; + else + if (rel_walter < 0) then + psub("bad"); + return [[ + Уолтер Рэдклифф входит в кают-компанию: "Я иду с тобой". + ]]; + else + psub("good"); + return [[ + Уолтер Рэдклифф входит в кают-компанию: "Я готов идти с тобой". + ]]; + end; + end; + end; + phr = { + {tag="bad_anna"}; + {"Вам лучше остаться", [[ + Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет". + ]]}; + {"Ты можешь пойти со мной, но Анне лучше остаться", [[ + Уолтер отрицательно качает головой: "Она хочет присутствовать лично". + ]]}; + {"Я возьму Анну, но ты останешься здесь", [[ + Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет". + ]]}; + {"Хорошо", [[ + Уолтер также молча отправляется в шлюзовую камеру. + ]], code [[ + lse_intro_with_walter = true; + lse_intro_with_anna = true; + if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + {tag="bad_no_anna"}; + {"Вам лучше остаться", [[ + Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет". + ]]}; + {"Ты можешь пойти со мной, но Анне лучше остаться", [[ + Уолтер, немного подумав, кивает: "Хорошо". + ]], code [[ + lse_intro_with_walter = true; + if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + {"Я возьму Анну, но ты останешься здесь", [[ + Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет". + ]]}; + {"Хорошо", [[ + Уолтер также молча отправляется в шлюзовую камеру. + ]], code [[ + lse_intro_with_walter = true; + lse_intro_with_anna = true; + if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + {tag="good_anna"}; + {"Вам лучше остаться", [[ + Уолтер, немного подумав, кивает: "Хорошо". + ]], code [[ + if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + {"Ты можешь пойти со мной, но Анне лучше остаться", [[ + Уолтер, немного подумав, кивает: "Хорошо". + ]], code [[ + lse_intro_with_walter = true; + if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + {"Я возьму Анну, но ты останешься здесь", [[ + Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет". + ]]}; + {"Хорошо", [[ + Уолтер также молча отправляется в шлюзовую камеру. + ]], code [[ + lse_intro_with_walter = true; + lse_intro_with_anna = true; + if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + {tag="bad"}; + {"Тебе лучше остаться", [[ + Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет". + ]]}; + {"Хорошо", [[ + Уолтер также молча отправляется в шлюзовую камеру. + ]], code [[ + lse_intro_with_walter = true; + if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + {tag="good"}; + {"Тебе лучше остаться", [[ + Уолтер, немного подумав, кивает: "Хорошо". + ]], code [[ + if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + {"Хорошо", [[ + Уолтер также молча отправляется в шлюзовую камеру. + ]], code [[ + lse_intro_with_walter = true; + if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + walk("lse_on_enter_jack"); + else + walk("lse_on_enter_phaetlarr"); + end; + ]]}; + }; +}; + +lse_on_enter_jack = dlg { + nam = "lse_on_enter_jack"; + disp = "Левиафан, кают-компания"; + entered = function(s) + if (rel_jack < 0) then + psub("bad"); + return [[ + Джек Райт обращается к вам с просьбой: "Я пойду вместе с вами". + ]]; + else + psub("good"); + return [[ + Джек Райт обращается к вам с просьбой: "Я пойду вместе с вами. Хочу воочию увидеть Лсэрианотр". + ]]; + end; + end; + phr = { + {tag="bad"}; + {"Тебе лучше остаться здесь", [[ + Джек Райт выглядит сильно недвольным: "Не для того я отправлялся тобой, чтобы в конце ты просто взял и лишил меня возможности участовать в его окончании!" + ]]}; + {"Хорошо", [[ + Джек Райт уходит в шлюзовую камеру, готовиться к выходу. + ]], code [[ + lse_intro_with_jack = true; + walk("lse_on_enter_phaetlarr"); + ]]}; + {tag="good"}; + {"Тебе лучше остаться здесь", [[ + Джек Райт чешет подбородок в задумчивости: "Возможно ты прав. Я послушаю твоего совета". + ]], code [[ + walk("lse_on_enter_phaetlarr"); + ]]}; + {"Хорошо", [[ + Джек Райт уходит в шлюзовую камеру, готовиться к выходу. + ]], code [[ + lse_intro_with_jack = true; + walk("lse_on_enter_phaetlarr"); + ]]}; + }; +}; + +lse_on_enter_phaetlarr = dlg { + nam = "lse_on_enter_phaetlarr"; + disp = "Левиафан, кают-компания"; + entered = function(s) + if (rel_phaetlarr < 0) then + psub("bad"); + return [[ + Фаэтларр сообщает вам: "Я не пойду в лапы Блэку. Я остаюсь на Левиафане и подожду пока вы отвлечете Аэдхиарра". + ]]; + else + psub("good"); + return [[ + Фаэтларр сообщает вам: "Я остаюсь на Левиафане. Аэдхиарр не будет рад меня видеть и я достаточно доверяю тебе". + ]]; + end; + end; + phr = { + {tag="bad"}; + {"Я не думаю что это хороший план", [[ + Фаэтларр недовольно отвечает: "Я не спрашиваю, что ты думаешь! Я делаю как считаю нужным". + ]]}; + {"Хорошо", [[ + Фаэтларр молча уходит в свою каюту. + ]], code [[ + walk("lse_aedhyarr_intro"); + ]]}; + {tag="good"}; + {"Нам лучше держаться вместе", [[ + Фаэтларр отрицательно качает головой: "Тогда Блэк схватит нас всех сразу. Этого не нужно ни мне ни тебе. Один из нас должен прорваться и победить". + ]]}; + {"Хорошо", [[ + Перед тем как уйти в свою каюту, Фаэтларр уверенно говорит вам: "У нас все получится". + ]], code [[ + walk("lse_aedhyarr_intro"); + ]]}; + }; +}; + +lse_aedhyarr_intro = dlg { + nam = "lse_aedhyarr_intro"; + disp = "Лсэрианотр"; + entered = function(s) + if (lse_intro_with_phaetlarr or lse_intro_with_learr) then + return [[ + Едва вы ступаете на твердую землю, как навьяр в человеческой одежде приветствует вас: "Аэдхиарр рад встрече-с-вами, вьяры. Властитель вас-видеть-хочет". + ]]; + elseif (lse_intro_with_jack or lse_intro_with_walter or lse_intro_with_anna) then + return [[ + Едва вы ступаете на твердую землю, как навьяр в человеческой одежде приветствует вас: "Аэдхиарр рад встрече-с-вами, хевьяры. Властитель вас-видеть-хочет". + ]]; + else + return [[ + Едва вы ступаете на твердую землю, как навьяр в человеческой одежде приветствует вас: "Аэдхиарр рад встрече-с-тобой, хевьяр. Властитель тебя-видеть-хочет". + ]]; + end; + end; + phr = { + {"Властитель?", [[ + "Среди хевьяров он известен под именем Адриан Блэк". + ]]}; + {"Ты знаешь Уильяма Дрейка?", [[ + Аэдхиарр склоняет голову: "Он покинул нас в Заисланотре". + ]]}; + {"Что ты знаешь об этом месте?", [[ + "Немногое. Древние машины хранят несчетное количество тайн, но вскоре они все откроются нам, когда властитель пробудит спящего мудреца". + ]]}; + {"Что ты знаешь о Наэтвьирре?", [[ + "Спящий мудрец -- истинный хранитель этих тайн. Блэк говорит, что знает как разбудить его". + ]]}; + {"Что если я откажусь идти?", [[ + Аэдхиарр указывает на собравшихся вокруг навьяров: "Властитель будет недоволен. А мы не любим, когда кто-то огорчает властителя". + ]]}; + {"Я готов идти", [[ + + ]]}; + }; + +}; \ No newline at end of file diff --git a/lseryanotrr_locations.lua b/lseryanotrr_locations.lua --- a/lseryanotrr_locations.lua +++ b/lseryanotrr_locations.lua @@ -0,0 +1,7 @@ +lse_gate = room { + nam = "lse_gate"; + disp = "Лсэрианотр, ворота"; + view = [[ + + ]]; +}; \ No newline at end of file diff --git a/main.lua b/main.lua --- a/main.lua +++ b/main.lua @@ -41,11 +41,13 @@ dofile "journey_zayslanotrr.lua" dofile "journey_zayslanotrr_temple.lua" dofile "journey_temple.lua" -- Часть 4 -dofile "final_scene.lua"; -dofile "final_battle.lua"; -dofile "first_city_inner_rim.lua" -dofile "first_city_middle_rim.lua" -dofile "first_city_outer_rim.lua" +dofile "lseryanotrr_intro.lua" +dofile "lseryanotrr_locations.lua" +--dofile "final_scene.lua"; +--dofile "final_battle.lua"; +--dofile "first_city_inner_rim.lua" +--dofile "first_city_middle_rim.lua" +--dofile "first_city_outer_rim.lua" global { warehouse18_found = false; @@ -239,7 +241,7 @@ function init() put(item_colt, pl); --ven_shark.position = "55"; --pl.where = "za_plaetlarr_fight"; - pl.where = "dt_fight"; + pl.where = "lse_entered"; move(submarine_leviathan, "za_temple_back_entrance_foot"); char_anna.follow = true; --pl.where = "ven_chest_look";