mirror of https://github.com/goraph/17rooms
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
428 lines
19 KiB
428 lines
19 KiB
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room9_" или "garazh_" |
|
-- Все описания можно менять |
|
-- Задача: Игрок должен найти в локации предмет kerosin |
|
|
|
room { |
|
nam = "room9_room9_nil"; |
|
} |
|
|
|
|
|
obj { |
|
-"рука"; |
|
nam = "room9_no_рука"; |
|
description = ""; |
|
before_Exam = function(s) |
|
if here().room9_var == 4 then p [[В тиски зажата грубо отпиленная рука.]]; here().room9_var = 5; |
|
else p [[В тиски зажата грубо отпиленная рука.]]; end; |
|
end; |
|
found_in = 'room9_room9_nil'; |
|
before_Take = function(s) |
|
p [[Тебе не нужна ещё одна рука, у тебя уже есть две.]] |
|
end; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"нога"; |
|
nam = "room9_no_нога"; |
|
description = ""; |
|
before_Exam = function(s) |
|
if here().room9_var == 6 then p [[В тиски зажата грубо отпиленная нога.]]; here().room9_var = 7; |
|
else p [[В тиски зажата грубо отпиленная нога.]]; end; |
|
end; |
|
found_in = 'room9_room9_nil'; |
|
before_Take = function(s) |
|
p [[Тебе не нужна ещё одна нога, у тебя уже есть две.]] |
|
end; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"гвоздь | метка"; |
|
nam = "room9_no_гвоздь"; |
|
description = ""; |
|
found_in = 'room9_room9_nil'; |
|
before_Exam = function(s) |
|
if here().room9_var == 10 then p [[В твой хобот вбит меченый гвоздь.]]; |
|
else p [[На гвоздь нанесена метка инспектора По, что, впрочем, не имеет значения.]]; end; |
|
end; |
|
before_Take = function(s) |
|
if here().room9_var == 10 |
|
then |
|
mp.score=mp.score+1; |
|
p [[Ты с трудом вытащила большой гвоздь из хобота. Хобот сдулся, посерел и рассыпался в пыль.]] |
|
move("room9_no_хобот", "room9_room9_nil") |
|
here().room9_var = 11 |
|
end; |
|
return false; |
|
end; |
|
} |
|
|
|
obj { |
|
-"хобот"; |
|
nam = "room9_no_хобот"; |
|
description = ""; |
|
found_in = 'room9_room9_nil'; |
|
before_Exam = function(s) |
|
if here().room9_var == 10 then p [[Хобот небрежно прибит к полу большим гвоздём.]]; |
|
else p [[Слонячий такой хобот.]]; end; |
|
end; |
|
before_Take = function(s) |
|
if here().room9_var < 10 |
|
then |
|
p [[Ты двумя руками стащила хобот с верстака. Внезапно в гараж ворвался инспектор По и вонзил в твой хобот меченый гвоздь. Теперь хобот прибит к полу.]] |
|
move("room9_no_гвоздь", "room9_garazh") |
|
move("room9_no_инспектор", "room9_garazh") |
|
here().room9_var = 10 |
|
else |
|
p [[Ты не можешь взять хобот, потому что он прибит к полу большим гвоздём.]] |
|
end; |
|
end; |
|
} |
|
|
|
|
|
-- люк заперт на замок; замок можно открыть гвоздём, при этом гвоздь теряется |
|
-- не настоящий подвал, а всего-лишь небольшая ямка |
|
--в ямке - пальцы мертвеца(это такой гриб) и керосин |
|
|
|
|
|
|
|
obj { |
|
-"инспектор По, инспектор, По/мр | гость"; |
|
nam = "room9_no_инспектор"; |
|
description = "Инспектор По - он внезапный и пугающий гость, он вонзил в твой хобот меченый гвоздь!"; |
|
found_in = 'room9_room9_nil'; |
|
}:attr 'scenery,animate' |
|
|
|
---------------------------------------- |
|
----------------------- |
|
|
|
|
|
room { |
|
nam = "room9_garazh"; |
|
title = "Гараж"; |
|
dsc = "На западе - гардероб."; |
|
w_to = function() |
|
if have('room9_o1') then |
|
p "Не думаю что тебе понадобиться всё. Лучше оставить всё в гараже."; |
|
return; |
|
end; |
|
if here().room9_var < 10 then |
|
p [[Ты вышла из этого жуткого гаража в гардеробную комнату.]]; |
|
else |
|
move("room9_no_гвоздь", "room9_garazh") |
|
p [[Инспектор закричал: "Ты можешь идти куда хочешь, но мой гвоздь останется здесь!"]]; |
|
end; |
|
move(pl,'room8_garderob'); |
|
end; |
|
|
|
e_to = function() |
|
if here().room9_var < 3 |
|
then p [[Прежде чем идти, хорошо бы всё осмотреть.]]; |
|
else |
|
p [[Возможно, ты сходишь с ума, но тебе кажется, что в гараже что-то изменилось. ]]; |
|
end |
|
if here().room9_var == 3 |
|
then here().room9_var = 4 -- ничего взято, всё осмотрено, появилась рука |
|
move("room9_no_рука", "room9_garazh") |
|
end; |
|
if here().room9_var == 5 |
|
then here().room9_var = 6 -- ничего взято, всё осмотрено, появилась нога |
|
move("room9_no_нога", "room9_garazh") |
|
move("room9_no_рука", "room9_room9_nil") |
|
end; |
|
if here().room9_var == 7 |
|
then here().room9_var = 8 -- ничего взято, всё осмотрено, появился хобот |
|
move("room9_no_хобот", "room9_garazh") |
|
move("room9_no_нога", "room9_room9_nil") |
|
end; |
|
end; |
|
|
|
n_to = function() |
|
if here().room9_var < 3 |
|
then p [[Прежде чем идти, хорошо бы всё осмотреть.]]; |
|
else |
|
p [[Возможно, ты сходишь с ума, но тебе кажется, что в гараже что-то изменилось. ]]; |
|
end |
|
if here().room9_var == 3 |
|
then here().room9_var = 4 -- ничего взято, всё осмотрено, появилась рука |
|
move("room9_no_рука", "room9_garazh") |
|
end; |
|
if here().room9_var == 5 |
|
then here().room9_var = 6 -- ничего взято, всё осмотрено, появилась нога |
|
move("room9_no_нога", "room9_garazh") |
|
move("room9_no_рука", "room9_room9_nil") |
|
end; |
|
if here().room9_var == 7 |
|
then here().room9_var = 8 -- ничего взято, всё осмотрено, появился хобот |
|
move("room9_no_хобот", "room9_garazh") |
|
move("room9_no_нога", "room9_room9_nil") |
|
end; |
|
end; |
|
|
|
s_to = function() |
|
if here().room9_var < 3 |
|
then p [[Прежде чем идти, хорошо бы всё осмотреть.]]; |
|
else |
|
p [[Возможно, ты сходишь с ума, но тебе кажется, что в гараже что-то изменилось. ]]; |
|
end |
|
if here().room9_var == 3 |
|
then here().room9_var = 4 -- ничего взято, всё осмотрено, появилась рука |
|
move("room9_no_рука", "room9_garazh") |
|
end; |
|
if here().room9_var == 5 |
|
then here().room9_var = 6 -- ничего взято, всё осмотрено, появилась нога |
|
move("room9_no_нога", "room9_garazh") |
|
move("room9_no_рука", "room9_room9_nil") |
|
end; |
|
if here().room9_var == 7 |
|
then here().room9_var = 8 -- ничего взято, всё осмотрено, появился хобот |
|
move("room9_no_хобот", "room9_garazh") |
|
move("room9_no_нога", "room9_room9_nil") |
|
end; |
|
end; |
|
|
|
before_Remove = function(s,w,wh) |
|
-- правильная отработка команд "взять что-то из гаража/пола/тисков/шкафа" |
|
if wh == _'room9_no_гараж' or wh == _'room9_no_пол' or wh == _'room9_no_тиски' or wh == _'room9_no_шкаф' then |
|
mp:xaction('Take', w); |
|
else |
|
return false; |
|
end; |
|
end; |
|
before_Listen = "Ты слышишь гулкий ритмичный звук - то ли это живые мертвецы стучат, то ли это стук твоего сердца."; |
|
before_Smell = "Дело пахнет керосином."; |
|
obj = { 'room9_o1', 'room9_o2'}; |
|
room9_var = 1; -- ничего не взято; всё не осмотрено; и тыды |
|
} |
|
|
|
-- объекты для взаимодействия: |
|
|
|
obj { |
|
-"всё"; |
|
nam = "room9_o1"; |
|
description = ''; |
|
before_Exam = function(s) |
|
if here().room9_var == 1 |
|
then p [[Прежде, чем всё осмотреть, подумай - тебе ничего не мешает?]]; |
|
else p [[Как ты можешь видеть, в этом гараже всё есть. И есть даже выходы на все четыре стороны, хоть ты их и не видишь.]]; |
|
end; |
|
if here().room9_var == 2 |
|
then here().room9_var = 3 -- ничего взято, всё осмотрено |
|
end; |
|
return false; |
|
end; |
|
} |
|
|
|
obj { |
|
-"ничего"; |
|
nam = "room9_o2"; |
|
description = "Здесь ничего, а так же странный звук и странный запах. Очень странное ничего."; |
|
after_Take = function(s) |
|
here().room9_var = 2 -- ничего взято |
|
move("room9_no_помеха", "room9_room9_nil") |
|
move(s, "room9_room9_nil") |
|
return false |
|
end; |
|
} |
|
|
|
-- объекты сцены: |
|
|
|
|
|
obj { |
|
-"дело"; |
|
nam = "room9_no_дело"; |
|
description = "Всё что тебе нужно здесь, это керосин."; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"помеха | препятствие"; |
|
nam = "room9_no_помеха"; |
|
description = "Да вроде, ничего не мешает. Или, всё же, мешает?"; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
|
|
obj { |
|
-"бензопила, рисунок"; |
|
nam = "room9_no_бензопила"; |
|
description = "На северной стене ты видишь искусно нарисованную бензопилу. Увы, это всего-лишь рисунок на стене."; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"верстак, стол"; |
|
nam = "room9_no_верстак"; |
|
description = ""; |
|
after_Exam = function(s) |
|
if here().room9_var < 4 or here().room9_var > 9 then p [[Верстак - это просто деревянный рабочий стол, с закреплёнными на нём стальными тисками.]]; |
|
else p [[Верстак - это просто деревянный рабочий стол, с закреплёнными на нём стальными тисками. В тисках что-то есть.]] end; |
|
return false; |
|
end; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"гараж|стена|стены"; |
|
nam = "room9_no_гараж"; |
|
description = "Старый пыльный гараж. На севере - бензопила, на юге - книги, на востоке - верстак, в полу - люк, на западе - выход."; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"звук | стук | ритм | смех | хохот"; |
|
nam = "room9_no_звук"; |
|
description = "Осмотреть звук? Оригинально."; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"запах"; |
|
nam = "room9_no_запах"; |
|
description = "Осмотреть запах? Оригинально."; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"книга|книги"; |
|
nam = "room9_no_книга"; |
|
description = 'Пыльный шкаф с книгами расположился у южной стены.'; |
|
before_Take = function(s) |
|
p [[Не успела ты прикоснуться к книгам, как они разлетелись по гаражу, а на стене шкафа стала видна грубо выцарапанная надпись: "МЫ ДО ТЕБЯ ДОБЕРЁМСЯ!" - и раньше, чем ты успела хотя бы моргнуть, книги вернулись обратно в шкаф.]] |
|
end; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"мертвец | мертвецы"; |
|
nam = "room9_no_мертвец"; |
|
description = 'Зловещие мертвецы могут внезапно напасть в любой момент. Но прямо сейчас ты их не видишь.'; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"надпись"; |
|
nam = "room9_no_надпись"; |
|
description = 'Сейчас надпись не видна за книгами.'; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"пол"; |
|
nam = "room9_no_пол"; |
|
description = "Пол гаража покрыт странными бурыми пятнами и глубокими царапинами. В полу есть люк."; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"пыль | пятна | царапины | пятно | царапина"; |
|
nam = "room9_no_пыль"; |
|
description = "Повсюду подозрительные пятна, странные царапины и та самая зловещая пыль, которая скапливается там, куда не заглядывают живые люди."; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"сердце, внутренности"; |
|
nam = "room9_no_сердце"; |
|
description = "Твоё сердце часто бьётся, но, к счастью, оно всё ещё внутри и осмотреть его не получится."; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"тиски"; |
|
nam = "room9_no_тиски"; |
|
description = ""; |
|
after_Exam = function(s) |
|
if here().room9_var < 4 then p [[На верстаке закреплены стальные тиски.]]; end |
|
if here().room9_var == 5 then p [[В стальных тисках зажата отпиленная рука.]]; end |
|
if here().room9_var == 4 then p [[В стальных тисках зажата отпиленная рука.]]; here().room9_var = 5; end |
|
if here().room9_var == 7 then p [[В стальных тисках зажата отпиленная нога.]]; end |
|
if here().room9_var == 6 then p [[В стальных тисках зажата отпиленная нога.]]; here().room9_var = 7; end |
|
if here().room9_var == 9 then p [[В тисках зажат хобот.]]; end |
|
if here().room9_var == 8 then p [[В тисках зажат хобот.]]; here().room9_var = 9; end |
|
if here().room9_var > 9 then p [[На верстаке закреплены стальные тиски.]]; end |
|
return false; |
|
end; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"шкаф"; |
|
nam = "room9_no_шкаф"; |
|
description = "У южной стены находится старый пыльный шкаф с книгами."; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"гриб | грибы | палец | пальцы | колония"; |
|
nam = "room9_no_гриб"; |
|
dsc = "Пальцы мертвеца тянутся к тебе из подпола."; |
|
description = "Под полом разрослась колония грибов Пальцы Мертвеца."; |
|
found_in = 'room9_no_люк'; |
|
before_Take = function(s) |
|
p [[Эти грибы тебе без надобности.]] |
|
end |
|
} |
|
|
|
----------------------------------------- |
|
|
|
-- люк, подвал, подпол, погреб |
|
|
|
obj { |
|
-"замок | люк | цепь | цепи | ямка | яма | подвал | подпол | погреб"; |
|
nam = "room9_no_люк"; |
|
score = false; |
|
when_closed = function() |
|
if here().room9_var < 12 then p[[В деревянном полу гаража находится деревянный люк в погреб. Сейчас люк скован цепями и заперт на висячий замок. Возможно, подвал не пуст: в нём могут копошиться зловещие мертвецы.]] |
|
else p[[В деревянном полу гаража находится деревянный люк в погреб. Сейчас люк неплотно прикрыт. Возможно, подвал не пуст: в нём могут копошиться зловещие мертвецы.]] |
|
end; |
|
end; |
|
after_Unlock = function(s, w) |
|
here().room9_var = 12; |
|
if not s.score then |
|
mp.score=mp.score+1; |
|
end; |
|
_'room9_no_люк'.score=true; |
|
p[[Ты отперла замок гвоздём и сняла цепи с люка.]]; |
|
end; |
|
when_open = "Замок отперт, цепи сброшены, люк открыт. Под люком оказалась небольшая ямка, в которой видны Пальцы Мертвеца."; |
|
with_key = "room9_no_гвоздь"; |
|
found_in = 'room9_garazh'; |
|
}:attr 'static, container, openable, lockable, closed, locked' |
|
|
|
|
|
obj { |
|
-"стороны | выходы"; |
|
nam = "room9_no_стороны"; |
|
description = "Четыре стороны - это север, запад, юг и восток. Гардероб - на западе."; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
obj { |
|
-"гардероб"; |
|
nam = "room9_no_гардероб"; |
|
description = "Гардероб - на западе."; |
|
found_in = 'room9_garazh'; |
|
}:attr 'scenery' |
|
|
|
|
|
-- Менять нельзя!!!! Это не ваш предмет!!! Вы не знаете как он выглядит, его придумает другой автор!!! |
|
|
|
obj { |
|
-"керосин|бутылочка"; |
|
nam = "kerosin"; |
|
description = "Керосин для лампы. На бутылочке так и написано."; |
|
found_in = 'room9_no_люк'; |
|
before_Drink = "Ты не станешь это пить!"; |
|
before_Smell = "Пахнет керосином."; |
|
before_Read = "\"Керосин для лампы.\" - написано на бутылочке."; |
|
before_Burn = "Лучше не надо, ничем хорошим это не закончится."; |
|
score=false; |
|
after_Take = function(s) |
|
if not s.score then |
|
mp.score=mp.score+1; |
|
end; |
|
_'kerosin'.score=true; |
|
return false; |
|
end; |
|
} |
|
|
|
|