Changeset - da68432ec9d2
[Not reviewed]
default
0 2 0
Silverwing - 8 years ago 2016-09-03 17:21:47

Venaedanotrr partially implemented
2 files changed with 437 insertions and 17 deletions:
0 comments (0 inline, 0 general)
journey_venaedanotrr.lua
Show inline comments
 
item_ven_key_chieftain = obj {
 
    nam = 'item_ven_key_chieftain';
 
    disp = "Первый ключ от храма";
 
    inv = [[
 
        Небольшой коралловый ключик, Кольцо его окрашено в красный цвет.
 
    ]];
 
};
 

	
 
item_ven_key_library = obj {
 
    nam = 'item_ven_key_library';
 
    disp = "Второй ключ от храма";
 
    inv = [[
 
        Небольшой коралловый ключик, Кольцо его окрашено в зеленый цвет.
 
    ]];
 
};
 

	
 
item_ven_key_tower = obj {
 
    nam = 'item_ven_key_tower';
 
    disp = "Третий ключ от храма";
 
    inv = [[
 
        Небольшой коралловый ключик, Кольцо его окрашено в синий цвет.
 
    ]];
 
};
 

	
 
item_ven_gem = obj {
 
    nam = "item_ven_gem";
 
    disp = "Жемчужина";
 
    dsc = "{Взять жемчужину}";
 
    inv = [[
 
        Крупная жемчужина, диаметром около сантиметра. 
 
    ]];
 
    tak = [[
 
        Вы забираете жемчужину. 
 
    ]];
 
};
 

	
 
item_ven_coin = obj {
 
    nam = "item_ven_coin";
 
    disp = "Монета";
 
    dsc = "{Взять монету}";
 
    inv = [[
 
        Небольшая старинная монета из неизвестного металла. Она хорошо сохранилась несмотря на столетия, проведенные в соленой воде. Вы не понимаете ни одного из символов нанесенных на ее поверхности.
 
    ]];
 
    tak = [[
 
        Вы забираете монету. 
 
    ]];
 
};
 

	
 
item_ven_tablet = obj {
 
    nam = "item_ven_tablet";
 
    disp = "Табличка";
 
    dsc = "{Взять табличку}";
 
    inv = [[
 
        Металлическая табличка с рисунком, изображающим навьяра и человека, пожимающих друг другу руки.
 
    ]];
 
    tak = [[
 
        Вы забираете табличку.
 
    ]];
 
};
 

	
 
ven_obelisk = obj {
 
	nam = "ven_obelisk";
 
	dsc = [[
 
@@ -19,10 +79,12 @@ ven_obelisk = obj {
 
ven_chieftain_dlg = dlg {
 
	var {
 
		state = 0;
 
        answer = 0;
 
	};
 
	nam = "Вождь Венаэданотра";
 
	entered = function(s)
 
		if (s.state == 0) then
 
			ven_chieftain.state = 1;
 
			psub('first_meeting');
 
			return [[
 
				Перед вами стоит немолодой навьяр. Несмотря на возраст, он держится гордо и прямо. Его глаза внимательно изучают вас. По его плавникам бегут цветные полосы: "I'yhe'ven'aed'anot'rr lea'lyt'nn ty'yhe'he'vji'a'rr. [другие хевьяры были здесь до вас. Они искали первый город и то, что скрывается в нем]".
 
@@ -37,44 +99,400 @@ ven_chieftain_dlg = dlg {
 
	phr = {
 
		{tag="first_meeting"};
 
		{"[Цветокод]Кто?", [[
 
			Вождь отвечает: "Их много было. Среди них двое главных. Прежде чем я скажу больше, ответьте - зачем вы здесь?"
 
			"Их много было. Среди них двое главных. Прежде чем я скажу больше, ответьте - зачем вы здесь?"
 
		]], code [[ psub('why_here'); ]]};
 
		{"[Цветокод]Куда они направились?", [[
 
			Вождь отвечает: "Дальше к своей цели. Но зачем вы здесь?"
 
			"Дальше к своей цели. Но зачем вы здесь?"
 
		]], code [[ psub('why_here'); ]]};
 
		{tag="why_here"};
 
		{"[Цветокод]Я ищу своего отца. Он был с ними", [[
 
			Вождь отвечает: "Они направились в первый город. Один из них хочет пробудить спящего. Вам нужно остановить их".
 
		]], code [[ psub('naethvjirr_awaken'); ]] };
 
			"Они направились в первый город. Один из них хочет пробудить спящего. Вам нужно остановить их".
 
		]], code [[ ven_chieftain_dlg.answer = 1; psub('naethvjirr_awaken'); ]] };
 
		{"[Цветокод]Мы ищем первый город и знания скрытые в нем", [[
 
			Вождь отвечает: "Вы встретите их там, если поспешите. Один из них хочет пробудить спящего. Вам нужно остановить их".
 
		]], code [[ psub('naethvjirr_awaken'); ]]};
 
			"Вы встретите их там, если поспешите. Один из них хочет пробудить спящего. Вам нужно остановить их".
 
		]], code [[ ven_chieftain_dlg.answer = 2; psub('naethvjirr_awaken'); ]]};
 
		{"[Цветокод]Мы ищем спящего в глубинах", [[
 
			Вождь отвечает: "Остановитесь и поверните назад".
 
		]], code [[ psub('naethvjirr_awaken'); ]]};
 
			"Остановитесь и поверните назад".
 
		]], code [[ ven_chieftain_dlg.answer = 3; psub('naethvjirr_awaken'); ]]};
 
		{tag="naethvjirr_awaken"};
 
		{"[Цветокод]Что будет, если спящий пробудится?", [[
 
		]]};
 
            "Никто не знает. Но если его знания попадут не в те руки -- мир обречен. И я боюсь, что в первом корабле был один из тех, кто никогда не должен получить эти знания".
 
		]], code [[ psub("who_hope") ]]};
 
        {tag="who_hope"};
 
        {"[Цветокод]Кто это?", [[
 
            "Все они. Каждый из них искал Наэтвьирра лишь для того, чтобы удовлетворить свои личные амбиции. Но они этого не понимают и потому -- опасны".
 
        ]], {code [[ psub("dont_understand"); ]]}};
 
        {tag="dont_understand"};
 
        {"[Цветокод]Я не понимаю", [[
 
            "Поймешь, когда проживешь больше лет"
 
        ]]};
 
        {"[Цветокод]И Уильям тоже?", [[
 
            "Все они. И я не знаю никого, кто мог бы пройти этот путь не ради личного интереса".
 
        ]], code [[ psub("dont_understand2");]]};
 
        {tag="dont_understand2"};
 
        {"[Цветокод]А я?", function(s)
 
            if (ven_chieftain_dlg.answer == 1) then
 
                return [[
 
                    "Ты уже сказал, что Наэтвьирр тебе не нужен. Ты ищешь своего отца".
 
                ]];
 
            elseif (ven_chieftain_dlg.answer == 2) then
 
                return [[
 
                    "Ты уже сказал, что ищешь наши древние знания. Разве не для себя ты их ищешь?"
 
                ]];
 
            else
 
                return [[
 
                    "Ты уже сказал, что ищешь Наэтвьирра Разве не для себя ты его ищешь?"
 
                ]];
 
            end;
 
        end, code [[
 
            if (ven_chieftain_dlg.answer == 2) then
 
                psub("what_for_city");
 
            elseif (ven_chieftain_dlg.answer == 3) then
 
                psub("what_for_machine");
 
            end;
 
        ]]};
 
        {"[Цветокод]Все равно не понимаю. Но спорить не буду.", [[
 
            "Мудрое решение. Перейдем к другим делам".
 
        ]], code [[ psub("generic");]]};
 
        {"[Цветокод]Кажется, я понял.", [[
 
            "Тебе лишь кажется".
 
        ]], code [[ psub("generic");]]};
 
        {tag="what_for_city"};
 
        {"[Цветокод]Ты прав. Я ищу их для себя. ", [[
 
            "Именно".
 
        ]], code [[ pret(); ]]};
 
        {"[Цветокод]Я хочу блага этому миру. Эти знания должны быть доступны всем, а не покоиться на морском дне.", [[
 
            "\"Я хочу\" - ты говоришь. И в этом ключ".
 
        ]], code [[ pret(); ]]};
 
        {tag="what_for_machine"};
 
        {"[Цветокод]Ты прав. Я ищу его для себя. ", [[
 
            "Именно".
 
        ]], code [[ pret(); ]]};
 
        {"[Цветокод]Мне нужны его знания. ", [[
 
            "\"Мне нужны\" - ты говоришь. И в этом ключ".
 
        ]], code [[ pret(); ]]};
 
		{tag="generic"};
 
		{"[Цветокод]I'rr Kee'nn", "Ty'rr daa'per'ysl'nn", code = [[ back(); ]]};
 
        {"[Цветокод]Что еще ты можешь сказать про Наэтвьирра?", [[
 
            "Ты уже знаешь саму легенду?"
 
        ]],code [[ psub("legend");]]};
 
		{"[Цветокод]I'rr Kee'nn", [[
 
            "Ты возвращайся".
 
        ]], code = [[ back(); ]]};
 
        {tag="legend"};
 
        {"[Цветокод]Да", [[
 
            "Тогда, ты должен знать, что Наэтвьирр опасен для всех вьяров. Если я не ссмог убедить тебя, поговори с другими мудрецами - [Смотрящим наверх] в старой башне и [Хранителем прошлого] в библиотеке".
 
        ]], code [[pret();]]};
 
        {"[Цветокод]Нет", [[
 
            "Дело было многие тысячелетия назад. Тогда навьяры жили в огромных городах и строили могучие машины, способные выполнять за нас самые тяжелые и неприятные дела. Большинство из них тогда искали решение последней задачи - создать машину, которая смогла бы думать и собирать знания за них. Долгие годы искали они решение этой проблемы, пока наконец навьяры из первого города не нашли его. Однако нашлись среди навьяров те, кто понимал, что Наэтвьирр первым же делом уничтожит навьяров, которые окажутся совершенно не нужны ему. Вскоре они сумели убедить всех жителей города навсегда закрыть его от всех глаз и забыть напрочь его местоположение. Но были среди навьяров и те, кто хотел наступления новой эры. Эти навьяры спрятали в различных городах подсказки для будущих поколений, когда те пожелают найти древнюю машину и пробудить ее. Если я не ссмог убедить тебя, поговори с другими мудрецами - Ien'tea'rr в старой башне и Hya'arhe'ysl'rr в библиотеке".
 
        ]], code [[ 
 
            path("К башне(на восток)", venaedanotrr_center):enable();
 
            pret("К библиотеке(на запад)", venaedanotrr_center):enable();
 
        ]]};
 
	};
 
};
 

	
 
ven_chieftain = npc {
 
	nam = "ven_chieftain";
 
	dsc = [[
 
		{Вождь} стоит рядом с обелиском. 
 
	]];
 
	var {
 
		state = 0;
 
	};
 
	dsc = function(s)
 
		if (s.state == 0) then
 
			return [[
 
				Рядом с обелиском стоит {немолодой навьяр}.
 
			]];
 
		else
 
            return [[
 
                Рядом с обелиском стоит {вождь}.
 
            ]]
 
        end;
 
	end;
 
	dlg = 'ven_chieftain_dlg';
 
}
 

	
 
venaedanotrr_center = room {
 
	nam = "Венаэданотр, центр города";
 
	dsc = [[
 
		Венаэданотр гораздо больше других виденных вами навьярских поселений. Каменные строения тянутся во все стороны от центральной площади. 
 
		Центральная площадь навьярского города вымощена камнем. Во все стороны вокруг тянутся невысокие каменные строения. Вдали на востоке вы видите башню, возвышающуюся над остальными зданиями города. 
 
	]];
 
	obj = {
 
		'ven_obelisk',
 
		'ven_chieftain'
 
	};
 
}
 
\ No newline at end of file
 
    way = {
 
        kh_vroom("В Левиафан", leviathan_airlock);
 
        kh_vroom("К башне(на восток)", "venaedanotrr_east"):disable();
 
        kh_vroom("К библиотеке(на запад)", "venaedanotrr_west"):disable();
 
    };
 
}
 

	
 
venaedanotrr_west = room {
 
    var {
 
        visited = false;
 
    };
 
    nam = "Венаэдантр, у библиотеки";
 
    dsc = function(s)
 
        if (s.visited) then
 
            return [[
 
                "Небольшая открытая площадка около библиотеки. Фасад большого здания украшен резными узорами, окрашенными различными цветами".
 
            ]];
 
        else
 
            s.visited = true;
 
            return [[
 
                "Вы с легкостью находите библиотеку - одно из самых больших зданий в городе. Фасад его украшен резными узорами, окрашенными различными цветами, очевидно несущими некоторый смысл для навьяров".
 
            ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В центр", "venaedanotrr_center");
 
        kh_vroom("В библиотеку", "venaedanotrr_library");
 
    };
 
};
 

	
 
venaedanotrr_library = room {
 
    nam = "Венаэданотр, библиотека";
 
    dsc = [[
 
        Внутри библиотека Венаэданотра представляет собой огромный зал со множеством колонн, удерживающих крышу. Между колоннами установлено множество шкафов, на полках которых покоятся бесчисленные металлические таблички, используемые навьярами для записи текстов.
 
    ]];
 
    obj = {
 
        'venaedanotrr_library_guards',
 
        'venaedanotrr_library_navjiars',
 
        'venaedanotrr_librarian'
 
    };
 
    way = {
 
        kh_vroom("Выйти", "venaedanotrr_west");
 
    };
 
};
 

	
 
venaedanotrr_library_guards = obj {
 
    nam = "venaedanotrr_library_guards";
 
    dsc = [[
 
        У входа в библиотеку стоят {два стражника}. Они с изумлением рассматривают вас, когда вы оказываетесь рядом. 
 
    ]];
 
    act = [[
 
        Незачем их тревожить.
 
    ]];
 
};
 

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

	
 
venaedanotrr_librarian = npc {
 
    nam = "venaedanotrr_librarian";
 
    dsc = [[
 
        Ваше внимание привлекает {навьяр}, заботливо возвращающий таблички на свои места за нерадивыми посетителями. Он, кажется, полностью погружен в свое занятие. 
 
    ]];
 
    dlg = "venaedanotrr_librarian_dlg";
 
};
 

	
 
venaedanotrr_librarian_dlg = dlg {
 
    var {
 
        state = 0;
 
    };
 
    nam = "Библиотекарь";
 
    entered = function(s)
 
        if (s.state == 0) then
 
            s.state = 1;
 
            psub("first_meeting");
 
            return [[
 
                Навьяр не обращает на вас никакого внимания, даже когда вы подходите совсем близко. 
 
            ]];
 
        else
 
            psub("generic");
 
            return [[
 
                Заметив вас, библиотекарь прекращает свои занятия и устремляет взор на вас. 
 
            ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="first_meeting"};
 
        {"[Коснуться плеча навьяра]", [[
 
            Навьяр резко оборачивается, уставившись на вас. Вскоре он приходит в себя и приветствует вас: "Приветствую тебя, хевьяр. Я Hya'arhe'ysl'rr. Что хочешь ты?"
 
        ]], code [[ psub ("generic"); ]]};
 
        {"[Уйти]", code = [[ back(); ]]};
 
        {tag="generic"};
 
        {"[Цветокод]Вождь сказал, ты можешь рассказать про Наэтвьирра", [[
 
            "Ты уже знаешь легенду?"
 
        ]], code [[ psub("know_legend"); ]]};
 
        {"[Цветокод]I'rr kee'nn", [[
 
            "Ты возвращайся".
 
        ]], code = [[ back(); ]]};
 
        {tag="know_legend"};
 
        {"[Цветокод]Да", [[
 
            "Тогда ты знаешь, что Наэтвьирр должен был принести навьярам неслыханное величие и процветание и лишь страх и глупость большинства из них помешали осуществлению этого".
 
        ]], code [[ psub("what_about_hevjiarr");]]};
 
        {"[Цветокод]Нет", [[
 
            "Это произошло много тысячелетий назад. Древние навьяры жили в больших городах - гораздо больше чем Ven'aed'anot'rr. Они строили машины, которые помогали им в нелегкой жизни. Однажды, они придумали и построили машину, которая могла все знать и думать за них. И включили бы они эту машину и все было бы прекрасно, однако нашлись среди навьяров те, кто засомневался - а будет ли машина мыслить действительно так же, как мыслил бы навьяр? А не попытается ли машина сама занять место навьяров в этом мире? Не станут ли навьяры совсем не нужны? Вскоре эти сомнения заставили навьяров в страхе покинуть город, навсегда закрыв его от всех глаз и забыв напрочь его местоположение. Так, по собственной глупости навьяры отказались от прекрасного будущего. Если бы сейчас, кто-то смог найти Lse'ry'anot'rr и пробудить Na'eth'vji'rr'а, то он бы вернул навьярам былое величие их народа".
 
        ]], code [[ psub("what_about_hevjiarr");]]};
 
        {tag="what_about_hevjiarr"};
 
        {"[Цветокод]Что станет при этом с людьми?", [[
 
            "Наэтвьирр использует свою мудрость на благо всем вьярам".
 
        ]]};
 
        {"[Цветокод]Я ищу способ пробудить Наэтвьирра", [[
 
            "Твой путь лежит в храм. Я дам тебе ключ".
 
        ]], code [[ take('item_ven_key_library'); psub('generic'); ]]};
 
        {"[Цветокод]Я ищу путь в первый город", [[
 
            "Твой путь лежит в храм. Я дам тебе ключ".
 
        ]], code [[ take('item_ven_key_library'); psub('generic'); ]]};
 
    };
 
};
 

	
 
venaedanotrr_east = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = "Венаэданотр, у входа в башню";
 
    dsc = function(s)
 
        if (s.state == 0) then
 
            s.state = 1;
 
            return [[
 
                Вы долго блуждаете по улицам города в поисках пути в башню, стоящую в восточной части города. Оказавшись у входа, вы видите массивные двери, закрывающие вход внутрь. 
 
            ]];
 
        else
 
            return [[
 
                Вы стоите у входа в высокую трехэтажную башню. Массивные каменные двери закрывают вход. 
 
            ]];
 
        end;
 
    end;
 
    obj = {
 
        'ven_tower_guard'
 
    };
 
    way = {
 
        kh_vroom("В башню", "venaedanotrr_tower_l1");
 
        kh_vroom("В центр", "venaedanotrr_center");
 
    };
 
};
 

	
 
ven_tower_guard = npc {
 
    nam = "ven_tower_guard";
 
    dsc = [[
 
        У ворот стоит одинокий {стражник}. Он внимательно наблюдает за вашими действиями. 
 
    ]];
 
    phr = {
 
        "\"Ты проходи\"."
 
    };
 
};
 

	
 
venaedanotrr_tower_l1 = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = "Венаэданотр, башня, первый этаж";
 
    dsc = [[
 
        Вы стоите на первом этаже башни Венаэданотра. В центре большого зала вы видите три статуи.
 
    ]];
 
    obj = {
 
        'ven_statue_navjiarr',
 
        'ven_statue_monster',
 
        'ven_statue_human'
 
    };
 
    way = {
 
        kh_vway("Выйти", "venaedanotrr_east");
 
        kh_vway("На второй этаж", function(s)
 
            if (s.state == 1) then
 
                return "venaedanotrr_tower_l2";
 
            else
 
                pr("Дверь не открывается.");
 
                return false;
 
            end;
 
        end);
 
    };
 
};
 

	
 
venaedanotrr_tower_l2 = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = "Венаэданотр, башня, второй этаж";
 
    dsc = [[
 
        Второй этаж башни представляет из себя зал примерно таких же размеров, что и первый. В центре зала вы видите пьедестал с двумя выемками.
 
    ]];
 
    way = {
 
        kh_vway("На первый этаж", "venaedanotrr_tower_l1");
 
        kh_vway("На третий этаж", function(s)
 
            if (s.state == 1) then
 
                return "venaedanotrr_tower_l3";
 
            else
 
                pr("Дверь не открывается.");
 
                return false;
 
            end;
 
        end);
 
    };
 
}
 
        
 
ven_statue_navjiarr = obj {
 
    nam = "ven_statue_navjiarr";
 
    dsc = [[
 
        {Первая статуя} изображает молодого навьяра, гордо смотрящего перед собой. 
 
    ]];
 
    act = [[
 
        Вы осматриваете статую, но не находите ничего интересного. 
 
    ]];
 
};
 

	
 
ven_statue_monster = obj {
 
    nam = "ven_statue_monster";
 
    dsc = [[
 
        {Вторая статуя} изображает существо с четырьмя руками. Верхняя часть тела существа покрыта гладкой кожей, а нижняя - чешуей. Вместо ног у статуи змеиный хвост. 
 
    ]];
 
    act = function(s)
 
        walk("ven_statue_monster_look");
 
    end;
 
};
 

	
 
ven_statue_human = obj {
 
    nam = "ven_statue_human";
 
    dsc = [[
 
        {Последняя статуя} изображает человека, одетого в тогу. 
 
    ]];
 
    act = [[
 
        Вы осматриваете статую, но не находите ничего интересного. 
 
    ]];
 
};
 

	
 
ven_statue_monster_look = room {
 
    nam = "Статуя";
 
    dsc = [[
 
        Перед вами статуя четырехрукого существа. Верхняя часть его тела покрыта гладкой кожей, а нижняя - чешуей. Вместо ног у статуи змеиный хвост. В руках статуя держит несколько предметов. 
 
    ]];
 
    obj = {
 
        'item_ven_gem';
 
        'item_ven_coin';
 
        'item_ven_tablet';
 
        'ven_statue_spear_take';
 
        'ven_statue_spear_rotate';
 
    };
 
    way = {
 
        vway("Отойти от статуи", "venaedanotrr_tower_l1");
 
    };
 
};
 

	
 
ven_statue_spear_take = obj {
 
    nam = "ven_statue_spear_take";
 
    dsc = "{Взять копье}";
 
    act = function(s)
 
        ven_statue_spear_rotate:enable();
 
        return [[
 
            Копье крепко держится в руке статуи. 
 
        ]];
 
    end;
 
};
 

	
 
ven_statue_spear_rotate = obj {
 
    nam = "ven_statue_spear_rotate";
 
    dsc = "{Повернуть копье}";
 
    act = function(s)
 
        venaedanotrr_tower_l1.state = 1;
 
        s:disable();
 
        return [[
 
            Вы поворачиваете копье и дверь в дальнем конце зала открывается.
 
        ]];
 
    end;
 
}:disable();
 
\ No newline at end of file
main.lua
Show inline comments
 
@@ -216,8 +216,10 @@ function init()
 
	pl.where = "leviathan_airlock";
 
	atlantis_found = true;
 
	move(submarine_leviathan, "atl_aqua_leviathan_dock");
 
	
 
	--pl.where = "atl_oculus_lab_a";
 
    submarine_leviathan:enable();   
 
	   
 
	pl.where = "venaedanotrr_center";
 
    move(submarine_leviathan, "venaedanotrr_center");   
 
	--put(item_suit, pl);
 
	
 
	-- pl.where = warehouse_32;
0 comments (0 inline, 0 general)