-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room1_" или "kryltco_" -- Все описания можно менять -- Задача: Игрок должен открыть дверь ключом с именем bigkey и попасть внутрь дома, объект ключа можно создать с любым именем и описанием, после чего он должен пройти на север -- ВНИМАНИЕ: Это стартовая локация! Не надо делать сложно! Доступ на восток и запад преграждать нельзя! -- Игрок может придти в локацию как с ключом так и без ключа! obj { -"большой ключ,ключ"; nam = "bigkey"; description = "Большой ключ."; } room { attack_counter = 0; nam = "room1_kryltco"; title = "Перед домом"; dsc = function(s) if s:once() then p [[ Анастасия повернулась на север и очутилась перед большим особняком. Садовая дорожка уходила на запад и восток. Вокруг особняка густой зеленой стеной возвышался лес. Рядом торчал почтовый ящик.^ Вся эта картина что-то смутно ей напоминала. Возможно, начало нового приключения? ]]; return end p"Особняк тётушки Агаты, как и положено добропорядочным особнякам, всё так же находится на севере. По садовой дорожке всё так же можно пойти и на запад, и на восток. Почтовый ящик белеет облупившейся краской, отсвечивая на солнце."; end; n_to = 'room1_mansiondoor'; e_to = 'room2_terassa'; -- <<<<<<<<<< ПУТЬ НА ВОСТОК w_to = 'room2_terassa'; -- <<<<<<<<<< ПУТЬ НА ЗАПАД before_Listen = "Из леса доносится пение птиц."; before_Smell = "Пахнет весной, как обычно это бывает в мае."; before_Think = function() p("Анастасия попыталась подумать, но безрезультатно. Похоже, думать нужно "..fmt.em("кому-то другому.")) return true end; before_Attack = function (s) s.attack_counter = s.attack_counter + 1 pn("Согласно статье 7.17 КоАП РФ, уничтожение или повреждение чужого имущества влечет наложение административного штрафа в размере от трехсот до пятисот рублей.") pn("По возвращении в Санкт-Петербург вам будет выписан штраф на сумму " .. (s.attack_counter * 400) .. " рублей.") return true end; before_Eat = function(s,w) p("Анастасия была так голодна, что съела бы и "..w:noun('им')..", но благоразумие взяло вверх, и она решила повременить с трапезой.") end; obj = { 'room1_mansion', 'room1_windows', 'room1_forest', 'room1_road', 'room1_sun', 'room1_mailbox', }; } door { -"дверь,дверца,вход"; nam = "room1_mansiondoor"; description = function(s) if s:once() then p[[ Дверь в особняк Агаты была сделана в середине 18 века её прадедом, который, как гласила семейная легенда, был дружен с самим Штакеншнейдером. Прадед вырезал ее из модного в то время канадского дуба, придал ей классическую форму и повесил ее на железные петли, которые в свое время, может быть, и были хороши, но ужасно сейчас скрипели. На двери не было никаких орнаментов и узоров, только в левом нижнем углу виднелась одна царапина, о которой говорили, что ее сделал собственной шпорой Александр Иванович Михайловско-Данилевский, наместный мастер Великой масонской ложи Астрея, внучатый племянник деда тётушки Агаты. ]]; if s:has'locked' then p([[Ну и конечно же, дверь была надежно заперта.]]) end pn("В остальном же дверь была самой обыкновенной, и более подробно описывать её нет никакой надобности.") return else if s:has'locked' then pn[[Дверь в особняк заперта.]] pn("Как же отпереть дверь? Возможно, нужно немного "..fmt.em("подумать").."?") else if s:has'open' then p[[Дверь в особняк открыта.]] else p[[Дверь в особняк закрыта, но не заперта.]] end end end end; after_Unlock = function(s) remove('room1_doorkey') mp.score=mp.score+1 return false; end; with_key = "room1_doorkey"; door_to = "room3_hall"; -- <<<<<<<<<< СЮДА ВЕДЁТ ДВЕРЬ В ОСОБНЯК, КОГДА ОНА ОТКРЫТА found_in = 'room1_kryltco'; }:attr 'openable,lockable,locked,scenery,static' obj { -"дом,домик,особняк,коттедж,строение"; nam = "room1_mansion"; description = "Серая громада особняка в стиле северного модерна выделяется на фоне леса. В окнах поблескивает весеннее солнце."; before_Enter = function(s, w) mp:xaction('Enter', _'room1_mansiondoor') end; }:attr 'scenery' obj { -"лес,деревья"; nam = "room1_forest"; description = "Лес вокруг особняка прямо-таки искрился весенней свежестью. Да, весной в лесу очень хорошо, свежий воздух уже не пахнет сыростью, а благоухает ароматами зелени. Начинается новый виток природы. С далекого юга прилетают птицы, их пение наполняет лес веселыми трелями. На ветвях деревьев, в густой зелени появляются новые гнезда. Просыпаются и животные, по своим делам спешат между деревьями ежи и мыши. С ветки на ветку перескакивает проворная белка... извините, увлёкся."; before_Take = "Анастасия хотела бы взять с собой весь этот лес вместе с его обитателями, с каждой сойкой и свиристелем, каждой белкой и зайцем, каждым муравейником, прислонившимся к сосенкам посреди грибных полян... простите, автор слегка увлёкся."; }:attr 'scenery' obj { -"солнце"; nam = "room1_sun"; description = "Солнце — ближайшая к Земле звезда. Средняя удалённость Солнца от Земли — 149,6 миллионов километров — приблизительно равна астрономической единице. Сейчас же оно грело так, будто находилось на пару сотен километров поближе."; }:attr 'scenery' obj { -"окно|окна"; nam = "room1_windows"; description = "Сквозь мутные окна особняка виднелись очертания внутренней обстановки, но деталей было не разобрать."; before_Take = [[Анастасия подумала: "А не выставить ли окно и проникнуть в дом таким путём?". Но эта смелая и неординарная мысль была отброшена прочь. Дверь, и только дверь, должна была послужить порталом в тётушкин особняк.]]; }:attr 'scenery' obj { -"дорога,дорожка"; nam = "room1_road"; description = "Садовая дорожка уходит на запад и возвращается с востока. Или наоборот."; }:attr 'scenery' obj { -"почтовый ящик,ящик"; nam = "room1_mailbox"; capacity = 1; description = function(s) if s:has'locked' then pn("Что-то поблескивает внутри запертого почтового ящика.") if s:once() then pn("Надо бы его отпереть. Но как?") else pn("Как же отпереть ящик? Возможно, нужно немного "..fmt.em("подумать").."?") end return true else if not s:has'open' then pn("В почтовом ящике что-то поблескивает. Нужно поскорее его открыть!") return true end end return false end; before_Take = function(s) p "Всесторонне изучив ящик, Анастасия решила, что брать его с собой всё же излишне."; return true; end, after_Unlock = function(s) remove('bigkey') mp.score=mp.score+1 return false; end; with_key="bigkey"; obj = { 'room1_doorkey', } }:attr 'scenery,container,openable,lockable,locked' obj { -"маленький ключ,ключик,ключ"; nam = "room1_doorkey"; description = "Медный ключ от особняка, слегка позеленевший от старости."; }