initial commit

This commit is contained in:
goraph 2021-05-04 14:35:02 +03:00
commit 0670ee79c1
49 changed files with 202288 additions and 0 deletions

86
autotheme.lua Normal file
View File

@ -0,0 +1,86 @@
local function autodetect_theme()
if not instead.screen_size then
return
end
local f = io.open(instead.savepath().."/config.ini", "r")
if f then
f:close()
return
end
f = io.open(instead.gamepath().."/themes/default/theme.ini", "r")
if not f then
return
end
f:close()
local themes = {}
local vertical = false
for d in std.readdir(instead.gamepath().."/themes") do
if d ~= '.' and d ~= '..' then
local p = instead.gamepath().."/themes/" .. d
local f = io.open(p.."/theme.ini", "r")
if f then
local w, h
for l in f:lines() do
if l:find("scr%.w[ \t]*=[ \t]*[0-9]+") then
w = l:gsub("scr%.w[ \t]*=[ \t]*([0-9]+)", "%1")
elseif l:find("scr%.h[ \t]*=[ \t]*[0-9]+") then
h = l:gsub("scr%.h[ \t]*=[ \t]*([0-9]+)", "%1")
end
if w and h then break end
end
if w and h then
w = tonumber(w)
h = tonumber(h)
local r = w / h
if r < 1 then r = 1 / r end
table.insert(themes, { nam = d, w = w, h = h, mobile = w < h, ratio = r })
vertical = vertical or (w < h)
end
f:close()
end
end
end
if #themes == 1 then
return
end
local w, h = instead.screen_size()
local r = w / h
local mobile = w < h or PLATFORM == "ANDROID" or PLATFORM == "IOS" or PLATFORM == "S60" or PLATFORM == "WINRT" or PLATFORM == "WINCE"
if w < h then
r = 1 / r
end
local d = 1000
local t = false
for _, v in ipairs(themes) do
local dd = math.abs(v.ratio - r)
if dd < d then
if mobile and (not vertical or v.mobile) then
d = dd
t = v
elseif not mobile and not v.mobile then
d = dd
t = v
end
end
end
if not t or t.nam == 'default' then
return
end
local name = instead.savepath().."/config.ini"
local name_tmp = name .. '.tmp'
local f = io.open(name_tmp, "w")
if f then
dprint("Autodetect theme: ", t.nam)
f:write("theme = "..t.nam.."\n")
f:close()
std.os.remove(name)
std.os.rename(name_tmp, name);
instead.restart()
end
end
std.mod_start(function()
autodetect_theme()
end, -100)

954
dict.mrd Normal file
View File

@ -0,0 +1,954 @@
254
%ЫЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ЫЙ*Рщ%ЫМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ЫМ*йр%ОМ*йс%ЫЕ*йт%ЫХ*йу%ЫМ*йф%ЫХ*йх%ЫЕ*Рь%ЫМИ*йц%ЫХ*йч
%ИЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ИЙ*Рщ%ИМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ИМ*йр%ОМ*йс%ИЕ*йт%ИХ*йу%ИМ*йф%ИХ*йх%ИЕ*Рь%ИМИ*йц%ИХ*йч%И*йэ
%аа%А*аб%У*ав%А*аг%ОМ*ад%Е*ае%И*аж%ОВ*аз%АМ*аи%ОВ*ай%АМИ*ак%АХ*ал
%УТЬ*ка%УЛ*кз%УЛА*ки%УЛО*кй%УЛИ*кк%У*кп%ЕМ*кр%ЕШЬ*кс%ЕТЕ*кт%ЕТ*ку%УТ*кф%УВ*ко%УВШИ*ко%ЕМ*нп%ЕМТЕ*нп%И*кл%ИТЕ*км%УВШИЙ*ма%УВШЕГО*мб%УВШЕМУ*мв%УВШЕГО*мг%УВШИЙ*Лб%УВШИМ*мд%УВШЕМ*ме%УВШАЯ*мз%УВШЕЙ*ми%УВШЕЙ*мй%УВШУЮ*мк%УВШЕЙ*мл%УВШЕЮ*мл%УВШЕЙ*мм%УВШЕЕ*мо%УВШЕГО*мп%УВШЕМУ*мр%УВШЕЕ*мс%УВШИМ*мт%УВШЕМ*му%УВШИЕ*мх%УВШИХ*мц%УВШИМ*мч%УВШИХ*мш%УВШИЕ*Лк%УВШИМИ*мщ%УВШИХ*мы
%КА*га%КИ*гб%КЕ*гв%КУ*гг%КОЙ*гд%КОЮ*гд%КЕ*ге%КИ*гж%ОК*гз%КАМ*ги%КИ*гй%КАМИ*гк%КАХ*гл
%КА*га%КИ*гб%КЕ*гв%КУ*гг%КОЙ*гд%КОЮ*гд%КЕ*ге%КИ*гж%ЕК*гз%КАМ*ги%КИ*гй%КАМИ*гк%КАХ*гл
%Ь*га%И*гб%И*гв%Ь*гг%ЬЮ*гд%И*ге%И*гж%ЕЙ*гз%ЯМ*ги%И*гй%ЯМИ*гк%ЯХ*гл
%А*аа%Ы*аб%Е*ав%У*аг%ОЙ*ад%ОЮ*ад%Е*ае%Ы*аж%аз%АМ*аи%ай%АМИ*ак%АХ*ал
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%И*аж%ОВ*аз%АМ*аи%И*ай%АМИ*ак%АХ*ал
%ем
%А*га%Ы*гб%Е*гв%У*гг%ОЙ*гд%ОЮ*гд%Е*ге
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%Ы*аж%ОВ*аз%АМ*аи%Ы*ай%АМИ*ак%АХ*ал
%аа%А*аб%У*ав%А*аг%ЫМ*ад%Е*ае%Ы*вж%ЫХ*вз%ЫМ*ви%ЫХ*вй%ЫМИ*вк%ЫХ*вл%А*га%ОЙ*гб%ОЙ*гв%У*гг%ОЙ*гд%ОЙ*ге
%КА*га%КИ*гб%КЕ*гв%КУ*гг%КОЙ*гд%КОЮ*гд%КЕ*ге%КИ*гж%ОК*гз%КАМ*ги%ОК*гй%КАМИ*гк%КАХ*гл
%Я*га%И*гб%И*гв%Ю*гг%ЕЙ*гд%ЕЮ*гд%И*ге%И*гж%Й*гз%ЯМ*ги%И*гй%ЯМИ*гк%ЯХ*гл
%бо%А*бп%У*бр%А*бс%ОМ*бт%Е*бу%Ы*бф%ОВ*бх%АМ*бц%ОВ*бч%АМИ*бш%АХ*бщ%ОВИЧ*Ра%ОВИЧА*Рб%ОВИЧУ*Рв%ОВИЧА*Рг%ОВИЧЕМ*Рд%ОВИЧЕ*Ре%ОВИЧИ*Рн%ОВИЧЕЙ*Ро%ОВИЧАМ*Рп%ОВИЧЕЙ*Рр%ОВИЧАМИ*Рс%ОВИЧАХ*Рт%ОВНА*Рж%ОВНЫ*Рз%ОВНЕ*Ри%ОВНУ*Рк%ОВНОЙ*Рл%ОВНЕ*Рм%ОВНЫ*Ру%ОВЕН*Рф%ОВНАМ*Рх%ОВЕН*Рц%ОВНАМИ*Рч%ОВНАХ*Рш
%аа%А*аб%У*ав%А*аг%ОМ*ад%Е*ае%Ы*аж%ОВ*аз%АМ*аи%ОВ*ай%АМИ*ак%АХ*ал
%А*га%Ы*гб%Е*гв%У*гг%ОЙ*гд%ОЮ*гд%Е*ге%Ы*гж%гз%АМ*ги%гй%АМИ*гк%АХ*гл
%О*еа%А*еб%У*ев%О*ег%ОМ*ед%Е*ее%А*еж%ез%АМ*еи%А*ей%АМИ*ек%АХ*ел
%А*га%Ы*гб%Е*гв%У*гг%ОЙ*гд%ОЮ*гд%Е*ге%Ы*гж%гз%АМ*ги%Ы*гй%АМИ*гк%АХ*гл
%Ь*бо%Я*бп%Ю*бр%Я*бс%ЕМ*бт%Е*бу%И*бф%ЕЙ*бх%ЯМ*бц%ЕЙ*бч%ЯМИ*бш%ЯХ*бщ%ЕВИЧ*Ра%ЕВИЧА*Рб%ЕВИЧУ*Рв%ЕВИЧА*Рг%ЕВИЧЕМ*Рд%ЕВИЧЕ*Ре%ЕВИЧИ*Рн%ЕВИЧЕЙ*Ро%ЕВИЧАМ*Рп%ЕВИЧЕЙ*Рр%ЕВИЧАМИ*Рс%ЕВИЧАХ*Рт%ЕВНА*Рж%ЕВНЫ*Рз%ЕВНЕ*Ри%ЕВНУ*Рк%ЕВНОЙ*Рл%ЕВНЕ*Рм%ЕВНЫ*Ру%ЕВЕН*Рф%ЕВНАМ*Рх%ЕВЕН*Рц%ЕВНАМИ*Рч%ЕВНАХ*Рш
%Й*аа%Я*аб%Ю*ав%Я*аг%ЕМ*ад%Е*ае%И*аж%ЕВ*аз%ЯМ*аи%ЕВ*ай%ЯМИ*ак%ЯХ*ал
%А*до%Ы*дп%Е*др%У*дс%ОЙ*дт%ОЮ*дт%Е*ду%Ы*дф%дх%АМ*дц%дч%АМИ*дш%АХ*дщ
%ИЕ*еа%ЬЕ*еа%ИЯ*еб%ЬЯ*еб%ИЮ*ев%ЬЮ*ев%ИЕ*ег%ЬЕ*ег%ИЕМ*ед%ЬЕМ*ед%ИИ*ее%ЬЕ*ее%ЬИ*ее%ИЯ*еж%ЬЯ*еж%ИЙ*ез%ИЯМ*еи%ЬЯМ*еи%ИЯ*ей%ЬЯ*ей%ИЯМИ*ек%ЬЯМИ*ек%ИЯХ*ел%ЬЯХ*ел
%аа%А*аб%У*ав%аг%ЕМ*ад%Е*ае%И*аж%ЕЙ*аз%АМ*аи%И*ай%АМИ*ак%АХ*ал
%Ь*аа%Я*аб%Ю*ав%Ь*аг%ЕМ*ад%Е*ае%И*аж%ЕЙ*аз%ЯМ*аи%И*ай%ЯМИ*ак%ЯХ*ал
%А*га%И*гб%Е*гв%У*гг%ЕЙ*гд%ЕЮ*гд%Е*ге%И*гж%гз%АМ*ги%И*гй%АМИ*гк%АХ*гл
%Ь*га%И*гб%И*гв%Ь*гг%ЬЮ*гд%И*ге
%йя
%О*еа%А*еб%У*ев%О*ег%ОМ*ед%Е*ее
%аа%А*аб%У*ав%А*аг%ОМ*ад%Е*ае%А*аж%Ы*аж%ОВ*аз%ОВ*аз%АМ*аи%АМ*аи%ОВ*ай%ОВ*ай%АМИ*ак%АМИ*ак%АХ*ал%АХ*ал
%ЛО*еа%ЛА*еб%ЛУ*ев%ЛО*ег%ЛОМ*ед%ЛЕ*ее%ЛА*еж%ЕЛ*ез%ЛАМ*еи%ЛА*ей%ЛАМИ*ек%ЛАХ*ел
%АЯ*га%ОЙ*гб%ОЙ*гв%УЮ*гг%ОЙ*гд%ОЮ*гд%ОЙ*ге%ЫЕ*гж%ЫХ*гз%ЫМ*ги%ЫЕ*гй%ЫМИ*гк%ЫХ*гл
%ЬМО*еа%ЬМА*еб%ЬМУ*ев%ЬМО*ег%ЬМОМ*ед%ЬМЕ*ее%ЬМА*еж%ЕМ*ез%ЬМАМ*еи%ЬМА*ей%ЬМАМИ*ек%ЬМАХ*ел
%Ь*аа%Я*аб%Ю*ав%Я*аг%ЕМ*ад%Е*ае%И*аж%ЕЙ*аз%ЯМ*аи%ЕЙ*ай%ЯМИ*ак%ЯХ*ал
%НО*еа%НА*еб%НУ*ев%НО*ег%НОМ*ед%НЕ*ее%НА*еж%ЕН*ез%НАМ*еи%НА*ей%НАМИ*ек%НАХ*ел
%А*га%И*гб%Е*гв%У*гг%ОЙ*гд%ОЮ*гд%Е*ге%И*гж%гз%АМ*ги%И*гй%АМИ*гк%АХ*гл
%ЬКА*га%ЬКИ*гб%ЬКЕ*гв%ЬКУ*гг%ЬКОЙ*гд%ЬКОЮ*гд%ЬКЕ*ге%ЬКИ*гж%ЕК*гз%ЬКАМ*ги%ЬКИ*гй%ЬКАМИ*гк%ЬКАХ*гл
%КА*га%КИ*гб%КЕ*гв%КУ*гг%КОЙ*гд%КОЮ*гд%КЕ*ге%КИ*гж%ЕК*гз%КАМ*ги%ЕК*гй%КАМИ*гк%КАХ*гл
%Ы*иж%ОВ*из%АМ*ии%Ы*ий%АМИ*ик%АХ*ил
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%И*аж%ЕЙ*аз%АМ*аи%И*ай%АМИ*ак%АХ*ал
%КИ*иж%ОК*из%КАМ*ии%КИ*ий%КАМИ*ик%КАХ*ил
%ОК*аа%КА*аб%КУ*ав%ОК*аг%КОМ*ад%КЕ*ае%КИ*аж%КОВ*аз%КАМ*аи%КИ*ай%КАМИ*ак%КАХ*ал
%НЯ*га%НИ*гб%НЕ*гв%НЮ*гг%НЕЙ*гд%НЕЮ*гд%НЕ*ге%НИ*гж%ОНЬ*гз%НЯМ*ги%НИ*гй%НЯМИ*гк%НЯХ*гл
%А*га%Ы*гб%Е*гв%У*гг%ЕЙ*гд%ЕЮ*гд%Е*ге%Ы*гж%гз%АМ*ги%Ы*гй%АМИ*гк%АХ*гл
%А*га%Ы*гб%Е*гв%У*гг%ЕЙ*гд%ЕЮ*гд%Е*ге%Ы*гж%гз%АМ*ги%гй%АМИ*гк%АХ*гл
%ЙКА*га%ЙКИ*гб%ЙКЕ*гв%ЙКУ*гг%ЙКОЙ*гд%ЙКОЮ*гд%ЙКЕ*ге%ЙКИ*гж%ЕК*гз%ЙКАМ*ги%ЙКИ*гй%ЙКАМИ*гк%ЙКАХ*гл
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%А*аж%ОВ*аз%АМ*аи%А*ай%АМИ*ак%АХ*ал
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%А*аж%Ы*аж%ОВ*аз%ОВ*аз%АМ*аи%АМ*аи%А*ай%Ы*ай%АМИ*ак%АМИ*ак%АХ*ал%АХ*ал
%Ь*аа%Я*аб%Ю*ав%Ь*аг%ЁМ*ад%Е*ае%И*аж%ЕЙ*аз%ЯМ*аи%И*ай%ЯМИ*ак%ЯХ*ал
%ЫЙ*аа%ОГО*аб%ОМУ*ав%ОГО*аг%ЫМ*ад%ОМ*ае%ЫЕ*аж%ЫХ*аз%ЫМ*аи%ЫХ*ай%ЫМИ*ак%ЫХ*ал
%Я*га%И*гб%Е*гв%Ю*гг%ЕЙ*гд%ЕЮ*гд%Е*ге%И*гж%Й*гз%ЯМ*ги%И*гй%ЯМИ*гк%ЯХ*гл
%ям
%Е*еа%А*еб%У*ев%Е*ег%ЕМ*ед%Е*ее%А*еж%ез%АМ*еи%А*ей%АМИ*ек%АХ*ел
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%Ы*аж%аз%АМ*аи%Ы*ай%АМИ*ак%АХ*ал
%ОК*аа%КА*аб%КУ*ав%КА*аг%КОМ*ад%КЕ*ае%КИ*аж%КОВ*аз%КАМ*аи%КОВ*ай%КАМИ*ак%КАХ*ал
%Ы*иж%из%ОВ*из%АМ*ии%Ы*ий%АМИ*ик%АХ*ил
%Я*до%И*дп%И*др%Ю*дс%ЕЙ*дт%ЕЮ*дт%И*ду%И*дф%Й*дх%ЯМ*дц%Й*дч%ЯМИ*дш%ЯХ*дщ
%аа%аа%А*аб%А*аб%У*ав%У*ав%аг%аг%ОМ*ад%ОМ*ад%Е*ае%Е*ае%Ы*аж%Ы*аж%ОВ*аз%ОВ*аз%АМ*аи%АМ*аи%Ы*ай%Ы*ай%АМИ*ак%АМИ*ак%АХ*ал%АХ*ал
%ОВАТЬ*ка%ОВАЛ*кз%ОВАЛА*ки%ОВАЛО*кй%ОВАЛИ*кк%УЮ*кп%УЕМ*кр%УЕШЬ*кс%УЕТЕ*кт%УЕТ*ку%УЮТ*кф%ОВАВ*ко%ОВАВШИ*ко%УЕМ*нп%УЕМТЕ*нп%УЙ*кл%УЙТЕ*км%ОВАВШИЙ*ма%ОВАВШЕГО*мб%ОВАВШЕМУ*мв%ОВАВШЕГО*мг%ОВАВШИЙ*Лб%ОВАВШИМ*мд%ОВАВШЕМ*ме%ОВАВШАЯ*мз%ОВАВШЕЙ*ми%ОВАВШЕЙ*мй%ОВАВШУЮ*мк%ОВАВШЕЙ*мл%ОВАВШЕЮ*мл%ОВАВШЕЙ*мм%ОВАВШЕЕ*мо%ОВАВШЕГО*мп%ОВАВШЕМУ*мр%ОВАВШЕЕ*мс%ОВАВШИМ*мт%ОВАВШЕМ*му%ОВАВШИЕ*мх%ОВАВШИХ*мц%ОВАВШИМ*мч%ОВАВШИХ*мш%ОВАВШИЕ*Лк%ОВАВШИМИ*мщ%ОВАВШИХ*мы%ОВАННЫЙ*са%ОВАННОГО*сб%ОВАННОМУ*св%ОВАННОГО*сг%ОВАННЫЙ*Ле%ОВАННЫМ*сд%ОВАННОМ*се%ОВАН*сж%ОВАННАЯ*сз%ОВАННОЙ*си%ОВАННОЙ*сй%ОВАННУЮ*ск%ОВАННОЙ*сл%ОВАННОЮ*сл%ОВАННОЙ*см%ОВАНА*сн%ОВАННОЕ*со%ОВАННОГО*сп%ОВАННОМУ*ср%ОВАННОЕ*сс%ОВАННЫМ*ст%ОВАННОМ*су%ОВАНО*сф%ОВАННЫЕ*сх%ОВАННЫХ*сц%ОВАННЫМ*сч%ОВАННЫХ*сш%ОВАННЫЕ*Ло%ОВАННЫМИ*сщ%ОВАННЫХ*сы%ОВАНЫ*сэ
%ЕЦ*аа%ЦА*аб%ЦУ*ав%ЕЦ*аг%ЦОМ*ад%ЦЕ*ае%ЦЫ*аж%ЦОВ*аз%ЦАМ*аи%ЦЫ*ай%ЦАМИ*ак%ЦАХ*ал
%И*иж%ОВ*из%АМ*ии%И*ий%АМИ*ик%АХ*ил
%УТЬ*ка%УЛ*кз%УЛА*ки%УЛО*кй%УЛИ*кк%У*кп%ЕМ*кр%ЕШЬ*кс%ЕТЕ*кт%ЕТ*ку%УТ*кф%УВ*ко%УВШИ*ко%ЕМ*нп%ЕМТЕ*нп%И*кл%ИТЕ*км%УВШИЙ*ма%УВШЕГО*мб%УВШЕМУ*мв%УВШЕГО*мг%УВШИЙ*Лб%УВШИМ*мд%УВШЕМ*ме%УВШАЯ*мз%УВШЕЙ*ми%УВШЕЙ*мй%УВШУЮ*мк%УВШЕЙ*мл%УВШЕЮ*мл%УВШЕЙ*мм%УВШЕЕ*мо%УВШЕГО*мп%УВШЕМУ*мр%УВШЕЕ*мс%УВШИМ*мт%УВШЕМ*му%УВШИЕ*мх%УВШИХ*мц%УВШИМ*мч%УВШИХ*мш%УВШИЕ*Лк%УВШИМИ*мщ%УВШИХ*мы%УТЫЙ*са%УТОГО*сб%УТОМУ*св%УТОГО*сг%УТЫЙ*Ле%УТЫМ*сд%УТОМ*се%УТ*сж%УТАЯ*сз%УТОЙ*си%УТОЙ*сй%УТУЮ*ск%УТОЙ*сл%УТОЮ*сл%УТОЙ*см%УТА*сн%УТОЕ*со%УТОГО*сп%УТОМУ*ср%УТОЕ*сс%УТЫМ*ст%УТОМ*су%УТО*сф%УТЫЕ*сх%УТЫХ*сц%УТЫМ*сч%УТЫХ*сш%УТЫЕ*Ло%УТЫМИ*сщ%УТЫХ*сы%УТЫ*сэ
%ЕНЬ*аа%НЯ*аб%НЮ*ав%ЕНЬ*аг%НЕМ*ад%НЕ*ае%НИ*аж%НЕЙ*аз%НЯМ*аи%НИ*ай%НЯМИ*ак%НЯХ*ал
%ТЬ*ка%Ю*кб%ЕМ*кв%ЕШЬ*кг%ЕТЕ*кд%ЕТ*ке%ЮТ*кж%Л*кз%ЛА*ки%ЛО*кй%ЛИ*кк%Я*кн%В*ко%ВШИ*ко%Й*кл%ЙТЕ*км%ЮЩИЙ*ла%ЮЩЕГО*лб%ЮЩЕМУ*лв%ЮЩЕГО*лг%ЮЩИЙ*Ла%ЮЩИМ*лд%ЮЩЕМ*ле%ЮЩАЯ*лз%ЮЩЕЙ*ли%ЮЩЕЙ*лй%ЮЩУЮ*лк%ЮЩЕЙ*лл%ЮЩЕЮ*лл%ЮЩЕЙ*лм%ЮЩЕЕ*ло%ЮЩЕГО*лп%ЮЩЕМУ*лр%ЮЩЕЕ*лс%ЮЩИМ*лт%ЮЩЕМ*лу%ЮЩИЕ*лх%ЮЩИХ*лц%ЮЩИМ*лч%ЮЩИХ*лш%ЮЩИЕ*Лй%ЮЩИМИ*лщ%ЮЩИХ*лы%ВШИЙ*ма%ВШЕГО*мб%ВШЕМУ*мв%ВШЕГО*мг%ВШИЙ*Лб%ВШИМ*мд%ВШЕМ*ме%ВШАЯ*мз%ВШЕЙ*ми%ВШЕЙ*мй%ВШУЮ*мк%ВШЕЙ*мл%ВШЕЮ*мл%ВШЕЙ*мм%ВШЕЕ*мо%ВШЕГО*мп%ВШЕМУ*мр%ВШЕЕ*мс%ВШИМ*мт%ВШЕМ*му%ВШИЕ*мх%ВШИХ*мц%ВШИМ*мч%ВШИХ*мш%ВШИЕ*Лк%ВШИМИ*мщ%ВШИХ*мы%ЕМЫЙ*па%ЕМОГО*пб%ЕМОМУ*пв%ЕМОГО*пг%ЕМЫЙ*Лг%ЕМЫМ*пд%ЕМОМ*пе%ЕМ*пж%ЕМАЯ*пз%ЕМОЙ*пи%ЕМОЙ*пй%ЕМУЮ*пк%ЕМОЙ*пл%ЕМОЮ*пл%ЕМОЙ*пм%ЕМА*пн%ЕМОЕ*по%ЕМОГО*пп%ЕМОМУ*пр%ЕМОЕ*пс%ЕМЫМ*пт%ЕМОМ*пу%ЕМО*пф%ЕМЫЕ*пх%ЕМЫХ*пц%ЕМЫМ*пч%ЕМЫХ*пш%ЕМЫЕ*Лм%ЕМЫМИ*пщ%ЕМЫХ*пы%ЕМЫ*пэ%ННЫЙ*са%ННОГО*сб%ННОМУ*св%ННОГО*сг%ННЫЙ*Ле%ННЫМ*сд%ННОМ*се%Н*сж%ННАЯ*сз%ННОЙ*си%ННОЙ*сй%ННУЮ*ск%ННОЙ*сл%ННОЮ*сл%ННОЙ*см%НА*сн%ННОЕ*со%ННОГО*сп%ННОМУ*ср%ННОЕ*сс%ННЫМ*ст%ННОМ*су%НО*сф%ННЫЕ*сх%ННЫХ*сц%ННЫМ*сч%ННЫХ*сш%ННЫЕ*Ло%ННЫМИ*сщ%ННЫХ*сы%НЫ*сэ
%Ё*еа%Я*еб%Ю*ев%Ё*ег%ЁМ*ед%Е*ее
%ИТЬ*ка%Ю*кб%ИМ*кв%ИШЬ*кг%ИТЕ*кд%ИТ*ке%ЯТ*кж%ИЛ*кз%ИЛА*ки%ИЛО*кй%ИЛИ*кк%Я*кн%ИВ*ко%ИВШИ*ко%И*кл%ИТЕ*км%ЯЩИЙ*ла%ЯЩЕГО*лб%ЯЩЕМУ*лв%ЯЩЕГО*лг%ЯЩИЙ*Ла%ЯЩИМ*лд%ЯЩЕМ*ле%ЯЩАЯ*лз%ЯЩЕЙ*ли%ЯЩЕЙ*лй%ЯЩУЮ*лк%ЯЩЕЙ*лл%ЯЩЕЮ*лл%ЯЩЕЙ*лм%ЯЩЕЕ*ло%ЯЩЕГО*лп%ЯЩЕМУ*лр%ЯЩЕЕ*лс%ЯЩИМ*лт%ЯЩЕМ*лу%ЯЩИЕ*лх%ЯЩИХ*лц%ЯЩИМ*лч%ЯЩИХ*лш%ЯЩИЕ*Лй%ЯЩИМИ*лщ%ЯЩИХ*лы%ИВШИЙ*ма%ИВШЕГО*мб%ИВШЕМУ*мв%ИВШЕГО*мг%ИВШИЙ*Лб%ИВШИМ*мд%ИВШЕМ*ме%ИВШАЯ*мз%ИВШЕЙ*ми%ИВШЕЙ*мй%ИВШУЮ*мк%ИВШЕЙ*мл%ИВШЕЮ*мл%ИВШЕЙ*мм%ИВШЕЕ*мо%ИВШЕГО*мп%ИВШЕМУ*мр%ИВШЕЕ*мс%ИВШИМ*мт%ИВШЕМ*му%ИВШИЕ*мх%ИВШИХ*мц%ИВШИМ*мч%ИВШИХ*мш%ИВШИЕ*Лк%ИВШИМИ*мщ%ИВШИХ*мы
%ИЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ИЙ*Рщ%ИМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ИМ*йр%ОМ*йс%ИЕ*йт%ИХ*йу%ИМ*йф%ИХ*йх%ИЕ*Рь%ИМИ*йц%ИХ*йч%йш%А*йщ%О*йы%И*йэ
%Ь*га%И*гб%И*гв%Ь*гг%ЬЮ*гд%И*ге%И*гж%ЕЙ*гз%ЯМ*ги%ЕЙ*гй%ЯМИ*гк%ЯХ*гл
%А*иж%из%АМ*ии%А*ий%АМИ*ик%АХ*ил
%ДИТЬ*ка%ЖУ*кб%ДИМ*кв%ДИШЬ*кг%ДИТЕ*кд%ДИТ*ке%ДЯТ*кж%ДИЛ*кз%ДИЛА*ки%ДИЛО*кй%ДИЛИ*кк%ДЯ*кн%ДИВ*ко%ДИВШИ*ко%ДИ*кл%ДИТЕ*км%ДЯЩИЙ*ла%ДЯЩЕГО*лб%ДЯЩЕМУ*лв%ДЯЩЕГО*лг%ДЯЩИЙ*Ла%ДЯЩИМ*лд%ДЯЩЕМ*ле%ДЯЩАЯ*лз%ДЯЩЕЙ*ли%ДЯЩЕЙ*лй%ДЯЩУЮ*лк%ДЯЩЕЙ*лл%ДЯЩЕЮ*лл%ДЯЩЕЙ*лм%ДЯЩЕЕ*ло%ДЯЩЕГО*лп%ДЯЩЕМУ*лр%ДЯЩЕЕ*лс%ДЯЩИМ*лт%ДЯЩЕМ*лу%ДЯЩИЕ*лх%ДЯЩИХ*лц%ДЯЩИМ*лч%ДЯЩИХ*лш%ДЯЩИЕ*Лй%ДЯЩИМИ*лщ%ДЯЩИХ*лы%ДИВШИЙ*ма%ДИВШЕГО*мб%ДИВШЕМУ*мв%ДИВШЕГО*мг%ДИВШИЙ*Лб%ДИВШИМ*мд%ДИВШЕМ*ме%ДИВШАЯ*мз%ДИВШЕЙ*ми%ДИВШЕЙ*мй%ДИВШУЮ*мк%ДИВШЕЙ*мл%ДИВШЕЮ*мл%ДИВШЕЙ*мм%ДИВШЕЕ*мо%ДИВШЕГО*мп%ДИВШЕМУ*мр%ДИВШЕЕ*мс%ДИВШИМ*мт%ДИВШЕМ*му%ДИВШИЕ*мх%ДИВШИХ*мц%ДИВШИМ*мч%ДИВШИХ*мш%ДИВШИЕ*Лк%ДИВШИМИ*мщ%ДИВШИХ*мы%ДИМЫЙ*па%ДИМОГО*пб%ДИМОМУ*пв%ДИМОГО*пг%ДИМЫЙ*Лг%ДИМЫМ*пд%ДИМОМ*пе%ДИМ*пж%ДИМАЯ*пз%ДИМОЙ*пи%ДИМОЙ*пй%ДИМУЮ*пк%ДИМОЙ*пл%ДИМОЮ*пл%ДИМОЙ*пм%ДИМА*пн%ДИМОЕ*по%ДИМОГО*пп%ДИМОМУ*пр%ДИМОЕ*пс%ДИМЫМ*пт%ДИМОМ*пу%ДИМО*пф%ДИМЫЕ*пх%ДИМЫХ*пц%ДИМЫМ*пч%ДИМЫХ*пш%ДИМЫЕ*Лм%ДИМЫМИ*пщ%ДИМЫХ*пы%ДИМЫ*пэ
%ДИТЬСЯ*ка%ЖУСЬ*кб%ДИМСЯ*кв%ДИШЬСЯ*кг%ДИТЕСЬ*кд%ДИТСЯ*ке%ДЯТСЯ*кж%ДИЛСЯ*кз%ДИЛАСЬ*ки%ДИЛОСЬ*кй%ДИЛИСЬ*кк%ДЯСЬ*кн%ДИВШИСЬ*ко%ДИСЬ*кл%ДИТЕСЬ*км%ДЯЩИЙСЯ*ла%ДЯЩЕГОСЯ*лб%ДЯЩЕМУСЯ*лв%ДЯЩЕГОСЯ*лг%ДЯЩИЙСЯ*Ла%ДЯЩИМСЯ*лд%ДЯЩЕМСЯ*ле%ДЯЩАЯСЯ*лз%ДЯЩЕЙСЯ*ли%ДЯЩЕЙСЯ*лй%ДЯЩУЮСЯ*лк%ДЯЩЕЙСЯ*лл%ДЯЩЕЮСЯ*лл%ДЯЩЕЙСЯ*лм%ДЯЩЕЕСЯ*ло%ДЯЩЕГОСЯ*лп%ДЯЩЕМУСЯ*лр%ДЯЩЕЕСЯ*лс%ДЯЩИМСЯ*лт%ДЯЩЕМСЯ*лу%ДЯЩИЕСЯ*лх%ДЯЩИХСЯ*лц%ДЯЩИМСЯ*лч%ДЯЩИХСЯ*лш%ДЯЩИЕСЯ*Лй%ДЯЩИМИСЯ*лщ%ДЯЩИХСЯ*лы%ДИВШИЙСЯ*ма%ДИВШЕГОСЯ*мб%ДИВШЕМУСЯ*мв%ДИВШЕГОСЯ*мг%ДИВШИЙСЯ*Лб%ДИВШИМСЯ*мд%ДИВШЕМСЯ*ме%ДИВШАЯСЯ*мз%ДИВШЕЙСЯ*ми%ДИВШЕЙСЯ*мй%ДИВШУЮСЯ*мк%ДИВШЕЙСЯ*мл%ДИВШЕЮСЯ*мл%ДИВШЕЙСЯ*мм%ДИВШЕЕСЯ*мо%ДИВШЕГОСЯ*мп%ДИВШЕМУСЯ*мр%ДИВШЕЕСЯ*мс%ДИВШИМСЯ*мт%ДИВШЕМСЯ*му%ДИВШИЕСЯ*мх%ДИВШИХСЯ*мц%ДИВШИМСЯ*мч%ДИВШИХСЯ*мш%ДИВШИЕСЯ*Лк%ДИВШИМИСЯ*мщ%ДИВШИХСЯ*мы
%Е*еа%Я*еб%Ю*ев%Е*ег%ЕМ*ед%Е*ее%Я*еж%ЕЙ*ез%ЯМ*еи%Я*ей%ЯМИ*ек%ЯХ*ел
%ИТЬ*ка%Ю*кб%ИМ*кв%ИШЬ*кг%ИТЕ*кд%ИТ*ке%ЯТ*кж%ИЛ*кз%ИЛА*ки%ИЛО*кй%ИЛИ*кк%Я*кн%ИВ*ко%ИВШИ*ко%И*кл%ИТЕ*км%ЯЩИЙ*ла%ЯЩЕГО*лб%ЯЩЕМУ*лв%ЯЩЕГО*лг%ЯЩИЙ*Ла%ЯЩИМ*лд%ЯЩЕМ*ле%ЯЩАЯ*лз%ЯЩЕЙ*ли%ЯЩЕЙ*лй%ЯЩУЮ*лк%ЯЩЕЙ*лл%ЯЩЕЮ*лл%ЯЩЕЙ*лм%ЯЩЕЕ*ло%ЯЩЕГО*лп%ЯЩЕМУ*лр%ЯЩЕЕ*лс%ЯЩИМ*лт%ЯЩЕМ*лу%ЯЩИЕ*лх%ЯЩИХ*лц%ЯЩИМ*лч%ЯЩИХ*лш%ЯЩИЕ*Лй%ЯЩИМИ*лщ%ЯЩИХ*лы%ИВШИЙ*ма%ИВШЕГО*мб%ИВШЕМУ*мв%ИВШЕГО*мг%ИВШИЙ*Лб%ИВШИМ*мд%ИВШЕМ*ме%ИВШАЯ*мз%ИВШЕЙ*ми%ИВШЕЙ*мй%ИВШУЮ*мк%ИВШЕЙ*мл%ИВШЕЮ*мл%ИВШЕЙ*мм%ИВШЕЕ*мо%ИВШЕГО*мп%ИВШЕМУ*мр%ИВШЕЕ*мс%ИВШИМ*мт%ИВШЕМ*му%ИВШИЕ*мх%ИВШИХ*мц%ИВШИМ*мч%ИВШИХ*мш%ИВШИЕ*Лк%ИВШИМИ*мщ%ИВШИХ*мы%ИМЫЙ*па%ИМОГО*пб%ИМОМУ*пв%ИМОГО*пг%ИМЫЙ*Лг%ИМЫМ*пд%ИМОМ*пе%ИМ*пж%ИМАЯ*пз%ИМОЙ*пи%ИМОЙ*пй%ИМУЮ*пк%ИМОЙ*пл%ИМОЮ*пл%ИМОЙ*пм%ИМА*пн%ИМОЕ*по%ИМОГО*пп%ИМОМУ*пр%ИМОЕ*пс%ИМЫМ*пт%ИМОМ*пу%ИМО*пф%ИМЫЕ*пх%ИМЫХ*пц%ИМЫМ*пч%ИМЫХ*пш%ИМЫЕ*Лм%ИМЫМИ*пщ%ИМЫХ*пы%ИМЫ*пэ%ЁННЫЙ*са%ЁННОГО*сб%ЁННОМУ*св%ЁННОГО*сг%ЁННЫЙ*Ле%ЁННЫМ*сд%ЁННОМ*се%ЁН*сж%ЁННАЯ*сз%ЁННОЙ*си%ЁННОЙ*сй%ЁННУЮ*ск%ЁННОЙ*сл%ЁННОЮ*сл%ЁННОЙ*см%ЕНА*сн%ЁННОЕ*со%ЁННОГО*сп%ЁННОМУ*ср%ЁННОЕ*сс%ЁННЫМ*ст%ЁННОМ*су%ЕНО*сф%ЁННЫЕ*сх%ЁННЫХ*сц%ЁННЫМ*сч%ЁННЫХ*сш%ЁННЫЕ*Ло%ЁННЫМИ*сщ%ЁННЫХ*сы%ЕНЫ*сэ
%ОЕ*еа%ОГО*еб%ОМУ*ев%ОЕ*ег%ЫМ*ед%ОМ*ее%ЫЕ*еж%ЫХ*ез%ЫМ*еи%ЫЕ*ей%ЫМИ*ек%ЫХ*ел
%ИТЬ*ка%ИЛ*кз%ИЛА*ки%ИЛО*кй%ИЛИ*кк%ЛЮ*кп%ИМ*кр%ИШЬ*кс%ИТЕ*кт%ИТ*ку%ЯТ*кф%ИВ*ко%ИВШИ*ко%Я*ко%ИМ*нп%ИМТЕ*нп%И*кл%ИТЕ*км%ИВШИЙ*ма%ИВШЕГО*мб%ИВШЕМУ*мв%ИВШЕГО*мг%ИВШИЙ*Лб%ИВШИМ*мд%ИВШЕМ*ме%ИВШАЯ*мз%ИВШЕЙ*ми%ИВШЕЙ*мй%ИВШУЮ*мк%ИВШЕЙ*мл%ИВШЕЮ*мл%ИВШЕЙ*мм%ИВШЕЕ*мо%ИВШЕГО*мп%ИВШЕМУ*мр%ИВШЕЕ*мс%ИВШИМ*мт%ИВШЕМ*му%ИВШИЕ*мх%ИВШИХ*мц%ИВШИМ*мч%ИВШИХ*мш%ИВШИЕ*Лк%ИВШИМИ*мщ%ИВШИХ*мы%ЛЁННЫЙ*са%ЛЁННОГО*сб%ЛЁННОМУ*св%ЛЁННОГО*сг%ЛЁННЫЙ*Ле%ЛЁННЫМ*сд%ЛЁННОМ*се%ЛЁН*сж%ЛЁННАЯ*сз%ЛЁННОЙ*си%ЛЁННОЙ*сй%ЛЁННУЮ*ск%ЛЁННОЙ*сл%ЛЁННОЮ*сл%ЛЁННОЙ*см%ЛЕНА*сн%ЛЁННОЕ*со%ЛЁННОГО*сп%ЛЁННОМУ*ср%ЛЁННОЕ*сс%ЛЁННЫМ*ст%ЛЁННОМ*су%ЛЕНО*сф%ЛЁННЫЕ*сх%ЛЁННЫХ*сц%ЛЁННЫМ*сч%ЛЁННЫХ*сш%ЛЁННЫЕ*Ло%ЛЁННЫМИ*сщ%ЛЁННЫХ*сы%ЛЕНЫ*сэ
%УТЬ*ка%УЛ*кз%УЛА*ки%УЛО*кй%УЛИ*кк%У*кп%ЁМ*кр%ЁШЬ*кс%ЁТЕ*кт%ЁТ*ку%УТ*кф%УВ*ко%УВШИ*ко%ЁМ*нп%ЁМТЕ*нп%И*кл%ИТЕ*км%УВШИЙ*ма%УВШЕГО*мб%УВШЕМУ*мв%УВШЕГО*мг%УВШИЙ*Лб%УВШИМ*мд%УВШЕМ*ме%УВШАЯ*мз%УВШЕЙ*ми%УВШЕЙ*мй%УВШУЮ*мк%УВШЕЙ*мл%УВШЕЮ*мл%УВШЕЙ*мм%УВШЕЕ*мо%УВШЕГО*мп%УВШЕМУ*мр%УВШЕЕ*мс%УВШИМ*мт%УВШЕМ*му%УВШИЕ*мх%УВШИХ*мц%УВШИМ*мч%УВШИХ*мш%УВШИЕ*Лк%УВШИМИ*мщ%УВШИХ*мы
%СТЕТЬ*ка%ЩУ*кб%СТИМ*кв%СТИШЬ*кг%СТИТЕ*кд%СТИТ*ке%СТЯТ*кж%СТЕЛ*кз%СТЕЛА*ки%СТЕЛО*кй%СТЕЛИ*кк%СТЯ*кн%СТЕВ*ко%СТЕВШИ*ко%СТИ*кл%СТИТЕ*км%СТЯЩИЙ*ла%СТЯЩЕГО*лб%СТЯЩЕМУ*лв%СТЯЩЕГО*лг%СТЯЩИЙ*Ла%СТЯЩИМ*лд%СТЯЩЕМ*ле%СТЯЩАЯ*лз%СТЯЩЕЙ*ли%СТЯЩЕЙ*лй%СТЯЩУЮ*лк%СТЯЩЕЙ*лл%СТЯЩЕЮ*лл%СТЯЩЕЙ*лм%СТЯЩЕЕ*ло%СТЯЩЕГО*лп%СТЯЩЕМУ*лр%СТЯЩЕЕ*лс%СТЯЩИМ*лт%СТЯЩЕМ*лу%СТЯЩИЕ*лх%СТЯЩИХ*лц%СТЯЩИМ*лч%СТЯЩИХ*лш%СТЯЩИЕ*Лй%СТЯЩИМИ*лщ%СТЯЩИХ*лы%СТЕВШИЙ*ма%СТЕВШЕГО*мб%СТЕВШЕМУ*мв%СТЕВШЕГО*мг%СТЕВШИЙ*Лб%СТЕВШИМ*мд%СТЕВШЕМ*ме%СТЕВШАЯ*мз%СТЕВШЕЙ*ми%СТЕВШЕЙ*мй%СТЕВШУЮ*мк%СТЕВШЕЙ*мл%СТЕВШЕЮ*мл%СТЕВШЕЙ*мм%СТЕВШЕЕ*мо%СТЕВШЕГО*мп%СТЕВШЕМУ*мр%СТЕВШЕЕ*мс%СТЕВШИМ*мт%СТЕВШЕМ*му%СТЕВШИЕ*мх%СТЕВШИХ*мц%СТЕВШИМ*мч%СТЕВШИХ*мш%СТЕВШИЕ*Лк%СТЕВШИМИ*мщ%СТЕВШИХ*мы
%ЦЕ*еа%ЦА*еб%ЦУ*ев%ЦЕ*ег%ЦЕМ*ед%ЦЕ*ее%ЦА*еж%ЕЦ*ез%ЦЕВ*ез%ЦАМ*еи%ЦА*ей%ЦАМИ*ек%ЦАХ*ел
%ЁР*аа%РА*аб%РУ*ав%ЁР*аг%РОМ*ад%РЕ*ае%РЫ*аж%РОВ*аз%РАМ*аи%РЫ*ай%РАМИ*ак%РАХ*ал
%О*еа%А*еб%У*ев%О*ег%ОМ*ед%Е*ее%А*еж%ез%АМ*еи%ей%АМИ*ек%АХ*ел
%РАТЬ*ка%ЕРУ*кб%ЕРЁМ*кв%ЕРЁШЬ*кг%ЕРЁТЕ*кд%ЕРЁТ*ке%ЕРУТ*кж%РАЛ*кз%РАЛА*ки%РАЛО*кй%РАЛИ*кк%ЕРЯ*кн%РАВ*ко%РАВШИ*ко%ЕРИ*кл%ЕРИТЕ*км%ЕРУЩИЙ*ла%ЕРУЩЕГО*лб%ЕРУЩЕМУ*лв%ЕРУЩЕГО*лг%ЕРУЩИЙ*Ла%ЕРУЩИМ*лд%ЕРУЩЕМ*ле%ЕРУЩАЯ*лз%ЕРУЩЕЙ*ли%ЕРУЩЕЙ*лй%ЕРУЩУЮ*лк%ЕРУЩЕЙ*лл%ЕРУЩЕЮ*лл%ЕРУЩЕЙ*лм%ЕРУЩЕЕ*ло%ЕРУЩЕГО*лп%ЕРУЩЕМУ*лр%ЕРУЩЕЕ*лс%ЕРУЩИМ*лт%ЕРУЩЕМ*лу%ЕРУЩИЕ*лх%ЕРУЩИХ*лц%ЕРУЩИМ*лч%ЕРУЩИХ*лш%ЕРУЩИЕ*Лй%ЕРУЩИМИ*лщ%ЕРУЩИХ*лы%РАВШИЙ*ма%РАВШЕГО*мб%РАВШЕМУ*мв%РАВШЕГО*мг%РАВШИЙ*Лб%РАВШИМ*мд%РАВШЕМ*ме%РАВШАЯ*мз%РАВШЕЙ*ми%РАВШЕЙ*мй%РАВШУЮ*мк%РАВШЕЙ*мл%РАВШЕЮ*мл%РАВШЕЙ*мм%РАВШЕЕ*мо%РАВШЕГО*мп%РАВШЕМУ*мр%РАВШЕЕ*мс%РАВШИМ*мт%РАВШЕМ*му%РАВШИЕ*мх%РАВШИХ*мц%РАВШИМ*мч%РАВШИХ*мш%РАВШИЕ*Лк%РАВШИМИ*мщ%РАВШИХ*мы
%ИТЬ*ка%Ю*кб%ИМ*кв%ИШЬ*кг%ИТЕ*кд%ИТ*ке%ЯТ*кж%ИЛ*кз%ИЛА*ки%ИЛО*кй%ИЛИ*кк%Я*кн%ИВ*ко%ИВШИ*ко%И*кл%ИТЕ*км%ИМЫЙ*па%ИМОГО*пб%ИМОМУ*пв%ИМОГО*пг%ИМЫЙ*Лг%ИМЫМ*пд%ИМОМ*пе%ИМ*пж%ИМАЯ*пз%ИМОЙ*пи%ИМОЙ*пй%ИМУЮ*пк%ИМОЙ*пл%ИМОЮ*пл%ИМОЙ*пм%ИМА*пн%ИМОЕ*по%ИМОГО*пп%ИМОМУ*пр%ИМОЕ*пс%ИМЫМ*пт%ИМОМ*пу%ИМО*пф%ИМЫЕ*пх%ИМЫХ*пц%ИМЫМ*пч%ИМЫХ*пш%ИМЫЕ*Лм%ИМЫМИ*пщ%ИМЫХ*пы%ИМЫ*пэ
%ДИТЬ*ка%ЖУ*кб%ДИМ*кв%ДИШЬ*кг%ДИТЕ*кд%ДИТ*ке%ДЯТ*кж%ДИЛ*кз%ДИЛА*ки%ДИЛО*кй%ДИЛИ*кк%ДЯ*кн%ДИВ*ко%ДИВШИ*ко%ДИ*кл%ДИТЕ*км%ДЯЩИЙ*ла%ДЯЩЕГО*лб%ДЯЩЕМУ*лв%ДЯЩЕГО*лг%ДЯЩИЙ*Ла%ДЯЩИМ*лд%ДЯЩЕМ*ле%ДЯЩАЯ*лз%ДЯЩЕЙ*ли%ДЯЩЕЙ*лй%ДЯЩУЮ*лк%ДЯЩЕЙ*лл%ДЯЩЕЮ*лл%ДЯЩЕЙ*лм%ДЯЩЕЕ*ло%ДЯЩЕГО*лп%ДЯЩЕМУ*лр%ДЯЩЕЕ*лс%ДЯЩИМ*лт%ДЯЩЕМ*лу%ДЯЩИЕ*лх%ДЯЩИХ*лц%ДЯЩИМ*лч%ДЯЩИХ*лш%ДЯЩИЕ*Лй%ДЯЩИМИ*лщ%ДЯЩИХ*лы%ДИВШИЙ*ма%ДИВШЕГО*мб%ДИВШЕМУ*мв%ДИВШЕГО*мг%ДИВШИЙ*Лб%ДИВШИМ*мд%ДИВШЕМ*ме%ДИВШАЯ*мз%ДИВШЕЙ*ми%ДИВШЕЙ*мй%ДИВШУЮ*мк%ДИВШЕЙ*мл%ДИВШЕЮ*мл%ДИВШЕЙ*мм%ДИВШЕЕ*мо%ДИВШЕГО*мп%ДИВШЕМУ*мр%ДИВШЕЕ*мс%ДИВШИМ*мт%ДИВШЕМ*му%ДИВШИЕ*мх%ДИВШИХ*мц%ДИВШИМ*мч%ДИВШИХ*мш%ДИВШИЕ*Лк%ДИВШИМИ*мщ%ДИВШИХ*мы
%ЕКЛО*еа%ЕКЛА*еб%ЕКЛУ*ев%ЕКЛО*ег%ЕКЛОМ*ед%ЕКЛЕ*ее%ЁКЛА*еж%ЁКОЛ*ез%ЁКЛАМ*еи%ЁКЛА*ей%ЁКЛАМИ*ек%ЁКЛАХ*ел
%СИТЬ*ка%СИЛ*кз%СИЛА*ки%СИЛО*кй%СИЛИ*кк%ШУ*кп%СИМ*кр%СИШЬ*кс%СИТЕ*кт%СИТ*ку%СЯТ*кф%СИВ*ко%СИВШИ*ко%СИМ*нп%СИМТЕ*нп%СЬ*кл%СЬТЕ*км%СИВШИЙ*ма%СИВШЕГО*мб%СИВШЕМУ*мв%СИВШЕГО*мг%СИВШИЙ*Лб%СИВШИМ*мд%СИВШЕМ*ме%СИВШАЯ*мз%СИВШЕЙ*ми%СИВШЕЙ*мй%СИВШУЮ*мк%СИВШЕЙ*мл%СИВШЕЮ*мл%СИВШЕЙ*мм%СИВШЕЕ*мо%СИВШЕГО*мп%СИВШЕМУ*мр%СИВШЕЕ*мс%СИВШИМ*мт%СИВШЕМ*му%СИВШИЕ*мх%СИВШИХ*мц%СИВШИМ*мч%СИВШИХ*мш%СИВШИЕ*Лк%СИВШИМИ*мщ%СИВШИХ*мы%ШЕННЫЙ*са%ШЕННОГО*сб%ШЕННОМУ*св%ШЕННОГО*сг%ШЕННЫЙ*Ле%ШЕННЫМ*сд%ШЕННОМ*се%ШЕН*сж%ШЕННАЯ*сз%ШЕННОЙ*си%ШЕННОЙ*сй%ШЕННУЮ*ск%ШЕННОЙ*сл%ШЕННОЮ*сл%ШЕННОЙ*см%ШЕНА*сн%ШЕННОЕ*со%ШЕННОГО*сп%ШЕННОМУ*ср%ШЕННОЕ*сс%ШЕННЫМ*ст%ШЕННОМ*су%ШЕНО*сф%ШЕННЫЕ*сх%ШЕННЫХ*сц%ШЕННЫМ*сч%ШЕННЫХ*сш%ШЕННЫЕ*Ло%ШЕННЫМИ*сщ%ШЕННЫХ*сы%ШЕНЫ*сэ
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%ЬЯ*аж%ЬЕВ*аз%ЬЯМ*аи%ЬЯ*ай%ЬЯМИ*ак%ЬЯХ*ал
%А*га%Ы*гб%Е*гв%У*гг%ОЙ*гд%ОЮ*гд%Е*ге%Ы*гж%ЫХ*гз%ЫМ*ги%ЫХ*гй%ЫМИ*гк%ЫХ*гл
%ОЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ОЙ*Рщ%ИМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ИМ*йр%ОМ*йс%ИЕ*йт%ИХ*йу%ИМ*йф%ИХ*йх%ИЕ*Рь%ИМИ*йц%ИХ*йч
%ТИТЬ*ка%ЧУ*кб%ТИМ*кв%ТИШЬ*кг%ТИТЕ*кд%ТИТ*ке%ТЯТ*кж%ТИЛ*кз%ТИЛА*ки%ТИЛО*кй%ТИЛИ*кк%ТЯ*кн%ТИВ*ко%ТИВШИ*ко%ТИ*кл%ТИТЕ*км%ТЯЩИЙ*ла%ТЯЩЕГО*лб%ТЯЩЕМУ*лв%ТЯЩЕГО*лг%ТЯЩИЙ*Ла%ТЯЩИМ*лд%ТЯЩЕМ*ле%ТЯЩАЯ*лз%ТЯЩЕЙ*ли%ТЯЩЕЙ*лй%ТЯЩУЮ*лк%ТЯЩЕЙ*лл%ТЯЩЕЮ*лл%ТЯЩЕЙ*лм%ТЯЩЕЕ*ло%ТЯЩЕГО*лп%ТЯЩЕМУ*лр%ТЯЩЕЕ*лс%ТЯЩИМ*лт%ТЯЩЕМ*лу%ТЯЩИЕ*лх%ТЯЩИХ*лц%ТЯЩИМ*лч%ТЯЩИХ*лш%ТЯЩИЕ*Лй%ТЯЩИМИ*лщ%ТЯЩИХ*лы%ТИВШИЙ*ма%ТИВШЕГО*мб%ТИВШЕМУ*мв%ТИВШЕГО*мг%ТИВШИЙ*Лб%ТИВШИМ*мд%ТИВШЕМ*ме%ТИВШАЯ*мз%ТИВШЕЙ*ми%ТИВШЕЙ*мй%ТИВШУЮ*мк%ТИВШЕЙ*мл%ТИВШЕЮ*мл%ТИВШЕЙ*мм%ТИВШЕЕ*мо%ТИВШЕГО*мп%ТИВШЕМУ*мр%ТИВШЕЕ*мс%ТИВШИМ*мт%ТИВШЕМ*му%ТИВШИЕ*мх%ТИВШИХ*мц%ТИВШИМ*мч%ТИВШИХ*мш%ТИВШИЕ*Лк%ТИВШИМИ*мщ%ТИВШИХ*мы%ТИМЫЙ*па%ТИМОГО*пб%ТИМОМУ*пв%ТИМОГО*пг%ТИМЫЙ*Лг%ТИМЫМ*пд%ТИМОМ*пе%ТИМ*пж%ТИМАЯ*пз%ТИМОЙ*пи%ТИМОЙ*пй%ТИМУЮ*пк%ТИМОЙ*пл%ТИМОЮ*пл%ТИМОЙ*пм%ТИМА*пн%ТИМОЕ*по%ТИМОГО*пп%ТИМОМУ*пр%ТИМОЕ*пс%ТИМЫМ*пт%ТИМОМ*пу%ТИМО*пф%ТИМЫЕ*пх%ТИМЫХ*пц%ТИМЫМ*пч%ТИМЫХ*пш%ТИМЫЕ*Лм%ТИМЫМИ*пщ%ТИМЫХ*пы%ТИМЫ*пэ%ЧЁННЫЙ*са%ЧЁННОГО*сб%ЧЁННОМУ*св%ЧЁННОГО*сг%ЧЁННЫЙ*Ле%ЧЁННЫМ*сд%ЧЁННОМ*се%ЧЁН*сж%ЧЁННАЯ*сз%ЧЁННОЙ*си%ЧЁННОЙ*сй%ЧЁННУЮ*ск%ЧЁННОЙ*сл%ЧЁННОЮ*сл%ЧЁННОЙ*см%ЧЕНА*сн%ЧЁННОЕ*со%ЧЁННОГО*сп%ЧЁННОМУ*ср%ЧЁННОЕ*сс%ЧЁННЫМ*ст%ЧЁННОМ*су%ЧЕНО*сф%ЧЁННЫЕ*сх%ЧЁННЫХ*сц%ЧЁННЫМ*сч%ЧЁННЫХ*сш%ЧЁННЫЕ*Ло%ЧЁННЫМИ*сщ%ЧЁННЫХ*сы%ЧЕНЫ*сэ
%ЛЯ*га%ЛИ*гб%ЛЕ*гв%ЛЮ*гг%ЛЕЙ*гд%ЛЕЮ*гд%ЛЕ*ге%ЛИ*гж%ЕЛЬ*гз%ЛЯМ*ги%ЛИ*гй%ЛЯМИ*гк%ЛЯХ*гл
%ТЬ*ка%Л*кз%ЛА*ки%ЛО*кй%ЛИ*кк%Ю*кп%ЕМ*кр%ЕШЬ*кс%ЕТЕ*кт%ЕТ*ку%ЮТ*кф%В*ко%ВШИ*ко%ЕМ*нп%ЕМТЕ*нп%Й*кл%ЙТЕ*км%ВШИЙ*ма%ВШЕГО*мб%ВШЕМУ*мв%ВШЕГО*мг%ВШИЙ*Лб%ВШИМ*мд%ВШЕМ*ме%ВШАЯ*мз%ВШЕЙ*ми%ВШЕЙ*мй%ВШУЮ*мк%ВШЕЙ*мл%ВШЕЮ*мл%ВШЕЙ*мм%ВШЕЕ*мо%ВШЕГО*мп%ВШЕМУ*мр%ВШЕЕ*мс%ВШИМ*мт%ВШЕМ*му%ВШИЕ*мх%ВШИХ*мц%ВШИМ*мч%ВШИХ*мш%ВШИЕ*Лк%ВШИМИ*мщ%ВШИХ*мы%ННЫЙ*са%ННОГО*сб%ННОМУ*св%ННОГО*сг%ННЫЙ*Ле%ННЫМ*сд%ННОМ*се%Н*сж%ННАЯ*сз%ННОЙ*си%ННОЙ*сй%ННУЮ*ск%ННОЙ*сл%ННОЮ*сл%ННОЙ*см%НА*сн%ННОЕ*со%ННОГО*сп%ННОМУ*ср%ННОЕ*сс%ННЫМ*ст%ННОМ*су%НО*сф%ННЫЕ*сх%ННЫХ*сц%ННЫМ*сч%ННЫХ*сш%ННЫЕ*Ло%ННЫМИ*сщ%ННЫХ*сы%НЫ*сэ
%ТЬСЯ*ка%ЛСЯ*кз%ЛАСЬ*ки%ЛОСЬ*кй%ЛИСЬ*кк%ЮСЬ*кп%ЕМСЯ*кр%ЕШЬСЯ*кс%ЕТЕСЬ*кт%ЕТСЯ*ку%ЮТСЯ*кф%ВШИСЬ*ко%ЕМСЯ*нп%ЕМТЕСЬ*нп%ЙСЯ*кл%ЙТЕСЬ*км%ВШИЙСЯ*ма%ВШЕГОСЯ*мб%ВШЕМУСЯ*мв%ВШЕГОСЯ*мг%ВШИЙСЯ*Лб%ВШИМСЯ*мд%ВШЕМСЯ*ме%ВШАЯСЯ*мз%ВШЕЙСЯ*ми%ВШЕЙСЯ*мй%ВШУЮСЯ*мк%ВШЕЙСЯ*мл%ВШЕЮСЯ*мл%ВШЕЙСЯ*мм%ВШЕЕСЯ*мо%ВШЕГОСЯ*мп%ВШЕМУСЯ*мр%ВШЕЕСЯ*мс%ВШИМСЯ*мт%ВШЕМСЯ*му%ВШИЕСЯ*мх%ВШИХСЯ*мц%ВШИМСЯ*мч%ВШИХСЯ*мш%ВШИЕСЯ*Лк%ВШИМИСЯ*мщ%ВШИХСЯ*мы
%ИТЬ*ка%ИЛ*кз%ИЛА*ки%ИЛО*кй%ИЛИ*кк%Ю*кп%ИМ*кр%ИШЬ*кс%ИТЕ*кт%ИТ*ку%ЯТ*кф%ИВ*ко%ИВШИ*ко%Я*ко%ИМ*нп%ИМТЕ*нп%Ь*кл%ЬТЕ*км%ИВШИЙ*ма%ИВШЕГО*мб%ИВШЕМУ*мв%ИВШЕГО*мг%ИВШИЙ*Лб%ИВШИМ*мд%ИВШЕМ*ме%ИВШАЯ*мз%ИВШЕЙ*ми%ИВШЕЙ*мй%ИВШУЮ*мк%ИВШЕЙ*мл%ИВШЕЮ*мл%ИВШЕЙ*мм%ИВШЕЕ*мо%ИВШЕГО*мп%ИВШЕМУ*мр%ИВШЕЕ*мс%ИВШИМ*мт%ИВШЕМ*му%ИВШИЕ*мх%ИВШИХ*мц%ИВШИМ*мч%ИВШИХ*мш%ИВШИЕ*Лк%ИВШИМИ*мщ%ИВШИХ*мы%ЕННЫЙ*са%ЕННОГО*сб%ЕННОМУ*св%ЕННОГО*сг%ЕННЫЙ*Ле%ЕННЫМ*сд%ЕННОМ*се%ЕН*сж%ЕННАЯ*сз%ЕННОЙ*си%ЕННОЙ*сй%ЕННУЮ*ск%ЕННОЙ*сл%ЕННОЮ*сл%ЕННОЙ*см%ЕНА*сн%ЕННОЕ*со%ЕННОГО*сп%ЕННОМУ*ср%ЕННОЕ*сс%ЕННЫМ*ст%ЕННОМ*су%ЕНО*сф%ЕННЫЕ*сх%ЕННЫХ*сц%ЕННЫМ*сч%ЕННЫХ*сш%ЕННЫЕ*Ло%ЕННЫМИ*сщ%ЕННЫХ*сы%ЕНЫ*сэ
%ЕСТИ*ка%ЁЛ*кз%ЕЛА*ки%ЕЛО*кй%ЕЛИ*кк%ЕДУ*кп%ЕДЁМ*кр%ЕДЁШЬ*кс%ЕДЁТЕ*кт%ЕДЁТ*ку%ЕДУТ*кф%ЕДЯ*ко%ЕДЁМ*нп%ЕДЁМТЕ*нп%ЕДИ*кл%ЕДИТЕ*км%ЁДШИЙ*ма%ЁДШЕГО*мб%ЁДШЕМУ*мв%ЁДШЕГО*мг%ЁДШИЙ*Лб%ЁДШИМ*мд%ЁДШЕМ*ме%ЁДШАЯ*мз%ЁДШЕЙ*ми%ЁДШЕЙ*мй%ЁДШУЮ*мк%ЁДШЕЙ*мл%ЁДШЕЮ*мл%ЁДШЕЙ*мм%ЁДШЕЕ*мо%ЁДШЕГО*мп%ЁДШЕМУ*мр%ЁДШЕЕ*мс%ЁДШИМ*мт%ЁДШЕМ*му%ЁДШИЕ*мх%ЁДШИХ*мц%ЁДШИМ*мч%ЁДШИХ*мш%ЁДШИЕ*Лк%ЁДШИМИ*мщ%ЁДШИХ*мы%ЕДЁННЫЙ*са%ЕДЁННОГО*сб%ЕДЁННОМУ*св%ЕДЁННОГО*сг%ЕДЁННЫЙ*Ле%ЕДЁННЫМ*сд%ЕДЁННОМ*се%ЕДЁН*сж%ЕДЁННАЯ*сз%ЕДЁННОЙ*си%ЕДЁННОЙ*сй%ЕДЁННУЮ*ск%ЕДЁННОЙ*сл%ЕДЁННОЮ*сл%ЕДЁННОЙ*см%ЕДЕНА*сн%ЕДЁННОЕ*со%ЕДЁННОГО*сп%ЕДЁННОМУ*ср%ЕДЁННОЕ*сс%ЕДЁННЫМ*ст%ЕДЁННОМ*су%ЕДЕНО*сф%ЕДЁННЫЕ*сх%ЕДЁННЫХ*сц%ЕДЁННЫМ*сч%ЕДЁННЫХ*сш%ЕДЁННЫЕ*Ло%ЕДЁННЫМИ*сщ%ЕДЁННЫХ*сы%ЕДЕНЫ*сэ
%ИТЬ*ка%ИЛ*кз%ИЛА*ки%ИЛО*кй%ИЛИ*кк%У*кп%ИМ*кр%ИШЬ*кс%ИТЕ*кт%ИТ*ку%АТ*кф%ИВ*ко%ИВШИ*ко%ИМ*нп%ИМТЕ*нп%И*кл%ИТЕ*км%ИВШИЙ*ма%ИВШЕГО*мб%ИВШЕМУ*мв%ИВШЕГО*мг%ИВШИЙ*Лб%ИВШИМ*мд%ИВШЕМ*ме%ИВШАЯ*мз%ИВШЕЙ*ми%ИВШЕЙ*мй%ИВШУЮ*мк%ИВШЕЙ*мл%ИВШЕЮ*мл%ИВШЕЙ*мм%ИВШЕЕ*мо%ИВШЕГО*мп%ИВШЕМУ*мр%ИВШЕЕ*мс%ИВШИМ*мт%ИВШЕМ*му%ИВШИЕ*мх%ИВШИХ*мц%ИВШИМ*мч%ИВШИХ*мш%ИВШИЕ*Лк%ИВШИМИ*мщ%ИВШИХ*мы%ЕННЫЙ*са%ЕННОГО*сб%ЕННОМУ*св%ЕННОГО*сг%ЕННЫЙ*Ле%ЕННЫМ*сд%ЕННОМ*се%ЕН*сж%ЕННАЯ*сз%ЕННОЙ*си%ЕННОЙ*сй%ЕННУЮ*ск%ЕННОЙ*сл%ЕННОЮ*сл%ЕННОЙ*см%ЕНА*сн%ЕННОЕ*со%ЕННОГО*сп%ЕННОМУ*ср%ЕННОЕ*сс%ЕННЫМ*ст%ЕННОМ*су%ЕНО*сф%ЕННЫЕ*сх%ЕННЫХ*сц%ЕННЫМ*сч%ЕННЫХ*сш%ЕННЫЕ*Ло%ЕННЫМИ*сщ%ЕННЫХ*сы%ЕНЫ*сэ
%ТИТЬ*ка%ТИЛ*кз%ТИЛА*ки%ТИЛО*кй%ТИЛИ*кк%ЧУ*кп%ТИМ*кр%ТИШЬ*кс%ТИТЕ*кт%ТИТ*ку%ТЯТ*кф%ТИВ*ко%ТИВШИ*ко%ТЯ*ко%ТИМ*нп%ТИМТЕ*нп%ТИ*кл%ТИТЕ*км%ТИВШИЙ*ма%ТИВШЕГО*мб%ТИВШЕМУ*мв%ТИВШЕГО*мг%ТИВШИЙ*Лб%ТИВШИМ*мд%ТИВШЕМ*ме%ТИВШАЯ*мз%ТИВШЕЙ*ми%ТИВШЕЙ*мй%ТИВШУЮ*мк%ТИВШЕЙ*мл%ТИВШЕЮ*мл%ТИВШЕЙ*мм%ТИВШЕЕ*мо%ТИВШЕГО*мп%ТИВШЕМУ*мр%ТИВШЕЕ*мс%ТИВШИМ*мт%ТИВШЕМ*му%ТИВШИЕ*мх%ТИВШИХ*мц%ТИВШИМ*мч%ТИВШИХ*мш%ТИВШИЕ*Лк%ТИВШИМИ*мщ%ТИВШИХ*мы%ЧЕННЫЙ*са%ЧЕННОГО*сб%ЧЕННОМУ*св%ЧЕННОГО*сг%ЧЕННЫЙ*Ле%ЧЕННЫМ*сд%ЧЕННОМ*се%ЧЕН*сж%ЧЕННАЯ*сз%ЧЕННОЙ*си%ЧЕННОЙ*сй%ЧЕННУЮ*ск%ЧЕННОЙ*сл%ЧЕННОЮ*сл%ЧЕННОЙ*см%ЧЕНА*сн%ЧЕННОЕ*со%ЧЕННОГО*сп%ЧЕННОМУ*ср%ЧЕННОЕ*сс%ЧЕННЫМ*ст%ЧЕННОМ*су%ЧЕНО*сф%ЧЕННЫЕ*сх%ЧЕННЫХ*сц%ЧЕННЫМ*сч%ЧЕННЫХ*сш%ЧЕННЫЕ*Ло%ЧЕННЫМИ*сщ%ЧЕННЫХ*сы%ЧЕНЫ*сэ
%НУТЬ*ка%кз%ЛА*ки%ЛО*кй%ЛИ*кк%НУ*кп%НЕМ*кр%НЕШЬ*кс%НЕТЕ*кт%НЕТ*ку%НУТ*кф%НУВ*ко%НУВШИ*ко%ШИ*ко%НЕМ*нп%НЕМТЕ*нп%НИ*кл%НИТЕ*км%НУВШИЙ*ма%ШИЙ*ма%НУВШЕГО*мб%ШЕГО*мб%НУВШЕМУ*мв%ШЕМУ*мв%НУВШЕГО*мг%ШЕГО*мг%НУВШИЙ*Лб%ШИЙ*Лб%НУВШИМ*мд%ШИМ*мд%НУВШЕМ*ме%ШЕМ*ме%НУВШАЯ*мз%ШАЯ*мз%НУВШЕЙ*ми%ШЕЙ*ми%НУВШЕЙ*мй%ШЕЙ*мй%НУВШУЮ*мк%ШУЮ*мк%НУВШЕЙ*мл%НУВШЕЮ*мл%ШЕЙ*мл%ШЕЮ*мл%НУВШЕЙ*мм%ШЕЙ*мм%НУВШЕЕ*мо%ШЕЕ*мо%НУВШЕГО*мп%ШЕГО*мп%НУВШЕМУ*мр%ШЕМУ*мр%НУВШЕЕ*мс%ШЕЕ*мс%НУВШИМ*мт%ШИМ*мт%НУВШЕМ*му%ШЕМ*му%НУВШИЕ*мх%ШИЕ*мх%НУВШИХ*мц%ШИХ*мц%НУВШИМ*мч%ШИМ*мч%НУВШИХ*мш%ШИХ*мш%НУВШИЕ*Лк%ШИЕ*Лк%НУВШИМИ*мщ%ШИМИ*мщ%НУВШИХ*мы%ШИХ*мы
%ДИТЬСЯ*ка%ДИЛСЯ*кз%ДИЛАСЬ*ки%ДИЛОСЬ*кй%ДИЛИСЬ*кк%ЖУСЬ*кп%ДИМСЯ*кр%ДИШЬСЯ*кс%ДИТЕСЬ*кт%ДИТСЯ*ку%ДЯТСЯ*кф%ДИВШИСЬ*ко%ДЯСЬ*ко%ДИМСЯ*нп%ДИМТЕСЬ*нп%ДИСЬ*кл%ДИТЕСЬ*км%ДИВШИЙСЯ*ма%ДИВШЕГОСЯ*мб%ДИВШЕМУСЯ*мв%ДИВШЕГОСЯ*мг%ДИВШИЙСЯ*Лб%ДИВШИМСЯ*мд%ДИВШЕМСЯ*ме%ДИВШАЯСЯ*мз%ДИВШЕЙСЯ*ми%ДИВШЕЙСЯ*мй%ДИВШУЮСЯ*мк%ДИВШЕЙСЯ*мл%ДИВШЕЮСЯ*мл%ДИВШЕЙСЯ*мм%ДИВШЕЕСЯ*мо%ДИВШЕГОСЯ*мп%ДИВШЕМУСЯ*мр%ДИВШЕЕСЯ*мс%ДИВШИМСЯ*мт%ДИВШЕМСЯ*му%ДИВШИЕСЯ*мх%ДИВШИХСЯ*мц%ДИВШИМСЯ*мч%ДИВШИХСЯ*мш%ДИВШИЕСЯ*Лк%ДИВШИМИСЯ*мщ%ДИВШИХСЯ*мы
%ВАТЬСЯ*ка%ЮСЬ*кб%ЁМСЯ*кв%ЁШЬСЯ*кг%ЁТЕСЬ*кд%ЁТСЯ*ке%ЮТСЯ*кж%ВАЛСЯ*кз%ВАЛАСЬ*ки%ВАЛОСЬ*кй%ВАЛИСЬ*кк%ВАЯСЬ*кн%ВАВШИСЬ*ко%ВАЙСЯ*кл%ВАЙТЕСЬ*км%ЮЩИЙСЯ*ла%ЮЩЕГОСЯ*лб%ЮЩЕМУСЯ*лв%ЮЩЕГОСЯ*лг%ЮЩИЙСЯ*Ла%ЮЩИМСЯ*лд%ЮЩЕМСЯ*ле%ЮЩАЯСЯ*лз%ЮЩЕЙСЯ*ли%ЮЩЕЙСЯ*лй%ЮЩУЮСЯ*лк%ЮЩЕЙСЯ*лл%ЮЩЕЮСЯ*лл%ЮЩЕЙСЯ*лм%ЮЩЕЕСЯ*ло%ЮЩЕГОСЯ*лп%ЮЩЕМУСЯ*лр%ЮЩЕЕСЯ*лс%ЮЩИМСЯ*лт%ЮЩЕМСЯ*лу%ЮЩИЕСЯ*лх%ЮЩИХСЯ*лц%ЮЩИМСЯ*лч%ЮЩИХСЯ*лш%ЮЩИЕСЯ*Лй%ЮЩИМИСЯ*лщ%ЮЩИХСЯ*лы%ВАВШИЙСЯ*ма%ВАВШЕГОСЯ*мб%ВАВШЕМУСЯ*мв%ВАВШЕГОСЯ*мг%ВАВШИЙСЯ*Лб%ВАВШИМСЯ*мд%ВАВШЕМСЯ*ме%ВАВШАЯСЯ*мз%ВАВШЕЙСЯ*ми%ВАВШЕЙСЯ*мй%ВАВШУЮСЯ*мк%ВАВШЕЙСЯ*мл%ВАВШЕЮСЯ*мл%ВАВШЕЙСЯ*мм%ВАВШЕЕСЯ*мо%ВАВШЕГОСЯ*мп%ВАВШЕМУСЯ*мр%ВАВШЕЕСЯ*мс%ВАВШИМСЯ*мт%ВАВШЕМСЯ*му%ВАВШИЕСЯ*мх%ВАВШИХСЯ*мц%ВАВШИМСЯ*мч%ВАВШИХСЯ*мш%ВАВШИЕСЯ*Лк%ВАВШИМИСЯ*мщ%ВАВШИХСЯ*мы
%ИТЬСЯ*ка%ИЛСЯ*кз%ИЛАСЬ*ки%ИЛОСЬ*кй%ИЛИСЬ*кк%ЛЮСЬ*кп%ИМСЯ*кр%ИШЬСЯ*кс%ИТЕСЬ*кт%ИТСЯ*ку%ЯТСЯ*кф%ИВШИСЬ*ко%ЯСЬ*ко%ИМСЯ*нп%ИМТЕСЬ*нп%ИСЬ*кл%ИТЕСЬ*км%ИВШИЙСЯ*ма%ИВШЕГОСЯ*мб%ИВШЕМУСЯ*мв%ИВШЕГОСЯ*мг%ИВШИЙСЯ*Лб%ИВШИМСЯ*мд%ИВШЕМСЯ*ме%ИВШАЯСЯ*мз%ИВШЕЙСЯ*ми%ИВШЕЙСЯ*мй%ИВШУЮСЯ*мк%ИВШЕЙСЯ*мл%ИВШЕЮСЯ*мл%ИВШЕЙСЯ*мм%ИВШЕЕСЯ*мо%ИВШЕГОСЯ*мп%ИВШЕМУСЯ*мр%ИВШЕЕСЯ*мс%ИВШИМСЯ*мт%ИВШЕМСЯ*му%ИВШИЕСЯ*мх%ИВШИХСЯ*мц%ИВШИМСЯ*мч%ИВШИХСЯ*мш%ИВШИЕСЯ*Лк%ИВШИМИСЯ*мщ%ИВШИХСЯ*мы
%УТЬСЯ*ка%УЛСЯ*кз%УЛАСЬ*ки%УЛОСЬ*кй%УЛИСЬ*кк%УСЬ*кп%ЕМСЯ*кр%ЕШЬСЯ*кс%ЕТЕСЬ*кт%ЕТСЯ*ку%УТСЯ*кф%УВШИСЬ*ко%ЕМСЯ*нп%ЕМТЕСЬ*нп%ЬСЯ*кл%ЬТЕСЬ*км%УВШИЙСЯ*ма%УВШЕГОСЯ*мб%УВШЕМУСЯ*мв%УВШЕГОСЯ*мг%УВШИЙСЯ*Лб%УВШИМСЯ*мд%УВШЕМСЯ*ме%УВШАЯСЯ*мз%УВШЕЙСЯ*ми%УВШЕЙСЯ*мй%УВШУЮСЯ*мк%УВШЕЙСЯ*мл%УВШЕЮСЯ*мл%УВШЕЙСЯ*мм%УВШЕЕСЯ*мо%УВШЕГОСЯ*мп%УВШЕМУСЯ*мр%УВШЕЕСЯ*мс%УВШИМСЯ*мт%УВШЕМСЯ*му%УВШИЕСЯ*мх%УВШИХСЯ*мц%УВШИМСЯ*мч%УВШИХСЯ*мш%УВШИЕСЯ*Лк%УВШИМИСЯ*мщ%УВШИХСЯ*мы
%ТЬ*ка%Л*кз%ЛА*ки%ЛО*кй%ЛИ*кк%НУ*кп%НЕМ*кр%НЕШЬ*кс%НЕТЕ*кт%НЕТ*ку%НУТ*кф%В*ко%ВШИ*ко%НЕМ*нп%НЕМТЕ*нп%НЬ*кл%НЬТЕ*км%ВШИЙ*ма%ВШЕГО*мб%ВШЕМУ*мв%ВШЕГО*мг%ВШИЙ*Лб%ВШИМ*мд%ВШЕМ*ме%ВШАЯ*мз%ВШЕЙ*ми%ВШЕЙ*мй%ВШУЮ*мк%ВШЕЙ*мл%ВШЕЮ*мл%ВШЕЙ*мм%ВШЕЕ*мо%ВШЕГО*мп%ВШЕМУ*мр%ВШЕЕ*мс%ВШИМ*мт%ВШЕМ*му%ВШИЕ*мх%ВШИХ*мц%ВШИМ*мч%ВШИХ*мш%ВШИЕ*Лк%ВШИМИ*мщ%ВШИХ*мы%ТЫЙ*са%ТОГО*сб%ТОМУ*св%ТОГО*сг%ТЫЙ*Ле%ТЫМ*сд%ТОМ*се%Т*сж%ТАЯ*сз%ТОЙ*си%ТОЙ*сй%ТУЮ*ск%ТОЙ*сл%ТОЮ*сл%ТОЙ*см%ТА*сн%ТОЕ*со%ТОГО*сп%ТОМУ*ср%ТОЕ*сс%ТЫМ*ст%ТОМ*су%ТО*сф%ТЫЕ*сх%ТЫХ*сц%ТЫМ*сч%ТЫХ*сш%ТЫЕ*Ло%ТЫМИ*сщ%ТЫХ*сы%ТЫ*сэ
%Ь*га%И*гб%И*гв%Ь*гг%ЬЮ*гд%И*ге%И*гж%ЕЙ*гз%ЕЙ*гз%ЯМ*ги%ЯМ*ги%И*гй%ЯМИ*гк%ЯМИ*гк%ЯХ*гл%ЯХ*гл
%АЯ*га%ЕЙ*гб%ЕЙ*гв%УЮ*гг%ЕЙ*гд%ЕЮ*гд%ЕЙ*ге%ИЕ*гж%ИХ*гз%ИМ*ги%ИХ*гй%ИМИ*гк%ИХ*гл
%ЕСТИ*ка%ЕДУ*кб%ЕДЁМ*кв%ЕДЁШЬ*кг%ЕДЁТЕ*кд%ЕДЁТ*ке%ЕДУТ*кж%ЁЛ*кз%ЕЛА*ки%ЕЛО*кй%ЕЛИ*кк%ЕДЯ*кн%ЁДШИ*ко%ЕДИ*кл%ЕДИТЕ*км%ЕДУЩИЙ*ла%ЕДУЩЕГО*лб%ЕДУЩЕМУ*лв%ЕДУЩЕГО*лг%ЕДУЩИЙ*Ла%ЕДУЩИМ*лд%ЕДУЩЕМ*ле%ЕДУЩАЯ*лз%ЕДУЩЕЙ*ли%ЕДУЩЕЙ*лй%ЕДУЩУЮ*лк%ЕДУЩЕЙ*лл%ЕДУЩЕЮ*лл%ЕДУЩЕЙ*лм%ЕДУЩЕЕ*ло%ЕДУЩЕГО*лп%ЕДУЩЕМУ*лр%ЕДУЩЕЕ*лс%ЕДУЩИМ*лт%ЕДУЩЕМ*лу%ЕДУЩИЕ*лх%ЕДУЩИХ*лц%ЕДУЩИМ*лч%ЕДУЩИХ*лш%ЕДУЩИЕ*Лй%ЕДУЩИМИ*лщ%ЕДУЩИХ*лы%ЁДШИЙ*ма%ЁДШЕГО*мб%ЁДШЕМУ*мв%ЁДШЕГО*мг%ЁДШИЙ*Лб%ЁДШИМ*мд%ЁДШЕМ*ме%ЁДШАЯ*мз%ЁДШЕЙ*ми%ЁДШЕЙ*мй%ЁДШУЮ*мк%ЁДШЕЙ*мл%ЁДШЕЮ*мл%ЁДШЕЙ*мм%ЁДШЕЕ*мо%ЁДШЕГО*мп%ЁДШЕМУ*мр%ЁДШЕЕ*мс%ЁДШИМ*мт%ЁДШЕМ*му%ЁДШИЕ*мх%ЁДШИХ*мц%ЁДШИМ*мч%ЁДШИХ*мш%ЁДШИЕ*Лк%ЁДШИМИ*мщ%ЁДШИХ*мы%ЕДЁННЫЙ*са%ЕДЁННОГО*сб%ЕДЁННОМУ*св%ЕДЁННОГО*сг%ЕДЁННЫЙ*Ле%ЕДЁННЫМ*сд%ЕДЁННОМ*се%ЕДЁН*сж%ЕДЁННАЯ*сз%ЕДЁННОЙ*си%ЕДЁННОЙ*сй%ЕДЁННУЮ*ск%ЕДЁННОЙ*сл%ЕДЁННОЮ*сл%ЕДЁННОЙ*см%ЕДЕНА*сн%ЕДЁННОЕ*со%ЕДЁННОГО*сп%ЕДЁННОМУ*ср%ЕДЁННОЕ*сс%ЕДЁННЫМ*ст%ЕДЁННОМ*су%ЕДЕНО*сф%ЕДЁННЫЕ*сх%ЕДЁННЫХ*сц%ЕДЁННЫМ*сч%ЕДЁННЫХ*сш%ЕДЁННЫЕ*Ло%ЕДЁННЫМИ*сщ%ЕДЁННЫХ*сы%ЕДЕНЫ*сэ
%ЕСЬ*ыа%СЕГО*ыб%СЕМУ*ыв%ЕСЬ*ыг%СЕГО*Лф%СЕМ*ыд%СЁМ*ые%СЯ*ыж%СЕЙ*ыз%СЕЯ*ыз%СЕЙ*ыи%СЮ*ый%СЕЙ*ык%СЕЙ*ыл%СЁ*ым%СЕГО*ын%СЕМУ*ыо%СЁ*ып%СЕМ*ыр%СЁМ*ыс%СЕ*ыт%СЕХ*ыу%СЕМ*ыф%СЕ*ых%СЕХ*Лх%СЕМИ*ыц%СЕХ*ыч
%НУТЬ*ка%кз%ЛА*ки%ЛО*кй%ЛИ*кк%НУ*кп%НЕМ*кр%НЕШЬ*кс%НЕТЕ*кт%НЕТ*ку%НУТ*кф%НУВ*ко%ШИ*ко%НЕМ*нп%НЕМТЕ*нп%НИ*кл%НИТЕ*км%ШИЙ*ма%ШЕГО*мб%ШЕМУ*мв%ШЕГО*мг%ШИЙ*Лб%ШИМ*мд%ШЕМ*ме%ШАЯ*мз%ШЕЙ*ми%ШЕЙ*мй%ШУЮ*мк%ШЕЙ*мл%ШЕЮ*мл%ШЕЙ*мм%ШЕЕ*мо%ШЕГО*мп%ШЕМУ*мр%ШЕЕ*мс%ШИМ*мт%ШЕМ*му%ШИЕ*мх%ШИХ*мц%ШИМ*мч%ШИХ*мш%ШИЕ*Лк%ШИМИ*мщ%ШИХ*мы
%ИТЬ*ка%ИЛ*кз%ИЛА*ки%ИЛО*кй%ИЛИ*кк%У*кп%ИМ*кр%ИШЬ*кс%ИТЕ*кт%ИТ*ку%АТ*кф%ИВ*ко%ИВШИ*ко%ИМ*нп%ИМТЕ*нп%И*кл%ИТЕ*км%ИВШИЙ*ма%ИВШЕГО*мб%ИВШЕМУ*мв%ИВШЕГО*мг%ИВШИЙ*Лб%ИВШИМ*мд%ИВШЕМ*ме%ИВШАЯ*мз%ИВШЕЙ*ми%ИВШЕЙ*мй%ИВШУЮ*мк%ИВШЕЙ*мл%ИВШЕЮ*мл%ИВШЕЙ*мм%ИВШЕЕ*мо%ИВШЕГО*мп%ИВШЕМУ*мр%ИВШЕЕ*мс%ИВШИМ*мт%ИВШЕМ*му%ИВШИЕ*мх%ИВШИХ*мц%ИВШИМ*мч%ИВШИХ*мш%ИВШИЕ*Лк%ИВШИМИ*мщ%ИВШИХ*мы%ЁННЫЙ*са%ЁННОГО*сб%ЁННОМУ*св%ЁННОГО*сг%ЁННЫЙ*Ле%ЁННЫМ*сд%ЁННОМ*се%ЁН*сж%ЁННАЯ*сз%ЁННОЙ*си%ЁННОЙ*сй%ЁННУЮ*ск%ЁННОЙ*сл%ЁННОЮ*сл%ЁННОЙ*см%ЕНА*сн%ЁННОЕ*со%ЁННОГО*сп%ЁННОМУ*ср%ЁННОЕ*сс%ЁННЫМ*ст%ЁННОМ*су%ЕНО*сф%ЁННЫЕ*сх%ЁННЫХ*сц%ЁННЫМ*сч%ЁННЫХ*сш%ЁННЫЕ*Ло%ЁННЫМИ*сщ%ЁННЫХ*сы%ЕНЫ*сэ
%ИТЬ*ка%ИЛ*кз%ИЛА*ки%ИЛО*кй%ИЛИ*кк%ЛЮ*кп%ИМ*кр%ИШЬ*кс%ИТЕ*кт%ИТ*ку%ЯТ*кф%ИВ*ко%ИВШИ*ко%ИМ*нп%ИМТЕ*нп%Ь*кл%ЬТЕ*км%ИВШИЙ*ма%ИВШЕГО*мб%ИВШЕМУ*мв%ИВШЕГО*мг%ИВШИЙ*Лб%ИВШИМ*мд%ИВШЕМ*ме%ИВШАЯ*мз%ИВШЕЙ*ми%ИВШЕЙ*мй%ИВШУЮ*мк%ИВШЕЙ*мл%ИВШЕЮ*мл%ИВШЕЙ*мм%ИВШЕЕ*мо%ИВШЕГО*мп%ИВШЕМУ*мр%ИВШЕЕ*мс%ИВШИМ*мт%ИВШЕМ*му%ИВШИЕ*мх%ИВШИХ*мц%ИВШИМ*мч%ИВШИХ*мш%ИВШИЕ*Лк%ИВШИМИ*мщ%ИВШИХ*мы%ЛЕННЫЙ*са%ЛЕННОГО*сб%ЛЕННОМУ*св%ЛЕННОГО*сг%ЛЕННЫЙ*Ле%ЛЕННЫМ*сд%ЛЕННОМ*се%ЛЕН*сж%ЛЕННАЯ*сз%ЛЕННОЙ*си%ЛЕННОЙ*сй%ЛЕННУЮ*ск%ЛЕННОЙ*сл%ЛЕННОЮ*сл%ЛЕННОЙ*см%ЛЕНА*сн%ЛЕННОЕ*со%ЛЕННОГО*сп%ЛЕННОМУ*ср%ЛЕННОЕ*сс%ЛЕННЫМ*ст%ЛЕННОМ*су%ЛЕНО*сф%ЛЕННЫЕ*сх%ЛЕННЫХ*сц%ЛЕННЫМ*сч%ЛЕННЫХ*сш%ЛЕННЫЕ*Ло%ЛЕННЫМИ*сщ%ЛЕННЫХ*сы%ЛЕНЫ*сэ
%ЙТИ*ка%ШЁЛ*кз%ШЛА*ки%ШЛО*кй%ШЛИ*кк%ЙДУ*кп%ЙДЁМ*кр%ЙДЁШЬ*кс%ЙДЁТЕ*кт%ЙДЁТ*ку%ЙДУТ*кф%ЙДЯ*ко%ЙДЁМ*нп%ЙДЁМТЕ*нп%ЙДИ*кл%ЙДИТЕ*км%ШЕДШИЙ*ма%ШЕДШЕГО*мб%ШЕДШЕМУ*мв%ШЕДШЕГО*мг%ШЕДШИЙ*Лб%ШЕДШИМ*мд%ШЕДШЕМ*ме%ШЕДШАЯ*мз%ШЕДШЕЙ*ми%ШЕДШЕЙ*мй%ШЕДШУЮ*мк%ШЕДШЕЙ*мл%ШЕДШЕЮ*мл%ШЕДШЕЙ*мм%ШЕДШЕЕ*мо%ШЕДШЕГО*мп%ШЕДШЕМУ*мр%ШЕДШЕЕ*мс%ШЕДШИМ*мт%ШЕДШЕМ*му%ШЕДШИЕ*мх%ШЕДШИХ*мц%ШЕДШИМ*мч%ШЕДШИХ*мш%ШЕДШИЕ*Лк%ШЕДШИМИ*мщ%ШЕДШИХ*мы
%АТЬ*ка%АЛ*кз%АЛА*ки%АЛО*кй%АЛИ*кк%У*кп%ЁМ*кр%ЁШЬ*кс%ЁТЕ*кт%ЁТ*ку%УТ*кф%АВ*ко%АВШИ*ко%ЁМ*нп%ЁМТЕ*нп%И*кл%ИТЕ*км%АВШИЙ*ма%АВШЕГО*мб%АВШЕМУ*мв%АВШЕГО*мг%АВШИЙ*Лб%АВШИМ*мд%АВШЕМ*ме%АВШАЯ*мз%АВШЕЙ*ми%АВШЕЙ*мй%АВШУЮ*мк%АВШЕЙ*мл%АВШЕЮ*мл%АВШЕЙ*мм%АВШЕЕ*мо%АВШЕГО*мп%АВШЕМУ*мр%АВШЕЕ*мс%АВШИМ*мт%АВШЕМ*му%АВШИЕ*мх%АВШИХ*мц%АВШИМ*мч%АВШИХ*мш%АВШИЕ*Лк%АВШИМИ*мщ%АВШИХ*мы%АННЫЙ*са%АННОГО*сб%АННОМУ*св%АННОГО*сг%АННЫЙ*Ле%АННЫМ*сд%АННОМ*се%АН*сж%АННАЯ*сз%АННОЙ*си%АННОЙ*сй%АННУЮ*ск%АННОЙ*сл%АННОЮ*сл%АННОЙ*см%АНА*сн%АННОЕ*со%АННОГО*сп%АННОМУ*ср%АННОЕ*сс%АННЫМ*ст%АННОМ*су%АНО*сф%АННЫЕ*сх%АННЫХ*сц%АННЫМ*сч%АННЫХ*сш%АННЫЕ*Ло%АННЫМИ*сщ%АННЫХ*сы%АНЫ*сэ
%АСТИ*ка%ОС*кз%ОСЛА*ки%ОСЛО*кй%ОСЛИ*кк%АСТУ*кп%АСТЁМ*кр%АСТЁШЬ*кс%АСТЁТЕ*кт%АСТЁТ*ку%АСТУТ*кф%ОСШИ*ко%АСТЁМ*нп%АСТЁМТЕ*нп%АСТИ*кл%АСТИТЕ*км%ОСШИЙ*ма%ОСШЕГО*мб%ОСШЕМУ*мв%ОСШЕГО*мг%ОСШИЙ*Лб%ОСШИМ*мд%ОСШЕМ*ме%ОСШАЯ*мз%ОСШЕЙ*ми%ОСШЕЙ*мй%ОСШУЮ*мк%ОСШЕЙ*мл%ОСШЕЮ*мл%ОСШЕЙ*мм%ОСШЕЕ*мо%ОСШЕГО*мп%ОСШЕМУ*мр%ОСШЕЕ*мс%ОСШИМ*мт%ОСШЕМ*му%ОСШИЕ*мх%ОСШИХ*мц%ОСШИМ*мч%ОСШИХ*мш%ОСШИЕ*Лк%ОСШИМИ*мщ%ОСШИХ*мы
%ЫТЬ*ка%ЫЛ*кз%ЫЛА*ки%ЫЛО*кй%ЫЛИ*кк%ОЮ*кп%ОЕМ*кр%ОЕШЬ*кс%ОЕТЕ*кт%ОЕТ*ку%ОЮТ*кф%ЫВ*ко%ЫВШИ*ко%ОЕМ*нп%ОЕМТЕ*нп%ОЙ*кл%ОЙТЕ*км%ЫВШИЙ*ма%ЫВШЕГО*мб%ЫВШЕМУ*мв%ЫВШЕГО*мг%ЫВШИЙ*Лб%ЫВШИМ*мд%ЫВШЕМ*ме%ЫВШАЯ*мз%ЫВШЕЙ*ми%ЫВШЕЙ*мй%ЫВШУЮ*мк%ЫВШЕЙ*мл%ЫВШЕЮ*мл%ЫВШЕЙ*мм%ЫВШЕЕ*мо%ЫВШЕГО*мп%ЫВШЕМУ*мр%ЫВШЕЕ*мс%ЫВШИМ*мт%ЫВШЕМ*му%ЫВШИЕ*мх%ЫВШИХ*мц%ЫВШИМ*мч%ЫВШИХ*мш%ЫВШИЕ*Лк%ЫВШИМИ*мщ%ЫВШИХ*мы%ЫТЫЙ*са%ЫТОГО*сб%ЫТОМУ*св%ЫТОГО*сг%ЫТЫЙ*Ле%ЫТЫМ*сд%ЫТОМ*се%ЫТ*сж%ЫТАЯ*сз%ЫТОЙ*си%ЫТОЙ*сй%ЫТУЮ*ск%ЫТОЙ*сл%ЫТОЮ*сл%ЫТОЙ*см%ЫТА*сн%ЫТОЕ*со%ЫТОГО*сп%ЫТОМУ*ср%ЫТОЕ*сс%ЫТЫМ*ст%ЫТОМ*су%ЫТО*сф%ЫТЫЕ*сх%ЫТЫХ*сц%ЫТЫМ*сч%ЫТЫХ*сш%ЫТЫЕ*Ло%ЫТЫМИ*сщ%ЫТЫХ*сы%ЫТЫ*сэ
%ЗЯТЬ*ка%ЗЯЛ*кз%ЗЯЛА*ки%ЗЯЛО*кй%ЗЯЛИ*кк%ОЗЬМУ*кп%ОЗЬМЁМ*кр%ОЗЬМЁШЬ*кс%ОЗЬМЁТЕ*кт%ОЗЬМЁТ*ку%ОЗЬМУТ*кф%ЗЯВ*ко%ЗЯВШИ*ко%ОЗЬМЁМ*нп%ОЗЬМЁМТЕ*нп%ОЗЬМИ*кл%ОЗЬМИТЕ*км%ЗЯВШИЙ*ма%ЗЯВШЕГО*мб%ЗЯВШЕМУ*мв%ЗЯВШЕГО*мг%ЗЯВШИЙ*Лб%ЗЯВШИМ*мд%ЗЯВШЕМ*ме%ЗЯВШАЯ*мз%ЗЯВШЕЙ*ми%ЗЯВШЕЙ*мй%ЗЯВШУЮ*мк%ЗЯВШЕЙ*мл%ЗЯВШЕЮ*мл%ЗЯВШЕЙ*мм%ЗЯВШЕЕ*мо%ЗЯВШЕГО*мп%ЗЯВШЕМУ*мр%ЗЯВШЕЕ*мс%ЗЯВШИМ*мт%ЗЯВШЕМ*му%ЗЯВШИЕ*мх%ЗЯВШИХ*мц%ЗЯВШИМ*мч%ЗЯВШИХ*мш%ЗЯВШИЕ*Лк%ЗЯВШИМИ*мщ%ЗЯВШИХ*мы%ЗЯТЫЙ*са%ЗЯТОГО*сб%ЗЯТОМУ*св%ЗЯТОГО*сг%ЗЯТЫЙ*Ле%ЗЯТЫМ*сд%ЗЯТОМ*се%ЗЯТ*сж%ЗЯТАЯ*сз%ЗЯТОЙ*си%ЗЯТОЙ*сй%ЗЯТУЮ*ск%ЗЯТОЙ*сл%ЗЯТОЮ*сл%ЗЯТОЙ*см%ЗЯТА*сн%ЗЯТОЕ*со%ЗЯТОГО*сп%ЗЯТОМУ*ср%ЗЯТОЕ*сс%ЗЯТЫМ*ст%ЗЯТОМ*су%ЗЯТО*сф%ЗЯТЫЕ*сх%ЗЯТЫХ*сц%ЗЯТЫМ*сч%ЗЯТЫХ*сш%ЗЯТЫЕ*Ло%ЗЯТЫМИ*сщ%ЗЯТЫХ*сы%ЗЯТЫ*сэ
%А*га%Ы*гб%Е*гв%У*гг%ОЙ*гд%ОЮ*гд%Е*ге%Ы*гж%гз%АМ*ги%АМ*ги%Ы*гй%АМИ*гк%АМИ*гк%АХ*гл%АХ*гл
%А*га%А*га%Ы*гб%Ы*гб%Е*гв%Е*гв%У*гг%У*гг%ОЙ*гд%ОЙ*гд%ОЮ*гд%ОЮ*гд%Е*ге%Е*ге%Ы*гж%гз%АМ*ги%АМ*ги%Ы*гй%АМИ*гк%АМИ*гк%АХ*гл%АХ*гл
%НО*еа%НА*еб%НУ*ев%НО*ег%НОМ*ед%НЕ*ее%НА*еж%ОН*ез%НАМ*еи%НА*ей%НАМИ*ек%НАХ*ел
%Я*га%И*гб%Е*гв%Ю*гг%ЁЙ*гд%ЁЮ*гд%Е*ге%И*гж%Й*гз%ЯМ*ги%Й*гй%ЯМИ*гк%ЯХ*гл
%ЫЙ*юа%ОГО*юб%ОМУ*юв%ЫЙ*юг%ОГО*Лт%ЫМ*юд%ОМ*юе%АЯ*юж%ОЙ*юз%ОЙ*юи%УЮ*юй%ОЙ*юк%ОЙ*юл%ОЕ*юм%ОГО*юн%ОМУ*юо%ОЕ*юп%ЫМ*юр%ОМ*юс%ЫЕ*ют%ЫХ*юу%ЫМ*юф%ЫЕ*юх%ЫХ*Лу%ЫМИ*юц%ЫХ*юч
%ОЙ*юа%ОГО*юб%ОМУ*юв%ОЙ*юг%ОГО*Лт%ЫМ*юд%ОМ*юе%АЯ*юж%ОЙ*юз%ОЙ*юи%УЮ*юй%ОЙ*юк%ОЙ*юл%ОЕ*юм%ОГО*юн%ОМУ*юо%ОЕ*юп%ЫМ*юр%ОМ*юс%ЫЕ*ют%ЫХ*юу%ЫМ*юф%ЫЕ*юх%ЫХ*Лу%ЫМИ*юц%ЫХ*юч
%ДИТЬ*ка%ДИЛ*кз%ДИЛА*ки%ДИЛО*кй%ДИЛИ*кк%ЖУ*кп%ДИМ*кр%ДИШЬ*кс%ДИТЕ*кт%ДИТ*ку%ДЯТ*кф%ДИВ*ко%ДИВШИ*ко%ДИМ*нп%ДИМТЕ*нп%ДИ*кл%ДИТЕ*км%ДИВШИЙ*ма%ДИВШЕГО*мб%ДИВШЕМУ*мв%ДИВШЕГО*мг%ДИВШИЙ*Лб%ДИВШИМ*мд%ДИВШЕМ*ме%ДИВШАЯ*мз%ДИВШЕЙ*ми%ДИВШЕЙ*мй%ДИВШУЮ*мк%ДИВШЕЙ*мл%ДИВШЕЮ*мл%ДИВШЕЙ*мм%ДИВШЕЕ*мо%ДИВШЕГО*мп%ДИВШЕМУ*мр%ДИВШЕЕ*мс%ДИВШИМ*мт%ДИВШЕМ*му%ДИВШИЕ*мх%ДИВШИХ*мц%ДИВШИМ*мч%ДИВШИХ*мш%ДИВШИЕ*Лк%ДИВШИМИ*мщ%ДИВШИХ*мы%ЖЕННЫЙ*са%ЖЕННОГО*сб%ЖЕННОМУ*св%ЖЕННОГО*сг%ЖЕННЫЙ*Ле%ЖЕННЫМ*сд%ЖЕННОМ*се%ЖЕН*сж%ЖЕННАЯ*сз%ЖЕННОЙ*си%ЖЕННОЙ*сй%ЖЕННУЮ*ск%ЖЕННОЙ*сл%ЖЕННОЮ*сл%ЖЕННОЙ*см%ЖЕНА*сн%ЖЕННОЕ*со%ЖЕННОГО*сп%ЖЕННОМУ*ср%ЖЕННОЕ*сс%ЖЕННЫМ*ст%ЖЕННОМ*су%ЖЕНО*сф%ЖЕННЫЕ*сх%ЖЕННЫХ*сц%ЖЕННЫМ*сч%ЖЕННЫХ*сш%ЖЕННЫЕ*Ло%ЖЕННЫМИ*сщ%ЖЕННЫХ*сы%ЖЕНЫ*сэ
%щм%ГО*щн%МУ*що%щп%М*щр%М*щс%щт%Х*щу%М*щф%щх%Х*щх%МИ*щц%Х*щч
%Е*еа%Я*еб%Ю*ев%Е*ег%ЕМ*ед%Е*ее%Я*еж%ЕВ*ез%ЯМ*еи%Я*ей%ЯМИ*ек%ЯХ*ел
%ЕЧЬ*ка%ЁК*кз%ЕКЛА*ки%ЕКЛО*кй%ЕКЛИ*кк%ЕКУ*кп%ЕЧЁМ*кр%ЕЧЁШЬ*кс%ЕЧЁТЕ*кт%ЕЧЁТ*ку%ЕКУТ*кф%ЁКШИ*ко%ЕЧЁМ*нп%ЕЧЁМТЕ*нп%ЕКИ*кл%ЕКИТЕ*км%ЁКШИЙ*ма%ЁКШЕГО*мб%ЁКШЕМУ*мв%ЁКШЕГО*мг%ЁКШИЙ*Лб%ЁКШИМ*мд%ЁКШЕМ*ме%ЁКШАЯ*мз%ЁКШЕЙ*ми%ЁКШЕЙ*мй%ЁКШУЮ*мк%ЁКШЕЙ*мл%ЁКШЕЮ*мл%ЁКШЕЙ*мм%ЁКШЕЕ*мо%ЁКШЕГО*мп%ЁКШЕМУ*мр%ЁКШЕЕ*мс%ЁКШИМ*мт%ЁКШЕМ*му%ЁКШИЕ*мх%ЁКШИХ*мц%ЁКШИМ*мч%ЁКШИХ*мш%ЁКШИЕ*Лк%ЁКШИМИ*мщ%ЁКШИХ*мы
%ОЧЬ*ка%ОК*кз%КЛА*ки%КЛО*кй%КЛИ*кк%КУ*кп%ЧЁМ*кр%ЧЁШЬ*кс%ЧЁТЕ*кт%ЧЁТ*ку%КУТ*кф%ОКШИ*ко%ЧЁМ*нп%ЧЁМТЕ*нп%КИ*кл%КИТЕ*км%ОКШИЙ*ма%ОКШЕГО*мб%ОКШЕМУ*мв%ОКШЕГО*мг%ОКШИЙ*Лб%ОКШИМ*мд%ОКШЕМ*ме%ОКШАЯ*мз%ОКШЕЙ*ми%ОКШЕЙ*мй%ОКШУЮ*мк%ОКШЕЙ*мл%ОКШЕЮ*мл%ОКШЕЙ*мм%ОКШЕЕ*мо%ОКШЕГО*мп%ОКШЕМУ*мр%ОКШЕЕ*мс%ОКШИМ*мт%ОКШЕМ*му%ОКШИЕ*мх%ОКШИХ*мц%ОКШИМ*мч%ОКШИХ*мш%ОКШИЕ*Лк%ОКШИМИ*мщ%ОКШИХ*мы%ЧЁННЫЙ*са%ЧЁННОГО*сб%ЧЁННОМУ*св%ЧЁННОГО*сг%ЧЁННЫЙ*Ле%ЧЁННЫМ*сд%ЧЁННОМ*се%ЧЁН*сж%ЧЁННАЯ*сз%ЧЁННОЙ*си%ЧЁННОЙ*сй%ЧЁННУЮ*ск%ЧЁННОЙ*сл%ЧЁННОЮ*сл%ЧЁННОЙ*см%ЧЕНА*сн%ЧЁННОЕ*со%ЧЁННОГО*сп%ЧЁННОМУ*ср%ЧЁННОЕ*сс%ЧЁННЫМ*ст%ЧЁННОМ*су%ЧЕНО*сф%ЧЁННЫЕ*сх%ЧЁННЫХ*сц%ЧЁННЫМ*сч%ЧЁННЫХ*сш%ЧЁННЫЕ*Ло%ЧЁННЫМИ*сщ%ЧЁННЫХ*сы%ЧЕНЫ*сэ
%АЯ*га%ЕЙ*гб%ЕЙ*гв%УЮ*гг%ЕЙ*гд%ЕЮ*гд%ЕЙ*ге%ИЕ*гж%ИХ*гз%ИМ*ги%ИЕ*гй%ИМИ*гк%ИХ*гл
%СТЬ*ка%Л*кз%ЛА*ки%ЛО*кй%ЛИ*кк%М*кп%ДИМ*кр%ШЬ*кс%ДИТЕ*кт%СТ*ку%ДЯТ*кф%В*ко%ВШИ*ко%ДИМ*нп%ДИМТЕ*нп%ШЬ*кл%ШЬТЕ*км%ВШИЙ*ма%ВШЕГО*мб%ВШЕМУ*мв%ВШЕГО*мг%ВШИЙ*Лб%ВШИМ*мд%ВШЕМ*ме%ВШАЯ*мз%ВШЕЙ*ми%ВШЕЙ*мй%ВШУЮ*мк%ВШЕЙ*мл%ВШЕЮ*мл%ВШЕЙ*мм%ВШЕЕ*мо%ВШЕГО*мп%ВШЕМУ*мр%ВШЕЕ*мс%ВШИМ*мт%ВШЕМ*му%ВШИЕ*мх%ВШИХ*мц%ВШИМ*мч%ВШИХ*мш%ВШИЕ*Лк%ВШИМИ*мщ%ВШИХ*мы%ДЕННЫЙ*са%ДЕННОГО*сб%ДЕННОМУ*св%ДЕННОГО*сг%ДЕННЫЙ*Ле%ДЕННЫМ*сд%ДЕННОМ*се%ДЕН*сж%ДЕННАЯ*сз%ДЕННОЙ*си%ДЕННОЙ*сй%ДЕННУЮ*ск%ДЕННОЙ*сл%ДЕННОЮ*сл%ДЕННОЙ*см%ДЕНА*сн%ДЕННОЕ*со%ДЕННОГО*сп%ДЕННОМУ*ср%ДЕННОЕ*сс%ДЕННЫМ*ст%ДЕННОМ*су%ДЕНО*сф%ДЕННЫЕ*сх%ДЕННЫХ*сц%ДЕННЫМ*сч%ДЕННЫХ*сш%ДЕННЫЕ*Ло%ДЕННЫМИ*сщ%ДЕННЫХ*сы%ДЕНЫ*сэ
%ЕТЬ*ка%ЕЛ*кз%ЕЛА*ки%ЕЛО*кй%ЕЛИ*кк%Ю*кп%ИМ*кр%ИШЬ*кс%ИТЕ*кт%ИТ*ку%ЯТ*кф%ЕВ*ко%ЕВШИ*ко%ИМ*нп%ИМТЕ*нп%И*кл%ИТЕ*км%ЕВШИЙ*ма%ЕВШЕГО*мб%ЕВШЕМУ*мв%ЕВШЕГО*мг%ЕВШИЙ*Лб%ЕВШИМ*мд%ЕВШЕМ*ме%ЕВШАЯ*мз%ЕВШЕЙ*ми%ЕВШЕЙ*мй%ЕВШУЮ*мк%ЕВШЕЙ*мл%ЕВШЕЮ*мл%ЕВШЕЙ*мм%ЕВШЕЕ*мо%ЕВШЕГО*мп%ЕВШЕМУ*мр%ЕВШЕЕ*мс%ЕВШИМ*мт%ЕВШЕМ*му%ЕВШИЕ*мх%ЕВШИХ*мц%ЕВШИМ*мч%ЕВШИХ*мш%ЕВШИЕ*Лк%ЕВШИМИ*мщ%ЕВШИХ*мы%ЕННЫЙ*са%ЕННОГО*сб%ЕННОМУ*св%ЕННОГО*сг%ЕННЫЙ*Ле%ЕННЫМ*сд%ЕННОМ*се%ЕН*сж%ЕННАЯ*сз%ЕННОЙ*си%ЕННОЙ*сй%ЕННУЮ*ск%ЕННОЙ*сл%ЕННОЮ*сл%ЕННОЙ*см%ЕНА*сн%ЕННОЕ*со%ЕННОГО*сп%ЕННОМУ*ср%ЕННОЕ*сс%ЕННЫМ*ст%ЕННОМ*су%ЕНО*сф%ЕННЫЕ*сх%ЕННЫХ*сц%ЕННЫМ*сч%ЕННЫХ*сш%ЕННЫЕ*Ло%ЕННЫМИ*сщ%ЕННЫХ*сы%ЕНЫ*сэ
%СТИ*ка%Л*кз%ЛА*ки%ЛО*кй%ЛИ*кк%ТУ*кп%ТЕМ*кр%ТЕШЬ*кс%ТЕТЕ*кт%ТЕТ*ку%ТУТ*кф%ТШИ*ко%ТЕМ*нп%ТЕМТЕ*нп%ТИ*кл%ТИТЕ*км%ТШИЙ*ма%ТШЕГО*мб%ТШЕМУ*мв%ТШЕГО*мг%ТШИЙ*Лб%ТШИМ*мд%ТШЕМ*ме%ТШАЯ*мз%ТШЕЙ*ми%ТШЕЙ*мй%ТШУЮ*мк%ТШЕЙ*мл%ТШЕЮ*мл%ТШЕЙ*мм%ТШЕЕ*мо%ТШЕГО*мп%ТШЕМУ*мр%ТШЕЕ*мс%ТШИМ*мт%ТШЕМ*му%ТШИЕ*мх%ТШИХ*мц%ТШИМ*мч%ТШИХ*мш%ТШИЕ*Лк%ТШИМИ*мщ%ТШИХ*мы
%аа%аа%А*аб%А*аб%У*ав%У*ав%аг%аг%ОМ*ад%ОМ*ад%Е*ае%Е*ае%Ы*аж%ОВ*аз%ОВ*аз%АМ*аи%АМ*аи%Ы*ай%АМИ*ак%АМИ*ак%АХ*ал%АХ*ал
%И*иж%ЕВ*из%ЯМ*ии%И*ий%ЯМИ*ик%ЯХ*ил
%НУТЬ*ка%НУ*кб%НЕМ*кв%НЕШЬ*кг%НЕТЕ*кд%НЕТ*ке%НУТ*кж%кз%НУЛ*кз%ЛА*ки%НУЛА*ки%ЛО*кй%НУЛО*кй%ЛИ*кк%НУЛИ*кк%НУВ*ко%НУВШИ*ко%НИ*кл%НИТЕ*км%НУЩИЙ*ла%НУЩЕГО*лб%НУЩЕМУ*лв%НУЩЕГО*лг%НУЩИЙ*Ла%НУЩИМ*лд%НУЩЕМ*ле%НУЩАЯ*лз%НУЩЕЙ*ли%НУЩЕЙ*лй%НУЩУЮ*лк%НУЩЕЙ*лл%НУЩЕЮ*лл%НУЩЕЙ*лм%НУЩЕЕ*ло%НУЩЕГО*лп%НУЩЕМУ*лр%НУЩЕЕ*лс%НУЩИМ*лт%НУЩЕМ*лу%НУЩИЕ*лх%НУЩИХ*лц%НУЩИМ*лч%НУЩИХ*лш%НУЩИЕ*Лй%НУЩИМИ*лщ%НУЩИХ*лы%НУВШИЙ*ма%ШИЙ*ма%НУВШЕГО*мб%ШЕГО*мб%НУВШЕМУ*мв%ШЕМУ*мв%НУВШЕГО*мг%ШЕГО*мг%НУВШИЙ*Лб%ШИЙ*Лб%НУВШИМ*мд%ШИМ*мд%НУВШЕМ*ме%ШЕМ*ме%НУВШАЯ*мз%ШАЯ*мз%НУВШЕЙ*ми%ШЕЙ*ми%НУВШЕЙ*мй%ШЕЙ*мй%НУВШУЮ*мк%ШУЮ*мк%НУВШЕЙ*мл%НУВШЕЮ*мл%ШЕЙ*мл%ШЕЮ*мл%НУВШЕЙ*мм%ШЕЙ*мм%НУВШЕЕ*мо%ШЕЕ*мо%НУВШЕГО*мп%ШЕГО*мп%НУВШЕМУ*мр%ШЕМУ*мр%НУВШЕЕ*мс%ШЕЕ*мс%НУВШИМ*мт%ШИМ*мт%НУВШЕМ*му%ШЕМ*му%НУВШИЕ*мх%ШИЕ*мх%НУВШИХ*мц%ШИХ*мц%НУВШИМ*мч%ШИМ*мч%НУВШИХ*мш%ШИХ*мш%НУВШИЕ*Лк%ШИЕ*Лк%НУВШИМИ*мщ%ШИМИ*мщ%НУВШИХ*мы%ШИХ*мы
%АЯ*га%ОЙ*гб%ОЙ*гв%УЮ*гг%ОЙ*гд%ОЮ*гд%ОЙ*ге%ИЕ*гж%ИХ*гз%ИМ*ги%ИХ*гй%ИМИ*гк%ИХ*гл
%ач
%НА*га%НЫ*гб%НЕ*гв%НУ*гг%НОЙ*гд%НОЮ*гд%НЕ*ге%НЫ*гж%ЕН*гз%НАМ*ги%НЫ*гй%НАМИ*гк%НАХ*гл
%ЦА*га%ЦЫ*гб%ЦЕ*гв%ЦУ*гг%ЦЕЙ*гд%ЦЕЮ*гд%ЦЕ*ге%ЦЫ*гж%ЕЦ*гз%ЦАМ*ги%ЦЫ*гй%ЦАМИ*гк%ЦАХ*гл
%О*еа%А*еб%У*ев%О*ег%ОМ*ед%Е*ее%А*еж%ЬЯ*еж%ез%ЬЕВ*ез%АМ*еи%ЬЯМ*еи%А*ей%ЬЯ*ей%АМИ*ек%ЬЯМИ*ек%АХ*ел%ЬЯХ*ел
%ЕСТИ*ка%ЁБ*кз%ЕБЛА*ки%ЕБЛО*кй%ЕБЛИ*кк%ЕБУ*кп%ЕБЁМ*кр%ЕБЁШЬ*кс%ЕБЁТЕ*кт%ЕБЁТ*ку%ЕБУТ*кф%ЕБЯ*ко%ЕБЁМ*нп%ЕБЁМТЕ*нп%ЕБИ*кл%ЕБИТЕ*км%ЁБШИЙ*ма%ЁБШЕГО*мб%ЁБШЕМУ*мв%ЁБШЕГО*мг%ЁБШИЙ*Лб%ЁБШИМ*мд%ЁБШЕМ*ме%ЁБШАЯ*мз%ЁБШЕЙ*ми%ЁБШЕЙ*мй%ЁБШУЮ*мк%ЁБШЕЙ*мл%ЁБШЕЮ*мл%ЁБШЕЙ*мм%ЁБШЕЕ*мо%ЁБШЕГО*мп%ЁБШЕМУ*мр%ЁБШЕЕ*мс%ЁБШИМ*мт%ЁБШЕМ*му%ЁБШИЕ*мх%ЁБШИХ*мц%ЁБШИМ*мч%ЁБШИХ*мш%ЁБШИЕ*Лк%ЁБШИМИ*мщ%ЁБШИХ*мы%ЕБЁННЫЙ*са%ЕБЁННОГО*сб%ЕБЁННОМУ*св%ЕБЁННОГО*сг%ЕБЁННЫЙ*Ле%ЕБЁННЫМ*сд%ЕБЁННОМ*се%ЕБЁН*сж%ЕБЁННАЯ*сз%ЕБЁННОЙ*си%ЕБЁННОЙ*сй%ЕБЁННУЮ*ск%ЕБЁННОЙ*сл%ЕБЁННОЮ*сл%ЕБЁННОЙ*см%ЕБЕНА*сн%ЕБЁННОЕ*со%ЕБЁННОГО*сп%ЕБЁННОМУ*ср%ЕБЁННОЕ*сс%ЕБЁННЫМ*ст%ЕБЁННОМ*су%ЕБЕНО*сф%ЕБЁННЫЕ*сх%ЕБЁННЫХ*сц%ЕБЁННЫМ*сч%ЕБЁННЫХ*сш%ЕБЁННЫЕ*Ло%ЕБЁННЫМИ*сщ%ЕБЁННЫХ*сы%ЕБЕНЫ*сэ
%ЕРЕТЬ*ка%ЁР*кз%ЁРЛА*ки%ЁРЛО*кй%ЁРЛИ*кк%РУ*кп%РЁМ*кр%РЁШЬ*кс%РЁТЕ*кт%РЁТ*ку%РУТ*кф%ЁРШИ*ко%ЕРЕВ*ко%РЁМ*нп%РЁМТЕ*нп%РИ*кл%РИТЕ*км%ЁРШИЙ*ма%ЁРШЕГО*мб%ЁРШЕМУ*мв%ЁРШЕГО*мг%ЁРШИЙ*Лб%ЁРШИМ*мд%ЁРШЕМ*ме%ЁРШАЯ*мз%ЁРШЕЙ*ми%ЁРШЕЙ*мй%ЁРШУЮ*мк%ЁРШЕЙ*мл%ЁРШЕЮ*мл%ЁРШЕЙ*мм%ЁРШЕЕ*мо%ЁРШЕГО*мп%ЁРШЕМУ*мр%ЁРШЕЕ*мс%ЁРШИМ*мт%ЁРШЕМ*му%ЁРШИЕ*мх%ЁРШИХ*мц%ЁРШИМ*мч%ЁРШИХ*мш%ЁРШИЕ*Лк%ЁРШИМИ*мщ%ЁРШИХ*мы%ЁРТЫЙ*са%ЁРТОГО*сб%ЁРТОМУ*св%ЁРТОГО*сг%ЁРТЫЙ*Ле%ЁРТЫМ*сд%ЁРТОМ*се%ЁРТ*сж%ЁРТАЯ*сз%ЁРТОЙ*си%ЁРТОЙ*сй%ЁРТУЮ*ск%ЁРТОЙ*сл%ЁРТОЮ*сл%ЁРТОЙ*см%ЁРТА*сн%ЁРТОЕ*со%ЁРТОГО*сп%ЁРТОМУ*ср%ЁРТОЕ*сс%ЁРТЫМ*ст%ЁРТОМ*су%ЁРТО*сф%ЁРТЫЕ*сх%ЁРТЫХ*сц%ЁРТЫМ*сч%ЁРТЫХ*сш%ЁРТЫЕ*Ло%ЁРТЫМИ*сщ%ЁРТЫХ*сы%ЁРТЫ*сэ
%ИТЬ*ка%ИЛ*кз%ИЛА*ки%ИЛО*кй%ИЛИ*кк%Ю*кп%ИМ*кр%ИШЬ*кс%ИТЕ*кт%ИТ*ку%ЯТ*кф%ИВ*ко%ИВШИ*ко%ИМ*нп%ИМТЕ*нп%Ь*кл%ЬТЕ*км%ИВШИЙ*ма%ИВШЕГО*мб%ИВШЕМУ*мв%ИВШЕГО*мг%ИВШИЙ*Лб%ИВШИМ*мд%ИВШЕМ*ме%ИВШАЯ*мз%ИВШЕЙ*ми%ИВШЕЙ*мй%ИВШУЮ*мк%ИВШЕЙ*мл%ИВШЕЮ*мл%ИВШЕЙ*мм%ИВШЕЕ*мо%ИВШЕГО*мп%ИВШЕМУ*мр%ИВШЕЕ*мс%ИВШИМ*мт%ИВШЕМ*му%ИВШИЕ*мх%ИВШИХ*мц%ИВШИМ*мч%ИВШИХ*мш%ИВШИЕ*Лк%ИВШИМИ*мщ%ИВШИХ*мы
%ЕЧЬ*ка%ГУ*кб%ЖЁМ*кв%ЖЁШЬ*кг%ЖЁТЕ*кд%ЖЁТ*ке%ГУТ*кж%ЁГ*кз%ГЛА*ки%ГЛО*кй%ГЛИ*кк%ЁГШИ*ко%ГИ*кл%ГИТЕ*км%ГУЩИЙ*ла%ГУЩЕГО*лб%ГУЩЕМУ*лв%ГУЩЕГО*лг%ГУЩИЙ*Ла%ГУЩИМ*лд%ГУЩЕМ*ле%ГУЩАЯ*лз%ГУЩЕЙ*ли%ГУЩЕЙ*лй%ГУЩУЮ*лк%ГУЩЕЙ*лл%ГУЩЕЮ*лл%ГУЩЕЙ*лм%ГУЩЕЕ*ло%ГУЩЕГО*лп%ГУЩЕМУ*лр%ГУЩЕЕ*лс%ГУЩИМ*лт%ГУЩЕМ*лу%ГУЩИЕ*лх%ГУЩИХ*лц%ГУЩИМ*лч%ГУЩИХ*лш%ГУЩИЕ*Лй%ГУЩИМИ*лщ%ГУЩИХ*лы%ЁГШИЙ*ма%ЁГШЕГО*мб%ЁГШЕМУ*мв%ЁГШЕГО*мг%ЁГШИЙ*Лб%ЁГШИМ*мд%ЁГШЕМ*ме%ЁГШАЯ*мз%ЁГШЕЙ*ми%ЁГШЕЙ*мй%ЁГШУЮ*мк%ЁГШЕЙ*мл%ЁГШЕЮ*мл%ЁГШЕЙ*мм%ЁГШЕЕ*мо%ЁГШЕГО*мп%ЁГШЕМУ*мр%ЁГШЕЕ*мс%ЁГШИМ*мт%ЁГШЕМ*му%ЁГШИЕ*мх%ЁГШИХ*мц%ЁГШИМ*мч%ЁГШИХ*мш%ЁГШИЕ*Лк%ЁГШИМИ*мщ%ЁГШИХ*мы%ЖЁННЫЙ*са%ЖЁННОГО*сб%ЖЁННОМУ*св%ЖЁННОГО*сг%ЖЁННЫЙ*Ле%ЖЁННЫМ*сд%ЖЁННОМ*се%ЖЁН*сж%ЖЁННАЯ*сз%ЖЁННОЙ*си%ЖЁННОЙ*сй%ЖЁННУЮ*ск%ЖЁННОЙ*сл%ЖЁННОЮ*сл%ЖЁННОЙ*см%ЖЕНА*сн%ЖЁННОЕ*со%ЖЁННОГО*сп%ЖЁННОМУ*ср%ЖЁННОЕ*сс%ЖЁННЫМ*ст%ЖЁННОМ*су%ЖЕНО*сф%ЖЁННЫЕ*сх%ЖЁННЫХ*сц%ЖЁННЫМ*сч%ЖЁННЫХ*сш%ЖЁННЫЕ*Ло%ЖЁННЫМИ*сщ%ЖЁННЫХ*сы%ЖЕНЫ*сэ
%ХАТЬ*ка%ХАЛ*кз%ХАЛА*ки%ХАЛО*кй%ХАЛИ*кк%ХАЮ*кп%ШУ*кп%ХАЕМ*кр%ШЕМ*кр%ХАЕШЬ*кс%ШЕШЬ*кс%ХАЕТЕ*кт%ШЕТЕ*кт%ХАЕТ*ку%ШЕТ*ку%ХАЮТ*кф%ШУТ*кф%ХАВ*ко%ХАВШИ*ко%ХАЕМ*нп%ХАЕМТЕ*нп%ХАЙ*кл%ШИ*кл%ХАЙТЕ*км%ШИТЕ*км%ХАВШИЙ*ма%ХАВШЕГО*мб%ХАВШЕМУ*мв%ХАВШЕГО*мг%ХАВШИЙ*Лб%ХАВШИМ*мд%ХАВШЕМ*ме%ХАВШАЯ*мз%ХАВШЕЙ*ми%ХАВШЕЙ*мй%ХАВШУЮ*мк%ХАВШЕЙ*мл%ХАВШЕЮ*мл%ХАВШЕЙ*мм%ХАВШЕЕ*мо%ХАВШЕГО*мп%ХАВШЕМУ*мр%ХАВШЕЕ*мс%ХАВШИМ*мт%ХАВШЕМ*му%ХАВШИЕ*мх%ХАВШИХ*мц%ХАВШИМ*мч%ХАВШИХ*мш%ХАВШИЕ*Лк%ХАВШИМИ*мщ%ХАВШИХ*мы
%ОК*аа%ОК*аа%КА*аб%КА*аб%КУ*ав%КУ*ав%ОК*аг%ОК*аг%КОМ*ад%КОМ*ад%КЕ*ае%КЕ*ае%КИ*аж%КИ*аж%КОВ*аз%КОВ*аз%КАМ*аи%КАМ*аи%КИ*ай%КИ*ай%КАМИ*ак%КАМИ*ак%КАХ*ал%КАХ*ал
%ЕРЕТЬ*ка%ЕР*кз%ЕРЛА*ки%ЕРЛО*кй%ЕРЛИ*кк%РУ*кп%РЁМ*кр%РЁШЬ*кс%РЁТЕ*кт%РЁТ*ку%РУТ*кф%ЕРЕВ*ко%ЕРШИ*ко%РЁМ*нп%РЁМТЕ*нп%РИ*кл%РИТЕ*км%ЕРШИЙ*ма%ЕРШЕГО*мб%ЕРШЕМУ*мв%ЕРШЕГО*мг%ЕРШИЙ*Лб%ЕРШИМ*мд%ЕРШЕМ*ме%ЕРШАЯ*мз%ЕРШЕЙ*ми%ЕРШЕЙ*мй%ЕРШУЮ*мк%ЕРШЕЙ*мл%ЕРШЕЮ*мл%ЕРШЕЙ*мм%ЕРШЕЕ*мо%ЕРШЕГО*мп%ЕРШЕМУ*мр%ЕРШЕЕ*мс%ЕРШИМ*мт%ЕРШЕМ*му%ЕРШИЕ*мх%ЕРШИХ*мц%ЕРШИМ*мч%ЕРШИХ*мш%ЕРШИЕ*Лк%ЕРШИМИ*мщ%ЕРШИХ*мы%ЕРТЫЙ*са%ЕРТОГО*сб%ЕРТОМУ*св%ЕРТОГО*сг%ЕРТЫЙ*Ле%ЕРТЫМ*сд%ЕРТОМ*се%ЕРТ*сж%ЕРТАЯ*сз%ЕРТОЙ*си%ЕРТОЙ*сй%ЕРТУЮ*ск%ЕРТОЙ*сл%ЕРТОЮ*сл%ЕРТОЙ*см%ЕРТА*сн%ЕРТОЕ*со%ЕРТОГО*сп%ЕРТОМУ*ср%ЕРТОЕ*сс%ЕРТЫМ*ст%ЕРТОМ*су%ЕРТО*сф%ЕРТЫЕ*сх%ЕРТЫХ*сц%ЕРТЫМ*сч%ЕРТЫХ*сш%ЕРТЫЕ*Ло%ЕРТЫМИ*сщ%ЕРТЫХ*сы%ЕРТЫ*сэ
%ЛЯ*га%ЛИ*гб%ЛЕ*гв%ЛЮ*гг%ЛЁЙ*гд%ЛЁЮ*гд%ЛЕ*ге%ЛИ*гж%ЕЛЬ*гз%ЛЯМ*ги%ЛИ*гй%ЛЯМИ*гк%ЛЯХ*гл
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%Ы*аж%ЬЯ*аж%ОВ*аз%ОВ*аз%ЬЕВ*аз%АМ*аи%АМ*аи%ЬЯМ*аи%Ы*ай%ЬЯ*ай%АМИ*ак%АМИ*ак%ЬЯМИ*ак%АХ*ал%АХ*ал%ЬЯХ*ал
%ЕЦ*аа%ЬЦА*аб%ЬЦУ*ав%ЕЦ*аг%ЬЦЕМ*ад%ЬЦЕ*ае%ЬЦЫ*аж%ЬЦЕВ*аз%ЬЦАМ*аи%ЬЦЫ*ай%ЬЦАМИ*ак%ЬЦАХ*ал
%КЛАСТЬ*ка%КЛАДУ*кб%КЛАДЁМ*кв%КЛАДЁШЬ*кг%КЛАДЁТЕ*кд%КЛАДЁТ*ке%КЛАДУТ*кж%КЛАЛ*кз%КЛАЛА*ки%КЛАЛО*кй%КЛАЛИ*кк%ЛОЖУ*Ръ%ЛОЖИМ*Ры%ЛОЖИШЬ*Рэ%ЛОЖИТЕ*Рю%ЛОЖИТ*Ря%ЛОЖАТ*кю%ЛОЖУТ*кю%КЛАДЯ*кн%КЛАВШИ*ко%КЛАДИ*кл%КЛАДИТЕ*км%КЛАДУЩИЙ*ла%КЛАДУЩЕГО*лб%КЛАДУЩЕМУ*лв%КЛАДУЩЕГО*лг%КЛАДУЩИЙ*Ла%КЛАДУЩИМ*лд%КЛАДУЩЕМ*ле%КЛАДУЩАЯ*лз%КЛАДУЩЕЙ*ли%КЛАДУЩЕЙ*лй%КЛАДУЩУЮ*лк%КЛАДУЩЕЙ*лл%КЛАДУЩЕЮ*лл%КЛАДУЩЕЙ*лм%КЛАДУЩЕЕ*ло%КЛАДУЩЕГО*лп%КЛАДУЩЕМУ*лр%КЛАДУЩЕЕ*лс%КЛАДУЩИМ*лт%КЛАДУЩЕМ*лу%КЛАДУЩИЕ*лх%КЛАДУЩИХ*лц%КЛАДУЩИМ*лч%КЛАДУЩИХ*лш%КЛАДУЩИЕ*Лй%КЛАДУЩИМИ*лщ%КЛАДУЩИХ*лы%КЛАВШИЙ*ма%КЛАВШЕГО*мб%КЛАВШЕМУ*мв%КЛАВШЕГО*мг%КЛАВШИЙ*Лб%КЛАВШИМ*мд%КЛАВШЕМ*ме%КЛАВШАЯ*мз%КЛАВШЕЙ*ми%КЛАВШЕЙ*мй%КЛАВШУЮ*мк%КЛАВШЕЙ*мл%КЛАВШЕЮ*мл%КЛАВШЕЙ*мм%КЛАВШЕЕ*мо%КЛАВШЕГО*мп%КЛАВШЕМУ*мр%КЛАВШЕЕ*мс%КЛАВШИМ*мт%КЛАВШЕМ*му%КЛАВШИЕ*мх%КЛАВШИХ*мц%КЛАВШИМ*мч%КЛАВШИХ*мш%КЛАВШИЕ*Лк%КЛАВШИМИ*мщ%КЛАВШИХ*мы
%ОТЬ*аа%ТЯ*аб%ТЮ*ав%ОТЬ*аг%ТЕМ*ад%ТЕ*ае%ТИ*аж%ТЕЙ*аз%ТЯМ*аи%ТИ*ай%ТЯМИ*ак%ТЯХ*ал
%ЬЦО*еа%ЬЦА*еб%ЬЦУ*ев%ЬЦО*ег%ЬЦОМ*ед%ЬЦЕ*ее%ЬЦА*еж%ЕЦ*ез%ЬЦАМ*еи%ЬЦА*ей%ЬЦАМИ*ек%ЬЦАХ*ел
%СТИТЬ*ка%ЩУ*кб%СТИМ*кв%СТИШЬ*кг%СТИТЕ*кд%СТИТ*ке%СТЯТ*кж%СТИЛ*кз%СТИЛА*ки%СТИЛО*кй%СТИЛИ*кк%СТЯ*кн%СТИВ*ко%СТИВШИ*ко%СТИ*кл%СТИТЕ*км%СТЯЩИЙ*ла%СТЯЩЕГО*лб%СТЯЩЕМУ*лв%СТЯЩЕГО*лг%СТЯЩИЙ*Ла%СТЯЩИМ*лд%СТЯЩЕМ*ле%СТЯЩАЯ*лз%СТЯЩЕЙ*ли%СТЯЩЕЙ*лй%СТЯЩУЮ*лк%СТЯЩЕЙ*лл%СТЯЩЕЮ*лл%СТЯЩЕЙ*лм%СТЯЩЕЕ*ло%СТЯЩЕГО*лп%СТЯЩЕМУ*лр%СТЯЩЕЕ*лс%СТЯЩИМ*лт%СТЯЩЕМ*лу%СТЯЩИЕ*лх%СТЯЩИХ*лц%СТЯЩИМ*лч%СТЯЩИХ*лш%СТЯЩИЕ*Лй%СТЯЩИМИ*лщ%СТЯЩИХ*лы%СТИВШИЙ*ма%СТИВШЕГО*мб%СТИВШЕМУ*мв%СТИВШЕГО*мг%СТИВШИЙ*Лб%СТИВШИМ*мд%СТИВШЕМ*ме%СТИВШАЯ*мз%СТИВШЕЙ*ми%СТИВШЕЙ*мй%СТИВШУЮ*мк%СТИВШЕЙ*мл%СТИВШЕЮ*мл%СТИВШЕЙ*мм%СТИВШЕЕ*мо%СТИВШЕГО*мп%СТИВШЕМУ*мр%СТИВШЕЕ*мс%СТИВШИМ*мт%СТИВШЕМ*му%СТИВШИЕ*мх%СТИВШИХ*мц%СТИВШИМ*мч%СТИВШИХ*мш%СТИВШИЕ*Лк%СТИВШИМИ*мщ%СТИВШИХ*мы%СТИМЫЙ*па%СТИМОГО*пб%СТИМОМУ*пв%СТИМОГО*пг%СТИМЫЙ*Лг%СТИМЫМ*пд%СТИМОМ*пе%СТИМ*пж%СТИМАЯ*пз%СТИМОЙ*пи%СТИМОЙ*пй%СТИМУЮ*пк%СТИМОЙ*пл%СТИМОЮ*пл%СТИМОЙ*пм%СТИМА*пн%СТИМОЕ*по%СТИМОГО*пп%СТИМОМУ*пр%СТИМОЕ*пс%СТИМЫМ*пт%СТИМОМ*пу%СТИМО*пф%СТИМЫЕ*пх%СТИМЫХ*пц%СТИМЫМ*пч%СТИМЫХ*пш%СТИМЫЕ*Лм%СТИМЫМИ*пщ%СТИМЫХ*пы%СТИМЫ*пэ
%Ь*га%И*гб%И*гв%Ь*гг%ЬЮ*гд%И*ге%И*гж%ЕЙ*гз%ЯМ*ги%И*гй%ЬМИ*гк%ЯМИ*гк%ЯХ*гл
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%Ы*аж%ЬЯ*аж%ОВ*аз%ЬЕВ*аз%АМ*аи%ЬЯМ*аи%Ы*ай%ЬЯ*ай%АМИ*ак%ЬЯМИ*ак%АХ*ал%ЬЯХ*ал
%Й*ыа%ЕГО*ыб%ЕМУ*ыв%Й*ыг%ЕГО*Лф%ИМ*ыд%ЁМ*ые%Я*ыж%ЕЙ*ыз%ЕЙ*ыи%Ю*ый%ЕЙ*ык%ЕЙ*ыл%Ё*ым%ЕГО*ын%ЕМУ*ыо%Ё*ып%ИМ*ыр%ЁМ*ыс%И*ыт%ИХ*ыу%ИМ*ыф%И*ых%ИХ*Лх%ИМИ*ыц%ИХ*ыч
%ЧЬ*ка%ГУ*кб%ЖЕМ*кв%ЖЕШЬ*кг%ЖЕТЕ*кд%ЖЕТ*ке%ГУТ*кж%Г*кз%ГЛА*ки%ГЛО*кй%ГЛИ*кк%ГШИ*ко%ГИ*кл%ГИТЕ*км%ГУЩИЙ*ла%ГУЩЕГО*лб%ГУЩЕМУ*лв%ГУЩЕГО*лг%ГУЩИЙ*Ла%ГУЩИМ*лд%ГУЩЕМ*ле%ГУЩАЯ*лз%ГУЩЕЙ*ли%ГУЩЕЙ*лй%ГУЩУЮ*лк%ГУЩЕЙ*лл%ГУЩЕЮ*лл%ГУЩЕЙ*лм%ГУЩЕЕ*ло%ГУЩЕГО*лп%ГУЩЕМУ*лр%ГУЩЕЕ*лс%ГУЩИМ*лт%ГУЩЕМ*лу%ГУЩИЕ*лх%ГУЩИХ*лц%ГУЩИМ*лч%ГУЩИХ*лш%ГУЩИЕ*Лй%ГУЩИМИ*лщ%ГУЩИХ*лы%ГШИЙ*ма%ГШЕГО*мб%ГШЕМУ*мв%ГШЕГО*мг%ГШИЙ*Лб%ГШИМ*мд%ГШЕМ*ме%ГШАЯ*мз%ГШЕЙ*ми%ГШЕЙ*мй%ГШУЮ*мк%ГШЕЙ*мл%ГШЕЮ*мл%ГШЕЙ*мм%ГШЕЕ*мо%ГШЕГО*мп%ГШЕМУ*мр%ГШЕЕ*мс%ГШИМ*мт%ГШЕМ*му%ГШИЕ*мх%ГШИХ*мц%ГШИМ*мч%ГШИХ*мш%ГШИЕ*Лк%ГШИМИ*мщ%ГШИХ*мы
%ЙТИ*ка%ШЁЛ*кз%ШЛА*ки%ШЛО*кй%ШЛИ*кк%ЙДУ*кп%ЙДЁМ*кр%ЙДЁШЬ*кс%ЙДЁТЕ*кт%ЙДЁТ*ку%ЙДУТ*кф%ЙДЯ*ко%ШЕДШИ*ко%ЙДЁМ*нп%ЙДЁМТЕ*нп%ЙДИ*кл%ЙДИТЕ*км%ШЕДШИЙ*ма%ШЕДШЕГО*мб%ШЕДШЕМУ*мв%ШЕДШЕГО*мг%ШЕДШИЙ*Лб%ШЕДШИМ*мд%ШЕДШЕМ*ме%ШЕДШАЯ*мз%ШЕДШЕЙ*ми%ШЕДШЕЙ*мй%ШЕДШУЮ*мк%ШЕДШЕЙ*мл%ШЕДШЕЮ*мл%ШЕДШЕЙ*мм%ШЕДШЕЕ*мо%ШЕДШЕГО*мп%ШЕДШЕМУ*мр%ШЕДШЕЕ*мс%ШЕДШИМ*мт%ШЕДШЕМ*му%ШЕДШИЕ*мх%ШЕДШИХ*мц%ШЕДШИМ*мч%ШЕДШИХ*мш%ШЕДШИЕ*Лк%ШЕДШИМИ*мщ%ШЕДШИХ*мы%ЙДЕННЫЙ*са%ЙДЕННОГО*сб%ЙДЕННОМУ*св%ЙДЕННОГО*сг%ЙДЕННЫЙ*Ле%ЙДЕННЫМ*сд%ЙДЕННОМ*се%ЙДЕН*сж%ЙДЕННАЯ*сз%ЙДЕННОЙ*си%ЙДЕННОЙ*сй%ЙДЕННУЮ*ск%ЙДЕННОЙ*сл%ЙДЕННОЮ*сл%ЙДЕННОЙ*см%ЙДЕНА*сн%ЙДЕННОЕ*со%ЙДЕННОГО*сп%ЙДЕННОМУ*ср%ЙДЕННОЕ*сс%ЙДЕННЫМ*ст%ЙДЕННОМ*су%ЙДЕНО*сф%ЙДЕННЫЕ*сх%ЙДЕННЫХ*сц%ЙДЕННЫМ*сч%ЙДЕННЫХ*сш%ЙДЕННЫЕ*Ло%ЙДЕННЫМИ*сщ%ЙДЕННЫХ*сы%ЙДЕНЫ*сэ
%ат
%О*еа%А*еб%У*ев%О*ег%ОМ*ед%Е*ее%ЕСА*еж%ЕС*ез%ЕСАМ*еи%ЕСА*ей%ЕСАМИ*ек%ЕСАХ*ел
%БОЛЬШОЙ*йа%БОЛЬШОГО*йб%БОЛЬШОМУ*йв%БОЛЬШОГО*йг%БОЛЬШОЙ*Рщ%БОЛЬШИМ*йд%БОЛЬШОМ*йе%БОЛЬШАЯ*йж%БОЛЬШОЙ*йз%БОЛЬШОЙ*йи%БОЛЬШУЮ*йй%БОЛЬШОЙ*йк%БОЛЬШОЮ*йк%БОЛЬШОЙ*йл%БОЛЬШОЕ*йм%БОЛЬШОГО*йн%БОЛЬШОМУ*йо%БОЛЬШОЕ*йп%БОЛЬШИМ*йр%БОЛЬШОМ*йс%БОЛЬШИЕ*йт%БОЛЬШИХ*йу%БОЛЬШИМ*йф%БОЛЬШИХ*йх%БОЛЬШИЕ*Рь%БОЛЬШИМИ*йц%БОЛЬШИХ*йч%ВЕЛИК*йш%ВЕЛИКА*йщ%ВЕЛИКО*йы%ВЕЛИКИ*йэ
%щм%щп
%ТО*щм%ЕГО*щн%ЕМУ*що%ЕМ*щр
%О*еа%А*еб%У*ев%О*ег%ОМ*ед%Е*ее%А*еж%ОВ*ез%АМ*еи%А*ей%АМИ*ек%АХ*ел
%ОН*ша%ЕГО*шб%НЕГО*шб%ЕМУ*шв%НЕМУ*шв%ЕГО*шг%НЕГО*шг%ИМ*шд%НИМ*шд%НЁМ*ше
%ОНА*шж%ЕЁ*шз%НЕЁ*шз%НЕЙ*шз%ЕЙ*ши%НЕЙ*ши%ЕЁ*шй%НЕЁ*шй%ЕЙ*шк%ЕЮ*шк%НЕЙ*шк%НЕЮ*шк%НЕЙ*шл
%ОНИ*шт%ИХ*шу%НИХ*шу%ИМ*шф%НИМ*шф%ИХ*шх%НИХ*шх%ИМИ*шц%НИМИ*шц%НИХ*шч
%ТИТЬ*ка%ТИЛ*кз%ТИЛА*ки%ТИЛО*кй%ТИЛИ*кк%ЧУ*кп%ТИМ*кр%ТИШЬ*кс%ТИТЕ*кт%ТИТ*ку%ТЯТ*кф%ТИВ*ко%ТИВШИ*ко%ТИМ*нп%ТИМТЕ*нп%ТЬ*кл%ТЬТЕ*км%ТИВШИЙ*ма%ТИВШЕГО*мб%ТИВШЕМУ*мв%ТИВШЕГО*мг%ТИВШИЙ*Лб%ТИВШИМ*мд%ТИВШЕМ*ме%ТИВШАЯ*мз%ТИВШЕЙ*ми%ТИВШЕЙ*мй%ТИВШУЮ*мк%ТИВШЕЙ*мл%ТИВШЕЮ*мл%ТИВШЕЙ*мм%ТИВШЕЕ*мо%ТИВШЕГО*мп%ТИВШЕМУ*мр%ТИВШЕЕ*мс%ТИВШИМ*мт%ТИВШЕМ*му%ТИВШИЕ*мх%ТИВШИХ*мц%ТИВШИМ*мч%ТИВШИХ*мш%ТИВШИЕ*Лк%ТИВШИМИ*мщ%ТИВШИХ*мы
%ЕНЬ*аа%НЯ*аб%НЮ*ав%ЕНЬ*аг%НЕМ*ад%НЕ*ае%НИ*аж%НЕЙ*аз%НЕЙ*аз%НЯМ*аи%НЯМ*аи%НИ*ай%НЯМИ*ак%НЯМИ*ак%НЯХ*ал%НЯХ*ал
%ЕЧЬ*ка%ЕКУ*кб%ЕЧЁМ*кв%ЕЧЁШЬ*кг%ЕЧЁТЕ*кд%ЕЧЁТ*ке%ЕКУТ*кж%ЁК*кз%ЕКЛА*ки%ЕКЛО*кй%ЕКЛИ*кк%ЁКШИ*ко%ЕКИ*кл%ЕКИТЕ*км%ЕКУЩИЙ*ла%ЕКУЩЕГО*лб%ЕКУЩЕМУ*лв%ЕКУЩЕГО*лг%ЕКУЩИЙ*Ла%ЕКУЩИМ*лд%ЕКУЩЕМ*ле%ЕКУЩАЯ*лз%ЕКУЩЕЙ*ли%ЕКУЩЕЙ*лй%ЕКУЩУЮ*лк%ЕКУЩЕЙ*лл%ЕКУЩЕЮ*лл%ЕКУЩЕЙ*лм%ЕКУЩЕЕ*ло%ЕКУЩЕГО*лп%ЕКУЩЕМУ*лр%ЕКУЩЕЕ*лс%ЕКУЩИМ*лт%ЕКУЩЕМ*лу%ЕКУЩИЕ*лх%ЕКУЩИХ*лц%ЕКУЩИМ*лч%ЕКУЩИХ*лш%ЕКУЩИЕ*Лй%ЕКУЩИМИ*лщ%ЕКУЩИХ*лы%ЁКШИЙ*ма%ЁКШЕГО*мб%ЁКШЕМУ*мв%ЁКШЕГО*мг%ЁКШИЙ*Лб%ЁКШИМ*мд%ЁКШЕМ*ме%ЁКШАЯ*мз%ЁКШЕЙ*ми%ЁКШЕЙ*мй%ЁКШУЮ*мк%ЁКШЕЙ*мл%ЁКШЕЮ*мл%ЁКШЕЙ*мм%ЁКШЕЕ*мо%ЁКШЕГО*мп%ЁКШЕМУ*мр%ЁКШЕЕ*мс%ЁКШИМ*мт%ЁКШЕМ*му%ЁКШИЕ*мх%ЁКШИХ*мц%ЁКШИМ*мч%ЁКШИХ*мш%ЁКШИЕ*Лк%ЁКШИМИ*мщ%ЁКШИХ*мы%ЕЧЁННЫЙ*са%ЕЧЁННОГО*сб%ЕЧЁННОМУ*св%ЕЧЁННОГО*сг%ЕЧЁННЫЙ*Ле%ЕЧЁННЫМ*сд%ЕЧЁННОМ*се%ЕЧЁН*сж%ЕЧЁННАЯ*сз%ЕЧЁННОЙ*си%ЕЧЁННОЙ*сй%ЕЧЁННУЮ*ск%ЕЧЁННОЙ*сл%ЕЧЁННОЮ*сл%ЕЧЁННОЙ*см%ЕЧЕНА*сн%ЕЧЁННОЕ*со%ЕЧЁННОГО*сп%ЕЧЁННОМУ*ср%ЕЧЁННОЕ*сс%ЕЧЁННЫМ*ст%ЕЧЁННОМ*су%ЕЧЕНО*сф%ЕЧЁННЫЕ*сх%ЕЧЁННЫХ*сц%ЕЧЁННЫМ*сч%ЕЧЁННЫХ*сш%ЕЧЁННЫЕ*Ло%ЕЧЁННЫМИ*сщ%ЕЧЁННЫХ*сы%ЕЧЕНЫ*сэ
%САТЬ*ка%ШУ*кб%ШЕМ*кв%ШЕШЬ*кг%ШЕТЕ*кд%ШЕТ*ке%ШУТ*кж%САЛ*кз%САЛА*ки%САЛО*кй%САЛИ*кк%ША*кн%САВ*ко%САВШИ*ко%ШИ*кл%ШИТЕ*км%ШУЩИЙ*ла%ШУЩЕГО*лб%ШУЩЕМУ*лв%ШУЩЕГО*лг%ШУЩИЙ*Ла%ШУЩИМ*лд%ШУЩЕМ*ле%ШУЩАЯ*лз%ШУЩЕЙ*ли%ШУЩЕЙ*лй%ШУЩУЮ*лк%ШУЩЕЙ*лл%ШУЩЕЮ*лл%ШУЩЕЙ*лм%ШУЩЕЕ*ло%ШУЩЕГО*лп%ШУЩЕМУ*лр%ШУЩЕЕ*лс%ШУЩИМ*лт%ШУЩЕМ*лу%ШУЩИЕ*лх%ШУЩИХ*лц%ШУЩИМ*лч%ШУЩИХ*лш%ШУЩИЕ*Лй%ШУЩИМИ*лщ%ШУЩИХ*лы%САВШИЙ*ма%САВШЕГО*мб%САВШЕМУ*мв%САВШЕГО*мг%САВШИЙ*Лб%САВШИМ*мд%САВШЕМ*ме%САВШАЯ*мз%САВШЕЙ*ми%САВШЕЙ*мй%САВШУЮ*мк%САВШЕЙ*мл%САВШЕЮ*мл%САВШЕЙ*мм%САВШЕЕ*мо%САВШЕГО*мп%САВШЕМУ*мр%САВШЕЕ*мс%САВШИМ*мт%САВШЕМ*му%САВШИЕ*мх%САВШИХ*мц%САВШИМ*мч%САВШИХ*мш%САВШИЕ*Лк%САВШИМИ*мщ%САВШИХ*мы%САННЫЙ*са%САННОГО*сб%САННОМУ*св%САННОГО*сг%САННЫЙ*Ле%САННЫМ*сд%САННОМ*се%САН*сж%САННАЯ*сз%САННОЙ*си%САННОЙ*сй%САННУЮ*ск%САННОЙ*сл%САННОЮ*сл%САННОЙ*см%САНА*сн%САННОЕ*со%САННОГО*сп%САННОМУ*ср%САННОЕ*сс%САННЫМ*ст%САННОМ*су%САНО*сф%САННЫЕ*сх%САННЫХ*сц%САННЫМ*сч%САННЫХ*сш%САННЫЕ*Ло%САННЫМИ*сщ%САННЫХ*сы%САНЫ*сэ
%ЕНА*иж%ЁН*из%ЕНАМ*ии%ЕНА*ий%ЕНАМИ*ик%ЕНАХ*ил
%НЯТЬ*ка%НЯЛ*кз%НЯЛ*кз%НЯЛА*ки%НЯЛО*кй%НЯЛО*кй%НЯЛИ*кк%НЯЛИ*кк%НИМУ*кп%ЫМУ*кп%НИМЕМ*кр%ЫМЕМ*кр%НИМЕШЬ*кс%ЫМЕШЬ*кс%НИМЕТЕ*кт%ЫМЕТЕ*кт%НИМЕТ*ку%ЫМЕТ*ку%НИМУТ*кф%ЫМУТ*кф%НЯВ*ко%НЯВШИ*ко%НИМЕМ*нп%НИМЕМТЕ*нп%ЫМЕМ*нп%ЫМЕМТЕ*нп%НИМИ*кл%ЫМИ*кл%НИМИТЕ*км%ЫМИТЕ*км%НЯВШИЙ*ма%НЯВШЕГО*мб%НЯВШЕМУ*мв%НЯВШЕГО*мг%НЯВШИЙ*Лб%НЯВШИМ*мд%НЯВШЕМ*ме%НЯВШАЯ*мз%НЯВШЕЙ*ми%НЯВШЕЙ*мй%НЯВШУЮ*мк%НЯВШЕЙ*мл%НЯВШЕЮ*мл%НЯВШЕЙ*мм%НЯВШЕЕ*мо%НЯВШЕГО*мп%НЯВШЕМУ*мр%НЯВШЕЕ*мс%НЯВШИМ*мт%НЯВШЕМ*му%НЯВШИЕ*мх%НЯВШИХ*мц%НЯВШИМ*мч%НЯВШИХ*мш%НЯВШИЕ*Лк%НЯВШИМИ*мщ%НЯВШИХ*мы%НЯТЫЙ*са%НЯТЫЙ*са%НЯТОГО*сб%НЯТОМУ*св%НЯТОМУ*св%НЯТОГО*сг%НЯТОГО*сг%НЯТЫЙ*Ле%НЯТЫЙ*Ле%НЯТЫМ*сд%НЯТЫМ*сд%НЯТОМ*се%НЯТОМ*се%НЯТ*сж%НЯТ*сж%НЯТАЯ*сз%НЯТАЯ*сз%НЯТОЙ*си%НЯТОЙ*си%НЯТОЙ*сй%НЯТОЙ*сй%НЯТУЮ*ск%НЯТУЮ*ск%НЯТОЙ*сл%НЯТОЙ*сл%НЯТОЮ*сл%НЯТОЮ*сл%НЯТОЙ*см%НЯТОЙ*см%НЯТА*сн%НЯТОЕ*со%НЯТОЕ*со%НЯТОГО*сп%НЯТОГО*сп%НЯТОМУ*ср%НЯТОМУ*ср%НЯТОЕ*сс%НЯТОЕ*сс%НЯТЫМ*ст%НЯТЫМ*ст%НЯТОМ*су%НЯТОМ*су%НЯТО*сф%НЯТО*сф%НЯТЫЕ*сх%НЯТЫЕ*сх%НЯТЫХ*сц%НЯТЫХ*сц%НЯТЫМ*сч%НЯТЫМ*сч%НЯТЫХ*сш%НЯТЫХ*сш%НЯТЫЕ*Ло%НЯТЫЕ*Ло%НЯТЫМИ*сщ%НЯТЫМИ*сщ%НЯТЫХ*сы%НЯТЫХ*сы%НЯТЫ*сэ%НЯТЫ*сэ
%Я*га%И*гб%Е*гв%Ю*гг%ЁЙ*гд%ЁЮ*гд%Е*ге%И*гж%ЕЙ*гз%Ь*гз%ЯМ*ги%И*гй%ЯМИ*гк%ЯХ*гл
%ОТ*аа%ТА*аб%ТУ*ав%ТА*аг%ТОМ*ад%ТЕ*ае%ТЫ*аж%ТОВ*аз%ТАМ*аи%ТОВ*ай%ТАМИ*ак%ТАХ*ал
%СЛАТЬ*ка%ШЛЮ*кб%ШЛЁМ*кв%ШЛЁШЬ*кг%ШЛЁТЕ*кд%ШЛЁТ*ке%ШЛЮТ*кж%СЛАЛ*кз%СЛАЛА*ки%СЛАЛО*кй%СЛАЛИ*кк%ШЛЯ*кн%СЛАВ*ко%СЛАВШИ*ко%ШЛИ*кл%ШЛИТЕ*км%ШЛЮЩИЙ*ла%ШЛЮЩЕГО*лб%ШЛЮЩЕМУ*лв%ШЛЮЩЕГО*лг%ШЛЮЩИЙ*Ла%ШЛЮЩИМ*лд%ШЛЮЩЕМ*ле%ШЛЮЩАЯ*лз%ШЛЮЩЕЙ*ли%ШЛЮЩЕЙ*лй%ШЛЮЩУЮ*лк%ШЛЮЩЕЙ*лл%ШЛЮЩЕЮ*лл%ШЛЮЩЕЙ*лм%ШЛЮЩЕЕ*ло%ШЛЮЩЕГО*лп%ШЛЮЩЕМУ*лр%ШЛЮЩЕГО*лс%ШЛЮЩЕЕ*лс%ШЛЮЩИМ*лт%ШЛЮЩЕМ*лу%ШЛЮЩИЕ*лх%ШЛЮЩИХ*лц%ШЛЮЩИМ*лч%ШЛЮЩИХ*лш%ШЛЮЩИЕ*Лй%ШЛЮЩИМИ*лщ%ШЛЮЩИХ*лы%СЛАВШИЙ*ма%СЛАВШЕГО*мб%СЛАВШЕМУ*мв%СЛАВШЕГО*мг%СЛАВШИЙ*Лб%СЛАВШИМ*мд%СЛАВШЕМ*ме%СЛАВШАЯ*мз%СЛАВШЕЙ*ми%СЛАВШЕЙ*мй%СЛАВШУЮ*мк%СЛАВШЕЙ*мл%СЛАВШЕЮ*мл%СЛАВШЕЙ*мм%СЛАВШЕЕ*мо%СЛАВШЕГО*мп%СЛАВШЕМУ*мр%СЛАВШЕГО*мс%СЛАВШЕЕ*мс%СЛАВШИМ*мт%СЛАВШЕМ*му%СЛАВШИЕ*мх%СЛАВШИХ*мц%СЛАВШИМ*мч%СЛАВШИХ*мш%СЛАВШИЕ*Лк%СЛАВШИМИ*мщ%СЛАВШИХ*мы%СЛАННЫЙ*са%СЛАННОГО*сб%СЛАННОМУ*св%СЛАННОГО*сг%СЛАННЫЙ*Ле%СЛАННЫМ*сд%СЛАННОМ*се%СЛАН*сж%СЛАННАЯ*сз%СЛАННОЙ*си%СЛАННОЙ*сй%СЛАННУЮ*ск%СЛАННОЙ*сл%СЛАННОЮ*сл%СЛАННОЙ*см%СЛАНА*сн%СЛАННОЕ*со%СЛАННОГО*сп%СЛАННОМУ*ср%СЛАННОГО*сс%СЛАННОЕ*сс%СЛАННЫМ*ст%СЛАННОМ*су%СЛАНО*сф%СЛАННЫЕ*сх%СЛАННЫХ*сц%СЛАННЫМ*сч%СЛАННЫХ*сш%СЛАННЫЕ*Ло%СЛАННЫМИ*сщ%СЛАННЫХ*сы%СЛАНЫ*сэ
%А*га%И*гб%Е*гв%У*гг%ОЙ*гд%ОЮ*гд%Е*ге%И*гж%гз%АМ*ги%АМ*ги%И*гй%АМИ*гк%АХ*гл
%ЕЛЬ*аа%ЛЯ*аб%ЛЮ*ав%ЕЛЬ*аг%ЛЕМ*ад%ЛЕ*ае%ЛИ*аж%ЛЕЙ*аз%ЛЕЙ*аз%ЛЯМ*аи%ЛЯМ*аи%ЛИ*ай%ЛЯМИ*ак%ЛЯМИ*ак%ЛЯХ*ал%ЛЯХ*ал
%ЁТ*аа%ЁТА*аб%ЁТУ*ав%ЁТ*аг%ЁТОМ*ад%ЁТЕ*ае%ЕТА*аж%ЁТОВ*аз%ЕТОВ*аз%ЁТАМ*аи%ЕТАМ*аи%ЕТА*ай%ЁТАМИ*ак%ЕТАМИ*ак%ЁТАХ*ал%ЕТАХ*ал
%Я*га%И*гб%Е*гв%Ю*гг%ЕЙ*гд%ЕЮ*гд%Е*ге%И*гж%ЕЙ*гз%Ь*гз%ЯМ*ги%ЕЙ*гй%Ь*гй%ЯМИ*гк%ЯХ*гл
%Й*ыа%ЕГО*ыб%ЕМУ*ыв%Й*ыг%ЕГО*Лф%ИМ*ыд%ЁМ*ые%Я*ыж%ЕЙ*ыз%ЕЙ*ыи%Ю*ый%ЕЙ*ык%ЕЮ*ык%ЕЙ*ыл%Ё*ым%ЕГО*ын%ЕМУ*ыо%Ё*ып%ИМ*ыр%ЁМ*ыс%И*ыт%ИХ*ыу%ИМ*ыф%И*ых%ИХ*Лх%ИМИ*ыц%ИХ*ыч
%Ь*га%И*гб%И*гв%Ь*гг%ЬЮ*гд%И*ге%И*гж%ЕЙ*гз%ЕЙ*гз%ЯМ*ги%ЯМ*ги%ЕЙ*гй%ЕЙ*гй%ЯМИ*гк%ЯМИ*гк%ЯХ*гл%ЯХ*гл
%ОТ*ыа%ОГО*ыб%ОМУ*ыв%ОТ*ыг%ОГО*Лф%ЕМ*ыд%ОМ*ые%А*ыж%ОЙ*ыз%ОЙ*ыи%У*ый%ОЙ*ык%ОЙ*ыл%О*ым%ОГО*ын%ОМУ*ыо%О*ып%ЕМ*ыр%ОМ*ыс%Е*ыт%ЕХ*ыу%ЕМ*ыф%Е*ых%ЕХ*Лх%ЕМИ*ыц%ЕХ*ыч
%ИЙ*юа%ЬЕГО*юб%ЬЕМУ*юв%ИЙ*юг%ЬЕГО*Лт%ЬИМ*юд%ЬЕМ*юе%ЬЯ*юж%ЬЕЙ*юз%ЬЕЙ*юи%ЬЮ*юй%ЬЕЙ*юк%ЬЕЮ*юк%ЬЕЙ*юл%ЬЕ*юм%ЬЕГО*юн%ЬЕМУ*юо%ЬЕ*юп%ЬИМ*юр%ЬЕМ*юс%ЬИ*ют%ЬИХ*юу%ЬИМ*юф%ЬИ*юх%ЬИХ*Лу%ЬИМИ*юц%ЬИХ*юч
%Ы*чм%ЕБЯ*чн%ЕБЕ*чо%ЕБЯ*чп%ОБОЙ*чр%ОБОЮ*чр%ЕБЕ*чс
%ЬМА*га%ЬМЫ*гб%ЬМЕ*гв%ЬМУ*гг%ЬМОЙ*гд%ЬМОЮ*гд%ЬМЕ*ге%ЬМЫ*гж%ЁМ*гз%ЬМАМ*ги%ЬМЫ*гй%ЬМАМИ*гк%ЬМАХ*гл
%ХО*еа%ХА*еб%ХУ*ев%ХО*ег%ХОМ*ед%ХЕ*ее%ШИ*еж%ШЕЙ*ез%ШАМ*еи%ШИ*ей%ШАМИ*ек%ШАХ*ел
%ТЕТЬ*ка%ЧУ*кб%ТИМ*кв%ЧЕШЬ*кг%ТИТЕ*кд%ЧЕТ*ке%ТЯТ*кж%ТЕЛ*кз%ТЕЛА*ки%ТЕЛО*кй%ТЕЛИ*кк%ЧЕМ*Ры%ЧИМ*Ры%ШЬ*Рэ%ЧЕТЕ*Рю%ЧИТЕ*Рю%ЧУТ*кю%ТЯ*кн%ТЕВ*ко%ТЕВШИ*ко%ТИ*кл%ТИТЕ*км%ТЯЩИЙ*ла%ТЯЩЕГО*лб%ТЯЩЕМУ*лв%ТЯЩЕГО*лг%ТЯЩИЙ*Ла%ТЯЩИМ*лд%ТЯЩЕМ*ле%ТЯЩАЯ*лз%ТЯЩЕЙ*ли%ТЯЩЕЙ*лй%ТЯЩУЮ*лк%ТЯЩЕЙ*лл%ТЯЩЕЮ*лл%ТЯЩЕЙ*лм%ТЯЩЕЕ*ло%ТЯЩЕГО*лп%ТЯЩЕМУ*лр%ТЯЩЕЕ*лс%ТЯЩИМ*лт%ТЯЩЕМ*лу%ТЯЩИЕ*лх%ТЯЩИХ*лц%ТЯЩИМ*лч%ТЯЩИХ*лш%ТЯЩИЕ*Лй%ТЯЩИМИ*лщ%ТЯЩИХ*лы%ТЕВШИЙ*ма%ТЕВШЕГО*мб%ТЕВШЕМУ*мв%ТЕВШЕГО*мг%ТЕВШИЙ*Лб%ТЕВШИМ*мд%ТЕВШЕМ*ме%ТЕВШАЯ*мз%ТЕВШЕЙ*ми%ТЕВШЕЙ*мй%ТЕВШУЮ*мк%ТЕВШЕЙ*мл%ТЕВШЕЮ*мл%ТЕВШЕЙ*мм%ТЕВШЕЕ*мо%ТЕВШЕГО*мп%ТЕВШЕМУ*мр%ТЕВШЕЕ*мс%ТЕВШИМ*мт%ТЕВШЕМ*му%ТЕВШИЕ*мх%ТЕВШИХ*мц%ТЕВШИМ*мч%ТЕВШИХ*мш%ТЕВШИЕ*Лк%ТЕВШИМИ*мщ%ТЕВШИХ*мы
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%А*аж%ОВ*аз%ОВ*аз%АМ*аи%АМ*аи%А*ай%АМИ*ак%АМИ*ак%АХ*ал%АХ*ал
%ОК*аа%КА*аб%КУ*ав%ОК*аг%КОМ*ад%КЕ*ае%КИ*аж%Ы*аж%КОВ*аз%ОВ*аз%АМ*аи%КАМ*аи%КИ*ай%Ы*ай%АМИ*ак%КАМИ*ак%АХ*ал%КАХ*ал
%ТО*щм%ЕГО*щн%ЕМУ*що%ТО*щп%ЕМ*щр%ЁМ*щс
%ОЙ*аа%ОГО*аб%ОМУ*ав%ОГО*аг%ЫМ*ад%ОМ*ае%ЫЕ*вж%ЫХ*вз%ЫМ*ви%ЫХ*вй%ЫМИ*вк%ЫХ*вл%АЯ*га%ОЙ*гб%ОЙ*гв%УЮ*гг%ОЙ*гд%ОЙ*ге
%АТЬ*ка%У*кб%ИМ*кв%ИШЬ*кг%ИТЕ*кд%ИТ*ке%АТ*кж%АЛ*кз%АЛА*ки%АЛО*кй%АЛИ*кк%УТ*кю%А*кн%АВ*ко%АВШИ*ко%И*кл%ИТЕ*км%АЩИЙ*ла%АЩЕГО*лб%АЩЕМУ*лв%АЩЕГО*лг%АЩИЙ*Ла%АЩИМ*лд%АЩЕМ*ле%АЩАЯ*лз%АЩЕЙ*ли%АЩЕЙ*лй%АЩУЮ*лк%АЩЕЙ*лл%АЩЕЮ*лл%АЩЕЙ*лм%АЩЕЕ*ло%АЩЕГО*лп%АЩЕМУ*лр%АЩЕЕ*лс%АЩИМ*лт%АЩЕМ*лу%АЩИЕ*лх%АЩИХ*лц%АЩИМ*лч%АЩИХ*лш%АЩИЕ*Лй%АЩИМИ*лщ%АЩИХ*лы%АВШИЙ*ма%АВШЕГО*мб%АВШЕМУ*мв%АВШЕГО*мг%АВШИЙ*Лб%АВШИМ*мд%АВШЕМ*ме%АВШАЯ*мз%АВШЕЙ*ми%АВШЕЙ*мй%АВШУЮ*мк%АВШЕЙ*мл%АВШЕЮ*мл%АВШЕЙ*мм%АВШЕЕ*мо%АВШЕГО*мп%АВШЕМУ*мр%АВШЕЕ*мс%АВШИМ*мт%АВШЕМ*му%АВШИЕ*мх%АВШИХ*мц%АВШИМ*мч%АВШИХ*мш%АВШИЕ*Лк%АВШИМИ*мщ%АВШИХ*мы%АННЫЙ*са%АННОГО*сб%АННОМУ*св%АННОГО*сг%АННЫЙ*Ле%АННЫМ*сд%АННОМ*се%АН*сж%АННАЯ*сз%АННОЙ*си%АННОЙ*сй%АННУЮ*ск%АННОЙ*сл%АННОЮ*сл%АННОЙ*см%АНА*сн%АННОЕ*со%АННОГО*сп%АННОМУ*ср%АННОЕ*сс%АННЫМ*ст%АННОМ*су%АНО*сф%АННЫЕ*сх%АННЫХ*сц%АННЫМ*сч%АННЫХ*сш%АННЫЕ*Ло%АННЫМИ*сщ%АННЫХ*сы%АНЫ*сэ
%ДЕТЬ*ка%ЖУ*кб%ДИМ*кв%ДИШЬ*кг%ДИТЕ*кд%ДИТ*ке%ДЯТ*кж%ДЕЛ*кз%ДЕЛА*ки%ДЕЛО*кй%ДЕЛИ*кк%ДЮТ*кю%ДЯ*кн%ДЕВ*ко%ДЕВШИ*ко%ДЬ*кл%ДЬТЕ*км%ДЯЩИЙ*ла%ДЯЩЕГО*лб%ДЯЩЕМУ*лв%ДЯЩЕГО*лг%ДЯЩИЙ*Ла%ДЯЩИМ*лд%ДЯЩЕМ*ле%ДЯЩАЯ*лз%ДЯЩЕЙ*ли%ДЯЩЕЙ*лй%ДЯЩУЮ*лк%ДЯЩЕЙ*лл%ДЯЩЕЮ*лл%ДЯЩЕЙ*лм%ДЯЩЕЕ*ло%ДЯЩЕГО*лп%ДЯЩЕМУ*лр%ДЯЩЕЕ*лс%ДЯЩИМ*лт%ДЯЩЕМ*лу%ДЯЩИЕ*лх%ДЯЩИХ*лц%ДЯЩИМ*лч%ДЯЩИХ*лш%ДЯЩИЕ*Лй%ДЯЩИМИ*лщ%ДЯЩИХ*лы%ДЕВШИЙ*ма%ДЕВШЕГО*мб%ДЕВШЕМУ*мв%ДЕВШЕГО*мг%ДЕВШИЙ*Лб%ДЕВШИМ*мд%ДЕВШЕМ*ме%ДЕВШАЯ*мз%ДЕВШЕЙ*ми%ДЕВШЕЙ*мй%ДЕВШУЮ*мк%ДЕВШЕЙ*мл%ДЕВШЕЮ*мл%ДЕВШЕЙ*мм%ДЕВШЕЕ*мо%ДЕВШЕГО*мп%ДЕВШЕМУ*мр%ДЕВШЕЕ*мс%ДЕВШИМ*мт%ДЕВШЕМ*му%ДЕВШИЕ*мх%ДЕВШИХ*мц%ДЕВШИМ*мч%ДЕВШИХ*мш%ДЕВШИЕ*Лк%ДЕВШИМИ*мщ%ДЕВШИХ*мы%ДИМЫЙ*па%ДИМОГО*пб%ДИМОМУ*пв%ДИМОГО*пг%ДИМЫЙ*Лг%ДИМЫМ*пд%ДИМОМ*пе%ДИМ*пж%ДИМАЯ*пз%ДИМОЙ*пи%ДИМОЙ*пй%ДИМУЮ*пк%ДИМОЙ*пл%ДИМОЮ*пл%ДИМОЙ*пм%ДИМА*пн%ДИМОЕ*по%ДИМОГО*пп%ДИМОМУ*пр%ДИМОЕ*пс%ДИМЫМ*пт%ДИМОМ*пу%ДИМО*пф%ДИМЫЕ*пх%ДИМЫХ*пц%ДИМЫМ*пч%ДИМЫХ*пш%ДИМЫЕ*Лм%ДИМЫМИ*пщ%ДИМЫХ*пы%ДИМЫ*пэ%ДЕННЫЙ*са%ДЕННОГО*сб%ДЕННОМУ*св%ДЕННОГО*сг%ДЕННЫЙ*Ле%ДЕННЫМ*сд%ДЕННОМ*се%ДЕН*сж%ДЕННАЯ*сз%ДЕННОЙ*си%ДЕННОЙ*сй%ДЕННУЮ*ск%ДЕННОЙ*сл%ДЕННОЮ*сл%ДЕННОЙ*см%ДНА*сн%ДЕННОЕ*со%ДЕННОГО*сп%ДЕННОМУ*ср%ДЕННОЕ*сс%ДЕННЫМ*ст%ДЕННОМ*су%ДЕННЫЕ*сх%ДЕННЫХ*сц%ДЕННЫМ*сч%ДЕННЫХ*сш%ДЕННЫЕ*Ло%ДЕННЫМИ*сщ%ДЕННЫХ*сы%ДНЫ*сэ
%Е*еа%Я*еб%Ю*ев%Е*ег%ЕМ*ед%И*ее%Я*еж%Й*ез%ЯМ*еи%Я*ей%ЯМИ*ек%ЯХ*ел
%О*еа%А*еб%У*ев%О*ег%ОМ*ед%Е*ее%А*еж%ез%АМ*еи%А*ей%АМИ*ек%АХ*ел%ОВ*Яп
%ТЬ*ка%Ю*кб%ЕМ*кв%ЕШЬ*кг%ЕТЕ*кд%ЕТ*ке%ЮТ*кж%Л*кз%ЛА*ки%ЛО*кй%ЛИ*кк%Я*кн%В*ко%ВШИ*ко%Й*кл%ЙТЕ*км%ЮЩИЙ*ла%ЮЩЕГО*лб%ЮЩЕМУ*лв%ЮЩЕГО*лг%ЮЩИЙ*Ла%ЮЩИМ*лд%ЮЩЕМ*ле%ЮЩАЯ*лз%ЮЩЕЙ*ли%ЮЩЕЙ*лй%ЮЩУЮ*лк%ЮЩЕЙ*лл%ЮЩЕЮ*лл%ЮЩЕЙ*лм%ЮЩЕЕ*ло%ЮЩЕГО*лп%ЮЩЕМУ*лр%ЮЩЕЕ*лс%ЮЩИМ*лт%ЮЩЕМ*лу%ЮЩИЕ*лх%ЮЩИХ*лц%ЮЩИМ*лч%ЮЩИХ*лш%ЮЩИЕ*Лй%ЮЩИМИ*лщ%ЮЩИХ*лы%ВШИЙ*ма%ВШЕГО*мб%ВШЕМУ*мв%ВШЕГО*мг%ВШИЙ*Лб%ВШИМ*мд%ВШЕМ*ме%ВШАЯ*мз%ВШЕЙ*ми%ВШЕЙ*мй%ВШУЮ*мк%ВШЕЙ*мл%ВШЕЮ*мл%ВШЕЙ*мм%ВШЕЕ*мо%ВШЕГО*мп%ВШЕМУ*мр%ВШЕЕ*мс%ВШИМ*мт%ВШЕМ*му%ВШИЕ*мх%ВШИХ*мц%ВШИМ*мч%ВШИХ*мш%ВШИЕ*Лк%ВШИМИ*мщ%ВШИХ*мы
%ОНО*шм%ЕГО*шн%НЕГО*шн%ЕМУ*шо%НЕМУ*шо%ЕГО*шп%НЕГО*шп%ИМ*шр%НИМ*шр%НЁМ*шс
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%У*Эх%Ы*аж%ОВ*аз%АМ*аи%Ы*ай%АМИ*ак%АХ*ал
%аа%А*аб%У*Эф%У*ав%аг%ОМ*ад%Е*ае%У*Эх
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%У*Эх%А*аж%И*аж%ОВ*аз%АМ*аи%А*ай%И*ай%АМИ*ак%АХ*ал
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%У*Эх%А*аж%аз%АМ*аи%А*ай%АМИ*ак%АХ*ал
%Ь*га%И*гб%И*гв%Ь*гг%ЬЮ*гд%И*ге%И*Эч%И*гж%ЕЙ*гз%ЯМ*ги%И*гй%ЯМИ*гк%ЯХ*гл
%Ь*га%И*гб%И*гв%Ь*гг%ЬЮ*гд%И*ге%И*Эч%И*гж%ЕЙ*гз%ЯМ*ги%И*гй%ЬМИ*гк%ЯМИ*гк%ЯХ*гл
%аа%А*аб%У*Эф%У*ав%аг%ОМ*ад%Е*ае%У*Эх%Ы*аж%ОВ*аз%АМ*аи%Ы*ай%АМИ*ак%АХ*ал
%аа%А*аб%У*Эф%У*ав%аг%ОМ*ад%Е*ае%У*Эх%А*аж%ОВ*аз%АМ*аи%А*ай%АМИ*ак%АХ*ал
%Ь*га%И*гб%И*гв%Ь*гг%ЬЮ*гд%И*ге%И*Эч%И*гж%ЕЙ*гз%АМ*ги%И*гй%АМИ*гк%АХ*гл
%Ь*га%И*гб%И*гб%И*гв%И*гв%Ь*гг%ЬЮ*гд%И*ге%И*Эч%И*гж%ЕЙ*гз%ЯМ*ги%И*гй%ЯМИ*гк%ЯХ*гл
%Ь*га%И*гб%И*гв%Ь*гг%ЬЮ*гд%И*ге%И*Эч%И*гж%ЕЙ*гз%ЕЙ*гз%ЯМ*ги%ЯМ*ги%И*гй%ЯМИ*гк%ЯМИ*гк%ЯХ*гл%ЯХ*гл
%ОТ*аа%ТА*аб%ТУ*ав%ОТ*аг%ТОМ*ад%ТЕ*ае%ТУ*Эх%ТЫ*аж%ТОВ*аз%ТАМ*аи%ТЫ*ай%ТАМИ*ак%ТАХ*ал
%аа%А*аб%У*ав%аг%ОМ*ад%Е*ае%У*Эх%Ы*аж%Ы*аж%ОВ*аз%АМ*аи%Ы*ай%Ы*ай%АМИ*ак%АХ*ал
%аа%А*аб%У*Эф%У*ав%аг%ОМ*ад%Е*ае%Ы*аж%ОВ*аз%АМ*аи%Ы*ай%АМИ*ак%АХ*ал
%аа%А*аб%У*Эф%У*ав%аг%ОМ*ад%Е*ае%И*аж%ОВ*аз%АМ*аи%И*ай%АМИ*ак%АХ*ал
%аа%аа%А*аб%А*аб%У*Эф%У*ав%У*ав%аг%аг%ОМ*ад%ОМ*ад%Е*ае%Е*ае%И*аж%И*аж%ОВ*аз%ОВ*аз%АМ*аи%АМ*аи%И*ай%И*ай%АМИ*ак%АМИ*ак%АХ*ал%АХ*ал
%ТЬ*ка%Ю*кб%ЕМ*кв%ЕШЬ*кг%ЕТЕ*кд%ЕТ*ке%ЮТ*кж%Л*кз%ЛА*ки%ЛО*кй%ЛИ*кк%Я*кн%В*ко%ВШИ*ко%Й*кл%ЙТЕ*км%ЮЩИЙ*ла%ЮЩЕГО*лб%ЮЩЕМУ*лв%ЮЩЕГО*лг%ЮЩИЙ*Ла%ЮЩИМ*лд%ЮЩЕМ*ле%ЮЩАЯ*лз%ЮЩЕЙ*ли%ЮЩЕЙ*лй%ЮЩУЮ*лк%ЮЩЕЙ*лл%ЮЩЕЮ*лл%ЮЩЕЙ*лм%ЮЩЕЕ*ло%ЮЩЕГО*лп%ЮЩЕМУ*лр%ЮЩЕЕ*лс%ЮЩИМ*лт%ЮЩЕМ*лу%ЮЩИЕ*лх%ЮЩИХ*лц%ЮЩИМ*лч%ЮЩИХ*лш%ЮЩИЕ*Лй%ЮЩИМИ*лщ%ЮЩИХ*лы%ВШИЙ*ма%ВШЕГО*мб%ВШЕМУ*мв%ВШЕГО*мг%ВШИЙ*Лб%ВШИМ*мд%ВШЕМ*ме%ВШАЯ*мз%ВШЕЙ*ми%ВШЕЙ*мй%ВШУЮ*мк%ВШЕЙ*мл%ВШЕЮ*мл%ВШЕЙ*мм%ВШЕЕ*мо%ВШЕГО*мп%ВШЕМУ*мр%ВШЕЕ*мс%ВШИМ*мт%ВШЕМ*му%ВШИЕ*мх%ВШИХ*мц%ВШИМ*мч%ВШИХ*мш%ВШИЕ*Лк%ВШИМИ*мщ%ВШИХ*мы%ЕМЫЙ*па%ЕМОГО*пб%ЕМОМУ*пв%ЕМОГО*пг%ЕМЫЙ*Лг%ЕМЫМ*пд%ЕМОМ*пе%ЕМ*пж%ЕМАЯ*пз%ЕМОЙ*пи%ЕМОЙ*пй%ЕМУЮ*пк%ЕМОЙ*пл%ЕМОЮ*пл%ЕМОЙ*пм%ЕМА*пн%ЕМОЕ*по%ЕМОГО*пп%ЕМОМУ*пр%ЕМОЕ*пс%ЕМЫМ*пт%ЕМОМ*пу%ЕМО*пф%ЕМЫЕ*пх%ЕМЫХ*пц%ЕМЫМ*пч%ЕМЫХ*пш%ЕМЫЕ*Лм%ЕМЫМИ*пщ%ЕМЫХ*пы%ЕМЫ*пэ
%АТЬ*ка%АЛ*кз%АЛА*ки%АЛО*кй%АЛИ*кк%МУ*кп%МЁМ*кр%НЁМ*кр%МЁШЬ*кс%НЁШЬ*кс%МЁТЕ*кт%НЁТЕ*кт%МЁТ*ку%НЁТ*ку%МУТ*кф%НУТ*кф%АВ*ко%АВШИ*ко%МЁМ*нп%МЁМТЕ*нп%МИ*кл%НИ*кл%МИТЕ*км%НИТЕ*км%АВШИЙ*ма%АВШЕГО*мб%АВШЕМУ*мв%АВШЕГО*мг%АВШИЙ*Лб%АВШИМ*мд%АВШЕМ*ме%АВШАЯ*мз%АВШЕЙ*ми%АВШЕЙ*мй%АВШУЮ*мк%АВШЕЙ*мл%АВШЕЮ*мл%АВШЕЙ*мм%АВШЕЕ*мо%АВШЕГО*мп%АВШЕМУ*мр%АВШЕЕ*мс%АВШИМ*мт%АВШЕМ*му%АВШИЕ*мх%АВШИХ*мц%АВШИМ*мч%АВШИХ*мш%АВШИЕ*Лк%АВШИМИ*мщ%АВШИХ*мы%АТЫЙ*са%АТОГО*сб%АТОМУ*св%АТОГО*сг%АТЫЙ*Ле%АТЫМ*сд%АТОМ*се%АТ*сж%АТАЯ*сз%АТОЙ*си%АТОЙ*сй%АТУЮ*ск%АТОЙ*сл%АТОЮ*сл%АТОЙ*см%АТА*сн%АТОЕ*со%АТОГО*сп%АТОМУ*ср%АТОЕ*сс%АТЫМ*ст%АТОМ*су%АТО*сф%АТЫЕ*сх%АТЫХ*сц%АТЫМ*сч%АТЫХ*сш%АТЫЕ*Ло%АТЫМИ*сщ%АТЫХ*сы%АТЫ*сэ
%СТЬ*ка%Л*кз%ЛА*ки%ЛО*кй%ЛИ*кк%ДУ*кп%ДЁМ*кр%ДЁШЬ*кс%ДЁТЕ*кт%ДЁТ*ку%ДУТ*кф%ДЯ*кн%В*ко%ВШИ*ко%ДЁМ*нп%ДЁМТЕ*нп%ДИ*кл%ДИТЕ*км%ВШИЙ*ма%ВШЕГО*мб%ВШЕМУ*мв%ВШЕГО*мг%ВШИЙ*Лб%ВШИМ*мд%ВШЕМ*ме%ВШАЯ*мз%ВШЕЙ*ми%ВШЕЙ*мй%ВШУЮ*мк%ВШЕЙ*мл%ВШЕЮ*мл%ВШЕЙ*мм%ВШЕЕ*мо%ВШЕГО*мп%ВШЕМУ*мр%ВШЕЕ*мс%ВШИМ*мт%ВШЕМ*му%ВШИЕ*мх%ВШИХ*мц%ВШИМ*мч%ВШИХ*мш%ВШИЕ*Лк%ВШИМИ*мщ%ВШИХ*мы
%ОВАТЬ*ка%ОВАЛ*кз%ОВАЛА*ки%ОВАЛО*кй%ОВАЛИ*кк%УЮ*кп%УЕМ*кр%УЕШЬ*кс%УЕТЕ*кт%УЕТ*ку%УЮТ*кф%УЯ*кн%ОВАВ*ко%ОВАВШИ*ко%УЕМ*нп%УЕМТЕ*нп%УЙ*кл%УЙТЕ*км%ОВАВШИЙ*ма%ОВАВШЕГО*мб%ОВАВШЕМУ*мв%ОВАВШЕГО*мг%ОВАВШИЙ*Лб%ОВАВШИМ*мд%ОВАВШЕМ*ме%ОВАВШАЯ*мз%ОВАВШЕЙ*ми%ОВАВШЕЙ*мй%ОВАВШУЮ*мк%ОВАВШЕЙ*мл%ОВАВШЕЮ*мл%ОВАВШЕЙ*мм%ОВАВШЕЕ*мо%ОВАВШЕГО*мп%ОВАВШЕМУ*мр%ОВАВШЕЕ*мс%ОВАВШИМ*мт%ОВАВШЕМ*му%ОВАВШИЕ*мх%ОВАВШИХ*мц%ОВАВШИМ*мч%ОВАВШИХ*мш%ОВАВШИЕ*Лк%ОВАВШИМИ*мщ%ОВАВШИХ*мы
%Я*бо%И*бп%Е*бр%Ю*бс%ЕЙ*бт%ЕЮ*бт%Е*бу%Ь*бь%И*бф%Ь*бх%ЯМ*бц%Ь*бч%ЯМИ*бш%ЯХ*бщ
%ЫЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ЫЙ*Рщ%ЫМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ЫМ*йр%ОМ*йс%ЫЕ*йт%ЫХ*йу%ЫМ*йф%ЫХ*йх%ЫЕ*Рь%ЫМИ*йц%ЫХ*йч%йш%А*йщ%О*йы%Ы*йэ%ЕЕ*йю%ЕЙ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО
%НЫЙ*йа%НОГО*йб%НОМУ*йв%НОГО*йг%НЫЙ*Рщ%НЫМ*йд%НОМ*йе%НАЯ*йж%НОЙ*йз%НОЙ*йи%НУЮ*йй%НОЙ*йк%НОЮ*йк%НОЙ*йл%НОЕ*йм%НОГО*йн%НОМУ*йо%НОЕ*йп%НЫМ*йр%НОМ*йс%НЫЕ*йт%НЫХ*йу%НЫМ*йф%НЫХ*йх%НЫЕ*Рь%НЫМИ*йц%НЫХ*йч%ЕН*йш%НА*йщ%НО*йы%НЫ*йэ%НЕЕ*йю%НЕЙ*йю%НЕЕ*йъ*ПО%НЕЙ*йъ*ПО
%КИЙ*йа%КОГО*йб%КОМУ*йв%КОГО*йг%КИЙ*Рщ%КИМ*йд%КОМ*йе%КАЯ*йж%КОЙ*йз%КОЙ*йи%КУЮ*йй%КОЙ*йк%КОЮ*йк%КОЙ*йл%КОЕ*йм%КОГО*йн%КОМУ*йо%КОЕ*йп%КИМ*йр%КОМ*йс%КИЕ*йт%КИХ*йу%КИМ*йф%КИХ*йх%КИЕ*Рь%КИМИ*йц%КИХ*йч%ОК*йш%КА*йщ%КО*йы%КИ*йэ%ЧЕ*йю%ЧЕ*йъ*ПО
%ЬНЫЙ*йа%ЬНОГО*йб%ЬНОМУ*йв%ЬНОГО*йг%ЬНЫЙ*Рщ%ЬНЫМ*йд%ЬНОМ*йе%ЬНАЯ*йж%ЬНОЙ*йз%ЬНОЙ*йи%ЬНУЮ*йй%ЬНОЙ*йк%ЬНОЮ*йк%ЬНОЙ*йл%ЬНОЕ*йм%ЬНОГО*йн%ЬНОМУ*йо%ЬНОЕ*йп%ЬНЫМ*йр%ЬНОМ*йс%ЬНЫЕ*йт%ЬНЫХ*йу%ЬНЫМ*йф%ЬНЫХ*йх%ЬНЫЕ*Рь%ЬНЫМИ*йц%ЬНЫХ*йч%ЕН*йш%ЬНА*йщ%ЬНО*йы%ЬНЫ*йэ%ЬНЕЕ*йю%ЬНЕЙ*йю%ЬНЕЕ*йъ*ПО%ЬНЕЙ*йъ*ПО
%ЙНЫЙ*йа%ЙНОГО*йб%ЙНОМУ*йв%ЙНОГО*йг%ЙНЫЙ*Рщ%ЙНЫМ*йд%ЙНОМ*йе%ЙНАЯ*йж%ЙНОЙ*йз%ЙНОЙ*йи%ЙНУЮ*йй%ЙНОЙ*йк%ЙНОЮ*йк%ЙНОЙ*йл%ЙНОЕ*йм%ЙНОГО*йн%ЙНОМУ*йо%ЙНОЕ*йп%ЙНЫМ*йр%ЙНОМ*йс%ЙНЫЕ*йт%ЙНЫХ*йу%ЙНЫМ*йф%ЙНЫХ*йх%ЙНЫЕ*Рь%ЙНЫМИ*йц%ЙНЫХ*йч%ЕН*йш%ЙНА*йщ%ЙНО*йы%ЙНЫ*йэ%ЙНЕЕ*йю%ЙНЕЙ*йю%ЙНЕЕ*йъ*ПО%ЙНЕЙ*йъ*ПО
%ОЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ОЙ*Рщ%ЫМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ЫМ*йр%ОМ*йс%ЫЕ*йт%ЫХ*йу%ЫМ*йф%ЫХ*йх%ЫЕ*Рь%ЫМИ*йц%ЫХ*йч%ЕЕ*йю%ЕЙ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО
%ИЙ*йа%ЕГО*йб%ЕМУ*йв%ЕГО*йг%ИЙ*Рщ%ИМ*йд%ЕМ*йе%АЯ*йж%ЕЙ*йз%ЕЙ*йи%УЮ*йй%ЕЙ*йк%ЕЮ*йк%ЕЙ*йл%ЕЕ*йм%ЕГО*йн%ЕМУ*йо%ЕЕ*йп%ИМ*йр%ЕМ*йс%ИЕ*йт%ИХ*йу%ИМ*йф%ИХ*йх%ИЕ*Рь%ИМИ*йц%ИХ*йч%йш%А*йщ%Е*йы%И*йэ%ЕЕ*йю%ЕЙ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО
%ЫЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ЫЙ*Рщ%ЫМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ЫМ*йр%ОМ*йс%ЫЕ*йт%ЫХ*йу%ЫМ*йф%ЫХ*йх%ЫЕ*Рь%ЫМИ*йц%ЫХ*йч%йш%А*йщ%А*йщ%О*йы%Ы*йэ%ЕЕ*йю%ЕЙ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО
%ИЙ*йа%ЕГО*йб%ЕМУ*йв%ЕГО*йг%ИЙ*Рщ%ИМ*йд%ЕМ*йе%ЯЯ*йж%ЕЙ*йз%ЕЙ*йи%ЮЮ*йй%ЕЙ*йк%ЕЮ*йк%ЕЙ*йл%ЕЕ*йм%ЕГО*йн%ЕМУ*йо%ЕЕ*йп%ИМ*йр%ЕМ*йс%ИЕ*йт%ИХ*йу%ИМ*йф%ИХ*йх%ИЕ*Рь%ИМИ*йц%ИХ*йч%Я*йщ%Е*йы%И*йэ%ЕЕ*йю%ЕЙ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО
%ИЙ*йа%ЕГО*йб%ЕМУ*йв%ЕГО*йг%ИЙ*Рщ%ИМ*йд%ЕМ*йе%АЯ*йж%ЕЙ*йз%ЕЙ*йи%УЮ*йй%ЕЙ*йк%ЕЮ*йк%ЕЙ*йл%ЕЕ*йм%ЕГО*йн%ЕМУ*йо%ЕЕ*йп%ИМ*йр%ЕМ*йс%ИЕ*йт%ИХ*йу%ИМ*йф%ИХ*йх%ИЕ*Рь%ИМИ*йц%ИХ*йч%ЕЕ*йю%ЕЙ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО
%ГОЙ*йа%ГОГО*йб%ГОМУ*йв%ГОГО*йг%ГОЙ*Рщ%ГИМ*йд%ГОМ*йе%ГАЯ*йж%ГОЙ*йз%ГОЙ*йи%ГУЮ*йй%ГОЙ*йк%ГОЮ*йк%ГОЙ*йл%ГОЕ*йм%ГОГО*йн%ГОМУ*йо%ГОЕ*йп%ГИМ*йр%ГОМ*йс%ГИЕ*йт%ГИХ*йу%ГИМ*йф%ГИХ*йх%ГИЕ*Рь%ГИМИ*йц%ГИХ*йч%Г*йш%ГА*йщ%ГО*йы%ГИ*йэ%ЖЕ*йю%ЖЕ*йъ*ПО
%ЁМНЫЙ*йа%ЁМНОГО*йб%ЁМНОМУ*йв%ЁМНОГО*йг%ЁМНЫЙ*Рщ%ЁМНЫМ*йд%ЁМНОМ*йе%ЁМНАЯ*йж%ЁМНОЙ*йз%ЁМНОЙ*йи%ЁМНУЮ*йй%ЁМНОЙ*йк%ЁМНОЮ*йк%ЁМНОЙ*йл%ЁМНОЕ*йм%ЁМНОГО*йн%ЁМНОМУ*йо%ЁМНОЕ*йп%ЁМНЫМ*йр%ЁМНОМ*йс%ЁМНЫЕ*йт%ЁМНЫХ*йу%ЁМНЫМ*йф%ЁМНЫХ*йх%ЁМНЫЕ*Рь%ЁМНЫМИ*йц%ЁМНЫХ*йч%ЕМЁН*йш%ЕМНА*йщ%ЕМНО*йы%ЕМНЫ*йэ%ЕМНЕЕ*йю%ЕМНЕЙ*йю%ЕМНЕЕ*йъ*ПО%ЕМНЕЙ*йъ*ПО
%ЁПЛЫЙ*йа%ЁПЛОГО*йб%ЁПЛОМУ*йв%ЁПЛОГО*йг%ЁПЛЫЙ*Рщ%ЁПЛЫМ*йд%ЁПЛОМ*йе%ЁПЛАЯ*йж%ЁПЛОЙ*йз%ЁПЛОЙ*йи%ЁПЛУЮ*йй%ЁПЛОЙ*йк%ЁПЛОЮ*йк%ЁПЛОЙ*йл%ЁПЛОЕ*йм%ЁПЛОГО*йн%ЁПЛОМУ*йо%ЁПЛОЕ*йп%ЁПЛЫМ*йр%ЁПЛОМ*йс%ЁПЛЫЕ*йт%ЁПЛЫХ*йу%ЁПЛЫМ*йф%ЁПЛЫХ*йх%ЁПЛЫЕ*Рь%ЁПЛЫМИ*йц%ЁПЛЫХ*йч%ЕПЁЛ*йш%ЕПЛА*йщ%ЕПЛО*йы%ЕПЛЫ*йэ%ЕПЛЕЕ*йю%ЕПЛЕЙ*йю%ЕПЛЕЕ*йъ*ПО%ЕПЛЕЙ*йъ*ПО
%ЁРНЫЙ*йа%ЁРНОГО*йб%ЁРНОМУ*йв%ЁРНОГО*йг%ЁРНЫЙ*Рщ%ЁРНЫМ*йд%ЁРНОМ*йе%ЁРНАЯ*йж%ЁРНОЙ*йз%ЁРНОЙ*йи%ЁРНУЮ*йй%ЁРНОЙ*йк%ЁРНОЮ*йк%ЁРНОЙ*йл%ЁРНОЕ*йм%ЁРНОГО*йн%ЁРНОМУ*йо%ЁРНОЕ*йп%ЁРНЫМ*йр%ЁРНОМ*йс%ЁРНЫЕ*йт%ЁРНЫХ*йу%ЁРНЫМ*йф%ЁРНЫХ*йх%ЁРНЫЕ*Рь%ЁРНЫМИ*йц%ЁРНЫХ*йч%ЕРЁН*йш%ЕРНА*йщ%ЕРНО*йы%ЕРНЫ*йэ%ЕРНЕЕ*йю%ЕРНЕЙ*йю%ЕРНЕЕ*йъ*ПО%ЕРНЕЙ*йъ*ПО
%НЫЙ*йа%НОГО*йб%НОМУ*йв%НОГО*йг%НЫЙ*Рщ%НЫМ*йд%НОМ*йе%НАЯ*йж%НОЙ*йз%НОЙ*йи%НУЮ*йй%НОЙ*йк%НОЮ*йк%НОЙ*йл%НОЕ*йм%НОГО*йн%НОМУ*йо%НОЕ*йп%НЫМ*йр%НОМ*йс%НЫЕ*йт%НЫХ*йу%НЫМ*йф%НЫХ*йх%НЫЕ*Рь%НЫМИ*йц%НЫХ*йч%ЕН*йш%НА*йщ%НО*йы%НЫ*йэ%НЕЕ*йю%НЕЙ*йю%НЕЕ*йъ*ПО%НЕЙ*йъ*ПО%НЕЙШИЙ*иа%НЕЙШЕГО*иб%НЕЙШЕМУ*ив%НЕЙШЕГО*иг%НЕЙШИЙ*ид%НЕЙШИМ*ие%НЕЙШЕМ*Гб%НЕЙШАЯ*Гв%НЕЙШЕЙ*Гг%НЕЙШЕЙ*Гд%НЕЙШУЮ*Ге%НЕЙШЕЙ*Гж%НЕЙШЕЮ*Гж%НЕЙШЕЙ*Гз%НЕЙШЕЕ*ин%НЕЙШЕГО*ио%НЕЙШЕМУ*ип%НЕЙШЕЕ*ир%НЕЙШИМ*ис%НЕЙШЕМ*ит%НЕЙШИЕ*иу%НЕЙШИХ*иф%НЕЙШИМ*их%НЕЙШИХ*иц%НЕЙШИЕ*ич%НЕЙШИМИ*иш%НЕЙШИХ*ищ
%НЫЙ*йа%НОГО*йб%НОМУ*йв%НОГО*йг%НЫЙ*Рщ%НЫМ*йд%НОМ*йе%НАЯ*йж%НОЙ*йз%НОЙ*йи%НУЮ*йй%НОЙ*йк%НОЮ*йк%НОЙ*йл%НОЕ*йм%НОГО*йн%НОМУ*йо%НОЕ*йп%НЫМ*йр%НОМ*йс%НЫЕ*йт%НЫХ*йу%НЫМ*йф%НЫХ*йх%НЫЕ*Рь%НЫМИ*йц%НЫХ*йч%ЕН*йш%НА*йщ%НО*йы%НЫ*йэ%НЕЕ*йю%НЕЙ*йю%НЕЕ*йъ*ПО%НЕЙ*йъ*ПО%НЕЙШИЙ*иа%НЕЙШИЙ*иа*НАИ%НЕЙШЕГО*иб%НЕЙШЕГО*иб*НАИ%НЕЙШЕМУ*ив%НЕЙШЕМУ*ив*НАИ%НЕЙШЕГО*иг%НЕЙШЕГО*иг*НАИ%НЕЙШИЙ*ид%НЕЙШИЙ*ид*НАИ%НЕЙШИМ*ие%НЕЙШИМ*ие*НАИ%НЕЙШЕМ*Гб%НЕЙШЕМ*Гб*НАИ%НЕЙШАЯ*Гв%НЕЙШАЯ*Гв*НАИ%НЕЙШЕЙ*Гг%НЕЙШЕЙ*Гг*НАИ%НЕЙШЕЙ*Гд%НЕЙШЕЙ*Гд*НАИ%НЕЙШУЮ*Ге%НЕЙШУЮ*Ге*НАИ%НЕЙШЕЙ*Гж%НЕЙШЕЙ*Гж*НАИ%НЕЙШЕЮ*Гж%НЕЙШЕЮ*Гж*НАИ%НЕЙШЕЙ*Гз%НЕЙШЕЙ*Гз*НАИ%НЕЙШЕЕ*ин%НЕЙШЕЕ*ин*НАИ%НЕЙШЕГО*ио%НЕЙШЕГО*ио*НАИ%НЕЙШЕМУ*ип%НЕЙШЕМУ*ип*НАИ%НЕЙШЕЕ*ир%НЕЙШЕЕ*ир*НАИ%НЕЙШИМ*ис%НЕЙШИМ*ис*НАИ%НЕЙШЕМ*ит%НЕЙШЕМ*ит*НАИ%НЕЙШИЕ*иу%НЕЙШИЕ*иу*НАИ%НЕЙШИХ*иф%НЕЙШИХ*иф*НАИ%НЕЙШИМ*их%НЕЙШИМ*их*НАИ%НЕЙШИХ*иц%НЕЙШИХ*иц*НАИ%НЕЙШИЕ*ич%НЕЙШИЕ*ич*НАИ%НЕЙШИМИ*иш%НЕЙШИМИ*иш*НАИ%НЕЙШИХ*ищ%НЕЙШИХ*ищ*НАИ
%ЬНЫЙ*йа%ЬНОГО*йб%ЬНОМУ*йв%ЬНОГО*йг%ЬНЫЙ*Рщ%ЬНЫМ*йд%ЬНОМ*йе%ЬНАЯ*йж%ЬНОЙ*йз%ЬНОЙ*йи%ЬНУЮ*йй%ЬНОЙ*йк%ЬНОЮ*йк%ЬНОЙ*йл%ЬНОЕ*йм%ЬНОГО*йн%ЬНОМУ*йо%ЬНОЕ*йп%ЬНЫМ*йр%ЬНОМ*йс%ЬНЫЕ*йт%ЬНЫХ*йу%ЬНЫМ*йф%ЬНЫХ*йх%ЬНЫЕ*Рь%ЬНЫМИ*йц%ЬНЫХ*йч%ЕН*йш%ЬНА*йщ%ЬНО*йы%ЬНЫ*йэ%ЬНЕЕ*йю%ЬНЕЙ*йю%ЬНЕЕ*йъ*ПО%ЬНЕЙ*йъ*ПО%ЬНЕЙШИЙ*иа%ЬНЕЙШЕГО*иб%ЬНЕЙШЕМУ*ив%ЬНЕЙШЕГО*иг%ЬНЕЙШИЙ*ид%ЬНЕЙШИМ*ие%ЬНЕЙШЕМ*Гб%ЬНЕЙШАЯ*Гв%ЬНЕЙШЕЙ*Гг%ЬНЕЙШЕЙ*Гд%ЬНЕЙШУЮ*Ге%ЬНЕЙШЕЙ*Гж%ЬНЕЙШЕЮ*Гж%ЬНЕЙШЕЙ*Гз%ЬНЕЙШЕЕ*ин%ЬНЕЙШЕГО*ио%ЬНЕЙШЕМУ*ип%ЬНЕЙШЕЕ*ир%ЬНЕЙШИМ*ис%ЬНЕЙШЕМ*ит%ЬНЕЙШИЕ*иу%ЬНЕЙШИХ*иф%ЬНЕЙШИМ*их%ЬНЕЙШИХ*иц%ЬНЕЙШИЕ*ич%ЬНЕЙШИМИ*иш%ЬНЕЙШИХ*ищ
%ЫЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ЫЙ*Рщ%ЫМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ЫМ*йр%ОМ*йс%ЫЕ*йт%ЫХ*йу%ЫМ*йф%ЫХ*йх%ЫЕ*Рь%ЫМИ*йц%ЫХ*йч%йш%А*йщ%А*йщ%О*йы%Ы*йэ%ЕЕ*йю%ЕЙ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО%ЕЙШИЙ*иа%ЕЙШЕГО*иб%ЕЙШЕМУ*ив%ЕЙШЕГО*иг%ЕЙШИЙ*ид%ЕЙШИМ*ие%ЕЙШЕМ*Гб%ЕЙШАЯ*Гв%ЕЙШЕЙ*Гг%ЕЙШЕЙ*Гд%ЕЙШУЮ*Ге%ЕЙШЕЙ*Гж%ЕЙШЕЮ*Гж%ЕЙШЕЙ*Гз%ЕЙШЕЕ*ин%ЕЙШЕГО*ио%ЕЙШЕМУ*ип%ЕЙШЕЕ*ир%ЕЙШИМ*ис%ЕЙШЕМ*ит%ЕЙШИЕ*иу%ЕЙШИХ*иф%ЕЙШИМ*их%ЕЙШИХ*иц%ЕЙШИЕ*ич%ЕЙШИМИ*иш%ЕЙШИХ*ищ
%ЫЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ЫЙ*Рщ%ЫМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ЫМ*йр%ОМ*йс%ЫЕ*йт%ЫХ*йу%ЫМ*йф%ЫХ*йх%ЫЕ*Рь%ЫМИ*йц%ЫХ*йч%йш%А*йщ%О*йы%Ы*йэ%ЕЕ*йю%ЕЙ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО%ЕЙШИЙ*иа%ЕЙШЕГО*иб%ЕЙШЕМУ*ив%ЕЙШЕГО*иг%ЕЙШИЙ*ид%ЕЙШИМ*ие%ЕЙШЕМ*Гб%ЕЙШАЯ*Гв%ЕЙШЕЙ*Гг%ЕЙШЕЙ*Гд%ЕЙШУЮ*Ге%ЕЙШЕЙ*Гж%ЕЙШЕЮ*Гж%ЕЙШЕЙ*Гз%ЕЙШЕЕ*ин%ЕЙШЕГО*ио%ЕЙШЕМУ*ип%ЕЙШЕЕ*ир%ЕЙШИМ*ис%ЕЙШЕМ*ит%ЕЙШИЕ*иу%ЕЙШИХ*иф%ЕЙШИМ*их%ЕЙШИХ*иц%ЕЙШИЕ*ич%ЕЙШИМИ*иш%ЕЙШИХ*ищ
%НЫЙ*йа%НОГО*йб%НОМУ*йв%НОГО*йг%НЫЙ*Рщ%НЫМ*йд%НОМ*йе%НАЯ*йж%НОЙ*йз%НОЙ*йи%НУЮ*йй%НОЙ*йк%НОЮ*йк%НОЙ*йл%НОЕ*йм%НОГО*йн%НОМУ*йо%НОЕ*йп%НЫМ*йр%НОМ*йс%НЫЕ*йт%НЫХ*йу%НЫМ*йф%НЫХ*йх%НЫЕ*Рь%НЫМИ*йц%НЫХ*йч%ЕН*йш%НА*йщ%НО*йы%НЫ*йэ%НЫ*йэ%НЕЕ*йю%НЕЙ*йю%НЕЕ*йъ*ПО%НЕЙ*йъ*ПО%НЕЙШИЙ*иа%НЕЙШИЙ*иа*НАИ%НЕЙШЕГО*иб%НЕЙШЕГО*иб*НАИ%НЕЙШЕМУ*ив%НЕЙШЕМУ*ив*НАИ%НЕЙШЕГО*иг%НЕЙШЕГО*иг*НАИ%НЕЙШИЙ*ид%НЕЙШИЙ*ид*НАИ%НЕЙШИМ*ие%НЕЙШИМ*ие*НАИ%НЕЙШЕМ*Гб%НЕЙШЕМ*Гб*НАИ%НЕЙШАЯ*Гв%НЕЙШАЯ*Гв*НАИ%НЕЙШЕЙ*Гг%НЕЙШЕЙ*Гг*НАИ%НЕЙШЕЙ*Гд%НЕЙШЕЙ*Гд*НАИ%НЕЙШУЮ*Ге%НЕЙШУЮ*Ге*НАИ%НЕЙШЕЙ*Гж%НЕЙШЕЙ*Гж*НАИ%НЕЙШЕЮ*Гж%НЕЙШЕЮ*Гж*НАИ%НЕЙШЕЙ*Гз%НЕЙШЕЙ*Гз*НАИ%НЕЙШЕЕ*ин%НЕЙШЕЕ*ин*НАИ%НЕЙШЕГО*ио%НЕЙШЕГО*ио*НАИ%НЕЙШЕМУ*ип%НЕЙШЕМУ*ип*НАИ%НЕЙШЕЕ*ир%НЕЙШЕЕ*ир*НАИ%НЕЙШИМ*ис%НЕЙШИМ*ис*НАИ%НЕЙШЕМ*ит%НЕЙШЕМ*ит*НАИ%НЕЙШИЕ*иу%НЕЙШИЕ*иу*НАИ%НЕЙШИХ*иф%НЕЙШИХ*иф*НАИ%НЕЙШИМ*их%НЕЙШИМ*их*НАИ%НЕЙШИХ*иц%НЕЙШИХ*иц*НАИ%НЕЙШИЕ*ич%НЕЙШИЕ*ич*НАИ%НЕЙШИМИ*иш%НЕЙШИМИ*иш*НАИ%НЕЙШИХ*ищ%НЕЙШИХ*ищ*НАИ
%ЫЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ЫЙ*Рщ%ЫМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ЫМ*йр%ОМ*йс%ЫЕ*йт%ЫХ*йу%ЫМ*йф%ЫХ*йх%ЫЕ*Рь%ЫМИ*йц%ЫХ*йч%йш%А*йщ%О*йы%О*йы%Ы*йэ%Ы*йэ%ЕЕ*йю%ЕЙ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО%ЕЙШИЙ*иа%ЕЙШИЙ*иа*НАИ%ЕЙШЕГО*иб%ЕЙШЕГО*иб*НАИ%ЕЙШЕМУ*ив%ЕЙШЕМУ*ив*НАИ%ЕЙШЕГО*иг%ЕЙШЕГО*иг*НАИ%ЕЙШИЙ*ид%ЕЙШИЙ*ид*НАИ%ЕЙШИМ*ие%ЕЙШИМ*ие*НАИ%ЕЙШЕМ*Гб%ЕЙШЕМ*Гб*НАИ%ЕЙШАЯ*Гв%ЕЙШАЯ*Гв*НАИ%ЕЙШЕЙ*Гг%ЕЙШЕЙ*Гг*НАИ%ЕЙШЕЙ*Гд%ЕЙШЕЙ*Гд*НАИ%ЕЙШУЮ*Ге%ЕЙШУЮ*Ге*НАИ%ЕЙШЕЙ*Гж%ЕЙШЕЙ*Гж*НАИ%ЕЙШЕЮ*Гж%ЕЙШЕЮ*Гж*НАИ%ЕЙШЕЙ*Гз%ЕЙШЕЙ*Гз*НАИ%ЕЙШЕЕ*ин%ЕЙШЕЕ*ин*НАИ%ЕЙШЕГО*ио%ЕЙШЕГО*ио*НАИ%ЕЙШЕМУ*ип%ЕЙШЕМУ*ип*НАИ%ЕЙШЕЕ*ир%ЕЙШЕЕ*ир*НАИ%ЕЙШИМ*ис%ЕЙШИМ*ис*НАИ%ЕЙШЕМ*ит%ЕЙШЕМ*ит*НАИ%ЕЙШИЕ*иу%ЕЙШИЕ*иу*НАИ%ЕЙШИХ*иф%ЕЙШИХ*иф*НАИ%ЕЙШИМ*их%ЕЙШИМ*их*НАИ%ЕЙШИХ*иц%ЕЙШИХ*иц*НАИ%ЕЙШИЕ*ич%ЕЙШИЕ*ич*НАИ%ЕЙШИМИ*иш%ЕЙШИМИ*иш*НАИ%ЕЙШИХ*ищ%ЕЙШИХ*ищ*НАИ
%ЫЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ЫЙ*Рщ%ЫМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ЫМ*йр%ОМ*йс%ЫЕ*йт%ЫХ*йу%ЫМ*йф%ЫХ*йх%ЫЕ*Рь%ЫМИ*йц%ЫХ*йч%йш%А*йщ%О*йы%Ы*йэ%Ы*йэ%ЕЕ*йю%ЕЙ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО%ЕЙШИЙ*иа%ЕЙШЕГО*иб%ЕЙШЕМУ*ив%ЕЙШЕГО*иг%ЕЙШИЙ*ид%ЕЙШИМ*ие%ЕЙШЕМ*Гб%ЕЙШАЯ*Гв%ЕЙШЕЙ*Гг%ЕЙШЕЙ*Гд%ЕЙШУЮ*Ге%ЕЙШЕЙ*Гж%ЕЙШЕЮ*Гж%ЕЙШЕЙ*Гз%ЕЙШЕЕ*ин%ЕЙШЕГО*ио%ЕЙШЕМУ*ип%ЕЙШЕЕ*ир%ЕЙШИМ*ис%ЕЙШЕМ*ит%ЕЙШИЕ*иу%ЕЙШИХ*иф%ЕЙШИМ*их%ЕЙШИХ*иц%ЕЙШИЕ*ич%ЕЙШИМИ*иш%ЕЙШИХ*ищ
%НЫЙ*йа%НОГО*йб%НОМУ*йв%НОГО*йг%НЫЙ*Рщ%НЫМ*йд%НОМ*йе%НАЯ*йж%НОЙ*йз%НОЙ*йи%НУЮ*йй%НОЙ*йк%НОЮ*йк%НОЙ*йл%НОЕ*йм%НОГО*йн%НОМУ*йо%НОЕ*йп%НЫМ*йр%НОМ*йс%НЫЕ*йт%НЫХ*йу%НЫМ*йф%НЫХ*йх%НЫЕ*Рь%НЫМИ*йц%НЫХ*йч%йш%ЕН*йш%НА*йщ%НО*йы%НЫ*йэ%НЕЕ*йю%НЕЙ*йю%НЕЕ*йъ*ПО%НЕЙ*йъ*ПО%НЕЙШИЙ*иа%НЕЙШЕГО*иб%НЕЙШЕМУ*ив%НЕЙШЕГО*иг%НЕЙШИЙ*ид%НЕЙШИМ*ие%НЕЙШЕМ*Гб%НЕЙШАЯ*Гв%НЕЙШЕЙ*Гг%НЕЙШЕЙ*Гд%НЕЙШУЮ*Ге%НЕЙШЕЙ*Гж%НЕЙШЕЮ*Гж%НЕЙШЕЙ*Гз%НЕЙШЕЕ*ин%НЕЙШЕГО*ио%НЕЙШЕМУ*ип%НЕЙШЕЕ*ир%НЕЙШИМ*ис%НЕЙШЕМ*ит%НЕЙШИЕ*иу%НЕЙШИХ*иф%НЕЙШИМ*их%НЕЙШИХ*иц%НЕЙШИЕ*ич%НЕЙШИМИ*иш%НЕЙШИХ*ищ
%БОЛЬШОЙ*йа%БОЛЬШОГО*йб%БОЛЬШОМУ*йв%БОЛЬШОГО*йг%БОЛЬШОЙ*Рщ%БОЛЬШИМ*йд%БОЛЬШОМ*йе%БОЛЬШАЯ*йж%БОЛЬШОЙ*йз%БОЛЬШОЙ*йи%БОЛЬШУЮ*йй%БОЛЬШОЙ*йк%БОЛЬШОЮ*йк%БОЛЬШОЙ*йл%БОЛЬШОЕ*йм%БОЛЬШОГО*йн%БОЛЬШОМУ*йо%БОЛЬШОЕ*йп%БОЛЬШИМ*йр%БОЛЬШОМ*йс%БОЛЬШИЕ*йт%БОЛЬШИХ*йу%БОЛЬШИМ*йф%БОЛЬШИХ*йх%БОЛЬШИЕ*Рь%БОЛЬШИМИ*йц%БОЛЬШИХ*йч%ВЕЛИК*йш%ВЕЛИКА*йщ%ВЕЛИКО*йы%ВЕЛИКИ*йэ%БОЛЬШЕ*йю%БОЛЬШЕ*йъ*ПО%БОЛЬШИЙ*иа*НАИ%БОЛЬШЕГО*иб*НАИ%БОЛЬШЕМУ*ив*НАИ%БОЛЬШЕГО*иг*НАИ%БОЛЬШИЙ*ид*НАИ%БОЛЬШИМ*ие*НАИ%БОЛЬШЕМ*Гб*НАИ%БОЛЬШАЯ*Гв*НАИ%БОЛЬШЕЙ*Гг*НАИ%БОЛЬШЕЙ*Гд*НАИ%БОЛЬШУЮ*Ге*НАИ%БОЛЬШЕЙ*Гж*НАИ%БОЛЬШЕЮ*Гж*НАИ%БОЛЬШЕЙ*Гз*НАИ%БОЛЬШЕЕ*ин*НАИ%БОЛЬШЕГО*ио*НАИ%БОЛЬШЕМУ*ип*НАИ%БОЛЬШЕЕ*ир*НАИ%БОЛЬШИМ*ис*НАИ%БОЛЬШЕМ*ит*НАИ%БОЛЬШИЕ*иу*НАИ%БОЛЬШИХ*иф*НАИ%БОЛЬШИМ*их*НАИ%БОЛЬШИХ*иц*НАИ%БОЛЬШИЕ*ич*НАИ%БОЛЬШИМИ*иш*НАИ%БОЛЬШИХ*ищ*НАИ
%НЫЙ*йа%НОГО*йб%НОМУ*йв%НОГО*йг%НЫЙ*Рщ%НЫМ*йд%НОМ*йе%НАЯ*йж%НОЙ*йз%НОЙ*йи%НУЮ*йй%НОЙ*йк%НОЮ*йк%НОЙ*йл%НОЕ*йм%НОГО*йн%НОМУ*йо%НОЕ*йп%НЫМ*йр%НОМ*йс%НЫЕ*йт%НЫХ*йу%НЫМ*йф%НЫХ*йх%НЫЕ*Рь%НЫМИ*йц%НЫХ*йч%ЕН*йш%НА*йщ%НО*йы%НЫ*йэ%НЫ*йэ%НЕЕ*йю%НЕЙ*йю%НЕЕ*йъ*ПО%НЕЙ*йъ*ПО%НЕЙШИЙ*иа%НЕЙШЕГО*иб%НЕЙШЕМУ*ив%НЕЙШЕГО*иг%НЕЙШИЙ*ид%НЕЙШИМ*ие%НЕЙШЕМ*Гб%НЕЙШАЯ*Гв%НЕЙШЕЙ*Гг%НЕЙШЕЙ*Гд%НЕЙШУЮ*Ге%НЕЙШЕЙ*Гж%НЕЙШЕЮ*Гж%НЕЙШЕЙ*Гз%НЕЙШЕЕ*ин%НЕЙШЕГО*ио%НЕЙШЕМУ*ип%НЕЙШЕЕ*ир%НЕЙШИМ*ис%НЕЙШЕМ*ит%НЕЙШИЕ*иу%НЕЙШИХ*иф%НЕЙШИМ*их%НЕЙШИХ*иц%НЕЙШИЕ*ич%НЕЙШИМИ*иш%НЕЙШИХ*ищ
%СОКИЙ*йа%СОКОГО*йб%СОКОМУ*йв%СОКОГО*йг%СОКИЙ*Рщ%СОКИМ*йд%СОКОМ*йе%СОКАЯ*йж%СОКОЙ*йз%СОКОЙ*йи%СОКУЮ*йй%СОКОЙ*йк%СОКОЮ*йк%СОКОЙ*йл%СОКОЕ*йм%СОКОГО*йн%СОКОМУ*йо%СОКОЕ*йп%СОКИМ*йр%СОКОМ*йс%СОКИЕ*йт%СОКИХ*йу%СОКИМ*йф%СОКИХ*йх%СОКИЕ*Рь%СОКИМИ*йц%СОКИХ*йч%СОК*йш%СОКА*йщ%СОКО*йы%СОКО*йы%СОКИ*йэ%СОКИ*йэ%ШЕ*йю%ШЕ*йъ*ПО%СОЧАЙШИЙ*иа%СОЧАЙШИЙ*иа*НАИ%СШИЙ*иа%СШИЙ*иа*НАИ%СОЧАЙШЕГО*иб%СОЧАЙШЕГО*иб*НАИ%СШЕГО*иб%СШЕГО*иб*НАИ%СОЧАЙШЕМУ*ив%СОЧАЙШЕМУ*ив*НАИ%СШЕМУ*ив%СШЕМУ*ив*НАИ%СОЧАЙШЕГО*иг%СОЧАЙШЕГО*иг*НАИ%СШЕГО*иг%СШЕГО*иг*НАИ%СОЧАЙШИЙ*ид%СОЧАЙШИЙ*ид*НАИ%СШИЙ*ид%СШИЙ*ид*НАИ%СОЧАЙШИМ*ие%СОЧАЙШИМ*ие*НАИ%СШИМ*ие%СШИМ*ие*НАИ%СОЧАЙШЕМ*Гб%СОЧАЙШЕМ*Гб*НАИ%СШЕМ*Гб%СШЕМ*Гб*НАИ%СОЧАЙШАЯ*Гв%СОЧАЙШАЯ*Гв*НАИ%СШАЯ*Гв%СШАЯ*Гв*НАИ%СОЧАЙШЕЙ*Гг%СОЧАЙШЕЙ*Гг*НАИ%СШЕЙ*Гг%СШЕЙ*Гг*НАИ%СОЧАЙШЕЙ*Гд%СОЧАЙШЕЙ*Гд*НАИ%СШЕЙ*Гд%СШЕЙ*Гд*НАИ%СОЧАЙШУЮ*Ге%СОЧАЙШУЮ*Ге*НАИ%СШУЮ*Ге%СШУЮ*Ге*НАИ%СОЧАЙШЕЙ*Гж%СОЧАЙШЕЙ*Гж*НАИ%СОЧАЙШЕЮ*Гж%СОЧАЙШЕЮ*Гж*НАИ%СШЕЙ*Гж%СШЕЙ*Гж*НАИ%СШЕЮ*Гж%СШЕЮ*Гж*НАИ%СОЧАЙШЕЙ*Гз%СОЧАЙШЕЙ*Гз*НАИ%СШЕЙ*Гз%СШЕЙ*Гз*НАИ%СОЧАЙШЕЕ*ин%СОЧАЙШЕЕ*ин*НАИ%СШЕЕ*ин%СШЕЕ*ин*НАИ%СОЧАЙШЕГО*ио%СОЧАЙШЕГО*ио*НАИ%СШЕГО*ио%СШЕГО*ио*НАИ%СОЧАЙШЕМУ*ип%СОЧАЙШЕМУ*ип*НАИ%СШЕМУ*ип%СШЕМУ*ип*НАИ%СОЧАЙШЕЕ*ир%СОЧАЙШЕЕ*ир*НАИ%СШЕЕ*ир%СШЕЕ*ир*НАИ%СОЧАЙШИМ*ис%СОЧАЙШИМ*ис*НАИ%СШИМ*ис%СШИМ*ис*НАИ%СОЧАЙШЕМ*ит%СОЧАЙШЕМ*ит*НАИ%СШЕМ*ит%СШЕМ*ит*НАИ%СОЧАЙШИЕ*иу%СОЧАЙШИЕ*иу*НАИ%СШИЕ*иу%СШИЕ*иу*НАИ%СОЧАЙШИХ*иф%СОЧАЙШИХ*иф*НАИ%СШИХ*иф%СШИХ*иф*НАИ%СОЧАЙШИМ*их%СОЧАЙШИМ*их*НАИ%СШИМ*их%СШИМ*их*НАИ%СОЧАЙШИХ*иц%СОЧАЙШИХ*иц*НАИ%СШИХ*иц%СШИХ*иц*НАИ%СОЧАЙШИЕ*ич%СОЧАЙШИЕ*ич*НАИ%СШИЕ*ич%СШИЕ*ич*НАИ%СОЧАЙШИМИ*иш%СОЧАЙШИМИ*иш*НАИ%СШИМИ*иш%СШИМИ*иш*НАИ%СОЧАЙШИХ*ищ%СОЧАЙШИХ*ищ*НАИ%СШИХ*ищ%СШИХ*ищ*НАИ
%НЫЙ*йа%НОГО*йб%НОМУ*йв%НОГО*йг%НЫЙ*Рщ%НЫМ*йд%НОМ*йе%НАЯ*йж%НОЙ*йз%НОЙ*йи%НУЮ*йй%НОЙ*йк%НОЮ*йк%НОЙ*йл%НОЕ*йм%НОГО*йн%НОМУ*йо%НОЕ*йп%НЫМ*йр%НОМ*йс%НЫЕ*йт%НЫХ*йу%НЫМ*йф%НЫХ*йх%НЫЕ*Рь%НЫМИ*йц%НЫХ*йч%ЕН*йш%НА*йщ%НО*йы%НО*йы%НЫ*йэ%НЫ*йэ%НЕЕ*йю%НЕЙ*йю%НЕЕ*йъ*ПО%НЕЙ*йъ*ПО%НЕЙШИЙ*иа%НЕЙШЕГО*иб%НЕЙШЕМУ*ив%НЕЙШЕГО*иг%НЕЙШИЙ*ид%НЕЙШИМ*ие%НЕЙШЕМ*Гб%НЕЙШАЯ*Гв%НЕЙШЕЙ*Гг%НЕЙШЕЙ*Гд%НЕЙШУЮ*Ге%НЕЙШЕЙ*Гж%НЕЙШЕЮ*Гж%НЕЙШЕЙ*Гз%НЕЙШЕЕ*ин%НЕЙШЕГО*ио%НЕЙШЕМУ*ип%НЕЙШЕЕ*ир%НЕЙШИМ*ис%НЕЙШЕМ*ит%НЕЙШИЕ*иу%НЕЙШИХ*иф%НЕЙШИМ*их%НЕЙШИХ*иц%НЕЙШИЕ*ич%НЕЙШИМИ*иш%НЕЙШИХ*ищ
%НЫЙ*йа%НОГО*йб%НОМУ*йв%НОГО*йг%НЫЙ*Рщ%НЫМ*йд%НОМ*йе%НАЯ*йж%НОЙ*йз%НОЙ*йи%НУЮ*йй%НОЙ*йк%НОЮ*йк%НОЙ*йл%НОЕ*йм%НОГО*йн%НОМУ*йо%НОЕ*йп%НЫМ*йр%НОМ*йс%НЫЕ*йт%НЫХ*йу%НЫМ*йф%НЫХ*йх%НЫЕ*Рь%НЫМИ*йц%НЫХ*йч%ЕН*йш%НА*йщ%НО*йы%НО*йы%НЫ*йэ%НЫ*йэ%НЕЕ*йю%НЕЙ*йю%НЕЕ*йъ*ПО%НЕЙ*йъ*ПО%НЕЙШИЙ*иа%НЕЙШИЙ*иа*НАИ%НЕЙШЕГО*иб%НЕЙШЕГО*иб*НАИ%НЕЙШЕМУ*ив%НЕЙШЕМУ*ив*НАИ%НЕЙШЕГО*иг%НЕЙШЕГО*иг*НАИ%НЕЙШИЙ*ид%НЕЙШИЙ*ид*НАИ%НЕЙШИМ*ие%НЕЙШИМ*ие*НАИ%НЕЙШЕМ*Гб%НЕЙШЕМ*Гб*НАИ%НЕЙШАЯ*Гв%НЕЙШАЯ*Гв*НАИ%НЕЙШЕЙ*Гг%НЕЙШЕЙ*Гг*НАИ%НЕЙШЕЙ*Гд%НЕЙШЕЙ*Гд*НАИ%НЕЙШУЮ*Ге%НЕЙШУЮ*Ге*НАИ%НЕЙШЕЙ*Гж%НЕЙШЕЙ*Гж*НАИ%НЕЙШЕЮ*Гж%НЕЙШЕЮ*Гж*НАИ%НЕЙШЕЙ*Гз%НЕЙШЕЙ*Гз*НАИ%НЕЙШЕЕ*ин%НЕЙШЕЕ*ин*НАИ%НЕЙШЕГО*ио%НЕЙШЕГО*ио*НАИ%НЕЙШЕМУ*ип%НЕЙШЕМУ*ип*НАИ%НЕЙШЕЕ*ир%НЕЙШЕЕ*ир*НАИ%НЕЙШИМ*ис%НЕЙШИМ*ис*НАИ%НЕЙШЕМ*ит%НЕЙШЕМ*ит*НАИ%НЕЙШИЕ*иу%НЕЙШИЕ*иу*НАИ%НЕЙШИХ*иф%НЕЙШИХ*иф*НАИ%НЕЙШИМ*их%НЕЙШИМ*их*НАИ%НЕЙШИХ*иц%НЕЙШИХ*иц*НАИ%НЕЙШИЕ*ич%НЕЙШИЕ*ич*НАИ%НЕЙШИМИ*иш%НЕЙШИМИ*иш*НАИ%НЕЙШИХ*ищ%НЕЙШИХ*ищ*НАИ
%АЛЕНЬКИЙ*йа%АЛЕНЬКОГО*йб%АЛЕНЬКОМУ*йв%АЛЕНЬКОГО*йг%АЛЕНЬКИЙ*Рщ%АЛЕНЬКИМ*йд%АЛЕНЬКОМ*йе%АЛЕНЬКАЯ*йж%АЛЕНЬКОЙ*йз%АЛЕНЬКОЙ*йи%АЛЕНЬКУЮ*йй%АЛЕНЬКОЙ*йк%АЛЕНЬКОЮ*йк%АЛЕНЬКОЙ*йл%АЛЕНЬКОЕ*йм%АЛЕНЬКОГО*йн%АЛЕНЬКОМУ*йо%АЛЕНЬКОЕ*йп%АЛЕНЬКИМ*йр%АЛЕНЬКОМ*йс%АЛЕНЬКИЕ*йт%АЛЕНЬКИХ*йу%АЛЕНЬКИМ*йф%АЛЕНЬКИХ*йх%АЛЕНЬКИЕ*Рь%АЛЕНЬКИМИ*йц%АЛЕНЬКИХ*йч%АЛ*йш%АЛА*йщ%АЛО*йы%АЛЫ*йэ%ЕНЬШЕ*йю%ЕНЬШЕ*йъ*ПО%АЛЕЙШИЙ*иа%ЕНЬШИЙ*иа*НАИ%АЛЕЙШЕГО*иб%ЕНЬШЕГО*иб*НАИ%АЛЕЙШЕМУ*ив%ЕНЬШЕМУ*ив*НАИ%АЛЕЙШЕГО*иг%ЕНЬШЕГО*иг*НАИ%АЛЕЙШИЙ*ид%ЕНЬШИЙ*ид*НАИ%АЛЕЙШИМ*ие%ЕНЬШИМ*ие*НАИ%АЛЕЙШЕМ*Гб%ЕНЬШЕМ*Гб*НАИ%АЛЕЙШАЯ*Гв%ЕНЬШАЯ*Гв*НАИ%АЛЕЙШЕЙ*Гг%ЕНЬШЕЙ*Гг*НАИ%АЛЕЙШЕЙ*Гд%ЕНЬШЕЙ*Гд*НАИ%АЛЕЙШУЮ*Ге%ЕНЬШУЮ*Ге*НАИ%АЛЕЙШЕЙ*Гж%АЛЕЙШЕЮ*Гж%ЕНЬШЕЙ*Гж*НАИ%ЕНЬШЕЮ*Гж*НАИ%АЛЕЙШЕЙ*Гз%ЕНЬШЕЙ*Гз*НАИ%АЛЕЙШЕЕ*ин%ЕНЬШЕЕ*ин*НАИ%АЛЕЙШЕГО*ио%ЕНЬШЕГО*ио*НАИ%АЛЕЙШЕМУ*ип%ЕНЬШЕМУ*ип*НАИ%АЛЕЙШЕЕ*ир%ЕНЬШЕЕ*ир*НАИ%АЛЕЙШИМ*ис%ЕНЬШИМ*ис*НАИ%АЛЕЙШЕМ*ит%ЕНЬШЕМ*ит*НАИ%АЛЕЙШИЕ*иу%ЕНЬШИЕ*иу*НАИ%АЛЕЙШИХ*иф%ЕНЬШИХ*иф*НАИ%АЛЕЙШИМ*их%ЕНЬШИМ*их*НАИ%АЛЕЙШИХ*иц%ЕНЬШИХ*иц*НАИ%АЛЕЙШИЕ*ич%ЕНЬШИЕ*ич*НАИ%АЛЕЙШИМИ*иш%ЕНЬШИМИ*иш*НАИ%АЛЕЙШИХ*ищ%ЕНЬШИХ*ищ*НАИ
%КИЙ*йа%КОГО*йб%КОМУ*йв%КОГО*йг%КИЙ*Рщ%КИМ*йд%КОМ*йе%КАЯ*йж%КОЙ*йз%КОЙ*йи%КУЮ*йй%КОЙ*йк%КОЮ*йк%КОЙ*йл%КОЕ*йм%КОГО*йн%КОМУ*йо%КОЕ*йп%КИМ*йр%КОМ*йс%КИЕ*йт%КИХ*йу%КИМ*йф%КИХ*йх%КИЕ*Рь%КИМИ*йц%КИХ*йч%ОК*йш%КА*йщ%КО*йы%КИ*йэ%ЧЕ*йю%ЧЕ*йъ*ПО%ЕЙШИЙ*иа%ЕЙШЕГО*иб%ЕЙШЕМУ*ив%ЕЙШЕГО*иг%ЕЙШИЙ*ид%ЕЙШИМ*ие%ЕЙШЕМ*Гб%ЕЙШАЯ*Гв%ЕЙШЕЙ*Гг%ЕЙШЕЙ*Гд%ЕЙШУЮ*Ге%ЕЙШЕЙ*Гж%ЕЙШЕЮ*Гж%ЕЙШЕЙ*Гз%ЕЙШЕЕ*ин%ЕЙШЕГО*ио%ЕЙШЕМУ*ип%ЕЙШЕЕ*ир%ЕЙШИМ*ис%ЕЙШЕМ*ит%ЕЙШИЕ*иу%ЕЙШИХ*иф%ЕЙШИМ*их%ЕЙШИХ*иц%ЕЙШИЕ*ич%ЕЙШИМИ*иш%ЕЙШИХ*ищ
%ИЙ*йа%ЕГО*йб%ЕМУ*йв%ЕГО*йг%ИЙ*Рщ%ИМ*йд%ЕМ*йе%ЯЯ*йж%ЕЙ*йз%ЕЙ*йи%ЮЮ*йй%ЕЙ*йк%ЕЮ*йк%ЕЙ*йл%ЕЕ*йм%ЕГО*йн%ЕМУ*йо%ЕЕ*йп%ИМ*йр%ЕМ*йс%ИЕ*йт%ИХ*йу%ИМ*йф%ИХ*йх%ИЕ*Рь%ИМИ*йц%ИХ*йч%Ь*йш%Я*йщ%Е*йы%И*йэ%ЕЕ*йю%ЕЙ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО%ЕЙШИЙ*иа%ЕЙШЕГО*иб%ЕЙШЕМУ*ив%ЕЙШЕГО*иг%ЕЙШИЙ*ид%ЕЙШИМ*ие%ЕЙШЕМ*Гб%ЕЙШАЯ*Гв%ЕЙШЕЙ*Гг%ЕЙШЕЙ*Гд%ЕЙШУЮ*Ге%ЕЙШЕЙ*Гж%ЕЙШЕЮ*Гж%ЕЙШЕЙ*Гз%ЕЙШЕЕ*ин%ЕЙШЕГО*ио%ЕЙШЕМУ*ип%ЕЙШЕЕ*ир%ЕЙШИМ*ис%ЕЙШЕМ*ит%ЕЙШИЕ*иу%ЕЙШИХ*иф%ЕЙШИМ*их%ЕЙШИХ*иц%ЕЙШИЕ*ич%ЕЙШИМИ*иш%ЕЙШИХ*ищ
%ЫЙ*йа%ОГО*йб%ОМУ*йв%ОГО*йг%ЫЙ*Рщ%ЫМ*йд%ОМ*йе%АЯ*йж%ОЙ*йз%ОЙ*йи%УЮ*йй%ОЙ*йк%ОЮ*йк%ОЙ*йл%ОЕ*йм%ОГО*йн%ОМУ*йо%ОЕ*йп%ЫМ*йр%ОМ*йс%ЫЕ*йт%ЫХ*йу%ЫМ*йф%ЫХ*йх%ЫЕ*Рь%ЫМИ*йц%ЫХ*йч%йш%А*йщ%О*йы%О*йы%Ы*йэ%Ы*йэ%ЕЕ*йю%ЕЙ*йю%ШЕ*йю%ЕЕ*йъ*ПО%ЕЙ*йъ*ПО%ШЕ*йъ*ПО%ЕЙШИЙ*иа%ЕЙШИЙ*иа*НАИ%ЕЙШЕГО*иб%ЕЙШЕГО*иб*НАИ%ЕЙШЕМУ*ив%ЕЙШЕМУ*ив*НАИ%ЕЙШЕГО*иг%ЕЙШЕГО*иг*НАИ%ЕЙШИЙ*ид%ЕЙШИЙ*ид*НАИ%ЕЙШИМ*ие%ЕЙШИМ*ие*НАИ%ЕЙШЕМ*Гб%ЕЙШЕМ*Гб*НАИ%ЕЙШАЯ*Гв%ЕЙШАЯ*Гв*НАИ%ЕЙШЕЙ*Гг%ЕЙШЕЙ*Гг*НАИ%ЕЙШЕЙ*Гд%ЕЙШЕЙ*Гд*НАИ%ЕЙШУЮ*Ге%ЕЙШУЮ*Ге*НАИ%ЕЙШЕЙ*Гж%ЕЙШЕЙ*Гж*НАИ%ЕЙШЕЮ*Гж%ЕЙШЕЮ*Гж*НАИ%ЕЙШЕЙ*Гз%ЕЙШЕЙ*Гз*НАИ%ЕЙШЕЕ*ин%ЕЙШЕЕ*ин*НАИ%ЕЙШЕГО*ио%ЕЙШЕГО*ио*НАИ%ЕЙШЕМУ*ип%ЕЙШЕМУ*ип*НАИ%ЕЙШЕЕ*ир%ЕЙШЕЕ*ир*НАИ%ЕЙШИМ*ис%ЕЙШИМ*ис*НАИ%ЕЙШЕМ*ит%ЕЙШЕМ*ит*НАИ%ЕЙШИЕ*иу%ЕЙШИЕ*иу*НАИ%ЕЙШИХ*иф%ЕЙШИХ*иф*НАИ%ЕЙШИМ*их%ЕЙШИМ*их*НАИ%ЕЙШИХ*иц%ЕЙШИХ*иц*НАИ%ЕЙШИЕ*ич%ЕЙШИЕ*ич*НАИ%ЕЙШИМИ*иш%ЕЙШИМИ*иш*НАИ%ЕЙШИХ*ищ%ЕЙШИХ*ищ*НАИ
%СТЫЙ*йа%СТОГО*йб%СТОМУ*йв%СТОГО*йг%СТЫЙ*Рщ%СТЫМ*йд%СТОМ*йе%СТАЯ*йж%СТОЙ*йз%СТОЙ*йи%СТУЮ*йй%СТОЙ*йк%СТОЮ*йк%СТОЙ*йл%СТОЕ*йм%СТОГО*йн%СТОМУ*йо%СТОЕ*йп%СТЫМ*йр%СТОМ*йс%СТЫЕ*йт%СТЫХ*йу%СТЫМ*йф%СТЫХ*йх%СТЫЕ*Рь%СТЫМИ*йц%СТЫХ*йч%СТ*йш%СТА*йщ%СТО*йы%СТЫ*йэ%СТЫ*йэ%ЩЕ*йю%ЩЕ*йъ*ПО%СТЕЙШИЙ*иа%СТЕЙШЕГО*иб%СТЕЙШЕМУ*ив%СТЕЙШЕГО*иг%СТЕЙШИЙ*ид%СТЕЙШИМ*ие%СТЕЙШЕМ*Гб%СТЕЙШАЯ*Гв%СТЕЙШЕЙ*Гг%СТЕЙШЕЙ*Гд%СТЕЙШУЮ*Ге%СТЕЙШЕЙ*Гж%СТЕЙШЕЮ*Гж%СТЕЙШЕЙ*Гз%СТЕЙШЕЕ*ин%СТЕЙШЕГО*ио%СТЕЙШЕМУ*ип%СТЕЙШЕЕ*ир%СТЕЙШИМ*ис%СТЕЙШЕМ*ит%СТЕЙШИЕ*иу%СТЕЙШИХ*иф%СТЕЙШИМ*их%СТЕЙШИХ*иц%СТЕЙШИЕ*ич%СТЕЙШИМИ*иш%СТЕЙШИХ*ищ
%КИЙ*йа%КОГО*йб%КОМУ*йв%КОГО*йг%КИЙ*Рщ%КИМ*йд%КОМ*йе%КАЯ*йж%КОЙ*йз%КОЙ*йи%КУЮ*йй%КОЙ*йк%КОЮ*йк%КОЙ*йл%КОЕ*йм%КОГО*йн%КОМУ*йо%КОЕ*йп%КИМ*йр%КОМ*йс%КИЕ*йт%КИХ*йу%КИМ*йф%КИХ*йх%КИЕ*Рь%КИМИ*йц%КИХ*йч%ОК*йш%КА*йщ%КО*йы%КИ*йэ%КИ*йэ%ЬШЕ*йю%ЬШЕ*йъ*ПО%ЧАЙШИЙ*иа%ЧАЙШИЙ*иа*НАИ%ЧАЙШЕГО*иб%ЧАЙШЕГО*иб*НАИ%ЧАЙШЕМУ*ив%ЧАЙШЕМУ*ив*НАИ%ЧАЙШЕГО*иг%ЧАЙШЕГО*иг*НАИ%ЧАЙШИЙ*ид%ЧАЙШИЙ*ид*НАИ%ЧАЙШИМ*ие%ЧАЙШИМ*ие*НАИ%ЧАЙШЕМ*Гб%ЧАЙШЕМ*Гб*НАИ%ЧАЙШАЯ*Гв%ЧАЙШАЯ*Гв*НАИ%ЧАЙШЕЙ*Гг%ЧАЙШЕЙ*Гг*НАИ%ЧАЙШЕЙ*Гд%ЧАЙШЕЙ*Гд*НАИ%ЧАЙШУЮ*Ге%ЧАЙШУЮ*Ге*НАИ%ЧАЙШЕЙ*Гж%ЧАЙШЕЙ*Гж*НАИ%ЧАЙШЕЮ*Гж%ЧАЙШЕЮ*Гж*НАИ%ЧАЙШЕЙ*Гз%ЧАЙШЕЙ*Гз*НАИ%ЧАЙШЕЕ*ин%ЧАЙШЕЕ*ин*НАИ%ЧАЙШЕГО*ио%ЧАЙШЕГО*ио*НАИ%ЧАЙШЕМУ*ип%ЧАЙШЕМУ*ип*НАИ%ЧАЙШЕЕ*ир%ЧАЙШЕЕ*ир*НАИ%ЧАЙШИМ*ис%ЧАЙШИМ*ис*НАИ%ЧАЙШЕМ*ит%ЧАЙШЕМ*ит*НАИ%ЧАЙШИЕ*иу%ЧАЙШИЕ*иу*НАИ%ЧАЙШИХ*иф%ЧАЙШИХ*иф*НАИ%ЧАЙШИМ*их%ЧАЙШИМ*их*НАИ%ЧАЙШИХ*иц%ЧАЙШИХ*иц*НАИ%ЧАЙШИЕ*ич%ЧАЙШИЕ*ич*НАИ%ЧАЙШИМИ*иш%ЧАЙШИМИ*иш*НАИ%ЧАЙШИХ*ищ%ЧАЙШИХ*ищ*НАИ
%УНОК*аа%УНКА*аб%УНКУ*ав%УНОК*аг%УНКОМ*ад%УНКЕ*ае%УНКИ*аж%УНКОВ*аз%УНКАМ*аи%УНКИ*ай%УНКАМИ*ак%УНКАХ*ал%ао
%ЁГКИЙ*йа%ЁГКОГО*йб%ЁГКОМУ*йв%ЁГКОГО*йг%ЁГКИЙ*Рщ%ЁГКИМ*йд%ЁГКОМ*йе%ЁГКАЯ*йж%ЁГКОЙ*йз%ЁГКОЙ*йи%ЁГКУЮ*йй%ЁГКОЙ*йк%ЁГКОЮ*йк%ЁГКОЙ*йл%ЁГКОЕ*йм%ЁГКОГО*йн%ЁГКОМУ*йо%ЁГКОЕ*йп%ЁГКИМ*йр%ЁГКОМ*йс%ЁГКИЕ*йт%ЁГКИХ*йу%ЁГКИМ*йф%ЁГКИХ*йх%ЁГКИЕ*Рь%ЁГКИМИ*йц%ЁГКИХ*йч%ЁГОК*йш%ЕГКА*йщ%ЕГКО*йы%ЕГКИ*йэ%ЕГЧЕ*йю%ЕГЧЕ*йъ*ПО
0
0
0
694
АБАЖУР 11 - - Фа -
АВОКАДО 9 - - Фа -
АГАТ 22 - - Фд -
АЛМАЗ 11 - - Фа -
АЛЬБОМ 11 - - Фа -
АНАТОМИ 14 - - Фа -
АРХИТЕКТУР 19 - - Фа -
БАБОЧ 38 - - Фб -
БАБОЧ 5 - - Фа -
БАНОЧ 5 - - Фа -
БЕЗМОЛВ 219 - - Уе -
БЕЛ 238 - - Уе -
БЕЛЬ 65 - - Фг -
БЕНЗОПИЛ 19 - - Фа -
БИБЛИОТЕК 36 - - Фа -
БЛЕ 77 - - Уо -
БЛЕСТЯЩ 224 - - Уе -
БЛУЗ 19 - - Фа -
БЛУЗ 4 - - Фа -
# 241 - - Уе -
БОРДОВ 218 - - Уе -
БОТАНИК 36 - - Фа -
БРА 9 - - Фа -
Б 81 - - Ун -
БРИЛЬЯНТ 11 - - Фа -
БРОНЗОВ 218 - - Уе -
БРО 85 - - Ул -
БУКВ 19 - - Фа -
БУЛОЧ 5 - - Фа -
БУМАГ 36 - - Фа -
БУТЕРБРОД 11 - - Фа -
БУТЫЛОЧ 5 - - Фа -
БУХАН 4 - - Фа -
БЮСТГАЛЬТЕР 11 - - Фа -
ВАЗ 19 - - Фа -
ВЕДУЩ 104 - - Фб -
ВЕДУЩ 224 - - - -
ВЕНЕЦИАНСК 1 - - - -
ВЕНТИЛ 25 - - Фа -
ВЕРЁВ 4 - - Фа -
ВЕРБЛЮД 16 - - Фб -
ВЕРСТАК 8 - - Фа -
ВЕРХ 199 - - Фа -
ВЕРХ 28 - - - -
ВЕРХН 226 - - - -
В 105 - - Ун -
В 106 - - - -
ВЕЧЕРН 226 - - - -
ВЕШАЛ 4 - - Фа -
В 114 - - Ул -
ВИ 192 - - Ун -
ВИТРИН 19 - - Фа -
ВКЛЮЧА 213 - - Ун -
ВКЛЮЧ 108 - - Ул -
ВНУТРЕННОСТ 6 - - Фа -
ВОД 115 - - Фа -
ВОЗДУХ 211 - - Фа -
ВО 110 - - Ум -
ВОЛН 116 - - Фа -
ВОЛОС 54 - - Фа -
ВОРОН 16 - - Фб -
ВОРОН 17 - - Фб -
ВОСТОК 8 - - Фа -
ВОСТОК 8 - - Уъ -
ВОСТОЧ 219 - - Уе -
ВОСЬМ 120 - - - -
ВРЕМЕН 66 - - Уо -
ВСЕ 122 - - - -
ВСТАВ 109 - - Ул -
ВТОР 120 - - - -
ВХОД 11 - - Фа -
ВЫКЛЮЧА 213 - - Ун -
ВЫКЛЮЧ 95 - - Ул -
ВЫКОПА 91 - - Ул -
ВЫРЕЗ 4 - - Фа -
ВЫ 243 - - Уе -
ВЫСТУП 11 - - Фа -
ВЫХОД 11 - - Фа -
ВЫЦВЕ 129 - - Ум -
ВЫЦВЕТШ 227 - - - -
ВЯЗАН 218 - - - -
ГАЗЕТ 19 - - Фа -
ГАЗЕТ 219 - - Уе -
ГАЛТЕЛ 6 - - Фа -
ГАРАЖ 40 - - Фа -
ГАРДЕРОБ 11 - - Фа -
ГВОЗД 49 - - Фа -
ГЕРБ 11 - - Фа -
ГЛАЗ 200 - - Фа -
ГО 71 - - Уо -
ГОРНИЛ 18 - - Фа -
ГОСТ 34 - - Фб -
ГРИБ 11 - - Фа -
ГРОМОЗД 220 - - Уе -
ГРУБОВАТ 218 - - Уе -
ГРУД 206 - - Фа -
ГРЯЗ 242 - - Уе -
ДВЕР 4 - - Фа -
ДВЕРН 223 - - - -
ДВЕР 136 - - Фа -
ДВЕР 202 - - Фа -
ДЕВУШ 38 - - Фб -
ДЕВЯТ 32 - - Фа -
ДЕВЯТ 119 - - - -
ДЕД 16 - - Фб -
ДЕЛ 194 - - Фа -
ДЕЛЬФИН 16 - - Фб -
ДЕЛЬФИН 22 - - Фд -
ДЕРЕВ 137 - - Фа -
ДЕРЕВЯН 219 - - Уе -
ДЕРЖ 191 - - Ун -
ДЕ 102 - - Ул -
ДИСК 8 - - Фа -
ДЛИН 245 - - Уе -
ДОКУМЕНТ 11 - - Фа -
ДОМ 204 - - Фа -
ДОМИК 8 - - Фа -
ДОРОГ 36 - - Фа -
ДОРО 228 - - Уе -
ДОРОЖ 5 - - Фа -
ДОСТУП 232 - - Уе -
ДОТРОН 101 - - Ум -
ДРАГОЦЕН 219 - - Уе -
ДУБОВ 218 - - Уе -
ДУД 19 - - Фа -
ДУД 4 - - Фа -
ДУДОЧ 5 - - Фа -
ЕДИНОРОГ 2 - - Фб -
ЖГУТ 11 - - Фа -
Ж 141 - - Ун -
ЖИЛЕТ 11 - - Фа -
ЖУРНАЛ 11 - - Фа -
ЖУРНАЛ 221 - - Уе -
ЗАВИТУШ 5 - - Фа -
ЗАЖИГАЛ 4 - - Фа -
ЗАКРЕП 75 - - Ул -
ЗАКРЫВА 213 - - Ун -
ЗАКРЫТ 218 - - Уе -
ЗАКР 113 - - Ул -
ЗАЛЕЗА 195 - - Уо -
ЗАМЕТ 4 - - Фа -
ЗАМЕЧА 213 - - Ун -
ЗАМ 143 - - Фа -
ЗАМОК 107 - - Ум -
ЗАМОЧ 219 - - Уе -
ЗАНАВЕС 4 - - Фа -
ЗАПАД 11 - - Фа -
ЗАПАД 11 - - Уъ -
ЗАПАХ 212 - - Фа -
ЗАПАХ 97 - - Ум -
ЗАП 144 - - Ул -
ЗАПИРА 213 - - Ун -
ЗАПИС 4 - - Фа -
ЗАР 112 - - Ум -
ЗВУК 8 - - Фа -
ЗЕМ 145 - - Фа -
ЗЕРКАЛ 18 - - Фа -
ЗИККУРАТ 11 - - Фа -
ЗИМН 226 - - - -
ЗМЕ 21 - - Фб -
ЗМЕ 118 - - Фб -
ЗНА 64 - - Ун -
ЗОЛОТ 29 - - Фг -
ЗУБ 146 - - Фа -
ЗУБЧАТ 218 - - Уе -
ИЗОБРАЖЕН 23 - - Фа -
ИЗУМРУД 11 - - Фа -
ИНСПЕКТОР 30 - - Фб -
ИНФОРМАЦИОН 219 - - - -
ИСТОРИ 14 - - Фа -
И 57 - - Фд -
КАМ 63 - - Фа -
КАРКАС 11 - - Фа -
КАРМАН 11 - - Фа -
КАРНИЗ 11 - - Фа -
КАРТ 19 - - Фа -
КАРТИН 19 - - Фа -
КАРТИН 4 - - Фа -
КАРТИН 219 - - Уе -
КАРТУШ 5 - - Фа -
КАШТАН 11 - - Фа -
КВАДРАТ 219 - - Уе -
КВИТАНЦИ 14 - - Фа -
КЕЙС 11 - - Фа -
КЕП 4 - - Фа -
КЕРОСИН 210 - - Фа -
КЕРОСИНОВ 218 - - - -
КИНЖАЛ 11 - - Фа -
КИРПИЧ 40 - - Фа -
КЛАД 11 - - Фа -
КЛАДОВ 4 - - Фа -
# 148 - - Ун -
КЛЮЧ 40 - - Фа -
КЛЮЧИК 8 - - Фа -
КНИГ 36 - - Фа -
КНИЖ 5 - - Фа -
КНОП 4 - - Фа -
КОВ 79 - - Фа -
КОВРИК 8 - - Фа -
КОВРОВ 218 - - Уе -
КОГ 149 - - Фа -
КОГ 89 - - Ун -
КОД 11 - - Фа -
КОЛОНИ 14 - - Фа -
КОЛ 150 - - Фа -
КОМИКС 11 - - Фа -
КОМНАТ 19 - - Фа -
КОМОД 11 - - Фа -
КОМПАС 58 - - Фа -
КОМПЬЮТЕР 11 - - Фа -
КОНДИЦИОНЕР 11 - - Фа -
КОН 60 - - Фа -
КОНФЕТ 19 - - Фа -
КОНФЕТ 4 - - Фа -
КОРАБЛ 49 - - Фа -
КОРЗИН 19 - - Фа -
КОРИДОР 11 - - Фа -
КОРИЧНЕВ 236 - - Уе -
КОРОБ 4 - - Фа -
КО 151 - - Ун -
КОСТ 152 - - Фа -
КОСТ 217 - - Фб -
КОСТЯН 223 - - - -
КОТ 16 - - Фб -
КОТИК 2 - - Фб -
КОТИК 8 - - Фа -
КОТТЕДЖ 24 - - Фа -
КОШ 38 - - Фб -
КОШ 5 - - Фа -
КРАБ 16 - - Фб -
КРАС 4 - - Фа -
КРАСН 74 - - Уъ -
КРАСН 50 - - Фб -
КРАС 244 - - Уе -
КРЕМ 210 - - Фа -
КРЕС 31 - - Фа -
КРЕСТ 11 - - Фа -
КРЕСТИК 8 - - Фа -
КРОВАТ 6 - - Фа -
КРУГЛ 239 - - Уе -
КРЫШ 5 - - Фа -
КРЫШКА 52 - - - -
КРЮЧ 42 - - Фа -
КУРТ 4 - - Фа -
КУС 42 - - Фа -
КУХ 43 - - Фа -
КУХОН 219 - - Уе -
Л 253 - - Фа -
ЛАМП 19 - - Фа -
ЛАМПОЧ 5 - - Фа -
ЛАТУН 219 - - Уе -
ЛЕВ 50 - - Фб -
ЛЕВ 225 - - Уе -
ЛЕНТ 19 - - Фа -
ЛЕС 204 - - Фа -
ЛЕСТНИЦ 44 - - Фа -
ЛЕТА 195 - - Уо -
ЛИНОЛЕУМ 11 - - Фа -
ЛИСТ 153 - - Фа -
ЛИСТ 42 - - Фа -
ЛИФТ 11 - - Фа -
ЛИФЧИК 8 - - Фа -
ЛОМТИК 8 - - Фа -
ЛУЖА 46 - - Фа -
ЛЮК 8 - - Фа -
ЛЮСТР 19 - - Фа -
МА 46 - - Фа -
МАКА 64 - - Ун -
МАЛЕНЬК 133 - - Фб -
М 246 - - Уе -
МАНЕКЕН 16 - - Фб -
МАНЕКЕН 11 - - Фа -
МАРШРУТ 11 - - Фа -
МАС 4 - - Фа -
МАШИН 12 - - Уы -
МАШИН 19 - - Фа -
МАШИН 4 - - Фа -
МЕРЗ 247 - - Уе -
МЕРТВЕЦ 16 - - Фб -
МЕТ 4 - - Фа -
МЕТ 220 - - Уе -
МЕХОВ 223 - - - -
МЕЧТА 195 - - Уо -
МИН 3 - - Ул -
МИН 20 - - Фд -
МОДЕЛ 6 - - Фа -
МО 154 - - - -
МОНСТР 16 - - Фб -
МОР 72 - - Фа -
МОРСК 88 - - - -
МО 155 - - Уо -
МУЖЧИН 7 - - Фб -
МУТОН 11 - - Фа -
МЯЧ 40 - - Фа -
НАВИГАЦИ 14 - - Фа -
НАДЕВА 213 - - Ун -
НАДЕ 102 - - Ул -
НАДПИС 6 - - Фа -
НАЖ 214 - - Ул -
НА 156 - - Ул -
НАКЛАД 4 - - Фа -
НАПОЛ 221 - - Уе -
НАСТЕН 219 - - Уе -
НАХО 70 - - Ун -
НАХО 121 - - Ул -
НАХО 71 - - Уо -
НАХО 98 - - Ум -
НЕБ 158 - - Фа -
НЕ 159 - - - -
НЕЧТО 160 - - - -
НИЖН 226 - - - -
НИЗ 197 - - Фа -
НИЧ 161 - - - -
НИШ 26 - - Фа -
НОГ 36 - - Фа -
НОЖ 40 - - Фа -
НОЖ 5 - - Фа -
НОЛИК 8 - - Фа -
НОЛ 49 - - Фа -
НОС 197 - - Фа -
НОУТБУК 8 - - Фа -
НОЧНИК 2 - - Фб -
НОЧНИК 8 - - Фа -
НУЖ 237 - - Уе -
ОБЛАК 162 - - Фа -
ОБЛОЖ 5 - - Фа -
ОБЛОМ 42 - - Фа -
ОБЛУП 100 - - Ум -
ОБО 131 - - Фа -
ОБРЫВ 42 - - Фа -
ОГОРОД 11 - - Фа -
ОДЕЖД 19 - - Фа -
ОК 117 - - Фа -
ОКОН 219 - - Уе -
# 163 - - - -
# 164 - - - -
# 165 - - - -
# 196 - - - -
ОСИН 19 - - Фа -
ОСИННИК 8 - - Фа -
ОСИН 218 - - Уе -
ОСОБНЯК 8 - - Фа -
ОСТА 99 - - Уо -
ОСТАНК 61 - - Фа -
ОСТРОВ 42 - - Фа -
ОТВЕРСТ 23 - - Фа -
ОТВЕ 166 - - Ум -
ОТВЕЧА 195 - - Уо -
ОТКРЫВА 213 - - Ун -
ОТКРЫТ 218 - - Уе -
ОТКР 113 - - Ул -
ОТОРОЧ 5 - - Фа -
ОТПИРА 213 - - Ун -
ОТРАЖЕН 23 - - Фа -
ОТРЕАГИР 216 - - Ум -
ОТЧЁТ 11 - - Фа -
ПАЛ 147 - - Фа -
ПАНЕЛ 6 - - Фа -
ПАП 4 - - Фа -
ПАРАДН 74 - - Фг -
ПАРАД 219 - - Уе -
ПАРКЕТ 11 - - Фа -
ПАРУС 47 - - Фа -
ПАУК 2 - - Фб -
ПАУЧ 55 - - Фб -
ПАХ 132 - - Уо -
ПАХН 76 - - Ум -
ПЕРВ 119 - - - -
ПЕРЕКЛЮЧАТЕЛ 25 - - Фа -
ПЕРЕПЛЁТ 11 - - Фа -
ПЕРИЛ 69 - - Фа -
ПЕРСИДСК 1 - - - -
ПЕРЧАТ 4 - - Фа -
ПЕЧАТ 219 - - Уе -
ПЕЧАТ 6 - - Фа -
П 168 - - Ун -
ПЕЧ 205 - - Фа -
ПИДЖАК 8 - - Фа -
ПИРАМИДАЛ 221 - - - -
ПИРАМИД 4 - - Фа -
ПИ 169 - - Ун -
ПИСТОЛЕТ 11 - - Фа -
ПИСЬМ 170 - - Фа -
ПИС 33 - - Фа -
ПИШУЩ 224 - - - -
ПЛАКАТ 11 - - Фа -
ПЛАН 11 - - Фа -
ПЛАСТИКОВ 218 - - - -
ПЛАСТИН 19 - - Фа -
ПЛАСТИН 4 - - Фа -
ПЛАТЕЖ 5 - - Фа -
ПЛАТ 42 - - Фа -
ПЛАТФОРМ 19 - - Фа -
ПЛАТЬ 123 - - Фа -
ПЛИНТУС 11 - - Фа -
ПЛИТ 4 - - Фа -
ПЛЮЩ 40 - - Фа -
ПОВЕР 93 - - Ул -
ПОВЕР 140 - - Ум -
ПОВОРОТ 11 - - Фа -
ПОГРЕБ 47 - - Фа -
ПОГР 138 - - Ул -
ПОДЁРГА 91 - - Ул -
ПОДВАЛ 11 - - Фа -
ПОДНОС 11 - - Фа -
ПОД 171 - - Ул -
ПОДОЗРИТЕЛ 234 - - Уе -
ПОДОКОННИК 8 - - Фа -
ПОДПОЛ 11 - - Фа -
ПОДПРЫГИВА 195 - - Уо -
ПОДСОБ 4 - - Фа -
ПОДСТАВ 4 - - Фа -
ПОДХО 83 - - Уо -
ПОЗОЛО 96 - - Ул -
ПОКИДА 213 - - Ун -
ПОКИДА 91 - - Ул -
ПОЛ 209 - - Фа -
ПОЛ 15 - - Фд -
ПОЛ 72 - - Фа -
ПОЛОТ 35 - - Фа -
ПОЛ 218 - - Уе -
ПОМА 142 - - Ум -
ПОМЕХ 36 - - Фа -
ПОМЕЩА 213 - - Ун -
ПОПРОБ 59 - - Ул -
ПОРТАЛ 11 - - Фа -
ПОРТРЕТ 11 - - Фа -
ПОСМОТР 128 - - Ул -
ПОСТАМЕНТ 11 - - Фа -
ПОСТЕР 11 - - Фа -
ПОТЁРТ 218 - - Уе -
ПОТАЙН 223 - - - -
ПОТ 139 - - Ул -
ПОТОЛ 42 - - Фа -
ПОТОЛОЧ 219 - - Уе -
ПОТОЛ 125 - - Ул -
ПОТЯН 62 - - Ул -
ПОЧТОВ 218 - - Уе -
ПРАВ 50 - - Фб -
ПРАВ 235 - - Уе -
ПРЕДМЕТ 11 - - Фа -
ПРЕПЯТСТВИ 193 - - Фа -
ПРИВОД 130 - - Фа -
ПРИДУМА 91 - - Ул -
ПРИСЛУША 92 - - Ум -
ПРИХОЖ 126 - - Фа -
ПРИЯТ 233 - - Уе -
ПРОЁМ 11 - - Фа -
ПРОВ 94 - - Ул -
ПРОГРАММ 19 - - Фа -
ПРОДА 99 - - Уо -
ПРОЕ 127 - - Ул -
ПРОЖИЛ 4 - - Фа -
ПРОЖИЛ 42 - - Фа -
ПРОСТЫН 172 - - Фа -
ПРЯМОУГОЛЬНИК 8 - - Фа -
ПРЯМОУГОЛ 221 - - Уе -
ПТИЦ 45 - - Фб -
ПУГАЛ 80 - - Фб -
ПУГАЛ 18 - - Фа -
ПУГА 64 - - Ун -
ПУГОВИЦ 44 - - Фа -
ПУСТОТ 19 - - Фа -
ПУХОВИК 8 - - Фа -
ПУЧ 42 - - Фа -
ПЫЛ 27 - - Фг -
ПЫЛ 221 - - Уе -
ПЬЕДЕСТАЛ 11 - - Фа -
ПЮПИТР 11 - - Фа -
ПЯТ 32 - - Фа -
ПЯТ 35 - - Фа -
ПЯТ 119 - - - -
РАДИОЛ 19 - - Фа -
РАКОВИН 19 - - Фа -
РАКУШ 5 - - Фа -
РАМ 19 - - Фа -
РАМ 4 - - Фа -
РЕЗЬБ 10 - - Фг -
РЕПРОДУКТОР 11 - - Фа -
РЕСНИЦ 44 - - Фа -
РЖАВ 236 - - Уе -
РИГЕЛЬН 0 - - - -
РИС 252 - - Фа -
РИТМ 11 - - Фа -
РОВ 242 - - Уе -
РОЗ 22 - - Фб -
РОЗ 19 - - Фа -
РОСКОШ 233 - - Уе -
Р 173 - - Фб -
Р 208 - - Фа -
РУБАШ 5 - - Фа -
РУБИН 11 - - Фа -
РУБИН 15 - - Фд -
РУБИН 12 - - Уы -
РУБИН 22 - - Фд -
РУК 36 - - Фа -
РУКОЯТ 4 - - Фа -
РУКОЯТ 6 - - Фа -
РУСАЛ 13 - - Фб -
РУЧ 5 - - Фа -
РЫЧАГ 8 - - Фа -
САПФИР 11 - - Фа -
САРГАСС 19 - - Фа -
САРГАСС 39 - - Фа -
СВЕТ 198 - - Фг -
СВЕТИЛЬНИК 8 - - Фа -
СВИТЕР 48 - - Фа -
СВО 179 - - - -
СЕВЕР 11 - - Фа -
СЕВЕР 219 - - Уе -
СЕВЕРО 28 - - - -
СЕДЬМ 120 - - - -
СЕЙФ 11 - - Фа -
СЕРД 78 - - Фа -
СИМВОЛ 11 - - Фа -
СИН 248 - - Уе -
СКВАЖИН 19 - - Фа -
# 174 - - Ун -
СЛЕЗА 195 - - Уо -
СМЕХ 211 - - Фа -
СНИМА 213 - - Ун -
СОКРОВИЩ 53 - - Фа -
СОЛНЦ 53 - - Фа -
СОРВ 111 - - Ул -
СОС 135 - - Фа -
СПИЧ 5 - - Фа -
СПОРТИВ 41 - - Фа -
СПОРТИВ 219 - - Уе -
СТАЛЬН 223 - - - -
СТАРИК 2 - - Фб -
СТАР 74 - - Фг -
СТАР 249 - - Уе -
СТАТУЭТ 4 - - Фа -
СТАТУ 51 - - Фа -
СТЕБ 176 - - Фа -
СТ 84 - - Фа -
СТЕКЛЯН 219 - - Уе -
СТЕН 11 - - Фа -
СТЕН 115 - - Фа -
СТЕНД 11 - - Фа -
СТЕН 4 - - Фа -
СТЕРЖ 167 - - Фа -
СТ 124 - - Ум -
СТОЛ 11 - - Фа -
СТОЛБ 11 - - Фа -
СТОЛБ 60 - - Фа -
СТОЛБИК 8 - - Фа -
СТОЛБЦ 39 - - Ущ -
СТОЛЕШНИЦ 44 - - Фа -
СТОЛИК 8 - - Фа -
СТОЛИК 67 - - - -
СТОП 4 - - Фа -
СТОРОН 19 - - Фа -
СТРАНИЦ 44 - - Фа -
СТРАН 232 - - Уе -
СТРЕЛ 4 - - Фа -
СТРЕЛ 55 - - Фб -
СТРОЕН 23 - - Фа -
СТРОК 175 - - Фа -
СТУК 211 - - Фа -
СТУК 52 - - - -
СТУЛ 11 - - Фа -
СТУЛ 86 - - Фа -
СТУПЕН 103 - - Фа -
СТУПЕН 37 - - Фа -
СУЩЕСТВ 80 - - Фб -
СУЩЕСТВ 18 - - Фа -
СХЕМ 19 - - Фа -
СЧ 177 - - Фа -
СЪЕДА 213 - - Ун -
Т 229 - - Уе -
Т 230 - - Уе -
ТЁТ 13 - - Фб -
ТЁТУШ 38 - - Фб -
ТЁТ 178 - - Фб -
ТАИНСТВЕН 240 - - Уе -
ТАЙНИК 8 - - Фа -
ТА 222 - - - -
ТВ 134 - - Уэ -
ТВАР 68 - - Фб -
ТВИДОВ 218 - - - -
ТЕЛЕВИЗОР 11 - - Фа -
ТЕЛЕГРАММ 19 - - Фа -
ТЕЛЕК 8 - - Фа -
ТЕМЕН 6 - - Фа -
ТЕМНОТ 10 - - Фг -
ТЕН 82 - - Ун -
ТЕН 180 - - Фб -
ТЕН 207 - - Фа -
ТЕПЛИЦ 44 - - Фа -
ТЕРРАС 19 - - Фа -
ТИСК 61 - - Фа -
ТКАН 6 - - Фа -
ТОЛСТОВ 13 - - Фб -
ТОЛСТОВ 4 - - Фа -
ТОЛСТ 190 - - Уы -
ТОЛ 250 - - Уе -
ТОН 251 - - Уе -
ТОП 11 - - Фа -
ТОП 52 - - - -
Т 181 - - - -
ТРАВ 19 - - Фа -
ТРЕТ 182 - - - -
ТРЕЩИН 19 - - Фа -
ТРЕЩИН 4 - - Фа -
ТРОПИН 4 - - Фа -
ТРУС 16 - - Фб -
ТРУС 11 - - Фа -
ТРУСИК 2 - - Фб -
ТРУСИК 61 - - Фа -
ТРУС 39 - - Фа -
ТУМБ 19 - - Фа -
ТУМБОЧ 5 - - Фа -
ТУФ 90 - - Фа -
Т 183 - - - -
Т 184 - - Фа -
ТЮЛЬПАН 11 - - Фа -
УГЛУБЛЕН 23 - - Фа -
УЗОР 11 - - Фа -
УЗОРЧАТ 218 - - Уе -
УКРАШЕН 23 - - Фа -
УЛИЦ 44 - - Фа -
УЛОЧ 5 - - Фа -
УМЕ 195 - - Уо -
УПАВШ 227 - - - -
УПА 215 - - Ум -
У 185 - - Фа -
УШАН 4 - - Фа -
ФАЙЛ 11 - - Фа -
ФАСАД 11 - - Фа -
ФИГУР 19 - - Фа -
ФЛЕЙТ 19 - - Фа -
ФОРТОЧ 5 - - Фа -
ФОТ 13 - - Фп -
ФОТО 9 - - Фа -
ФОТОГРАФИ 14 - - Фа -
ФРУКТ 16 - - Фб -
ФРУКТ 11 - - Фа -
ФРУКТОВ 218 - - Уе -
ФУТБОЛ 4 - - Фа -
ХАЛАТ 11 - - Фа -
ХЛЕБ 48 - - Фа -
ХЛЕБНИЦ 44 - - Фа -
ХОБОТ 48 - - Фа -
ХОЛСТ 11 - - Фа -
ХО 186 - - Ун -
ХОХОТ 210 - - Фа -
ЦАРАПИН 19 - - Фа -
ЦВЕТ 187 - - Фа -
ЦВЕТ 22 - - Фд -
ЦВЕТ 188 - - Фа -
ЦЕП 201 - - Фа -
ЦИФРОВ 223 - - - -
ЧЁРН 50 - - Фб -
Ч 231 - - Уе -
ЧАС 203 - - Фа -
ЧАСТИЦ 44 - - Фа -
ЧАС 39 - - Фа -
ЧАЩ 26 - - Фа -
ЧЕЛОВЕЧЕСК 1 - - - -
ЧЕМОДАН 11 - - Фа -
ЧЕРНИЛ 69 - - Фа -
ЧЕРН 73 - - Ун -
ЧЕТВЁРТ 32 - - Фа -
ЧЕТВЁРТ 119 - - - -
Ч 189 - - - -
ШАЛ 6 - - Фа -
ШАРФ 11 - - Фа -
ШЕРСТЯН 223 - - - -
ШЕСТ 32 - - Фа -
ШЕСТ 120 - - - -
ШКАФ 197 - - Фа -
ШЛЕМ 11 - - Фа -
ШОРТ 56 - - Фа -
ШТАН 39 - - Фа -
ШТОР 19 - - Фа -
ШТРИХ 8 - - Фа -
ШТУКАТУР 4 - - Фа -
ШУБ 87 - - Фб -
ШУБ 19 - - Фа -
ЩЁЛОЧ 5 - - Фа -
ЩЕЛ 201 - - Фа -
ЩИТ 11 - - Фа -
ЭВМ 157 - - Фа -
ЭКРАН 11 - - Фа -
ЭКСПОНАТ 11 - - Фа -
ЭЛЕКТРОН 219 - - - -
ЭТАЖ 40 - - Фа -
ЮБ 4 - - Фа -
ЮГ 8 - - Фа -
ЮГО 28 - - - -
ЯМ 19 - - Фа -
ЯМ 4 - - Фа -
ЯЩИК 8 - - Фа -
1830408

44
log000.txt Normal file
View File

@ -0,0 +1,44 @@
<b>> транскрипт</b>
Logging is enabled: C:/work/14rooms/instead/appdata/games/17room/log000.txt
> cv
<b>> cv</b>
Непонятный глагол <i>cv</i>.
> см
<b>> см</b>
<i>(смотреть)</i>
<b>Перед домом</b>
Особняк тётушки Агаты, как и положено добропорядочным особнякам, всё так же находится на севере. По садовой дорожке всё так же можно пойти и на запад, и на восток. Почтовый ящик белеет облупившейся краской, отсвечивая на солнце.
> в
<b>> в</b>
<b>Терраса за домом</b>
С этой стороны дом чуть менее впечатляющ, но всё такой же большой. Дорожка огибает его с запада и востока, сворачивая к каменным ступенькам, что ведут на террасу. С другой стороны — на севере — полоска заросшего огорода отделяет тебя от тёмного, жутковатого леса.
> в
<b>> в</b>
<b>Перед домом</b>
Особняк тётушки Агаты, как и положено добропорядочным особнякам, всё так же находится на севере. По садовой дорожке всё так же можно пойти и на запад, и на восток. Почтовый ящик белеет облупившейся краской, отсвечивая на солнце.
> в
<b>> в</b>
<b>Терраса за домом</b>
С этой стороны дом чуть менее впечатляющ, но всё такой же большой. Дорожка огибает его с запада и востока, сворачивая к каменным ступенькам, что ведут на террасу. С другой стороны — на севере — полоска заросшего огорода отделяет тебя от тёмного, жутковатого леса.
> в
<b>> в</b>
<b>Перед домом</b>
Особняк тётушки Агаты, как и положено добропорядочным особнякам, всё так же находится на севере. По садовой дорожке всё так же можно пойти и на запад, и на восток. Почтовый ящик белеет облупившейся краской, отсвечивая на солнце.

141
main3.lua Normal file
View File

@ -0,0 +1,141 @@
--$Name:17 комнат$
require "parser/mp-ru"
require "fmt"
require "autotheme"
-- mp.errhints = false
game.dsc = false
include "room1"
include "room2"
include "room3"
include "room4"
include "room5"
include "room6"
include "room7"
include "room8"
include "room9"
include "room10"
include "room11"
include "room12"
include "room13"
include "room14"
include "room15"
include "room16"
include "room17"
mp.undo = 20
mp.score = 0 -- enable scoring
mp.maxscore = 47 -- enable scoring
--mp.detailed_inv = true
instead.notitle = false -- enable status
--instead.get_title = 3
mp.autohelp_limit=1
mp.compl_thresh=5
mp.togglehelp=false
mp.autocompl=false
room {
nam = 'emptyroom';
title = "Пустая комната";
dsc = [[Это не ваша комната, её создаст другой автор.]];
noparser = true;
}
function init()
pl.word = -"ты/жр,2л"
pl.room = 'intro_cutscene'
pl.capacity = 100
pl.description = "Ты умница и красавица в полном расцвете лет, и выглядишь, как и всегда, отлично. А зовут тебя Настя."
end
cutscene {
nam = 'intro_cutscene';
text = {
[[Ты очень любила тётю Агату, и будучи в Петербурге, собиралась её навестить. Однако тётка как сквозь землю провалилась - не отвечала ни на SMS, ни в Ватсапе, а телефон её был вне зоны доступа. Так что, недолго думая, Ты решила наведаться в её поместье на окраине города.
^^Впрочем, стоит рассказать читателю, кто такая тётя Агата, о которой ты так беспокоилась. Овдовев, и унаследовав огромное состояние, эта экцентричная женщина принялась коллекционировать в своём особняке различные древности, интересные вещи, изобретения, да и просто хлам (по крайней мере по твоему мнению), пытаясь раскрыть не то тайны масонов, не то древних культов, не то тайного мирового правительства... Словом дома у неё могло найтись что угодно.
^^]]..fmt.b("17 комнат")..fmt.em("^Чтобы узнать подробнее об игре или авторах, введите ИНФО или АВТОРЫ.");
};
next_to = 'room1_kryltco'
}
Verb {
"#RedCode",
"красное море, сказать красное море",
"RedCode"
}
mp.msg.RedCode = {}
function mp:RedCode()
if here().nam == 'room11_kabinet' then
p(mp.msg.RedCode.RedCodeHint)
else
p(mp.msg.RedCode.RedCode)
end
end
--"может"
mp.msg.RedCode.RedCode = "Ты говоришь \"КРАСНОЕ МОРЕ\". В комнате ничего не произошло. Может нужно сказать эти слова кому-то? Или чему-то?"
mp.msg.RedCode.RedCodeHint = "Ты говоришь \"КРАСНОЕ МОРЕ\". Ничего не происходит, но ты чувствуешь, что на верном пути. Возможно нужно сказать эти слова кому-то или чему-то конкретно в этой комнате?"
Verb {
"#Xyzzy",
"xyzzy",
"Xyzzy"
}
mp.msg.Xyzzy = {}
function mp:Xyzzy()
p(mp.msg.Xyzzy.Xyzzy);
end
mp.msg.Xyzzy.Xyzzy = "Ты помнишь, что тётка упоминала это слово, но как она его использовала, ты не знаешь."
Verb {
"#Score",
"счёт,счет",
"Score"
}
mp.msg.Score = {}
function mp:Score()
p("Ты набрала "..mp.score.." очков из "..mp.maxscore.." возможных.");
end
Verb {
"#Authors",
"автор, авторы",
"Authors"
}
mp.msg.Authors = {}
function mp:Authors()
p( "Авторы: Khaelenmore, techniX, Enola, Артур Айвазян, yandexx, Cheshire, gloomy, qwerty, Irremann, Ajenta, Librarian Oak, Zlobot, Антон Ласточкин, blinovvi, "..fmt.st("crem")..[[, spline1986, Oreolek, Антон Артамонов, goraph
^^Тестирование: Khaelenmore, techniX, Enola, Артур Айвазян, yandexx, Cheshire, gloomy, qwerty, Irremann, Ajenta, Librarian Oak, Zlobot, Антон Ласточкин, blinovvi, spline1986, Oreolek, Антон Артамонов, goraph, Гога, Yorodzuyi, Алик Гаджимурадов
^^Спасибо Райану Видеру за то что когда-то он придумал Cragne Manor, technix за то что он подбросил нам идею написать коллективный парсер, Петру Косых за метапарсер и практически ежедневную техническую поддержку участников на протяжении всего этого марофона, spline1986 за прекрасную тему игры, форуму ifiction.ru и отдельно Олегусу, а также дискорд чату ifrus, дискорд и телеграмм каналам INSTEAD, и чату Мануций, Inc. за информационную поддержку.]]);
end
Verb {
"#Info",
"инфо, информация, аннотация, предисловие",
"Info"
}
mp.msg.Info = {}
function mp:Info()
p("Основной идеей игры было написание коллективного русскоязычного парсера, где каждый автор писал свою комнату не зная что делают остальные. В связи с этим игроку рекомендуется относится к каждой комнате как к отдельной мини-игре, с несколько отличающимися правилами и соглашениями. Хотя у всей игры в целом есть свой общий метасюжет, который логически завершен и, позволим себе надеяться, непротиворечив.");
end
Verb {
"#Cry",
"заплакать, плакать, плачь, заплачь, сесть и заплакать, сесть и плакать, сядь и плачь, сядь и заплачь, обнять и заплакать, обнять и плакать, обними и плачь, обними и заплачь, плакаться, сесть и плакаться, обнять и плакаться, расплакаться, сесть и расплакаться, обнять и расплакаться, поплакаться, сесть и поплакаться, обнять и поплакаться, заплакаться, сесть и заплакаться, обнять и заплакаться",
"Cry"
}
mp.msg.Cry = {}
function mp:Cry()
p("Что, совсем ничего не получается? Ты поплакала. Стало легче?");
end

8
morph/COPYING Normal file
View File

@ -0,0 +1,8 @@
This code uses dictionary files from the http://aot.ru project that is
covered by the terms of the LGPL license.
Dictionary files:
https://sourceforge.net/p/seman/svn/HEAD/tree/trunk/Dicts/Morph/Russian/
License:
https://sourceforge.net/p/seman/svn/HEAD/tree/trunk/copying

131
morph/lang-en.lua Normal file
View File

@ -0,0 +1,131 @@
local type = type
local kbden = {
shifted = {
["1"] = "!",
["2"] = "@",
["3"] = "#",
["4"] = "$",
["5"] = "%",
["6"] = "^",
["7"] = "&",
["8"] = "*",
["9"] = "(",
["0"] = ")",
["-"] = "_",
["="] = "+",
["/"] = "?",
[","] = "<",
["."] = ">",
["`"] = "~",
["a"] = "A",
["b"] = "B",
["c"] = "C",
["d"] = "D",
["e"] = "E",
["f"] = "F",
["g"] = "G",
["h"] = "H",
["i"] = "I",
["j"] = "J",
["k"] = "K",
["l"] = "L",
["m"] = "M",
["n"] = "N",
["o"] = "O",
["p"] = "P",
["q"] = "Q",
["r"] = "R",
["s"] = "S",
["t"] = "T",
["u"] = "U",
["v"] = "V",
["w"] = "W",
["x"] = "X",
["y"] = "Y",
["z"] = "Z",
}
}
local function lower(str)
if type(str) ~= 'string' then
return str
end
return str:lower()
end
local function upper(str)
if type(str) ~= 'string' then
return str
end
return str:upper()
end
local function is_cap(str)
if type(str) ~= 'string' then
return false
end
local s, e
if str:find("^[A-Z]") then
s = true
end
if str:find("[A-Z]$") then
e = true
end
return s, e
end
local function cap(str)
if type(str) ~= 'string' then
return str
end
str = str:gsub("^.", function(v) return v:upper() end)
return str
end
local lang
local function norm(str)
return str
end
local vowels = {
["a"] = true,
["e"] = true,
["i"] = true,
["o"] = true,
["u"] = true,
}
local function is_vowel(l)
l = lower(l);
return vowels[l]
end
lang = { yo = false,
kbd = kbden,
norm = norm,
upper = upper,
lower = lower,
cap = cap,
is_cap = is_cap,
is_vowel = is_vowel,
flex_filter = function() return false end,
gram_compat = function() return false end,
gram_score = function() return 0 end,
gram_t = {
noun = '',
live = 'live',
nonlive = 'nonlive',
neuter = 'neutwe',
male = 'male',
female = 'female',
plural = 'plural',
proper = 'proper',
surname = 'surname',
first = 'first',
second = 'second',
third = 'third',
}
}
return lang

433
morph/lang-ru.lua Normal file
View File

@ -0,0 +1,433 @@
local type = type
local kbdru = {
["q"] = "й",
["w"] = "ц",
["e"] = "у",
["r"] = "к",
["t"] = "е",
["y"] = "н",
["u"] = "г",
["i"] = "ш",
["o"] = "щ",
["p"] = "з",
["["] = "х",
["]"] = "ъ",
["a"] = "ф",
["s"] = "ы",
["d"] = "в",
["f"] = "а",
["g"] = "п",
["h"] = "р",
["j"] = "о",
["k"] = "л",
["l"] = "д",
[";"] = "ж",
["'"] = "э",
["z"] = "я",
["x"] = "ч",
["c"] = "с",
["v"] = "м",
["b"] = "и",
["n"] = "т",
["m"] = "ь",
[","] = "б",
["."] = "ю",
["`"] = "ё",
["/"] = ".",
shifted = {
["q"] = "Й",
["w"] = "Ц",
["e"] = "У",
["r"] = "К",
["t"] = "Е",
["y"] = "Н",
["u"] = "Г",
["i"] = "Ш",
["o"] = "Щ",
["p"] = "З",
["["] = "Х",
["]"] = "Ъ",
["a"] = "Ф",
["s"] = "Ы",
["d"] = "В",
["f"] = "А",
["g"] = "П",
["h"] = "Р",
["j"] = "О",
["k"] = "Л",
["l"] = "Д",
[";"] = "Ж",
["'"] = "Э",
["z"] = "Я",
["x"] = "Ч",
["c"] = "С",
["v"] = "М",
["b"] = "И",
["n"] = "Т",
["m"] = "Ь",
[","] = "Б",
["."] = "Ю",
["`"] = "Ё",
["1"] = "!",
["2"] = "@",
["3"] = "#",
["4"] = ";",
["5"] = "%",
["6"] = ":",
["7"] = "?",
["8"] = "*",
["9"] = "(",
["0"] = ")",
["-"] = "_",
["="] = "+",
["/"] = ",",
}
}
local toupper = {
["й"] = "Й",
["ц"] = "Ц",
["у"] = "У",
["к"] = "К",
["е"] = "Е",
["н"] = "Н",
["г"] = "Г",
["ш"] = "Ш",
["щ"] = "Щ",
["з"] = "З",
["х"] = "Х",
["ъ"] = "Ъ",
["ф"] = "Ф",
["ы"] = "Ы",
["в"] = "В",
["а"] = "А",
["п"] = "П",
["р"] = "Р",
["о"] = "О",
["л"] = "Л",
["д"] = "Д",
["ж"] = "Ж",
["э"] = "Э",
["я"] = "Я",
["ч"] = "Ч",
["с"] = "С",
["м"] = "М",
["и"] = "И",
["т"] = "Т",
["ь"] = "Ь",
["б"] = "Б",
["ю"] = "Ю",
["ё"] = "Ё",
}
local function lower(str)
if type(str) ~= 'string' then
return str
end
str = str:lower()
for k, v in pairs(toupper) do
str = str:gsub(v, k)
end
return str
end
local function upper(str)
if type(str) ~= 'string' then
return str
end
str = str:upper();
for k, v in pairs(toupper) do
str = str:gsub(k, v)
end
return str
end
local function is_cap(str)
if type(str) ~= 'string' then
return false
end
local s, e
for _, v in pairs(toupper) do
if not s and str:find("^"..v) then
s = true
end
if not e and str:find(v.."$") then
e = true
end
if not s and str:find("^[A-Z]") then
s = true
end
if not e and str:find("[A-Z]$") then
e = true
end
end
return s, e
end
local function cap(str)
if type(str) ~= 'string' then
return str
end
if str:find("^[a-z]") then
str = str:gsub("^.", function(v) return v:upper() end)
return str
end
for k, v in pairs(toupper) do
local s = str:gsub("^"..k, v)
if s ~= str then
return s
end
end
return str
end
local lang
local function norm(str)
if type(str) ~= 'string' then
return str
end
if not lang.yo then
str = str:gsub("ё", "е"):gsub("Ё", "Е")
end
return str
end
local vowels = {
["у"] = true,
["е"] = true,
["ы"] = true,
["а"] = true,
["о"] = true,
["и"] = true,
["ю"] = true,
["ё"] = true,
["э"] = true,
["я"] = true,
}
local function is_vowel(l)
l = lower(l);
return vowels[l]
end
local gram_tt = {
["ИНФИНИТИВ"] = true;
["КРРИЛ"] = true;
["КРРИЧАСТИЕ"] = true;
["Г"] = true;
}
local function flex_filter(v)
local an = v.an
if an["им"] then
return true
end
if an["рд"] or an["дт"] or an["тв"] or an["пр"] or an["вн"] then
return false
end
if an["0"] then
return true
end
return gram_tt[an.t]
end
local function gram_info(a)
local t = { }
if a['мр'] then
t.gen = 'male'
elseif a['жр'] then
t.gen = 'female'
elseif a['ср'] then
t.gen = 'neuter'
else
t.gen = 'any'
end
if a['мн'] then
t.num = 'singular'
elseif a['ед'] then
t.num = 'plural'
else
t.num = 'any'
end
if a['буд'] then
t.time = 'future'
elseif a['прш'] then
t.time = 'past'
elseif a['нст'] then
t.time = 'present'
else
t.time = 'any'
end
if a[''] then
t.face = 'first'
elseif a[''] then
t.face = 'second'
elseif a[''] then
t.face = 'third'
else
t.face = 'any'
end
return t
end
local function __gram_compat(g1, g2, time)
if g1.gen ~= g2.gen and g1.gen ~= 'any' and g2.gen ~= 'any' then return false end
if not time then
if g1.num ~= g2.num and g1.num ~= 'any' and g2.num ~= 'any' then return false end
end
if g1.time ~= g2.time and g1.time ~= 'any' and g2.time ~= 'any' then return false end
if g1.face ~= g2.face and g1.face ~= 'any' and g2.face ~= 'any' then return false end
return true
end
local function gram_eq(a, b)
if not a or not b then return true end
if a == 'ИНФИНИТИВ' or b == 'ИНФИНИТИВ' then
return b == a or b == 'Г' or a == 'Г'
end
if a == 'КРРИЛ' or b == 'КРРИЛ' then
return b == a -- or b == 'П'
end
if a == 'КРРИЧАСТИЕ' or b == 'КРРИЧАСТИЕ' then
return b == a
end
if a == 'ПРИЧАСТИЕ' or b == 'ПРИЧАСТИЕ' then
return b == a
end
if a == 'Г' or b == 'Г' then return a == b end
return true
end
local function gram_compat(base, aa, bb)
if not gram_eq(base.t, aa.t) then
return false
end
-- local a, b = aa.t, bb.t
local g1, g2 = gram_info(aa), gram_info(bb)
if bb.noun then
if not base['им'] then
return false
end
local g0 = gram_info(base)
if not __gram_compat(g0, g1, true) then return false end
if not __gram_compat(g0, g2, true) then return false end
end
return __gram_compat(g1, g2)
end
local function gram_norm(an)
local a = {}
local g = {}
for _, v in ipairs(an) do
a[v] = true
table.insert(g, v)
end
if not a[''] and not a[''] and not a[''] then
table.insert(g, '')
end
return g
end
local function gram_score(an, g)
local score = 0
g = gram_norm(g)
if an["фам"] then score = score - 0.1 end
if an["арх"] then score = score - 0.1 end
for _, vv in ipairs(g or {}) do
if vv:sub(1, 1) == '~' then
vv = vv:sub(2)
if an[vv] then
score = score - 1
elseif an.t == vv then
score = score - 10
end
else
if an[vv] then
score = score + 1
elseif an.t == vv then
score = score + 10
end
end
end
return score
end
lang = { yo = false,
kbd = kbdru,
norm = norm,
upper = upper,
lower = lower,
cap = cap,
is_cap = is_cap,
is_vowel = is_vowel,
flex_filter = flex_filter,
gram_compat = gram_compat,
gram_score = gram_score,
gram_t = {
noun = 'С',
nom = 'им',
live = 'од',
nonlive = 'но',
neuter = 'ср',
male = 'мр',
female = 'жр',
plural = 'мн',
proper = 'имя',
surname = 'фам',
first = '',
second = '',
third = '',
};
dict = {
["ведро/ср,но,С"] = {
"ведро/им", "вёдра/им,мн",
"ведро/вн", "вёдра/вн,мн",
"ведра/рд", "вёдер/рд,мн",
"ведру/дт", "ведрам/дт,мн",
"ведром/тв", "вёдрами/тв,мн",
"ведре/пр", "вёдрах/пр,мн",
},
["деревья/ср,но,мн,С"] = {
"деревья/им";
"деревья/вн";
"деревьев/рд";
"деревьями/тв";
"деревьях/пр";
"деревьям/дт";
};
["дерево/ср,но,С"] = {
"дерево/им", "деревья/им,мн";
"дерево/вн", "деревья/вн,мн";
"дерева/рд", "деревьев/рд,мн";
"деревом/тв", "деревьями/тв,мн";
"дереве/пр", "деревьях/пр,мн";
"дереву/пр", "деревьям/дт,мн";
};
["огонь/мр,но,С"] = {
"огонь/им", "огни/им,мн",
"огонь/вн", "огни/вн,мн",
"огня/рд", "огней/рд,мн",
"огню/дт", "огням/дт,мн",
"огнём/тв", "огнями/тв,мн",
"огне/пр", "огнях/пр,мн",
};
["цветы/мн,мр,но,С"] = { -- цветки
"цветы/им",
"цветы/вн",
"цветов/рд",
"цветам/дт",
"цветами/тв",
"цветах/пр",
};
["хлам/пр,2"] = "хламе";
["клевер/пр"] = "клевере";
["песок/пр,2"] = "песке";
};
}
return lang

179923
morph/morphs.mrd Normal file

File diff suppressed because one or more lines are too long

928
morph/mrd.lua Normal file
View File

@ -0,0 +1,928 @@
--luacheck: no self
local curdir = std.getinfo(1).source:gsub("^(.+[\\/])[^\\/]+$", "%1"):gsub("^@", "");
local mrd = {
lang = false;
words = {};
dirs = {''};
dict_file = 'dict.mrd';
}
local msg = dprint or print
local function debug(...)
if DEBUG then
dprint(...)
end
end
local function cache_add(cache, key, val)
table.insert(cache.list, 1, key)
local len = #cache.list
if len > (cache.len or 128) then
local okey = cache.list[len]
table.remove(cache.list, len)
cache.hash[okey] = nil
end
cache.hash[key] = val
end
local function split(str, sep)
local words = {}
if not str then
return words
end
for w in str:gmatch(sep or "[^ \t]+") do
table.insert(words, w)
end
return words
end
local function empty(l)
l = l:gsub("[ \t]+", "")
return l == ""
end
function mrd:gramtab(path)
local f, e = io.open(path or 'rgramtab.tab', 'rb')
if not f then
return false, e
end
self.gram = {
an = {}; -- by ancodes
t = {}; -- by types
}
for l in f:lines() do
if not l:find("^[ \t]*//") and not empty(l) then -- not comments
local w = split(l)
if #w < 3 then
msg("Skipping gram: "..l)
else
local a = split(w[4], '[^,]+')
local an = {}
for _, v in ipairs(a) do
an[v] = true
end
an.t = w[3] -- type
self.gram.an[w[1]] = an;
self.gram.t[w[3]] = an;
end
end
end
f:close()
end
local function section(f, fn, ...)
local n = f:read("*line")
n = n and tonumber(n)
if not n then
return false
end
if n == 0 then
return true
end
for l in f:lines() do -- skip accents
if fn then fn(l, ...) end
n = n - 1
if n == 0 then
break
end
end
return true
end
local flex_filter
local function flex_fn(l, flex, an)
l = l:gsub("//.*$", "")
local fl = {}
for w in l:gmatch("[^%%]+") do
local ww = split(w, "[^%*]+")
if #ww > 3 or #ww < 1 then
msg("Skip lex: ", w, l);
else
local f = { }
if #ww == 1 then
f.an = ww[1]
f.post = ''
else
f.post = ww[1]
f.an = ww[2]
end
f.pre = ww[3] or ''
local a = an[f.an]
if not a then
msg("Gram not found. Skip lex: "..f.an)
else
f.an_name = f.an
f.an = a
if flex_filter(f) then
f.filter = true
end
table.insert(fl, f)
end
end
end
table.insert(flex, fl)
end
local function pref_fn(l, pref)
local p = split(l, "[^,]+")
table.insert(pref, p)
end
--[[
local function dump(vv)
local s = ''
if type(vv) ~= 'table' then
return string.format("%s", tostring(vv))
end
for k, v in pairs(vv) do
s = s .. string.format("%s = %s ", k, v)
end
return s
end
local function gram_dump(v)
for _, f in ipairs(v.flex) do
local tt = v.pref .. f.pre .. v.t .. f.post
print("=== ", tt)
for _, v in pairs(f.an) do
print(_, v)
end
end
end
]]--
local busy_cnt = 0
local function word_fn(l, self, dict)
local norm = mrd.lang.norm
local words = self.words
local words_list = self.words_list
local w = split(l)
if #w ~= 6 then
msg("Skipping word: "..l)
return
end
if w[1] == '#' then w[1] = '' end
local nflex = tonumber(w[2]) or false
local an = w[5]
if an == '-' then an = false end
local an_name = an
local npref = tonumber(w[6]) or false
if not nflex then
msg("Skipping word:"..l)
return
end
nflex = self.flex[nflex + 1]
if not nflex then
msg("Wrong paradigm number for word: "..l)
return
end
if an then
an = self.gram.an[an]
if not an then
msg("Wrong ancode for word: "..l)
return
end
end
if npref then
npref = self.pref[npref + 1]
if not npref then
msg("Wrong prefix for word: "..l)
return
end
end
local t = w[1]
local num = 0
local used = false
for _, v in ipairs(nflex) do
if v.filter then
for _, pref in ipairs(npref or { '' }) do
local tt = norm(pref .. v.pre .. t .. v.post)
-- if tt == 'ЗАКРЕПЛЕН' then
-- gram_dump { t = t, pref = pref, flex = nflex, an = v.an }
-- end
if not dict or dict[tt] then
local a = {}
for kk, _ in pairs(an or {}) do
a[kk] = an[kk]
end
for kk, _ in pairs(v.an) do
a[kk] = v.an[kk]
end
local wds = words[tt] or {}
table.insert(wds,
{ t = t, pref = pref, flex = nflex, an = a })
nflex.used = true
used = true
if npref then
npref.used = true
end
num = num + 1
if #wds == 1 then
words[tt] = wds
end
end
end
end
end
if used then
table.insert(words_list, { t = w[1], flex = nflex, pref = npref, an = an_name })
end
self.words_nr = self.words_nr + num
busy_cnt = busy_cnt + 1
if busy_cnt > 1000 then
if std then std.busy(true) end
busy_cnt = 0
end
return
end
function mrd:load(path, dict)
local f, e = io.open(path or 'morphs.mrd', 'rb')
if not f then
return false, e
end
local flex = {}
flex_filter = mrd.lang.flex_filter
if not section(f, flex_fn, flex, self.gram.an) then
return false, "Error in section 1"
end
self.flex = flex
if not section(f) then
return false, "Error in section 2"
end
if not section(f) then
return false, "Error in section 3"
end
local pref = {}
if not section(f, pref_fn, pref) then
return false, "Error in section 4"
end
self.pref = pref
self.words_nr = 0
self.words = {}
self.words_list = {}
-- collectgarbage("stop")
if not section(f, word_fn, self, dict) then
-- collectgarbage("restart")
return false, "Error in section 4"
end
-- collectgarbage("restart")
msg("Generated: "..tostring(self.words_nr).." word(s)");
local crc = f:read("*line")
if crc then crc = tonumber(crc) end
f:close()
if std then std.busy(false) end
return true, crc
end
function mrd:dump(path, crc)
local f, e = io.open(path or 'dict.mrd', 'wb')
if not f then
return false, e
end
local n = 0
for _, v in ipairs(self.flex) do
if v.used then
v.norm_no = n
n = n + 1
end
end
f:write(string.format("%d\n", n))
for _, v in ipairs(self.flex) do
if v.used then
local s = ''
for _, vv in ipairs(v) do
s = s .. '%'
if vv.post == '' then
s = s..vv.an_name
else
s = s..vv.post..'*'..vv.an_name
end
if vv.pre ~= '' then
s = s .. '*'..vv.pre
end
end
f:write(s.."\n")
end
end
f:write("0\n")
f:write("0\n")
n = 0
for _, v in ipairs(self.pref) do
if v.used then
v.norm_no = n
n = n + 1
end
end
f:write(string.format("%d\n", n))
for _, v in ipairs(self.pref) do
if v.used then
local s = ''
for _, vv in ipairs(v) do
if s ~= '' then s = s .. ',' end
s = s .. vv
end
f:write(s.."\n")
end
end
f:write(string.format("%d\n", #self.words_list))
for _, v in ipairs(self.words_list) do
local s
if v.t == '' then
s = '#'
else
s = v.t
end
s = s ..' '..tostring(v.flex.norm_no)
s = s..' - -'
if v.an then
s = s .. ' '..v.an
else
s = s .. ' -'
end
if v.pref then
s = s ..' '..tostring(v.pref.norm_no)
else
s = s .. ' -'
end
f:write(s..'\n')
end
if crc then
f:write(string.format("%d\n", crc))
end
f:close()
end
local function gram2an(g)
local a = {}
for _, v in ipairs(g) do
if v:sub(1, 1) == '~' then
a[v:sub(2)] = false
else
a[v] = true
end
end
a.t = nil
return a
end
local lookup_cache = {
hash = {};
list = {};
len = 512;
}
local function hint_append(hint, h)
if h == "" or not h then return hint end
if hint == "" or not hint then return h end
return hint .. ',' .. h
end
function mrd:lookup(w, g)
local key = ""
for _, v in ipairs(g or {}) do
key = hint_append(key, v)
end
key = w .. '/'..key
local cc = lookup_cache.hash[key]
if cc then
return cc.w, cc.g
end
w, g = self:__lookup(w, g)
cache_add(lookup_cache, key, { w = w, g = g })
return w, g
end
function mrd:__lookup(w, g)
local ow = w
local cap, upper = self.lang.is_cap(w)
local tt = self.lang.upper(self.lang.norm(w))
w = self.words[tt]
if not w then
return false, "No word in dictionary"
end
local res = {}
local gram_compat = self.lang.gram_compat
local gram_score = self.lang.gram_score
for _, v in ipairs(w) do
local flex = v.flex
local score = gram_score(v.an, g)
local t = v.an.t
for _, f in ipairs(flex) do
if gram_compat(v.an, f.an, gram2an(g)) then
local sc = gram_score(f.an, g)
if sc >= 0 then
if t ~= f.an.t then sc = sc - 1 end -- todo
--[[
local tt = v.pref .. f.pre .. v.t .. f.post
if tt == 'ЛЕВЫЙ' or tt == 'ЛЕВОГО' or tt == 'ШЛЕМОМ' then
print ("======looking for:", g.noun)
for _, v in pairs(g) do
print(_, v)
end
print ("======looking got:", score + sc, sc)
print(tt, v.t, score + sc)
for _, v in pairs(f.an) do
print(_, v)
end
end
]]--
table.insert(res, { score = score + sc, pos = #res, word = v, flex = f })
end
end
end
end
if #res == 0 then
return ow, gram2an(g) -- false, "No gram"
end
table.sort(res, function(a, b)
if a.score == b.score then
return a.pos < b.pos
end
return a.score > b.score
end)
--[[
for i = 1, #res do
local w = res[i]
local tt = self.lang.lower(w.word.pref .. w.flex.pre .. w.word.t .. w.flex.post)
print(i, "res: ", tt, w.score)
if tt == 'красный' or tt == 'красного' then
for _, v in pairs(w.flex.an) do
print(_, v)
end
end
-- print(tt, w.score)
end
]]--
w = res[1]
local gram = {}
for k, v in pairs(w.flex.an) do
gram[k] = v
end
for k, v in pairs(w.word.an) do
gram[k] = v
end
w = self.lang.lower(w.word.pref .. w.flex.pre .. w.word.t .. w.flex.post)
if upper then
w = self.lang.upper(w)
elseif cap then
w = self.lang.cap(w)
end
return w, gram
end
local word_match = "[^ \t,%-!/:%+&]+"
local missed_words = {}
local word_cache = { list = {}, hash = {} }
function mrd:word(w, ob)
local cache = word_cache
if ob then
if not ob.__word_cache then
std.rawset(ob, '__word_cache', {
list = {},
hash = {},
len = 32,
})
end
cache = ob.__word_cache
end
local key = w
local c = cache.hash[key]
if c then
return std.clone(c[1]), std.clone(c[2])
end
local ow = w
local s, _ = w:find("/[^/]*$")
local g = {}
local grams = {}
local hints = ''
if s then
hints = w:sub(s + 1)
w = w:sub(1, s - 1)
g = split(hints, "[^, ]+")
end
local found = true
local noun = false
local lang = self.lang
w = w:gsub(word_match,
function(t)
if noun then return t end
local ww, gg
if ob then
ww, gg = self:dict(ob.__dict, t..'/'..hints)
end
if not ww then
ww, gg = self:dict(game.__dict, t..'/'..hints)
end
if not ww then
ww, gg = self:dict(self.__dict, t..'/'..hints)
end
noun = gg and gg[lang.gram_t.noun]
if not ww then
ww, gg = self:lookup(t, g)
noun = gg and gg.t == lang.gram_t.noun
end
if gg and (gg[lang.gram_t.proper] or gg[lang.gram_t.surname]) then
noun = false
end
if not ww then
found = false
else
table.insert(grams, gg)
end
return ww or t
end)
if not found then
if DEBUG and not tonumber(w) and not missed_words[w] then
missed_words[w] = true
debug("Can not find word: '"..ow.."'")
end
end
cache_add(cache, key, { w, grams })
return w, grams
end
function mrd:file(f, dict)
dict = dict or {}
local ff, e = io.open(f, "rb")
if not ff then
return false, e
end
debug("Added file: ", f)
for l in ff:lines() do
for w in l:gmatch('%-"[^"]+"') do
w = w:gsub('^%-"', ""):gsub('"$', "")
local words = split(w, '[^|]+')
for _, word in ipairs(words) do
word = word:gsub("/[^/]*$", "")
for ww in word:gmatch(word_match) do
local t = self.lang.upper(self.lang.norm(ww))
if not dict[t] and not t:find("%*$") then
dict[t] = true;
debug("mrd: Added word: ", ww)
end
end
end
end
end
ff:close()
return dict
end
local function str_hint(str)
-- str = str:gsub("^%+", "")
local s, _ = str:find("/[^/]*$")
if not s then
return str, ""
end
if s == 1 then
return "", str:sub(2)
end
return str:sub(1, s - 1), str:sub(s + 1)
end
local function str_strip(str)
return std.strip(str)
end
local function str_split(str, delim)
local a = std.split(str, delim)
for k, _ in ipairs(a) do
a[k] = str_strip(a[k])
end
return a
end
function mrd:dict(dict, word)
if not dict then return end
local tab = {}
local w, hints = str_hint(word)
hints = str_split(hints, ",")
local tt = dict[w]
if not tt then
return
end
for _, v in ipairs(tt) do
local whints = {}
local w, h = str_hint(v)
local hh = str_split(h, ",")
for _, vv in ipairs(hh) do
whints[vv] = true
end
local t = { w, score = 0, pos = #tab, w = w }
for _, hv in ipairs(hints) do
if hv:sub(1, 1) ~= '~' then
if whints[hv] then
t.score = t.score + 1
end
else
if whints[str_strip(hv:sub(2))] then
t.score = t.score - 1
end
end
end
t.hints = str_split(hint_append(tt.hints, h), ",")
if mrd.lang.gram_t.nom and whints[mrd.lang.gram_t.nom] then
t.score = t.score + 0.5
end
table.insert(tab, t)
end
if #tab == 0 then
return
end
table.sort(tab,
function(a, b)
if a.score == b.score then
return a.pos < b.pos
end
return a.score > b.score
end)
if tab[1].score > 0 then
return tab[1].w, gram2an(tab[1].hints)
end
end
function mrd.dispof(w)
if w.raw_word ~= nil then
local d = std.call(w, 'raw_word')
return d, true
end
if w.word ~= nil then
local d = std.call(w, 'word')
return d
end
return std.titleof(w) or std.nameof(w)
end
local obj_cache = { hash = {}, list = {}, len = 128 }
function mrd:obj(w, n, nn)
local hint = ''
local hint2, disp, ob, raw
if type(w) == 'string' then
w, hint = str_hint(w)
elseif type(n) == 'string' then
hint = n
n = nn
end
if type(w) ~= 'string' then
-- w = std.object(w)
ob = w
disp, raw = self.dispof(w)
else
disp = w
end
local d = obj_cache.hash[disp]
if not d then
d = str_split(disp, '|')
if #d == 0 then
std.err("Wrong object display: ".. (disp or 'nil'), 2)
end
-- normalize
local nd = {}
for k, v in ipairs(d) do
w, hint2 = str_hint(v)
local dd = raw and { w } or str_split(w, ',')
for _, vv in ipairs(dd) do
table.insert(nd, { word = vv, hint = hint2 or '', alias = k, idx = _ })
-- for w in vv:gmatch("[^ ]+") do
-- table.insert(nd, { word = w, hint = hint2 or '', alias = k, idx = _ })
-- end
end
end
d = nd
cache_add(obj_cache, disp, d)
end
if type(n) == 'table' then
local ret = n
for _, v in ipairs(d) do
table.insert(ret, { word = v.word, hint = hint_append(hint, v.hint), alias = v.alias, idx = v.idx });
end
return ob, ret
end
n = n or (ob and ob.__word_alias) or 1
for k, v in ipairs(d) do
if v.alias == n then
n = k
break
end
end
if not d[n] then n = 1 end
w = d[n].word
hint2 = d[n].hint
return ob, w, hint_append(hint, hint2)
end
local function noun_append(rc, tab, w)
-- w = mrd.lang.norm(w)
if tab then
table.insert(tab, w)
else
if rc ~= '' then rc = rc .. '|' end
rc = rc .. w
end
return rc
end
function mrd:noun_hint(ob, n)
if not ob then
return ''
end
if not ob.__hint_cache then
std.rawset(ob, '__hint_cache', {
list = {},
hash = {},
len = 16,
})
end
local key = n or ob.__word_alias or 1
local c
if type(ob.word) == 'string' then -- do not use caching if function
c = ob.__hint_cache.hash[key]
end
if c then
return c
end
local g = ob and ob:gram('noun', n) or {}
local hint = ''
local lang = self.lang
for _, v in ipairs { lang.gram_t.male, lang.gram_t.female,
lang.gram_t.neuter, lang.gram_t.plural,
lang.gram_t.live } do
if g[v] then
hint = hint_append(hint, v)
end
end
if not g[self.lang.gram_t.live] then
hint = hint_append(hint, lang.gram_t.nonlive)
end
if ob then
hint = hint_append(hint, "noun")
end
cache_add(ob.__hint_cache, key, hint)
return hint
end
function mrd:noun(w, n, nn)
local hint, ob
local rc = ''
local tab = false
ob, w, hint = self:obj(w, n, nn)
if type(w) ~= 'table' then
local alias = nn
if type(alias) ~= 'number' then alias = n end
if type(alias) ~= 'number' then alias = nil end
w = {{ word = w, hint = hint, alias = alias }}
else
tab = {}
end
for _, v in ipairs(w) do
local hint2 = self:noun_hint(ob, v.alias)
local m = self:word(v.word .. '/'.. hint_append(v.hint, hint2), ob)
rc = noun_append(rc, tab, m)
end
return tab and tab or rc
end
local function str_hash(str)
local sum = 0
for i = 1, str:len() do
sum = sum + string.byte(str, i)
end
return sum
end
function mrd:init(l)
self.lang = l
if type(l.dict) == 'table' then
std.obj.dict(self, l.dict)
end
if self:gramtab(curdir .. "rgramtab.tab") == false then
msg("Error while opening gramtab.")
return
end
local _, crc = self:load(mrd.dict_file)
self:create(mrd.dict_file, crc) -- create or update
end
function mrd:create(fname, crc)
local dict = {}
if not std.readdir then
return
end
for _, d in ipairs(self.dirs) do
if d == '' then d = instead.gamepath() end
local list = {}
for f in std.readdir(d) do
if f:find("%.lua$") or f:find("%.LUA$") then
table.insert(list, f)
end
end
table.sort(list)
for _, f in ipairs(list) do
local path = d .. "/" .. f
mrd:file(path, dict)
end
end
local sum = 0
for w, _ in pairs(dict) do
sum = sum + str_hash(w)
sum = sum % 4294967291;
end
if crc ~= sum then
msg("Generating dict.mrd with sum: ", sum)
if mrd:load(curdir .. "morphs.mrd", dict) then
mrd:dump(fname or 'dict.mrd', sum)
else
msg("Can not find morph/morphs.mrd")
end
else
msg("Using dict.mrd")
end
end
if std then
std.obj.noun = function(self, ...)
return mrd:noun(self, ...)
end
std.obj.Noun = function(self, ...)
return mrd.lang.cap(mrd:noun(self, ...))
end
std.obj.gram = function(self, ...)
local hint, w, gram, _
_, w, hint = mrd:obj(self, ...)
_, gram = mrd:word(w .. '/'..hint)
local thint = ''
local t = mrd.lang.gram_t.noun
hint = str_split(hint, ",")
local g = gram and gram[1] or {}
for _, v in ipairs(gram or {}) do
if v.t == t or v[t] then
g = v
break
end
end
local gg = std.clone(g)
for _, v in ipairs(hint) do
gg[v] = true
end
for k, v in pairs(gg) do
if v then
thint = hint_append(thint, k)
end
end
gg.hint = thint
return gg
end
std.obj.dict = function(self, t)
local idx = std.rawget(self, '__dict') or {}
for word, v in pairs(t) do
local w, hints = str_hint(word)
if type(v) == 'table' then
idx[w] = v
v.hints = hints or ""
else
if not idx[w] then
idx[w] = { hints = "", }
end
table.insert(idx[w], v .. '/' .. hints)
end
end
std.rawset(self, '__dict', idx)
return self
end
local onew = std.obj.new
std.obj.new = function(self, v)
if type(v[1]) == 'string' or type(v[1]) == 'function' then
v.word = v[1]
table.remove(v, 1)
end
return onew(self, v)
end
end
local mt = getmetatable("")
function mt.__unm(v)
return v
end
return mrd
--mrd:gramtab()
--mrd.lang = require "lang-ru"
--mrd:load(false, { [mrd.lang.upper "подосиновики"] = true, [mrd.lang.upper "красные"] = true })
--local w = mrd:word(-"красные подосиновики/рд")
--print(w)
--mrd:file("mrd.lua")

878
morph/rgramtab.tab Normal file
View File

@ -0,0 +1,878 @@
// ====== СУЩЕСТВИТЕЛЬНЫЕ ========
// существительные мужского рода
аа A С мр,ед,им
аб A С мр,ед,рд
Эф A С мр,ед,рд,2
ав A С мр,ед,дт
аг A С мр,ед,вн
ад A С мр,ед,тв
ае A С мр,ед,пр
Эх A С мр,ед,пр,2
ас A С мр,ед,зв,
аж A С мр,мн,им
аз A С мр,мн,рд
аи A С мр,мн,дт
ай A С мр,мн,вн
ак A С мр,мн,тв
ал A С мр,мн,пр
ам B С мр,0
ан B С мр,ед,0
// ============= разговорный ================
Юо A С мр,ед,им,разг
Юп A С мр,ед,рд,разг
Юр A С мр,ед,дт,разг
Юс A С мр,ед,вн,разг
Ют A С мр,ед,тв,разг
Юф A С мр,ед,пр,разг
Юх A С мр,ед,зв,разг
Яб A С мр,мн,им,разг
Яа A С мр,мн,рд,разг
Яв A С мр,мн,дт,разг
Яг A С мр,мн,вн,разг
Яд A С мр,мн,тв,разг
Яж A С мр,мн,пр,разг
// ============= архаизм ================
го A С мр,ед,им,арх
гп A С мр,ед,рд,арх
гр A С мр,ед,дт,арх
гс A С мр,ед,вн,арх
гт A С мр,ед,тв,арх
гу A С мр,ед,пр,арх
гф A С мр,мн,им,арх
гх A С мр,мн,рд,арх
гц A С мр,мн,дт,арх
гч A С мр,мн,вн,арх
гш A С мр,мн,тв,арх
гщ A С мр,мн,пр,арх
// существительные мужского-женского рода
ва E С мр-жр,ед,им
вб E С мр-жр,ед,рд
вв E С мр-жр,ед,дт
вг E С мр-жр,ед,вн
вд E С мр-жр,ед,тв
ве E С мр-жр,ед,пр
вж E С мр-жр,мн,им
вз E С мр-жр,мн,рд
ви E С мр-жр,мн,дт
вй E С мр-жр,мн,вн
вк E С мр-жр,мн,тв
вл E С мр-жр,мн,пр
вм F С мр-жр,0
вн F С мр-жр,ед,0
// существительные мужского-женского рода (архаизм)
во E С арх,мр-жр,ед,им
вп E С арх,мр-жр,ед,рд
вр E С арх,мр-жр,ед,дт
вс E С арх,мр-жр,ед,вн
вт E С арх,мр-жр,ед,тв
ву E С арх,мр-жр,ед,пр
вф E С арх,мр-жр,мн,им
вх E С арх,мр-жр,мн,рд
вц E С арх,мр-жр,мн,дт
вч E С арх,мр-жр,мн,вн
вш E С арх,мр-жр,мн,тв
вщ E С арх,мр-жр,мн,пр
// существительные женского рода
га G С жр,ед,им
гб G С жр,ед,рд
гв G С жр,ед,дт
гг G С жр,ед,вн
гд G С жр,ед,тв
ге G С жр,ед,пр
Эч G С жр,ед,пр,2
Йш G С жр,ед,зв
гж G С жр,мн,им
гз G С жр,мн,рд
ги G С жр,мн,дт
гй G С жр,мн,вн
гк G С жр,мн,тв
гл G С жр,мн,пр
гм H С жр,0
гн H С жр,ед,0
// существительные женского (архаизм)
Йа G С арх,жр,ед,им
Йб G С арх,жр,ед,рд
Йв G С арх,жр,ед,дт
Йг G С арх,жр,ед,вн
Йд G С арх,жр,ед,тв
Йе G С арх,жр,ед,пр
Йж G С арх,жр,мн,им
Йз G С арх,жр,мн,рд
Йи G С арх,жр,мн,дт
Йй G С арх,жр,мн,вн
Йк G С арх,жр,мн,тв
Йл G С арх,жр,мн,пр
// существительные женского (разговорный)
Йм G С разг,жр,ед,им
Йн G С разг,жр,ед,рд
Йо G С разг,жр,ед,дт
Йп G С разг,жр,ед,вн
Йр G С разг,жр,ед,тв
Йс G С разг,жр,ед,пр
Йт G С разг,жр,мн,им
Йу G С разг,жр,мн,рд
Йф G С разг,жр,мн,дт
Йх G С разг,жр,мн,вн
Йц G С разг,жр,мн,тв
Йч G С разг,жр,мн,пр
// существительные среднего рода
еа K С ср,ед,им
еб K С ср,ед,рд
ев K С ср,ед,дт
ег K С ср,ед,вн
ед K С ср,ед,тв
ее K С ср,ед,пр
еж K С ср,мн,им
ез K С ср,мн,рд
еи K С ср,мн,дт
ей K С ср,мн,вн
ек K С ср,мн,тв
ел K С ср,мн,пр
ем L С ср,0
ен L С ср,ед,0
// им. Ленина
Эя K С ср,ед,рд,аббр
// существительные среднего рода (разговорный)
Яз K С разг,ср,ед,им
Яи K С разг,ср,ед,рд
Як K С разг,ср,ед,дт
Ял K С разг,ср,ед,вн
Ям K С разг,ср,ед,тв
Ян K С разг,ср,ед,пр
Яо K С разг,ср,мн,им
Яп K С разг,ср,мн,рд
Яр K С разг,ср,мн,дт
Яс K С разг,ср,мн,вн
Ят K С разг,ср,мн,тв
Яу K С разг,ср,мн,пр
// pluralia tantum
иж Q С мн,мн,им
из Q С мн,мн,рд
ии Q С мн,мн,дт
ий Q С мн,мн,вн
ик Q С мн,мн,тв
ил Q С мн,мн,пр
им R С мн,0
// аббревиатуры
ао B С мр,аббр,0,
ап B С мр,ед,аббр,0
ат H С жр,аббр,0
ау H С жр,ед,аббр,0
ац H С ср,аббр,0
ач H С ср,ед,аббр,0
аъ R С мн,аббр,0
// имена
бо C С мр,имя,ед,им
бп C С мр,имя,ед,рд
бр C С мр,имя,ед,дт
бс C С мр,имя,ед,вн
бт C С мр,имя,ед,тв
бу C С мр,имя,ед,пр
бь C С мр,имя,ед,зв,разг
бф C С мр,имя,мн,им
бх C С мр,имя,мн,рд
бц C С мр,имя,мн,дт
бч C С мр,имя,мн,вн
бш C С мр,имя,мн,тв
бщ C С мр,имя,мн,пр
бН I С мр,имя,0
вН E С мр-жр,имя,0
вО E С мр-жр,имя,ед,им
вП E С мр-жр,имя,ед,рд
вР E С мр-жр,имя,ед,дт
вС E С мр-жр,имя,ед,вн
вТ E С мр-жр,имя,ед,тв
вУ E С мр-жр,имя,ед,пр
вЬ E С мр-жр,имя,ед,зв,разг
вФ E С мр-жр,имя,мн,им
вХ E С мр-жр,имя,мн,рд
вЦ E С мр-жр,имя,мн,дт
вЧ E С мр-жр,имя,мн,вн
вШ E С мр-жр,имя,мн,тв
вЩ E С мр-жр,имя,мн,пр
до I С жр,имя,ед,им
дп I С жр,имя,ед,рд
др I С жр,имя,ед,дт
дс I С жр,имя,ед,вн
дт I С жр,имя,ед,тв
ду I С жр,имя,ед,пр
дь I С жр,имя,ед,зв,разг
дф I С жр,имя,мн,им
дх I С жр,имя,мн,рд
дц I С жр,имя,мн,дт
дч I С жр,имя,мн,вн
дш I С жр,имя,мн,тв
дщ I С жр,имя,мн,пр
дН I С жр,имя,0
// мужские отчества
Ра Q С мр,отч,ед,им,
Рб Q С мр,отч,ед,рд,
Рв Q С мр,отч,ед,дт,
Рг Q С мр,отч,ед,вн,
Рд Q С мр,отч,ед,тв,
Ре Q С мр,отч,ед,пр,
Рн Q С мр,отч,мн,им,
Ро Q С мр,отч,мн,рд,
Рп Q С мр,отч,мн,дт,
Рр Q С мр,отч,мн,вн,
Рс Q С мр,отч,мн,тв,
Рт Q С мр,отч,мн,пр,
// женские отчества
Рж Q С жр,отч,ед,им,
Рз Q С жр,отч,ед,рд,
Ри Q С жр,отч,ед,дт,
Рк Q С жр,отч,ед,вн,
Рл Q С жр,отч,ед,тв,
Рм Q С жр,отч,ед,пр,
Ру Q С жр,отч,мн,им,
Рф Q С жр,отч,мн,рд,
Рх Q С жр,отч,мн,дт,
Рц Q С жр,отч,мн,вн,
Рч Q С жр,отч,мн,тв,
Рш Q С жр,отч,мн,пр,
// мужские отчества (разг.)
Та Q С мр,отч,разг,ед,им,
Тб Q С мр,отч,разг,ед,рд,
Тв Q С мр,отч,разг,ед,дт,
Тг Q С мр,отч,разг,ед,вн,
Тд Q С мр,отч,разг,ед,тв,
Те Q С мр,отч,разг,ед,пр,
Тн Q С мр,отч,разг,мн,им,
То Q С мр,отч,разг,мн,рд,
Тп Q С мр,отч,разг,мн,дт,
Тр Q С мр,отч,разг,мн,вн,
Тс Q С мр,отч,разг,мн,тв,
Тт Q С мр,отч,разг,мн,пр,
// женские отчества (разг.)
Тж Q С жр,отч,разг,ед,им,
Тз Q С жр,отч,разг,ед,рд,
Ти Q С жр,отч,разг,ед,дт,
Тк Q С жр,отч,разг,ед,вн,
Тл Q С жр,отч,разг,ед,тв,
Тм Q С жр,отч,разг,ед,пр,
Ту Q С жр,отч,разг,мн,им,
Тф Q С жр,отч,разг,мн,рд,
Тх Q С жр,отч,разг,мн,дт,
Тц Q С жр,отч,разг,мн,вн,
Тч Q С жр,отч,разг,мн,тв,
Тш Q С жр,отч,разг,мн,пр,
// ====== ПРИЛАГАТЕЛЬНЫЕ ========
йа Y П мр,ед,им,од,но
йб Y П мр,ед,рд,од,но
йв Y П мр,ед,дт,од,но
йг Y П мр,ед,вн,од
Рщ Y П мр,ед,вн,но
йд Y П мр,ед,тв,од,но
йе Y П мр,ед,пр,од,но
йж Y П жр,ед,им,од,но
йз Y П жр,ед,рд,од,но
йи Y П жр,ед,дт,од,но
йй Y П жр,ед,вн,од,но
йк Y П жр,ед,тв,од,но
йл Y П жр,ед,пр,од,но
йм Y П ср,ед,им,од,но
йн Y П ср,ед,рд,од,но
йо Y П ср,ед,дт,од,но
йп Y П ср,ед,вн,од,но
йр Y П ср,ед,тв,од,но
йс Y П ср,ед,пр,од,но
йт Y П мн,им,од,но
йу Y П мн,рд,од,но
йф Y П мн,дт,од,но
йх Y П мн,вн,од
Рь Y П мн,вн,но
йц Y П мн,тв,од,но
йч Y П мн,пр,од,но
йш Y КРРИЛ мр,ед,од,но
йщ Y КРРИЛ жр,ед,од,но
йы Y КРРИЛ ср,ед,од,но
йэ Y КРРИЛ мн,од,но
йю Y П сравн,од,но
йъ Y П сравн,2,од,но
йь Y П сравн,од,но,разг
йя Z П 0,од,но
//== превосходная степень прилагательного
иа Y П прев,мр,ед,им,од,но
иб Y П прев,мр,ед,рд,од,но
ив Y П прев,мр,ед,дт,од,но
иг Y П прев,мр,ед,вн,од
ид Y П прев,мр,ед,вн,но
ие Y П прев,мр,ед,тв,од,но
Гб Y П прев,мр,ед,пр,од,но
Гв Y П прев,жр,ед,им,од,но
Гг Y П прев,жр,ед,рд,од,но
Гд Y П прев,жр,ед,дт,од,но
Ге Y П прев,жр,ед,вн,од,но
Гж Y П прев,жр,ед,тв,од,но
Гз Y П прев,жр,ед,пр,од,но
ин Y П прев,ср,ед,им,од,но
ио Y П прев,ср,ед,рд,од,но
ип Y П прев,ср,ед,дт,од,но
ир Y П прев,ср,ед,вн,од,но
ис Y П прев,ср,ед,тв,од,но
ит Y П прев,ср,ед,пр,од,но
иу Y П прев,мн,им,од,но
иф Y П прев,мн,рд,од,но
их Y П прев,мн,дт,од,но
иц Y П прев,мн,вн,од
ич Y П прев,мн,вн,но
иш Y П прев,мн,тв,од,но
ищ Y П прев,мн,пр,од,но
// ======== безличные глаголы ============
// подуматься,светать
нр a ИНФИНИТИВ безл
// подумается
нс a Г безл,буд
// подумалось,светало
нт a Г безл,прш
// светает
ну a Г безл,нст
ка a ИНФИНИТИВ дст
// ========================================
// ======== личные формы глагола ============
кб a Г дст,нст,1л,ед
кв a Г дст,нст,1л,мн
кг a Г дст,нст,2л,ед
кд a Г дст,нст,2л,мн
ке a Г дст,нст,3л,ед
кж a Г дст,нст,3л,мн
кз a Г дст,прш,мр,ед
ки a Г дст,прш,жр,ед
кй a Г дст,прш,ср,ед
кк a Г дст,прш,мн
кп a Г дст,буд,1л,ед
кр a Г дст,буд,1л,мн
кс a Г дст,буд,2л,ед
кт a Г дст,буд,2л,мн
ку a Г дст,буд,3л,ед
кф a Г дст,буд,3л,мн
// разговорные формы: "ложу", "ложим","дышут", "ложут", "ложат", "дождуся"
Ръ a Г дст,нст,1л,ед,разг
Ры a Г дст,нст,1л,мн,разг
Рэ a Г дст,нст,2л,ед,разг
Рю a Г дст,нст,2л,мн,разг
Ря a Г дст,нст,3л,ед,разг
кю a Г дст,нст,3л,мн,разг
кя a Г дст,прш,мн,разг
кэ a Г дст,буд,1л,ед,разг
Эа a Г дст,буд,1л,мн,разг
Эб a Г дст,буд,2л,ед,разг
Эв a Г дст,буд,2л,мн,разг
Эг a Г дст,буд,3л,ед,разг
Эд a Г дст,буд,3л,мн,разг
// архаичные формы: "указует",
Эе a Г дст,нст,1л,ед,арх
Эж a Г дст,нст,1л,мн,арх
Эз a Г дст,нст,2л,ед,арх
Эи a Г дст,нст,2л,мн,арх
Эй a Г дст,нст,3л,ед,арх
Эк a Г дст,нст,3л,мн,арх
Эл a Г дст,прш,мн,арх
Эм a Г дст,буд,1л,ед,арх
Эн a Г дст,буд,1л,мн,арх
Эо a Г дст,буд,2л,ед,арх
Эп a Г дст,буд,2л,мн,арх
Эр a Г дст,буд,3л,ед,арх
Эс a Г дст,буд,3л,мн,арх
// ===================================================
// ============== ДЕЕПРИЧАСТИЕ ====================
// ===================================================
кн a ДЕЕПРИЧАСТИЕ дст,нст
ко a ДЕЕПРИЧАСТИЕ дст,прш
// ===================================================
// ============== ДЕЕПРИЧАСТИЕ (архаизм) ==========
// ===================================================
Эт a ДЕЕПРИЧАСТИЕ дст,нст,арх
Эу a ДЕЕПРИЧАСТИЕ дст,прш,арх
//===================================================
// ============== ИМПЕРАТИВ ====================
// "не будем же забывать наших предков!"
нп a Г дст,пвл,1л,мн
къ a Г дст,пвл,1л,ед
кл a Г дст,пвл,2л,ед
км a Г дст,пвл,2л,мн
// "прощевайте"
ль a Г дст,пвл,2л,ед,разг
кь a Г дст,пвл,2л,мн,разг
// см.
Эю a Г дст,пвл,2л,ед,аббр
// "изыди", "изыдите"
фъ a Г дст,пвл,2л,ед,арх
фю a Г дст,пвл,2л,мн,арх
// действительное причастие настоящего времени
ла a ПРИЧАСТИЕ од,но,нст,дст,ед,мр,им
лб a ПРИЧАСТИЕ од,но,нст,дст,ед,мр,рд
лв a ПРИЧАСТИЕ од,но,нст,дст,ед,мр,дт
лг a ПРИЧАСТИЕ од,нст,дст,ед,мр,вн
Ла a ПРИЧАСТИЕ но,нст,дст,ед,мр,вн
лд a ПРИЧАСТИЕ од,но,нст,дст,ед,мр,тв
ле a ПРИЧАСТИЕ од,но,нст,дст,ед,мр,пр
лз a ПРИЧАСТИЕ од,но,нст,дст,ед,жр,им
ли a ПРИЧАСТИЕ од,но,нст,дст,ед,жр,рд
лй a ПРИЧАСТИЕ од,но,нст,дст,ед,жр,дт
лк a ПРИЧАСТИЕ од,но,нст,дст,ед,жр,вн
лл a ПРИЧАСТИЕ од,но,нст,дст,ед,жр,тв
лм a ПРИЧАСТИЕ од,но,нст,дст,ед,жр,пр
ло a ПРИЧАСТИЕ од,но,нст,дст,ед,ср,им
лп a ПРИЧАСТИЕ од,но,нст,дст,ед,ср,рд
лр a ПРИЧАСТИЕ од,но,нст,дст,ед,ср,дт
лс a ПРИЧАСТИЕ од,но,нст,дст,ед,ср,вн
лт a ПРИЧАСТИЕ од,но,нст,дст,ед,ср,тв
лу a ПРИЧАСТИЕ од,но,нст,дст,ед,ср,пр
лх a ПРИЧАСТИЕ од,но,нст,дст,мн,им
лц a ПРИЧАСТИЕ од,но,нст,дст,мн,рд
лч a ПРИЧАСТИЕ од,но,нст,дст,мн,дт
лш a ПРИЧАСТИЕ од,нст,дст,мн,вн
Лй a ПРИЧАСТИЕ но,нст,дст,мн,вн
лщ a ПРИЧАСТИЕ од,но,нст,дст,мн,тв
лы a ПРИЧАСТИЕ од,но,нст,дст,мн,пр
// действительное причастие прошедшего времени
ма a ПРИЧАСТИЕ од,но,прш,дст,ед,мр,им
мб a ПРИЧАСТИЕ од,но,прш,дст,ед,мр,рд
мв a ПРИЧАСТИЕ од,но,прш,дст,ед,мр,дт
мг a ПРИЧАСТИЕ од,прш,дст,ед,мр,вн
Лб a ПРИЧАСТИЕ но,прш,дст,ед,мр,вн
мд a ПРИЧАСТИЕ од,но,прш,дст,ед,мр,тв
ме a ПРИЧАСТИЕ од,но,прш,дст,ед,мр,пр
мз a ПРИЧАСТИЕ од,но,прш,дст,ед,жр,им
ми a ПРИЧАСТИЕ од,но,прш,дст,ед,жр,рд
мй a ПРИЧАСТИЕ од,но,прш,дст,ед,жр,дт
мк a ПРИЧАСТИЕ од,но,прш,дст,ед,жр,вн
мл a ПРИЧАСТИЕ од,но,прш,дст,ед,жр,тв
мм a ПРИЧАСТИЕ од,но,прш,дст,ед,жр,пр
мо a ПРИЧАСТИЕ од,но,прш,дст,ед,ср,им
мп a ПРИЧАСТИЕ од,но,прш,дст,ед,ср,рд
мр a ПРИЧАСТИЕ од,но,прш,дст,ед,ср,дт
мс a ПРИЧАСТИЕ од,но,прш,дст,ед,ср,вн
мт a ПРИЧАСТИЕ од,но,прш,дст,ед,ср,тв
му a ПРИЧАСТИЕ од,но,прш,дст,ед,ср,пр
мх a ПРИЧАСТИЕ од,но,прш,дст,мн,им
мц a ПРИЧАСТИЕ од,но,прш,дст,мн,рд
мч a ПРИЧАСТИЕ од,но,прш,дст,мн,дт
мш a ПРИЧАСТИЕ од,прш,дст,мн,вн
Лк a ПРИЧАСТИЕ но,прш,дст,мн,вн
мщ a ПРИЧАСТИЕ од,но,прш,дст,мн,тв
мы a ПРИЧАСТИЕ од,но,прш,дст,мн,пр
// страдательное причастие настоящего времени
па b ПРИЧАСТИЕ од,но,нст,стр,ед,мр,им
пб b ПРИЧАСТИЕ од,но,нст,стр,ед,мр,рд
пв b ПРИЧАСТИЕ од,но,нст,стр,ед,мр,дт
пг b ПРИЧАСТИЕ од,нст,стр,ед,мр,вн
Лг b ПРИЧАСТИЕ но,нст,стр,ед,мр,вн
пд b ПРИЧАСТИЕ од,но,нст,стр,ед,мр,тв
пе b ПРИЧАСТИЕ од,но,нст,стр,ед,мр,пр
пж b КРРИЧАСТИЕ од,но,нст,стр,ед,мр
пз b ПРИЧАСТИЕ од,но,нст,стр,ед,жр,им
пи b ПРИЧАСТИЕ од,но,нст,стр,ед,жр,рд
пй b ПРИЧАСТИЕ од,но,нст,стр,ед,жр,дт
пк b ПРИЧАСТИЕ од,но,нст,стр,ед,жр,вн
пл b ПРИЧАСТИЕ од,но,нст,стр,ед,жр,тв
пм b ПРИЧАСТИЕ од,но,нст,стр,ед,жр,пр
пн b КРРИЧАСТИЕ од,но,нст,стр,ед,жр
по b ПРИЧАСТИЕ од,но,нст,стр,ед,ср,им
пп b ПРИЧАСТИЕ од,но,нст,стр,ед,ср,рд
пр b ПРИЧАСТИЕ од,но,нст,стр,ед,ср,дт
пс b ПРИЧАСТИЕ од,но,нст,стр,ед,ср,вн
пт b ПРИЧАСТИЕ од,но,нст,стр,ед,ср,тв
пу b ПРИЧАСТИЕ од,но,нст,стр,ед,ср,пр
пф b КРРИЧАСТИЕ од,но,нст,стр,ед,ср
пх b ПРИЧАСТИЕ од,но,нст,стр,мн,им
пц b ПРИЧАСТИЕ од,но,нст,стр,мн,рд
пч b ПРИЧАСТИЕ од,но,нст,стр,мн,дт
пш b ПРИЧАСТИЕ од,нст,стр,мн,вн
Лм b ПРИЧАСТИЕ но,нст,стр,мн,вн
пщ b ПРИЧАСТИЕ од,но,нст,стр,мн,тв
пы b ПРИЧАСТИЕ од,но,нст,стр,мн,пр
пэ b КРРИЧАСТИЕ од,но,нст,стр,мн
// страдательное причастие прошедшего времени
са b ПРИЧАСТИЕ од,но,прш,стр,ед,мр,им
сб b ПРИЧАСТИЕ од,но,прш,стр,ед,мр,рд
св b ПРИЧАСТИЕ од,но,прш,стр,ед,мр,дт
сг b ПРИЧАСТИЕ од,прш,стр,ед,мр,вн
Ле b ПРИЧАСТИЕ но,прш,стр,ед,мр,вн
сд b ПРИЧАСТИЕ од,но,прш,стр,ед,мр,тв
се b ПРИЧАСТИЕ од,но,прш,стр,ед,мр,пр
сж b КРРИЧАСТИЕ од,но,прш,стр,ед,мр
сз b ПРИЧАСТИЕ од,но,прш,стр,ед,жр,им
си b ПРИЧАСТИЕ од,но,прш,стр,ед,жр,рд
сй b ПРИЧАСТИЕ од,но,прш,стр,ед,жр,дт
ск b ПРИЧАСТИЕ од,но,прш,стр,ед,жр,вн
сл b ПРИЧАСТИЕ од,но,прш,стр,ед,жр,тв
см b ПРИЧАСТИЕ од,но,прш,стр,ед,жр,пр
сн b КРРИЧАСТИЕ од,но,прш,стр,ед,жр
со b ПРИЧАСТИЕ од,но,прш,стр,ед,ср,им
сп b ПРИЧАСТИЕ од,но,прш,стр,ед,ср,рд
ср b ПРИЧАСТИЕ од,но,прш,стр,ед,ср,дт
сс b ПРИЧАСТИЕ од,но,прш,стр,ед,ср,вн
ст b ПРИЧАСТИЕ од,но,прш,стр,ед,ср,тв
су b ПРИЧАСТИЕ од,но,прш,стр,ед,ср,пр
сф b КРРИЧАСТИЕ од,но,прш,стр,ед,ср
сх b ПРИЧАСТИЕ од,но,прш,стр,мн,им
сц b ПРИЧАСТИЕ од,но,прш,стр,мн,рд
сч b ПРИЧАСТИЕ од,но,прш,стр,мн,дт
сш b ПРИЧАСТИЕ од,прш,стр,мн,вн
Ло b ПРИЧАСТИЕ но,прш,стр,мн,вн
сщ b ПРИЧАСТИЕ од,но,прш,стр,мн,тв
сы b ПРИЧАСТИЕ од,но,прш,стр,мн,пр
сэ b КРРИЧАСТИЕ од,но,прш,стр,мн
ча e МС 1л,ед,им
чб e МС 1л,ед,рд
чв e МС 1л,ед,дт
чг e МС 1л,ед,вн
чд e МС 1л,ед,тв
че e МС 1л,ед,пр
чж e МС 1л,мн,им
чз e МС 1л,мн,рд
чи e МС 1л,мн,дт
чй e МС 1л,мн,вн
чк e МС 1л,мн,тв
чл e МС 1л,мн,пр
чм e МС 2л,ед,им
чн e МС 2л,ед,рд
чо e МС 2л,ед,дт
чп e МС 2л,ед,вн
чр e МС 2л,ед,тв
чс e МС 2л,ед,пр
чт e МС 2л,мн,им
чу e МС 2л,мн,рд
чф e МС 2л,мн,дт
чх e МС 2л,мн,вн
чц e МС 2л,мн,тв
чч e МС 2л,мн,пр
ша e МС 3л,мр,ед,им
шб e МС 3л,мр,ед,рд
шв e МС 3л,мр,ед,дт
шг e МС 3л,мр,ед,вн
шд e МС 3л,мр,ед,тв
ше e МС 3л,мр,ед,пр
шж e МС 3л,жр,ед,им
шз e МС 3л,жр,ед,рд
ши e МС 3л,жр,ед,дт
шй e МС 3л,жр,ед,вн
шк e МС 3л,жр,ед,тв
шл e МС 3л,жр,ед,пр
шм e МС 3л,ср,ед,им
шн e МС 3л,ср,ед,рд
шо e МС 3л,ср,ед,дт
шп e МС 3л,ср,ед,вн
шр e МС 3л,ср,ед,тв
шс e МС 3л,ср,ед,пр
шт e МС 3л,мн,им
шу e МС 3л,мн,рд
шф e МС 3л,мн,дт
шх e МС 3л,мн,вн
шц e МС 3л,мн,тв
шч e МС 3л,мн,пр
ща e МС мр,ед,им
щб e МС мр,ед,рд
щв e МС мр,ед,дт
щг e МС мр,ед,вн
щд e МС мр,ед,тв
ще e МС мр,ед,пр
щж e МС жр,ед,им
щз e МС жр,ед,рд
щи e МС жр,ед,дт
щй e МС жр,ед,вн
щк e МС жр,ед,тв
щл e МС жр,ед,пр
щм e МС ср,ед,им
щн e МС ср,ед,рд
що e МС ср,ед,дт
щп e МС ср,ед,вн
щр e МС ср,ед,тв
щс e МС ср,ед,пр
щт e МС мн,им
щу e МС мн,рд
щф e МС мн,дт
щх e МС мн,вн
щц e МС мн,тв
щч e МС мн,пр
щщ e МС рд
щы e МС дт
щэ e МС вн
щю e МС тв
щя e МС пр
ыа f МС-П мр,ед,им,од,но
ыб f МС-П мр,ед,рд,од,но
ыв f МС-П мр,ед,дт,од,но
ыг f МС-П мр,ед,вн,но
Лф f МС-П мр,ед,вн,од
ыд f МС-П мр,ед,тв,од,но
ые f МС-П мр,ед,пр,од,но
ыж f МС-П жр,ед,им,од,но
ыз f МС-П жр,ед,рд,од,но
ыи f МС-П жр,ед,дт,од,но
ый f МС-П жр,ед,вн,од,но
ык f МС-П жр,ед,тв,од,но
ыл f МС-П жр,ед,пр,од,но
ым f МСср,ед,им,од,но
ын f МСср,ед,рд,од,но
ыо f МСср,ед,дт,од,но
ып f МСср,ед,вн,од,но
ыр f МСср,ед,тв,од,но
ыс f МСср,ед,пр,од,но
ыт f МС-П мн,им,од,но
ыу f МС-П мн,рд,од,но
ыф f МС-П мн,дт,од,но
ых f МС-П мн,вн,но
Лх f МС-П мн,вн,од
ыц f МС-П мн,тв,од,но
ыч f МС-П мн,пр,од,но
ыш f МС-П 0,од,но
ыщ g МС-ПРЕДК ед,рд
ыы g МС-ПРЕДК ед,дт
ыэ g МС-ПРЕДК ед,вн
ыю g МС-ПРЕДК ед,тв
// это анал. форма "не о ком"
ыь g МС-ПРЕДК ед,пр
ыя g МС-ПРЕДК
эа h ЧИСЛ им
эб h ЧИСЛ рд
эв h ЧИСЛ дт
эг h ЧИСЛ вн
эд h ЧИСЛ тв
эе h ЧИСЛ пр
Ца h ЧИСЛ им,арх
Цб h ЧИСЛ рд,арх
Цв h ЧИСЛ дт,арх
Цг h ЧИСЛ вн,арх
Цд h ЧИСЛ тв,арх
Це h ЧИСЛ пр,арх
эж h ЧИСЛ мр,им
эз h ЧИСЛ мр,рд
эи h ЧИСЛ мр,дт
эй h ЧИСЛ мр,вн
эк h ЧИСЛ мр,тв
эл h ЧИСЛ мр,пр
эм h ЧИСЛ жр,им
эн h ЧИСЛ жр,рд
эо h ЧИСЛ жр,дт
эп h ЧИСЛ жр,вн
эр h ЧИСЛ жр,тв
эс h ЧИСЛ жр,пр
эт h ЧИСЛ ср,им
эу h ЧИСЛ ср,рд
эф h ЧИСЛ ср,дт
эх h ЧИСЛ ср,вн
эц h ЧИСЛ ср,тв
эч h ЧИСЛ ср,пр
эш h ЧИСЛ сравн
юа i ЧИСЛ-П мр,ед,им,од,но
юб i ЧИСЛ-П мр,ед,рд,од,но
юв i ЧИСЛ-П мр,ед,дт,од,но
юг i ЧИСЛ-П мр,ед,вн,но
Лт i ЧИСЛ-П мр,ед,вн,од
юд i ЧИСЛ-П мр,ед,тв,од,но
юе i ЧИСЛ-П мр,ед,пр,од,но
юж i ЧИСЛ-П жр,ед,им,од,но
юз i ЧИСЛ-П жр,ед,рд,од,но
юи i ЧИСЛ-П жр,ед,дт,од,но
юй i ЧИСЛ-П жр,ед,вн,од,но
юк i ЧИСЛ-П жр,ед,тв,од,но
юл i ЧИСЛ-П жр,ед,пр,од,но
юм i ЧИСЛ-П ср,ед,им,од,но
юн i ЧИСЛ-П ср,ед,рд,од,но
юо i ЧИСЛ-П ср,ед,дт,од,но
юп i ЧИСЛ-П ср,ед,вн,од,но
юр i ЧИСЛ-П ср,ед,тв,од,но
юс i ЧИСЛ-П ср,ед,пр,од,но
ют i ЧИСЛ-П мн,им,од,но
юу i ЧИСЛ-П мн,рд,од,но
юф i ЧИСЛ-П мн,дт,од,но
юх i ЧИСЛ-П мн,вн,но
Лу i ЧИСЛ-П мн,вн,од
юц i ЧИСЛ-П мн,тв,од,но
юч i ЧИСЛ-П мн,пр,од,но
ющ i ЧИСЛ-П рд,од,но
// наречия
яа j Н
ян j Н вопр
яо j Н указат
яп j Н разг
// "мне интересно","мне было страшно"
яб k ПРЕДК нст
як k ПРЕДК прш
ял k ПРЕДК
// мне лучше
яр k ПРЕДК сравн,нст
// "вот", "хрусть" (нет анал. форм)
ям k ПРЕДК 0
яв l ПРЕДЛ
яг m ПОСЛ
яд n СОЮЗ
яе o МЕЖД
яё o МЕЖД разг
яж p ЧАСТ
яз q ВВОДН
яй s ФРАЗ
Пп b Г стр,буд,1л,ед
Пр b Г стр,буд,1л,мн
Пс b Г стр,буд,2л,ед
Пт b Г стр,буд,2л,мн
Пу b Г стр,буд,3л,ед
Пф b Г стр,буд,3л,мн
// общие граммемы (словообразовательные)
Уа a * лок
// Уб a *
// Ув a *
// Уг a *
// Уд a *
Уе a * кач
Уж a * дфст
Уз a * дфст,орг
Уи a * дфст,лок
//Ук a *
Ул a * св,пе
Ум a * св,нп
Ун a * нс,пе
Уо a * нс,нп
Уп a * св,нс,пе
Ур a * св,нс,нп
// для безличных глаголов
Ус a * нс
Ут a * св
Уф a * жарг
Ух a * опч
Уч a * жарг,опч
Уц a * орг,жарг
Уш a * лок,жарг
Ущ a * но,лок
Уь a * но,орг
Уы a * од,фам
Уъ a * но,дфст,лок
Уэ a * но,дфст,орг
Ую a * но,жарг
Уя a * но,опч,
Фа a * но,
Фб a * од,
Фв a * орг,жарг,но
Фг a * дфст,но
Фд a * дфст,од
Фж a * од,жарг
Фз a * имя,притяж
Фи a * притяж
Фк a * св,пе,разг
Фл a * св,нп,разг
Фн a * нс,пе,разг
Фо a * нс,нп,разг
Фп a * но,разг
Фр a * од,разг
Фс a * св,пе,жарг
Фт a * св,нп,жарг
Фу a * нс,пе,жарг
Фф a * нс,нп,жарг
Фх a * разг
Фц a * арх
Фч a * св,пе,арх
Фш a * св,нп,арх
Фщ a * нс,пе,арх
Фь a * нс,нп,арх
Фы a * но,арх
Фъ a * од,арх
Фэ a * нс,арх
Фю a * св,арх
Фя a * кач,арх
Фё a * но,од
Ха a * од,опч,
Хб a * лок,опч,
яю F С мр,жр,ср,ед,им,рд,дт,вн,тв,пр
яя F С мр,жр,ср,,ед,мн,им,рд,дт,вн,тв,пр

1235
parser/mp-en.lua Normal file

File diff suppressed because it is too large Load Diff

1192
parser/mp-ru.lua Normal file

File diff suppressed because it is too large Load Diff

2822
parser/mp.lua Normal file

File diff suppressed because it is too large Load Diff

3103
parser/mplib.lua Normal file

File diff suppressed because it is too large Load Diff

41
parser/react.lua Normal file
View File

@ -0,0 +1,41 @@
-- react_ and postreact_ event module for reactions near the object
--[[ include 'listen'
obj {
nam = 'npc';
react_Take = "Player in this room is taking something. Reject!";
}:listen();
]]--
--luacheck: globals mp
--luacheck: no self
game.react_list = std.list {}
function game:before_Any(ev, ...)
for _, v in ipairs(game.react_list) do
if v:inroom() == std.here() then
local r = mp:runmethods('react', ev, v, ...)
if r ~= false then
return
end
end
end
return false
end
function game:post_Any(ev, ...)
for _, v in ipairs(game.react_list) do
if v:inroom() == std.here() then
local r = mp:runmethods('postreact', ev, v, ...)
if r ~= false then
return
end
end
end
return false
end
function std.obj.listen(s)
game.react_list:add(s)
return s
end

169
room1.lua Normal file
View File

@ -0,0 +1,169 @@
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "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 = "Медный ключ от особняка, слегка позеленевший от старости.";
}

293
room10.lua Normal file
View File

@ -0,0 +1,293 @@
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room10_" или "zal_"
-- Все описания можно менять
-- Задача: Игрок должен найти в локации предмет lamp. Да-да, get lamp
room {
nam = "room10_zal";
title = "Зал";
door_ask = false;
dsc = [[Ты находишься в просторном зале. Широкая лестница в центре зала ведёт наверх. Два столба у основания
лестницы венчают статуи в виде сидящих на перилах кошек. Свет от роскошной люстры освещает портреты на стенах.^^
К северу расположена гостиная, к югу прихожая, на западе столовая. Лестница ведёт наверх.]];
n_to = 'room12_gostinnaya';
u_to = 'room14_secondfloor';
s_to = 'room3_hall';
w_to = 'room7_stolovaya';
score=false;
before_Any = function(s, ev, w)
if me():where() ^ '#safe' or me():where() ^ '#podsobka' then
if w and not w:access() then
p ("Ты же в ", me():where():noun'пр', ".")
return
end
end
if not s.door_ask then
return false
end
s.door_ask = false
if ev == "Yes" then
p [[Ты толкаешь дверь и она открывается! Что за кретин проектировал особняк?]]
_'#podsobka':attr'open'
_'#podsobka'.was_open = true
if not s.score then
mp.score=mp.score+1;
end;
_'room10_zal'.score=true;
return
elseif ev == "No" then
p [[Да, вряд-ли кто-то в здравом уме стал бы проектировать двери таким образом.]]
return
end
return false
end;
obj = {
obj {
-"столбы,столб*";
description = [[Массивные деревянные столбы установлены в начале лестницы. На каждом столбе находятся небольшие статуи кошек.]];
}:attr'scenery';
obj {
-"перила|стены/жр|потолок";
description = function(s) p ("Тебе нет дела до ", s:noun'рд', ".") end;
}:attr'scenery';
obj {
-"люстра|свет";
description = [[Красивая люстра... Антиквариат?]];
}:attr'concealed,static';
obj {
-"кошки,статуи/мн";
description = "Небольшие фигурки кошек, вырезанные из дерева. А может быть, это слоновая кость? Тут есть правая кошка и левая кошка.";
}:attr'concealed,static,~animate';
obj {
-"левая кошка,левая статуя,левая,кошка,статуя";
description = [[Левая статуя изображает сидящую кошку. Она точно такая же, как и правая.]];
['before_Push,Pull,Turn'] = 'Кошка не сдвинулась с места.';
}:attr'static,concealed,~animate';
obj {
-"правая кошка,правая статуя,кошка,статуя,правая,потёрт*";
description = function(s)
if _'#safe':hasnt'locked' then
p [[Правая статуя смотрит в сторону. Этот дом -- одна сплошная тайна!]]
return
end
p [[Правая статуя изображает сидящую кошку. Она точно такая же, как и левая. Хотя, если приглядеться, то тебе кажется, что эта кошка имеет больше потёртостей и смотрит немного в другую сторону. Впрочем, это чувство может быть обманчивым.]];
end;
['before_Push,Pull,Touch'] = [[Гм... Тебе кажется, что кошка не зафиксирована жёстко на столбе. Ты чувствуешь это по еле заметным колебаниям, когда ты пытаешься сдвинуть её с места.]];
['before_Turn'] = function(s)
if _'#safe':hasnt'locked' then
p [[Ты поворачиваешь кошку обратно.]]
_'#safe':attr'locked'
else
p [[Ты пробуешь повернуть кошку вокруг своей оси. Получается! При этом, ты слышишь хорошо различимый щелчок.]]
_'#safe':attr'~locked'
end
end;
}:attr'static,concealed,~animate';
obj {
-"портреты|картины";
before_Take = [[Тёте Агате это не понравится.]];
description = function(s)
p[[Скорее всего на портретах изображены предки тётушки Агаты. Если присмотреться к одному из них, то можно найти еле-уловимое сходство... Ах, да это же и есть тётушка Агата!]]
enable '#portrait'
end;
['before_LookUnder,Push,Pull,Transfer,Turn'] = function(s)
if not disabled '#portrait' then
return false
end
p [[Ты решаешь проверить все портреты и педантично изучаешь каждый из них. Под портретом на котором изображена сама тётушка Агата ты обнаруживаешь тайник!]]
enable '#portrait'
enable '#safe'
_'#portrait'.opened = true
end;
}:attr'scenery';
obj {
-"портрет|картина|тётушка,Агата";
opened = false;
nam = '#portrait';
dsc = function(s)
p [[Среди портретов на стенах ты видишь портрет тётушки Агаты.]];
if s.opened then
p [[Картина сдвинута, на её месте находится сейф.]]
end
end;
before_Take = [[Тёте Агате это не понравится!]];
description = [[Это твоя тётушка Агата. Как живая!]];
['before_Push,Pull,Transfer,Turn,LookUnder'] = function(s)
if s.opened then
p [[Ты сдвигаешь картину обратно.]]
s.opened = false
else
p [[Поддавшись своему чутью, ты заглядываешь под портрет и, конечно же, обнаруживаешь там сейф!]];
s.opened = true
enable '#safe'
end
end;
}:attr'~animate':disable();
obj {
-"сейф,тайник";
nam = '#safe';
title = [[В сейфе]];
description = function(s)
if s:has'open' then
p [[Сейф открыт!]]
mp:content(s)
return
end
p [[На сейфе нет никаких признаков замка или кодовых ручек.]]
end;
before_Close = function(s)
if me():where() == s and s:has'open' then
p [[А если дверь не откроется?]]
return
end
return false
end;
before_Enter = function(s)
if s:has'open' then
p [[Укрыться от всех невзгод в сейфе? Хороший план!]];
return false
else
return false
end
end;
}:attr 'scenery,openable,enterable,locked,container':disable():with {
obj {
-"сокровища|брильянты,алмазы|украшения|сокровище,золото,клад";
description = [[Столько усилий и всё зря! Похоже, это неприкосновенный запас тётушки... Ты видишь тут: брильянты, золото, ювелирные украшения... Ты разочарована.]];
before_Take = [[Грабить тётушку? Ты в своём уме? Пусть тут лежит.]];
before_Enter = [[Что за пошлая мысль?]];
};
};
door {
-"лестница,ступен*";
description = function(s)
p [[Построено с размахом! На ступенях закреплена красная ковровая дорожка.]];
if _'#podsobka':has'concealed' then
_'#podsobka':attr'~concealed'
p [[Под лестницей ты замечаешь небольшую дверь в подсобку.]]
end
end;
before_LookUnder = function(s)
_'#podsobka':attr'~concealed'
p [[Под лестницей ты замечаешь небольшую дверь в подсобку.]]
end;
door_to = function(s)
return std.call(here(), 'u_to')
end;
}:attr'scenery,open':with {
obj {
-"ковёр|ковровая дорожка,дорожка,красн*";
description = function(s)
p [[Это так в духе тётушки Агаты. Её любовь к роскоши выглядит скорее наивной, чем напыщенной.]];
mp:content(s)
end;
before_Take = [[Дорожка надёжно закреплена.]];
['before_Enter,Climb'] = [[Если хочешь подняться по лестнице, просто иди наверх.]];
}:attr 'enterable'
};
obj {
-"подсобка,кладовка,дверь,дверь подсобки,дверь в подсобку";
nam = '#podsobka';
title = [[В подсобке.]];
inside_dsc = [[Ты находишься в подсобке.]];
was_open = false;
dsc = function(s)
if s:hasnt'open' then
p [[Под лестницей расположена дверь в подсобку.]];
else
p [[Дверь в подсобку открыта.]]
mp:content(s)
end
end;
description = function(s)
if s:hasnt'open' then
p [[Небольшая деревянная дверь подсобки закрыта. Замочной скважины не видно. Дверь без замка?]]
return
end
return false
end;
["before_Open,Pull"] = function(s)
if s:has'open' or s.was_open then
return false
end
if s:once('1') then
p [[Ты подёргала дверь. Не поддаётся. Странно.]];
elseif s:once('2') then
p [[Ты с силой дёргаешь дверь. Нет результата.]];
else
p [[Ты изо всех сил тянешь дверь на себя. Не открывается!]];
end
end;
before_Attack = function(s)
if s:has'open' then
return false
end
p [[Ты не чувствуешь себя способной выломать эту дверь.]]
end;
before_Push = function(s)
if s:has'open' then
mp:xaction("Open", s)
return
end
here().door_ask = true
p [[Ха! Думаешь, дверь открывается в другую сторону? {$fmt em|Да?}]]
end;
}:attr'container,openable,enterable,concealed,static': with { 'lamp' };
};
}
-- Менять нельзя!!!! Это не ваш предмет!!! Вы не знаете как он выглядит, его придумает другой автор!!!
obj {
-"керосиновая лампа, лампа, старая лампа";
nam = "lamp";
kerosin = 0;
description = function (s)
p "Обычная керосиновая лампа.";
if s.kerosin==0 then
p "В ней нет керосина.";
else
p "Заправлена керосином.";
end;
if (s :has 'light') then
p "Горит и светит.";
else
p "Не горит.";
end;
end;
before_Fill = function(s,w)
if not have('kerosin') then
p "Тебе нечем наполнить лампу!";
else
_'lamp'.kerosin = 1;
remove ('kerosin');
p "Ты заправляешь лампу керосином, и избавляешься от опустевшей бутылочки.";
end
end;
before_Burn = function(s,w)
if not w then
p "Чем ты хочешь зажечь лампу?";
return true;
end
if not w^'matches' and not w^'kitchen_lighter' then
p "Этим не зажечь лампу!";
elseif w^'matches' then
if s.kerosin==0 then
p "Не выйдет! В лампе совершенно не осталось керосина! Сначала ее стоило бы наполнить чем-то горючим.";
return true;
end
_'lamp':attr'light';
remove ('matches');
mp.score=mp.score+1;
p "Ты поджигаешь лампу от последней спички.";
else
p "Зажигалка слишком толстая и не влазит в узкое горло керосиновой лампы.";
end
end;
before_Rub = "Ты потёрла старую лампу, но ничего не произошло, и никакого джина из неё не вылезла. Попытаться, впрочем, стоило.";
score=false;
after_Take = function(s)
if not s.score then
mp.score=mp.score+1;
end;
_'lamp'.score=true;
return false;
end;
};

1048
room11.lua Normal file

File diff suppressed because it is too large Load Diff

181
room12.lua Normal file
View File

@ -0,0 +1,181 @@
--красное море
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room12_" или "gostinnaya_"
-- Все описания можно менять
-- Задача: Игрок должен найти в локации кодовое слово или набор цифр. Кодовое слово придумываете вы, желательно указать его в комментариях в первой строке файла, чтобы я потом заменил его в файле другого автора
-- Крайне желательно чтобы игроку было более или менее явно понятно, что это кодовое слово, которое может пригодится дальше в процессе игры
-- Также - выход на север изначально закрыт, и открывается из этой комнаты, способ открыть дверь остаётся на усмотрение автора
-- Также - кабинет на востоке изначально закрыт, и открывается с помощью предмета squarekey, игрок может зайти в локацию как с этим предметом, так и без него
obj {
-"квадратный ключ,ключ";
nam = "squarekey";
description = "Квадратный ключ.";
score=false;
after_Take = function(s)
if not s.score then
mp.score=mp.score+1;
end;
_'squarekey'.score=true;
return false;
end;
}
room {
nam = "room12_gostinnaya";
title = "Гостиная";
dsc = function()
p "В гостиной тихо и спокойно. Пылинки пляшут в потоке света из-под огромного абажура в центре потолка. Углы комнаты тонут в темноте.";
if _'room12_портал':has'on' then
p 'Ну не считая конечно того, что в дверных проёмах ведущих на север и запад видна картинка явно не соответствующая соседним комнатам.';
end;
end;
n_to = 'room2_on_terrasa'; --терасса
e_to = 'room13_library'; --библиотека
s_to = 'room10_zal'; --зал
w_to = 'room11_kabinet'; --кабинет
before_Listen = "Не считая шумов свойственных старому дому, ничего не слышно.";
before_Smell = "Пахнет пылью и почему-то озоном.";
before_Think = "Всё страньше и страньше! Всё чудесатее и чудесатее! Всё любопытственнее и любопытственнее! Всё страннее и страннее! Всё чудесится и чудесится!";
before_Wait = "Я немного подождала. Внезапно из шкафа послышался какой-то неясный звук. Мыши наверное.";
before_Taste = 'Как-то в детстве я лизнула железные качели в декабре. С тех пор стараюсь явно несъедобные объекты не лизать.';
obj = {'room12_шкаф', 'room12_стол', 'room12_кресло', 'room12_лампа', 'room12_фото', 'room12_пол', 'room12_потолок', 'room12_стены'};
compass_look = function(s,dir)
if _'room12_портал':has'on' then
if dir == 'n_to' then
p 'В двери ведущей на север видны бесконечные морские просторы без каких-либо признаков жизни. Конечно проверять голограмма ли это или правда, а если даже и второе, то есть ли вход с той стороны, я не буду. Тем более плаваю я посредственно.';
elseif dir == 'w_to' then
p 'В двери ведущей на запад видна какая-то пустыня, только какая-то серая и со странным резким освещением. Я провела взглядом по странно близкому горизонту и зависла над невозможной картиной. Из-за горизонта неспешно выкатывался сине-зеленый шар планеты с очень узнаваемыми очертаниями материков. Я в испуге отшатнулась.';
else
p 'С этой стороны находится обычная дверь, ведущая очевидно в соседнее помещение.';
end;
else
p 'С этой стороны находится обычная дверь, ведущая очевидно в соседнее помещение.';
end;
end;
['before_Walk,Enter'] = function(s,w)
if mp:compass_dir(w) == 'n_to' or mp:compass_dir(w) == 'w_to' then
if _'room12_портал':has'on' then
p 'Шагать в неизвестность как минимум неразумно. Стоит сначала осмотреться.';
else
return false;
end;
else
return false;
end;
end;
}
obj {
-"фотография|портрет|диск";
nam = 'room12_фото';
description = 'На стене висит фотография улыбающегося молодого мужчины, замотанного в бурнус (или как там эта арабская одежда называется?), на фоне морского берега. В руках он держит красный керамический диск покрытый резьбой в виде круговых орнаментов и неизвестных символов.';
before_Take = 'Портрет как-то намертво приделан к стене. Приклеен что-ли?';
}:attr 'static';
obj {
-"лампа|абажур";
nam = 'room12_лампа';
description = 'Огромный бордовый абажур с оборками. Выглядит очень пыльным.';
before_SwitchOff = 'Выключателя что-то не видно.';
before_Take = 'Я не дотягиваюсь. Слишком высоко.';
}:attr 'scenery';
obj {
-"пол|паркет";
nam = 'room12_пол';
description = 'Пол покрыт старым потёртым паркетом.';
}:attr 'scenery';
obj {
-"потолок";
nam = 'room12_потолок';
description = 'Потолок покрашен белой краской, пожелтевшей от времени. Посередине находится огромный абажур с лампой.';
}:attr 'scenery';
obj {
-"стены|стена";
nam = 'room12_стены';
description = 'Стены оббиты тканью с выгоревшим цветочным рисунком, как это было модно в начале прошлого века. Во всех четырех направлениях есть выходы в соседние комнаты.';
}:attr 'scenery';
obj {
-"шкаф|резьба|дверцы|символы|буквы";
nam = 'room12_шкаф';
description = 'Винтажного вида платяной шкаф с украшенными затейливой резьбой дверцами. В резьбе местами угадываются какие-то буквы и символы.';
obj = {};
['before_Walk,Enter,Open'] = function(s)
if s:once() then
p 'Открыв шкаф я увидела вовсе не пустые вешалки как ожидалось. Вместо задней стенки я обнаружила ночь, заметенную снегом поляну и чугунный фонарь. Внезапно в темноте за кругом света от фонаря мне почудилось какое-то движение, из темноты выступили очертания чего-то. Неестественные и отвратительные. Первобытный ужас охватил меня, холод прокатился по позвоночнику и я поспешно захлопнула дверцу шкафа.';
elseif _'room12_портал':has'on' then
p 'Нет уж. Там страшно.';
else
p 'Шкаф совершенно пуст. Я прикрыла дверцы обратно.';
end;
end;
before_Take = 'Я не думаю, что смогу даже на миллиметр подвинуть этот шкаф.';
}:attr 'static';
obj {
-"стол";
nam = 'room12_стол';
description = 'Круглый обеденный стол. Весьма старый судя по потертому лаку на столешнице.';
obj = {'room12_ноутбук'};
before_Take = 'Слишком большой, чтобы я могла справиться с ним.';
before_LookUnder = 'Кроме следов мышей в пыли тут ничего нет.';
}:attr 'static, supporter, enterable';
obj {
-"кресло";
nam = 'room12_кресло';
description = 'Массивное винтажное кресло с резной спинкой. Оббито полосатой тканью.';
before_Take = 'Это кресло слишком тяжёлое.';
}:attr 'static, supporter, enterable';
obj {
-"стальной кейс,кейс,стальной чемодан,чемодан,ноутбук,компьютер,экран";
nam = "room12_ноутбук";
description = function(s)
if s:has'open' then
p "На экране светится что-то типа нортон-коммандера. Но почти все директории оказались заблокированы. В документах я нашла единственный файл подписанный 'код'. И ещё загадочное приложение 'портал'.";
else
p "Массивный стальной кейс с закруглёнными уголками. На замке кейса есть квадратное отверстие под ключ.";
end
end;
obj = {'room12_файл', 'room12_портал'};
with_key = 'squarekey';
before_Take = 'Я попыталась снять кейс со стола, но внутри что-то очень тяжёлое. Даже тяжелее той сумки, что я собрала в тот раз в отпуск.';
before_LetIn = 'Положить ключ в кейс и захлопнуть его. Прекрасная идея. Я как-то с машиной это проделала, пришлось специального слесаря вызывать. Так что как-нибудь потом.';
before_SwitchOff = 'Каких-то специальных кнопок для выключения ноутбука я не нашла. Может быть достаточно закрыть его?';
after_Open = function()
p 'Кейс оказался каким-то древним ноутбуком. С выпуклым экраном и непривычной раскладкой клавиатуры. На экране замигали надписи и загрузилась незнакомая операционная система.';
-- place('squarekey','room12_стол');
remove('squarekey')
end;
}:attr 'static, openable, lockable, locked, container';
obj {
-"файл,код";
nam = 'room12_файл';
description = "Файл называется code.txt. В файле единственная строчка 'красное море'.";
before_Open = "В файле единственная строчка 'красное море'.";
before_Take = 'В ноутбуке есть какие-то разъёмы сбоку, но это явно не USB. Да и флешки у меня нет с собой.';
}:attr 'scenery';
obj {
-"программа|портал";
nam = 'room12_портал';
description = "Этот файл называется portal.bin.";
['before_Open,SwitchOff,SwitchOn'] = function(s)
p "Поверх вылезло окошко терминала, быстро мигнуло несколько строк и окошко закрылось.";
if s:has'on' then
p "Это так и должно быть? Порталы же зашипели и погасли, открыв за собой проёмы дверей в соседние комнаты.";
s:attr'~on'
_'room2_door':attr'~locked'
_'room2_door':attr'open'
mp.score=mp.score+1
else
p "И больше ничего не произошло.";
end;
end;
before_Take = 'В ноутбуке есть какие-то разъёмы сбоку, но это явно не USB. Да и флешки у меня нет с собой.';
}:attr 'scenery, switchable, on';

280
room13.lua Normal file
View File

@ -0,0 +1,280 @@
--Автор: Андрей Лобанов
room {
-"библиотека",
nam = "room13_library",
title = "Библиотека",
dsc = function(s)
local v = " На западе расположена гостиная."
if s:once() then
--"вошёл"
--"мечтаешь"
return "{#Me/им} {#word/вошёл,#me,прш} в библиотеку. Очень уютное и приятное помещение. О такой библиотеке {#me} {#word/мечтаешь,#me,прш} в детстве." .. v
end
--"находится"
return "{#Me/им} {#word/находится,#me,нст} в библиотеке." .. v
end,
description = "Небольшая, по меркам особняка тёти Агаты, комната.",
w_to = 'room12_gostinnaya',
Taste = "{#Me} не {#word/хочет,#me,нст} пробовать {#first/вн} на вкус.",
obj = {
obj {
-"шкафы|шкаф",
nam = "room13_шкафы",
moved = false,
dsc = "Вдоль стен стоят шкафы с книгами.",
description = "Гигантские шкафы от пола до потолка. До верхних полок не дотянуться без специальной лесенки.",
--"поднимешь"
before_Take = "Шкафы огромны и тяжелы. {#Me/им} никогда не {#word/поднимешь,#me,буд} такой даже если он будет пустой.",
Smell = "Пахнут бумажной пылью.",
Touch = "Шкафы приятные на ощупь. Настоящая древесина.",
obj = {
obj {
-"книги|потёртая книга,книга",
description = "Корешки книг подобраны так, что вызывают ощущение идеального порядка в библиотеке. Как будто библиотеку подбирал дизайнер.",
--"провёл"
Touch = "{#Me/им} {#word/провёл,#me,прш} рукой по корешкам книг.",
--"пахнет"
Smell = "{#First/им} не {#word/пахнет,#first,нст} ничем особенным.",
Taste = "{#Me/им} не {#word/хочет,#me,нст} пробовать {#fitst} на вкус.",
--"попробовать"
before_Take = "{#Me} {#word/попробовать,#me,прш} взять книгу. Не поддаётся как будто приклеена.^^Возможно стоит изучить библиотеку повнимательнее.",
--"пахнет"
Smell = "{#First/им} {#word/пахнет,#first,нст} старой бумагой.",
--"приятный"
Touch = "{#First/им} {#word/приятный,#first,нст} на ощупь.",
--"хочет"
Search = function(s)
if disabled "room13_тайный рычаг" then
enable "room13_тайный рычаг"
mp.score=mp.score+1
--"замечает"
return "Хорошенько осмотрев книги, {#me} {#word/замечает,#me,нст} что одна книга выглядит более потёртой, чем остальные. Должно быть это тайный рычаг."
else
return "Одна книга выглядит более потёртой, чем остальные. Это тайный рычаг."
end
end,
}:attr "scenery",
obj {
-"рычаг|тайный рычаг",
nam = "room13_тайный рычаг",
description = "Книга выглядит более потёртой, чем все остальные книги в библиотеке.",
--"попробовал"
before_Take = "{#Me} {#word/попробовал,#me,прш} взять тайный рычаг, но он крепко закреплён в шкафу.",
Touch = function(s)
s:Pull(s)
end,
Smell = "{#First} не {#word/пахнет,#first,нст} ничем примечательным.",
USED = function(s)
if _"room13_шкафы".moved==false then
mp.score=mp.score+1
end;
_"room13_шкафы".moved = true
enable "room13_дверца"
pn()
p "Один из шкафов с шуршанием отъехал в сторону."
end,
--"потянуть"
Pull = function(s)
pn "{#Me/им} {#word/потянуть,#me,прш} рычаг."
s.USED(s)
end,
--"нажать"
Push = function(s)
pn "{#Me/им} {#word/нажать,#me,прш} рычаг."
s.USED(s)
end,
}:attr "static":disable(),
},
}:attr "static,container,open",
obj {
-"дверца|маленькая дверца|дверка|маленькая дверка|дверь",
nam = "room13_дверца",
dsc = "За отъехавшим в сторону шкафом видна маленькая дверца.",
description = "Маленькая металлическая дверца.",
before_Take = function(s)
if disabled "room13_ниша" then
return "{#Me/им} {#word/попробовал,#me,прш} взять дверцу, но она слишком плотно прилегает к стене -- невозможно зацепить."
end
--"подёргал"
return "{#Me/им} {#word/подёргал,#me,прш} дверцу, но она крепко держится на петлях."
end,
Touch = "{#First/им} прохладная и гладкая.",
Smell = "{#First/им} пахнет металлом.",
with_key = "room13_маленький ключик",
Open = function(s)
enable "room13_ниша"
return false
end,
Close = function(s)
disable "room13_ниша"
return false
end,
}:attr "static,openable,lockable,locked":disable(),
obj {
-"ниша",
nam = "room13_ниша",
dsc = function(s)
p "За ней находится небольшая ниша."
mp:content(s)
end,
description = "Небольшое углубление в стене. Тайник!",
--"знает"
before_Take = "{#Me} не {#word/знает,#me,нст} как можно взять нишу.",
Touch = "Внутри ниша обита мягким и приятным на ощупь материалом.",
Smell = "В нише ничем не пахнет.",
obj = {
"book",
},
}:attr "static,container,open":disable(),
obj {
-"ковёр|коврик",
count = 0,
dsc = "На деревянном полу лежит небольшой коврик.",
description = function(s)
s.count = s.count + 1
if s.count > 3 then
return "Возможно, под ковриком что-то лежит."
end
return "Небольшой коврик с коротким ворсом."
end,
before_Take = "{#Me/дт} не нужен коврик. Пусть лучше лежит на месте.",
Touch = "Короткий ворс ковра мягкий и приятно проминается под рукой.",
Smell = "Ничем особенным не пахнет.",
LookUnder = function(s)
if s:once() then
take "room13_маленький ключик"
--"нашёл"
--"взял"
return "{#Me/им} {#word/нашёл,#me,прш} маленький ключик под ковриком.^^{#Me/им} {#word/взял,#me,прш} маленький ключик."
else
return "Больше под ковриком ничего нет."
end
end,
}:attr "static",
obj {
-"окно|рама",
dsc = "В длинной стене расположено окно.",
description = "Красивая оконная рама из морёного дерева и чистое, как будто его только что вымыли, стекло. Узкий деревянный подоконник выглядит очень уютно.",
Search = "За окном видно улицу.",
--"подёргал"
before_Take = "{#Me/им} {#word/подёргал,#me,прш} {#first}. Крепко дёржится.",
before_Open = "{#Me} {#word/попробовать,#me,прш} открыть окно, но оно не открывается.",
Smell = "Рама окна немного пахнет старым деревом.",
Touch = "Стекло гладкое и прохладное.",
obj = {
obj {
-"стекло",
description = "Чистое стекло.",
--"хочет"
before_Take = "{#Me} не {#word/хочет,#me,нст} вытаскивать стекло из рамы.",
Touch = "Стекло гладкое и прохладное.",
Smell = "Стекло ничем не пахнет.",
}:attr "scenery",
obj {
-"подоконник",
description = "На краю подоконника виднеется небольшой выступ.",
before_Take = "Крепко закреплён -- не оторвать.",
Touch = "Подоконник гладкий на ощупь.",
Smell = "Подоконник пахнет деревом.",
obj = {
obj {
-"выступ|кнопка",
description = "Небольшой выступ похожий на маленькую кнопку.",
before_Take = "Выступ крепко держится в подоконнике.",
["Touch,Push"] = function(s)
if disabled "room13_тайник" then
enable "room13_тайник"
--"нажал"
return "{#Me} {#word/нажал,#me,прш} на кнопку. Часть поверхности подоконника откинулась вверх, открывая тайник."
end
return "{#Me} {#word/нажал,#me,прш} на кнопку. Ничего не произошло."
end,
Smell = "Пахнет деревом, как и весь подоконник.",
}:attr "scenery",
},
}:attr "scenery,container,open",
obj {
-"крышка|пластина|пластинка",
description = "Тонкая деревянная пластинка, очень плотно закрывающая тайник",
before_Take = "Пластинка крепко держится на маленьких петлях.",
Touch = "Гладкая тонкая деревянная пластинка.",
Smell = "Пахнет деревом.",
}:attr "scenery",
obj {
-"улица|улочка",
description = "Узкая, но уютная улочка.",
--"может"
before_Take = "{#Me/им} не {#word/может,#me,нст} взять улицу.",
Touch = "Улица находится за окном. Её невозможно потрогать.",
Smell = "Окно закрыто. Запах с улицы не проникает в библиотеку.",
}:attr "scenery",
},
}:attr "static",
obj {
-"тайник|углубление",
nam = "room13_тайник",
dsc = function(s)
p "В подоконнике находится тайник."
mp:content(s)
end,
description = "Небольшое углубление в подоконнике, обычно закрытое тонкой деревянной крышкой.",
before_Take = "Это просто углубление в доске. Как его взять?",
Touch = "Внутри углубления дерево такое же гладкое, как и на поверхности подоконника. Кто-то очень аккуратно сделал этот тайник.",
Smell = "Пахнет деревом.",
obj = {
"squarekey"
},
}:attr "static,container,open":disable(),
obj {
-"стены|стена",
description = "Стены покрывают красивые старинные обои.",
before_Take = "Невозможно взять стены.",
--"дотронулся"
Touch = "{#Me/им} {#word/дотронулся,#me,прш} до стены. Гладкие обои приятны на ощупь.",
Smell = "Пахнет старыми обоями.",
}:attr "scenery",
obj {
-"обои",
description = "Тёмные обои с красивым золотистым узором.",
--"хочет"
before_Take = "{#Me/им} не {#word/хочет,#me,нст} отрывать обои от стен.",
Touch = "{#Me/им} {#word/дотронулся,#me,прш} до стены. Гладкие обои приятны на ощупь.",
Smell = "Пахнет старыми обоями.",
}:attr "scenery",
obj {
-"пол|паркет",
description = "Пол устилает старинный паркет.",
before_Take = "Как можно взять пол?",
Touch = "Старинные доски приятно скользят под пальцами.",
Smell = "{#Me/им} не {#word/хочет,#me,нст} нюхать пол.",
}:attr "scenery",
obj {
-"потолок",
description = "Белый потолок с лепниной. Красиво как в музее.",
before_Take = "Потолок находится слишком высоко. Да и как его можно взять?",
Touch = "Потолок находится слишком высоко. Не допрыгнуть.",
Smell = "Потолок находится так высоко, что остаётся только гадать чем же он пахнет.",
}:attr "scenery",
},
}
obj {
-"ключик|маленький ключик",
nam = "room13_маленький ключик",
description = "Маленький ключик из белого металла.",
Touch = "Гладкий белый металл приятно холодит руку.",
Smell = "Пахнет металлом.",
}
--obj {
-- -"книга",
-- nam = "book",
-- description = "Книга.",
--}
--obj {
-- -"квадратный ключ,ключ",
-- nam = "squarekey",
-- description = "Квадратный ключ.",
--}

1010
room14.lua Normal file

File diff suppressed because it is too large Load Diff

925
room15.lua Normal file
View File

@ -0,0 +1,925 @@
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room15_" или "bedroom_"
-- Все описания можно менять
-- Задача: Игрок должен найти в локации предмет statuetka
-- Спальня находится на втором этаже
room {
nam = "room15_bedroom";
book_read = false;
title = "Спальня";
dsc = "Просторная комната с единственным окном. Выход из комнаты находится на западе. ";
w_to = 'room14_secondfloor';
awake = false;
complete = false;
lampon = false;
["before_Push,Pull,Turn,SwitchOn,SwitchOff,Take,Insert,Remove,Eat,Taste,Drink,Rub,Touch,Kiss,Open,Close"] = function(s, w)
if pl:where()^'room15_bedroom' or w == nil or w:where() == nil or pl:where()^'room15_bed' and w^'room15_lamp' or pl:where()^'room15_void' and w:where()^'room15_void' then
return false;
else
pr 'Отсюда это сделать не получится. ';
end;
end;
before_Drop = function(s, w)
if pl:where()^'room15_void' then
pr 'Тебе это не кажется хорошей идеей. ';
return;
end;
return false;
end;
["after_Push,Pull,Turn"] = 'Это так не работает. ';
before_Walk = function(s, w)
if pl:where()^'room15_bedroom' then
if not w^'@w_to' or s.awake then
return false;
else
pr 'За порогом ты не видишь ничего, кроме пустоты. Ты не решаешься сделать шаг. Уж не {$fmt em|спишь} ли ты?';
end;
else
pr 'Отсюда не получится. ';
end;
end;
after_Listen = function(s, w)
if w ~= nil then
return false;
end;
if _'room15_tv':has('on') then
pr(_'room15_tv':sound());
else
pr "Негромкое тикание часов отчетливо слышно в тишине. ";
if not s.awake then
pr "Из-под кровати доносятся непонятные звуки. ";
end;
end;
end;
after_Smell = function(s, w)
if w ~= nil then
return false;
end;
if w == nil then
return "Пахнет свежевыглаженным постельным бельем. ";
else
return false;
end;
end;
before_Open = function(s, w)
if w ~= nil then
return false;
end;
if not pl:where()^'room15_bedroom' and not have(w) then
return 'Придется встать с кровати. ';
else
return false;
end;
end;
before_Exam = function(s, o)
if o^'@w_to' then
pr 'За порогом ты не видишь ничего, кроме пустоты. Уж не {$fmt em|спишь} ли ты?'
else
return false;
end;
end;
after_Wait = function(s)
if s.awake then
return "Проходит немного времени. Не происходит ничего не обычного. ";
else
return "Проходит немного времени. Кажется, рисунок на обоях слегка изменился. ";
end;
end;
after_Dig = "Тебе слишком дорог твой маникюр, чтобы делать это руками. ";
after_Jump = "Пол жалобно поскрипывает после твоего приземления. ";
after_Think = function(s)
if s.awake and not s.complete then
pr "Думать вредно -- голова болит. Лучше {$fmt em|поспать}. ";
else
pr "Думать вредно -- голова болит. Лучше поесть. ";
end;
end;
before_Sing = function(s)
if not s.awake and _'room15_tv':attr('on') then
pr 'Твой голос сливается с голосами из телевизора и оттого ужасающее пение становится еще более жутким. ';
end;
end;
after_Sleep = function(s)
if pl:where()^'room15_bed' then
_'room15_spider':disable();
if s.complete then
pr 'Прошлый сон все еще слишком свеж в твоей памяти, чтобы погружаться в новый. ';
elseif _'room15_curtain':has('open') then
pr 'Свет из окна не дает тебе заснуть. ';
elseif _'room15_tv':has('luminous') then
pr 'Телевизор не дает тебе заснуть. ';
elseif s.awake then
s.awake = false;
s.lampon = _'room15_lamp':has('light');
remove('room15_sky', 'room15_bedroom');
put('room15_void', 'room15_bedroom');
pr 'Ты быстро погружаешься в сон. Через какое-то время ты просыпаешься от ощущения, что в комнате что-то не так. ';
pl:need_scene(true);
else
pr('Ты долго ворочаешься, но никак не можешь уснуть. тебе кажется, что кто-то есть под кроватью! ');
end;
else
pr "Лучше делать это в кровати. ";
end;
end;
after_Wake = function(s)
if s.awake then
return false;
end;
s.awake = true;
walk('room15_bed');
-- Восстанавливаем состояние комнаты как было -- вне сна все равно трогать ничего нельзя.
_'room15_window'.rope = false;
_'room15_curtain':attr('~open');
_'room15_window':attr('~open');
local cabinet = lookup('#room15_in_cabinet', 'room15_cabinet');
cabinet:attr('~open');
if s.lampon then
_'room15_lamp':attr('on,light');
else
_'room15_lamp':attr('~on,~light');
end;
_'room15_tv':attr('~on,~luminous');
_'room15_rope':attr('~static');
_'room15_void':disable();
_'room15_spider':disable();
remove('room15_book', where('room15_book'));
remove('room15_linen', where('room15_linen'));
remove('room15_void', 'room15_bedroom');
remove('room15_shreds', where('room15_shreds'));
remove('room15_rope', where('room15_rope'));
remove('room15_book', where('room15_book'));
if not s.complete then
remove('statuetka', where('statuetka'));
put('statuetka', 'room15_void');
pr 'Осознав, что спишь, ты довольно быстро просыпаешься. Однако, ты чувствуешь, что готова провалиться обратно в {$fmt em|сон}. ';
end;
put('room15_linen', cabinet);
put('room15_book', cabinet);
put('room15_sky', 'room15_bedroom');
pl:need_scene(true);
end;
after_Yes = 'Борода. ';
after_No = 'Бородатый дед. ';
obj = { 'room15_walls', 'room15_curtain', 'room15_window', 'room15_bed', 'room15_spider','room15_table', 'room15_lamp', 'room15_cabinet', 'room15_void' };
}: attr('~light')
obj {
-"небо на обоях,небо|стены/жр|обои|панели|облака";
nam = 'room15_walls';
dsc = 'Стены обиты панелями снизу, а сверху оклеены обоями с облачками. ';
before_Exam = function(s)
if _'room15_bedroom'.awake then
return 'Нижняя часть стен обита деревянными панелями, верхняя же оклеена обоями, на которых изображено голубое небо с облаками. ';
else
return 'Нижняя часть стен обита деревянными панелями, верхняя же оклеена обоями, на которых изображено голубое небо с облаками. Тебе кажется, что облака медленно движутся вдоль стен. ';
end;
end;
before_Smell = 'Стены ничем не пахнут. ';
["before_Taste,Eat"] = 'Ты предпочла бы съесть что-нибудь... Более съедобное. ';
before_Touch = 'Ты не испытываешь никаких необычных ощущений. ';
["before_Push,Pull,Turn,Rub,Tear,Tie,Cut,Attack,Kiss"] = 'Вот придешь к себе домой -- там делай со своими стенами все, что захочешь. ';
["before_Talk,Tell,Answer"] = 'Стены молчат в ответ. ';
["before_Ask,AskFor,AskTo"] = 'Бесполезно. Стены не отвечают на твои слова. ';
before_Blow = function(s)
if _'room15_bedroom'.awake then
pr 'Ты дуешь на стены. Ничего не происходит. ';
else
pr 'Ты дуешь на стены и облака разбегаются в стороны от потока воздуха. ';
end;
end;
before_Take = 'Халк крушить! Халк ломать! Халк надорвался... ';
}: attr('static');
obj {
-"занавески|занавеска|шторы";
nam = 'room15_curtain';
description = function(s)
if s:has('open') then
pr 'Тяжелые занавески из плотной ткани темно-серого цвета. Сейчас они раздвинуты. ';
else
pr 'Тяжелые занавески из плотной ткани темно-серого цвета. Сейчас они закрыты. ';
end;
end;
after_Open = function(s)
if _'room15_bedroom'.awake then
s:attr('light');
enable('room15_sky');
pr 'Ты открываешь занавески. Яркий свет ослепляет тебя после полумрака комнаты. ';
else
enable('room15_void');
pr 'Ты открываешь занавески. За окном ты видишь непроглядную пустоту. ';
mp:content(_'room15_void');
end;
end;
before_Close = function(s)
if s:has('~open') then
return false;
end;
if _'room15_window':has('open') then
pr 'Створки окна мешают закрыть занавески. ';
else
s:attr('~light,~open');
disable('room15_void');
disable('room15_sky');
pr 'Ты закрываешь занавески. ';
end;
end;
before_Smell = 'Занавески пахнут пылью. ';
before_Taste = 'Ткань безвкусная. ';
before_Eat = function(s)
if _'room15_bedroom'.awake then
pr 'Тетушке не понравится, если ты съешь занавески. ';
else
pr 'Жуется, конечно приятно, но съесть целую занавеску? Ну уж нет. ';
end;
end;
before_Touch = 'Плотная ткань немного жесткая, но довольно приятная на ощупь. ';
["before_Push,Pull,Turn,Rub,Tear,Tie,Cut,Attack,Kiss"] = 'Остановись! Занавески ни в чем не виноваты! ';
["before_Talk,Tell,Answer"] = 'Занавески ничем не выдают заинтересованности в разговоре с тобой. ';
["before_Ask,AskFor,AskTo"] = 'Увы, занавески отказываются исполнять твою просьбу. Объяснить свой отказ они тоже не изволят. ';
before_Blow = 'Ты дуешь на занавески, но тяжелая ткань почти не шевелится. ';
before_Take = 'Занавески тебе не понадобятся. ';
}: attr('concealed,openable,luminous,static');
obj {
-"окно";
nam = 'room15_window';
rope = false;
dsc = function(s)
if _'room15_curtain':has('open') then
if _'room15_bedroom'.awake then
pr 'За окном ты видишь голубое небо. ';
else
pr 'За окном ты видишь непроглядную пустоту. ';
mp:content(_'room15_void');
end;
else
pr 'Окно закрыто плотными занавесками. ';
end;
end;
description = function(s)
if _'room15_curtain':has('open') then
if _'room15_bedroom'.awake then
pr 'За окном ты видишь голубое небо. ';
else
pr 'За окном ничего нет. Совсем ничего. Одна пустота. ';
if s:has('open') then
pr 'Окно открыто. '
end;
mp:content(_'room15_void');
if s.rope then
pr 'К подоконнику прикреплена веревка из обрывков простыней. ';
end;
end;
else
pr 'Окно закрыто занавесками. ';
end;
end;
before_Open = function(s)
if not _'room15_curtain':has('open') then
pr '{$fmt em|(сначала открыть занавески)}^';
mp:subaction('Open', _'room15_curtain');
end;
if not s:has('open') then
pr 'Ты открываешь окно. ';
if _'room15_bedroom'.awake then
pr 'В комнату врывается порыв свежего прохладного воздуха. ';
end;
s:attr('open');
else
return false;
end;
end;
before_Close = function(s)
if s.rope then
pr 'Веревка мешает закрыть окно. ';
return
end;
return false;
end;
before_Smell = 'Окно ничем не пахнет. ';
before_Taste = 'Дерево ты еще могла бы погрызть, но краска вряд ли скажется положительно на твоем желудке. А уж стекло -- и подавно. ';
before_Eat = 'Дерево ты еще могла бы погрызть, но краска вряд ли скажется положительно на твоем желудке. А уж стекло -- и подавно. ';
before_Touch = 'Окно гладкое на ощупь. ';
["before_Push,Pull,Turn,Rub,Tear,Tie,Cut,Attack,Kiss"] = 'Ты решаешь не портить окно в доме тётушки. ';
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = 'Окно игнорирует тебя. ';
before_Blow = 'Окно запотевает от твоего дыхания. ';
before_Take = 'Халк крушить! Халк ломать! Халк надорвался... ';
before_Enter = function(s)
if _'room15_curtain':has('~open') then
pr 'Сначала стоит открыть занавески. ';
return;
end;
mp:xaction('Enter', _'room15_void');
end;
before_Receive = function(s)
if _'room15_curtain':has('~open') then
pr 'Сначала стоит открыть занавески. ';
return;
end;
mp:xaction('Receive', _'room15_void');
end;
}: attr('openable,static,container,luminous');
obj {
-"кровать";
nam = 'room15_bed';
title = 'В кровати';
dsc = 'У стены стоит большая кровать. ';
description = function(s)
pr 'Большая кровать, застеленная чистым бельем. ';
mp:content(s);
end;
inside_dsc = 'Ты лежишь на большой кровати. ';
after_Enter = 'Ты ложишься на кровать. ';
before_LookUnder = function(s)
if mp:thedark() then
pr 'Ничего не видно. ';
return;
elseif pl:where()^'room15_bedroom' then
enable('room15_spider');
if _'room15_bedroom'.awake then
pr 'Под кроватью живет паучок. ';
else
pr 'Из-под кровати на тебя своими восемью глазищами смотрит огромный паук. ';
end;
return;
elseif pl:where()^'room15_bed' then
pr 'Сначала придется слезть с кровати. ';
return;
elseif pl:where()^'room15_void' then
pr 'Отсюда ничего не видно. ';
return;
end;
return false;
end;
before_Smell = 'Пахнет чистым, свежевыглаженным постельным бельем. ';
before_Taste = 'Ты аккуратно кусаешь угол кровати. На вкус как дерево. ';
before_Eat = 'Долго рассматривая кровать, ты так и не решила, с чего начать ее есть . ';
["before_Touch,Rub"] = function(s)
if _'room15_bedroom'.awake and not _'room15_bedroom'.complete then
pr 'Постель мягкая и приятная на ощупь. Так и тянет {$fmt em|спать}. ';
else
pr 'Постель мягкая и приятная на ощупь. Так и тянет спать. ';
end;
end;
["before_Tear,Tie,Cut,Attack"] = 'Почему тебе так нравится все ломать? ';
before_Kiss = 'Кровать не реагирует на твое проявление чувств. ';
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = 'Кровать не отвечает на твои потуги заговорить. ';
before_Blow = 'Ты подула на кровать, но ничего не изменилось. ';
before_Take = 'Кровать слишком тяжелая. ';
obj = {
'room15_sheets'
};
}: attr('enterable,supporter,static,luminous');
obj {
-"белье|простыня";
nam = 'room15_sheets';
description = 'Чистая простыня лежит на кровати. ';
before_Take = function(s)
if _'room15_bedroom'.awake then
return 'Что ты задумала?';
else
return 'Простыня странным образом не стягивается с кровати, выскальзывая из твоих рук. ';
end;
end;
before_Smell = 'Пахнет чистой постелью. ';
before_Tear = function(s)
if s.awake then
pr 'Тётя Агата будет очень недовольна, если ты это сделаешь. ';
else
pr 'У тебя не получается оторвать простыню от кровати. Странно. ';
end;
end;
before_Tie = function(s, w)
if s.awake then
pr 'Ты не понимаешь, для чего тебе это. ';
elseif w == nil then
pr 'У тебя не получается оторвать простыню от кровати. Странно. ';
else
pr 'Ты не понимаешь, как это сделать. ';
end;
end;
["before_Taste,Eat"] = 'Ты отгрызаешь уголок простыни, надеясь, что тётушка не заметит этого. Ткань приятно жуется и почти безвкусная. ';
["before_Rub,Touch"] = 'Простыня шершавая, но очень приятные на ощупь. ';
before_Cut = 'Твои руки недостаточно острые. ';
before_Attack = 'Ты со всей силы бьешь простыню. Она мягкая, все стерпит. ';
before_Blow = 'Ты дуешь на ткань. ';
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = "Простыне очень интересно, правда. Продолжай. ";
before_Kiss = "Простыня никак не реагируют. ";
}:attr('concealed');
obj {
-"паук,паучок";
nam = 'room15_spider';
description = function(s)
if _'room15_bedroom'.awake then
pr 'Маленький безобидный паучок мирно плетёт свою маленькую безобидную паутинку. ';
else
pr 'Огромный голодный паук! Как только он уместился там?! ';
end;
end;
before_Take = function(s)
if _'room15_bedroom'.awake then
pr 'Паучок никуда с тобой не пойдет. ';
else
pr 'Паук хищно шипит, открыв пасть и желание притрагиваться к нему резко пропадает. ';
end;
end;
["before_Smell,Taste,Eat"] = 'Тебе почему-то очень не хочется это делать. ';
["before_Push,Pull,Turn,Rub,Touch,Tear,Tie,Cut"] = function(s)
if _'room15_bedroom'.awake then
return 'Ты опасаешься раздавить паучка и решаешь ничего не предпринимать. ';
else
return 'Паук щелкает пастью, и ты поспешно отдергиваешь руки. ';
end;
end;
["before_Talk,Tell,Answer"] = function(s)
if _'room15_bedroom'.awake then
pr 'Паучок молча слушает тебя. ';
else
pr 'Паук молча выслушивает тебя, а потом делает резкий выпад в твою сторону. Ты еле успеваешь отпрыгнуть, а паук возвращается на свое место. ';
end;
end;
["before_Ask,AskFor,AskTo"] = function(s)
if _'room15_bedroom'.awake then
pr 'Паучок не хочет тебе помогать. ';
else
pr 'Паук молча выслушивает тебя, а потом делает резкий выпад в твою сторону. Ты еле успеваешь отпрыгнуть, а паук возвращается на свое место. Ты понимаешь, что он не станет делать то, что тебе нужно. ';
end;
end;
before_Attack = function(s)
if _'room15_bedroom'.awake then
return 'Разве можно так поступать с маленьким безобидным паучком?! ';
else
return 'Не стоит лезть на рожон. ';
end;
end;
before_Blow = function(s)
if _'room15_bedroom'.awake then
return 'Ты опасаешься навредить паучку и решаешь этого не делать. ';
else
return 'Ты опасаешься разозлить паука и решаешь этого не делать. ';
end;
end;
before_Kiss = 'Чего?!';
before_Listen = function(s)
if _'room15_bedroom'.awake then
return false;
else
return 'Паук шипит, щелкает пастью и скрежещет своими лапами по полу. ';
end;
end;
}: attr('static'): disable();
obj {
-"стол,столик|столешница";
nam = 'room15_table';
dsc = function(s)
pr 'Рядом с ней расположен маленький столик. ';
mp:content(s);
end;
description = function(s)
pr 'Небольшой круглый столик с дубовой столешницей. ';
mp:content(s);
end;
obj = {
'room15_clock';
'room15_vase';
};
before_Take = 'Ты слишком опасаешься уронить предметы, стоящие на столе, чтобы сделать это. ';
before_Smell = 'Стол слабо пахнет деревом. ';
["before_Taste,Eat"] = 'Ты не в настроении грызть дерево. ';
before_Rub = 'Ты зачем-то протираешь ладонью стол. Пыли на поверхности почти нет. ';
before_Touch = "Стол гладкий и приятный на ощупь";
["before_Tear,Tie,Cut"] = "Как ты себе это представляешь?";
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = "Ты в своем уме, с мебелью разговаривать?";
before_Attack = "Тётушка расстроится, если я сломаю ее столик. ";
before_Blow = "Ты дуешь на стол. Ничего не происходит. ";
before_Kiss = 'Стол никак не реагирует, а ты чего ждала?';
}:attr('supporter,static');
obj {
-"часы|стрелка/жр,но|стрелки/жр,но,мн";
dsc = 'На краешке стола стоят часы. ';
nam = 'room15_clock';
description = 'Старинные бронзовые часы с позолотой показывают примерно полчетвертого. Секундная стрелка размеренно движется по кругу. ';
["before_Take,Push,Pull,Turn,Rub,Touch,Attack,Kiss"] = 'Ты не решаешься трогать столь редкую и дорогую вещь. ';
before_Smell = 'Часы пахнут стариной. ';
["before_Taste,Eat"] = 'Это не пойдет на пользу твоим зубам. ';
["before_Tear,Tie,Cut"] = "Нет. Просто нет. ";
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = "Часы выслушивают тебя и продолжают медленно отсчитывать секунды. ";
before_Blow = "Ты дуешь на стол. Ничего не происходит. ";
before_Listen = 'Тикание часов отчетливо слышно в тишине. ';
}: attr('static');
obj {
-"ваза|цветы,тюльпаны|цветок,тюльпан";
nam = 'room15_vase';
dsc = 'В центре стола стоит ваза с цветами. ';
description = 'Хрустальная ваза. В вазе стоят несколько благоухающих тюльпанов. ';
before_Take = 'Цветам и здесь хорошо. Не надо их трогать. ';
before_Smell = 'Ты вдыхаешь восхитительный аромат тюльпанов. Тётя Агата очень любит эти цветы. ';
["before_Taste,Eat"] = 'Ты вспоминаешь как однажды в детстве съела несколько горьких, неприятных на вкус лепестков и решаешь не повторять этот опыт. До сих пор удивляешься, как что-то настолько невкусное может так приятно пахнуть. ';
["before_Push,Pull,Turn,Rub,Touch,Attack,Tear,Tie,Cut,Blow"] = 'Ты даже боишься себе представить, что будет, если ты разобьешь вазу. ';
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = "Цветы остаются безучастными к твоим мольбам. ";
before_Kiss = "Может, лучше не надо?";
}: attr('static');
obj {
-"настенная лампа,лампа|светильник|ночник";
nam = 'room15_lamp';
dsc = function(s)
if s:has('on') then
pr 'На стене над кроватью висит зажженная лампа. ';
else
pr 'На стене над кроватью висит лампа. ';
end;
end;
description = 'Настенный светильник со светло-бежевым абажуром. ';
before_Take = 'Лампе и здесь хорошо. ';
before_Smell = 'Лампа ничем не пахнет. Странно. ';
["before_Taste,Eat"] = 'Ты долго раздумываешь над вкусовыми качествами пластиковых абажуров и стеклянных ламп, и в итоге решаешь не пробовать ни то ни другое. ';
["before_Push,Pull,Turn,Rub,Touch,Attack,Tear,Tie,Cut"] = 'Да сколько можно все вокруг ломать? ';
before_Blow = 'Ты дуешь на светильник. ';
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = "Ваза остается безучастной к твоим мольбам. ";
before_Kiss = "Может, лучше не надо?";
before_SwitchOn = function(s)
s:attr('light');
return false;
end;
before_SwitchOff = function(s)
s:attr('~light');
return false;
end;
}: attr('static,on,light,switchable,luminous');
obj {
-"тумбочка,тумба|ящик|ящики";
dsc = function(s)
pr 'У стены напротив кровати стоит массивная тумбочка. ';
mp:content(s);
end;
nam = 'room15_cabinet';
before_Receive = function(s, w)
if mp.xevent == 'Insert' then
if _'#room15_in_cabinet':hasnt'open' then
p "Тумбочка закрыта."
return
end
move(w, '#room15_in_cabinet')
p ("Ты кладешь ", w:noun'вн', " в тумбочку.")
elseif mp.xevent == 'PutOn' then
move(w, '#room15_at_cabinet')
p ("Ты кладешь ", w:noun'вн', " на тумбочку.")
else
return false
end
end;
before_Open = function(s)
if _'room15_bedroom'.awake then
pr 'Там нет ничего интересного. ';
else
return mp:xaction('Open', _'#room15_in_cabinet');
end;
end;
before_Close = function(s)
return mp:xaction('Close', _'#room15_in_cabinet');
end;
description = function(s)
pr 'Внушительных размеров тумбочка с ящиками. ';
mp:content(s);
end;
obj = {
obj {
-"тумбочка";
nam = '#room15_in_cabinet';
dsc = function(s)
mp:content(s)
end;
obj = {
'room15_linen';
'room15_book';
};
}: attr('container,openable,static');
obj {
-"тумбочка";
nam = '#room15_at_cabinet';
dsc = function(s)
mp:content(s)
end;
obj = {
'room15_tv';
};
}: attr('supporter,static');
};
before_Take = 'Тумбочка слишком тяжелая. ';
before_Smell = 'Тумбочка пахнет мебелью. ';
["before_Taste,Eat"] = 'Обойдя тумбочку со всех сторон, ты так и не понимаешь, с какой стороны ее можно удобно укусить. ';
["before_Push,Pull,Turn"] = 'Тумбочка слишком тяжелая. ';
["before_Rub,Touch,Attack,Tear,Tie,Cut"] = 'Тебя бабушка не учила не ломать вещи когда ты в гостях? ';
before_Blow = 'Ты сдуваешь пыль с тумбочки. ';
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = "Тумбочке не интересно тебя слушать. ";
before_Kiss = "Тумбочке приятно. Нет, правда. ";
}: attr('container,transparent,open,static');
obj {
-"простыни";
nam = 'room15_linen';
description = 'Несколько комплектов чистых простыней. Они кажутся достаточно прочными, чтобы выдержать твой вес. ';
before_Take = function(s)
if _'room15_book':disabled() then
_'room15_book':enable();
pr 'Под простынями лежит книга!';
end;
return false;
end;
before_Smell = 'Пахнет чистой постелью. ';
before_Tear = function(s)
if s.awake then
pr 'Тётя Агата будет очень недовольна, если ты это сделаешь. ';
else
remove('room15_linen', where('room15_linen'));
mp.score=mp.score+1
take('room15_shreds');
pr 'Ты разрываешь простыни, теперь у тебя есть обрывки ткани. ';
if _'room15_book':disabled() then
_'room15_book':enable();
pr 'Под простынями лежит книга!';
end;
end;
end;
before_Tie = function(s, w)
if s.awake then
pr 'Ты не понимаешь, для чего тебе это. ';
elseif w == nil or w^'room15_window' then
pr 'Так ничего не получится. Они слишком большие. ';
else
pr 'Ты не понимаешь, для чего тебе это. ';
end;
end;
["before_Taste,Eat"] = 'Ты отгрызаешь уголок одной из простыней, надеясь, что тётушка не заметит этого. Ткань приятно жуется и почти безвкусная. ';
["before_Rub,Touch"] = 'Простыни шершавые, но очень приятные на ощупь. ';
before_Cut = 'Твои руки недостаточно острые. ';
before_Attack = 'Ты со всей силы бьешь простыни. Они мягкие, все стерпят. ';
before_Blow = 'Ты дуешь на ткань. ';
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = "Простыням очень интересно, правда. Продолжай. ";
before_Kiss = "Простыни никак не реагируют. ";
};
obj {
-"простыни|обрывки простыней,обрывки простыни,обрывки ткани,обрывки|ткань";
nam = 'room15_shreds';
description = 'Прочные и длинные полосы из простыней. ';
before_Tie = function(s, w)
if w == nil then
remove('room15_shreds', where('room15_linen'));
take('room15_rope');
mp.score=mp.score+1
pr 'Ты связываешь обрывки между собой. Получается достаточно прочная веревка. ';
elseif w^'room15_window' then
pr 'Ты сомневаешься, что их длины будет достаточно. ';
else
return false;
end;
end;
before_Smell = 'Обрывки ткани все еще пахнут чистыми простынями ';
["before_Taste,Eat"] = 'Ты сгрызаешь немного ткани. Ткань легко жуется и почти безвкусная. ';
["before_Push,Pull,Turn"] = 'Это так не работает. ';
["before_Rub,Touch"] = 'Простыня шершавая, но очень приятная на ощупь. ';
["before_Attack"] = 'В этом уже нет никакого смысла. ';
["before_Tear,Cut"] = 'Ткань уже достаточно рваная. ';
before_Blow = 'Ты дуешь на ткань. ';
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = "Сперва изодрала в клочья, а теперь заговорить пытаешься? ";
before_Kiss = "Нет, простыни тебя не простят. Даже так. ";
}
obj {
-"веревка|простыни|обрывки простыней,обрывки простыни,обрывки ткани,обрывки|ткань";
nam = 'room15_rope';
description = 'Веревка связанная из обрывков простыней. Достаточно прочная, чтобы выдержать тебя. ';
before_Tie = function(s, o)
if o~=nil then
if o^'room15_window' then
if _'room15_window':has('open') then
remove('room15_rope', me());
s:attr('static');
if _'room15_window'.rope==false then
mp.score=mp.score+1;
end;
_'room15_window'.rope = true;
put('room15_rope', 'room15_window');
pr 'Ты прикрепляешь веревку к окну. Теперь ты можешь {$fmt em|войти в пустоту}. ';
else
pr 'Сначала придется открыть окно. ';
end;
else
pr 'Сюда это крепить незачем. ';
end;
else
pr 'Это надо {$fmt em|куда-то} прикрепить. ';
end;
end;
before_Smell = 'Обрывки ткани все еще пахнут чистыми простынями ';
["before_Taste,Eat"] = 'Ты сгрызаешь немного ткани. Ткань легко жуется и почти безвкусная. ';
["before_Push,Pull,Turn"] = 'Это так не работает. ';
["before_Rub,Touch"] = 'Простыня шершавая, но очень приятная на ощупь. ';
["before_Attack"] = 'В этом уже нет никакого смысла. ';
["before_Tear,Cut"] = 'Ткань уже достаточно рваная. ';
before_Blow = 'Ты дуешь на ткань. ';
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = "Сперва изодрала в клочья, а теперь заговорить пытаешься? ";
before_Kiss = "Нет, простыни тебя не простят. Даже так. ";
before_Take = function(s)
if s:has('static') then
pr 'Ты долго возишься, но так и не можешь отвязать веревку. Зато теперь ты точно уверена, что она не отвяжется сама. ';
return;
end;
return false;
end;
}
obj {
-"узорчатая книга,книга,книжка,обложка|переплет|узоры на переплете,узоры";
nam = 'room15_book';
description = '"Все и ничто" С. Оминус. Книга очень старая, потрепанная. Переплет украшен позолоченными узорами, местами истершимися от времени -- должно быть очень ценная и редкая. Странно, что тётушка не оставила ее среди других книг, а спрятала здесь. Ты бегло пролистываешь страницы. Какая-то оккультная чушь про пустоту, окружающую наш мир. ';
after_Consult = function(s, o)
if _'room15_bedroom'.aspleep and (o:find("пусто") or o:find("ничем") or o:find("ничт") or o:find("ничём")) then
pr [[
В книге подробно описан способ открытия портала в пустоту. Все что для этого необходимо -- любой проем, закрытый прозрачным материалом. После завершения ритуала прозрачный материал можно убрать. Далее на много страниц описывается ритуал открытия портала и способы взаимодействия с пустотой. ]];
else
pr 'Тебе некогда читать всякую муть. ';
end;
end;
before_Smell = 'Пахнет старой книгой. ';
["before_Taste,Eat"] = 'Вряд ли это все еще вкусно. ';
["before_Rub"] = 'Хм, узоры не стираются. ';
["before_Touch"] = 'Ты проводишь пальцем по гладкому переплету. ';
["before_Attack,Tear,Tie,Cut"] = 'Вандализм -- это нормально. Но только в своем собственном жилище. ';
before_Blow = 'Ты сдуваешь пыль со страниц. ';
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = "Ты побаиваешься изливать душу старой зловещей книге. ";
before_Kiss = "Вот эту книгу?! Ты серьезно? ";
}:disable();
obj {
-"телевизор,телек,телик,экран|тв/мр";
nam = 'room15_tv';
dsc = function(s)
if s:has('on') then
pr 'На тумбочке стоит включенный телевизор. ';
else
pr 'На тумбочке стоит телевизор. ';
end;
end;
description = function(s)
pr 'Старинный телевизор в идеальном состоянии. ';
if s:has('on') then
if not s.awake then
pr(s:sound());
end;
pr(s:vision());
end;
end;
after_Take = 'Он слишком тяжелый. ';
after_SwitchOn = function(s)
s:attr('luminous');
if s.awake then
pr('Ты включаешь телевизор. ' .. s:vision());
else
pr('Ты включаешь телевизор. ' .. s:sound() .. s:vision());
end;
end;
after_SwitchOff = function(s)
s:attr('~luminous');
if s.awake then
pr 'Ты выключаешь телевизор. ';
else
pr 'Ты выключаешь телевизор. Странные звуки прекращаются. ';
end;
end;
sound = function(s)
if s.awake then
return 'По телевизору идет какой-то фильм про гангстеров. ';
else
return 'Сквозь помехи ты слышишь шум ветра и тихий вкрадчивый шепот. Среди прочих, многократно повторяется слово "{$fmt em|окно}". ';
end;
end;
vision = function(s)
if _'room15_bedroom'.awake then
return 'На экране идет какой-то фильм про гангстеров. ';
elseif _'room15_curtain':has('open') then
return 'На экране с трудом различимо окно, через которое видна какая-то комната. Да там же ты! ';
else
return 'На экране с трудом различимо какое-то окно, закрытое шторами. ';
end;
end;
before_Smell = 'Пахнет старой электроникой. ';
["before_Taste,Eat"] = 'Вряд ли это вкусно. ';
["before_Rub,Touch"] = function(s)
if s:has('on') then
pr 'Экран гладкий и приятный на ощупь. Ты чувствуешь легкое покалывание в пальцах от наэлектризованного кинескопа. ';
else
pr 'Экран гладкий и приятный на ощупь. ';
end;
end;
["before_Attack,Tear,Tie,Cut"] = 'Это же антикварный телевизор! Как ты можешь с ним так поступить? ';
before_Blow = 'Ты сдуваешь пыль с экрана. ';
["before_Talk,Tell,Answer,Ask,AskFor,AskTo"] = function(s)
if s:has('on') then
if s.awake then
local phrs = {
'Из телевизора доносится: "И что дальше?"';
'Из телевизора доносится: "Что мне с этого будет?"';
'Из телевизора доносится: "Может мне будет проще тебя подстрелить?"';
'Из телевизора доносится: "Сходи проспись, Винни!"';
};
pr(phrs[rnd(#phrs)]);
else
pr 'Зловещий шепот с экрана продолжается. ';
end;
else
pr 'Телевизор молчит в ответ. ';
end;
end;
before_Kiss = "Что если тебя током ударит? ";
before_Take = 'Не трогай, уронишь!';
}: attr('switchable,static,on');
obj {
-"пустота,тьма,темнота|ничто,ничто за окном|ничего,ничего за окном";
nam = 'room15_void';
title = 'В пустоте';
before_Enter = function(s)
if _'room15_window':has('~open') then
pr 'Ты не можешь пройти через закрытое окно. ';
return;
end;
if _'room15_window'.rope then
walk('room15_void');
pr 'Держась за веревку, ты аккуратно погружаешься в ничто. Гравитация здесь отсутствует и ты повисаешь в пустоте. ';
else
pr 'Ты не решаешься шагнуть в пустоту. Тебе нужно будет как-то вернуться. ';
end;
end;
before_Receive = 'Тебе это не кажется хорошей идеей. ';
before_LetGo = function(s, o)
if pl:where()^'room15_void' then
return false;
elseif _'room15_window':has('open') then
pr(o:Noun'им' .. ' слишком далеко. Руками не дотянуться. ');
else
pr('Сначала придется открыть окно. ');
end;
end;
before_Exam = function(s)
pr 'Там пусто. ';
mp:content(s);
end;
after_Exit = function(s)
if have('statuetka') then
_'room15_bedroom'.complete = true;
pr('Держа ' .. _'statuetka':noun'вн' .. ' в одной руке, второй ты пытаешься вернуться в комнату, держась за веревку. Несколько секунд кажутся несколькими часами, но вот ты касаешься подоконника и падаешь на пол. Падение приводит тебя в чувства и ты просыпаешься. В руке ты крепко сжимаешь '.. _'statuetka':noun'вн' .. '. ');
mp:subaction('Wake');
end;
end;
obj = {
'statuetka';
};
before_Take = 'Как ты себе это представляешь? ';
}: attr('container,enterable,transparent,open,static,concealed,luminous'): disable();
obj {
-"небо за окном,небо|свет";
nam = 'room15_sky';
description = 'Чистое голубое небо. Ни облачка. ';
before_Any = function(s, event)
if event == 'Exam' then
return false;
end;
pr 'Небо слишком далеко. ';
end;
}: attr('concealed,static,luminous'):disable();
-- Менять нельзя!!!! Это не ваш предмет!!! Вы не знаете как он выглядит, его придумает другой автор!!!
--obj {
-- -"статуетка";
-- nam = "statuetka";
-- description = "Статуетка.";
--}

1839
room16.lua Normal file

File diff suppressed because it is too large Load Diff

283
room17.lua Normal file
View File

@ -0,0 +1,283 @@
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room17_" или "cherdak_"
-- Все описания можно менять
-- Задача: Это изначально тёмная комната. Игрок может придти как с источником света, так и без него. Задача - найти предмет circlekey
room {
nam = "room17_cherdak";
title = "Чердак";
lock_down = false;
dsc = "Почти нет пыли. Уютно, хоть и пустовато.";
dark_dsc = "Здесь темно, единственный выход вниз.";
d_to = function(s)
if not (have("room17_canvas") or have("room17_box") or have("room17_letter") or have("room17_mask")) then
return 'room14_secondfloor';
else
pn [[По какой-то причине ты оказалась тут снова. Чудеса!]];
return "room17_cherdak"
end;
end;
-------
before_Walk = function (s,w)
if w ^ '@d_to' then
if s.lock_down then
pn [[Странное дело - пути вниз теперь нет.]];
return true;
else
return false;
end;
else
return false;
end;
end;
-------
before_Listen = "Ничего не слышно.";
before_Smell = "Ничем не пахнет.";
obj = {"room17_woodtable",
"room17_door",
"room17_walls",
"room17_wall",
};
--};
}: attr '~light'
obj {
-"стол,деревянный стол";
nam = "room17_woodtable";
before_Exam = function(s)
if not (_"room17_box":inside("room17_woodtable")) and _"room17_mask":has'worn' then
p "На столешнице видна надпись «Поставь на меня».^Странно. Раньше вроде не было её.";
else
p "Деревянный, немного пыльный стол";
end;
return true;
end;
description = "Деревянный стол.";
}:attr 'supporter,static'
obj {
-"коробка";
nam = "room17_box";
before_Exam = function(s)
if _"room17_mask":has'worn' then
pn "На коробке видна надпись «Наполни меня».^Странно. Раньше вроде не было её.";
else
pn "Похоже, что самая обычная коробка.";
end;
if s:has "open" then
content(s);
end;
return true;
end;
description = "Картонная коробка.";
found_in = { 'room17_woodtable' }
}:attr 'container,openable'
obj {
-"маска";
nam = "room17_mask";
description = "Театральная маска с длинным носом.";
before_Wear = function(s)
enable("room17_wall");
--disable '@d_to'
here().lock_down = true;
mp:clear();
return false;
end;
after_Wear = function(s)
pn [[Ты надеваешь маску.]];
p [[^Обстановка комнаты изменилась.]];
return true;
end;
before_Disrobe = function(s)
return false;
end;
after_Disrobe = function(s)
if not (have("room17_canvas") or have("room17_box") or have("room17_letter")) then
--enable '@d_to'
here().lock_down = false;
end
pn [[Ты снимаешь маску.]];
p [[^Обстановка комнаты изменилась.]];
mp:clear();
disable("room17_wall");
disable("room17_cornice");
disable("room17_door");
return true;
end;
found_in = { 'room17_box' }
}:attr 'clothing'
obj {
-"холст";
nam = "room17_canvas";
get_from_carnise = false;
description = "Холст.";
before_Take = function (s, w)
if parent (s) == _"room17_cornice" then
s.get_from_carnise = true;
enable("room17_door");
return false;
else
return false;
end;
end;
after_Take = function (s, w)
if s.get_from_carnise then
pn [[Ты берёшь холст. ^]];
pn [[Позади холста обнаружилась маленькая дверца.]];
s.get_from_carnise = false;
return true;
else
return false
end;
end;
before_Tear = function (s, w)
if parent (s) == _"room17_cornice" then
s.get_from_carnise = true;
enable("room17_door");
return false;
end;
end;
after_Tear= function (s, w)
if s.get_from_carnise then
pn [[Ты срываешь холст с карниза.^]];
p [[Позади холста обнаружилась маленькая дверца.]];
take(s);
s.get_from_carnise = false;
return true;
else
return false
end;
end;
after_Exam = function(s)
p [[На холсте нарисован очаг. В очаге горит огонь. На огне стоит котелок.^В котелке кипит баранья похлёбка с чесноком. Над котелком вьётся дым.]];
end;
after_PutOn = function(s, w)
if not w ^ 'room17_cornice' then
s.get_from_carnise = false;
return false;
else
p [[Ты вешаешь холст на карниз.]];
disable("room17_door");
return true;
end;
end;
found_in = { 'room17_cornice' };
}:disable():attr 'clothing'
obj {
-"дверца";
nam = "room17_door";
description = function(s)
p "Маленькая дверца.";
return false;
-- mp:content(s);
end;
before_Unlock = function(s, w)
p [[Не получается.]]
end;
before_Open = function(s, w)
p [[Заперто.]]
end;
obj = {
obj {
-"замочная скважина,скважина";
nam = "room17_keyhole";
description = function(s)
p [[Замочная скважина с латунной накладкой.]];
return false;
end;
}:attr 'container, static, transparent, open';
obj {
-"латунная накладка,накладка";
nam = "room17_platter";
description = function(s)
p [[Декоративная латунная накладка.]];
return false;
end;
}:attr 'static,scenery';
};
}:disable():attr 'container,static, open'
obj {
-"записка,лист бумаги";
nam = "room17_letter";
description = "Записка.";
after_Exam = function(s)
if _"room17_mask":has'worn' then
p [[«Эта дурацая дверца раздражает. Три часа на неё пялюсь, не могу отсюда выбраться. Завешу её чем-нибудь.»^
Похоже на почерк тёти Агаты.
«Это невыносимо. Дурацкая дверца просто исчезла. Теперь ни дверцы, ни другого выхода. Сижу и таращусь на пустую стену.
Лучше повесить холст обратно на карниз.»^
Вторая строка писалась гораздо позже первой.^Буквы крупнее и почерк неровный, но это всё ещё её почерк.]];
else
p [[«Дорогая Агата, возвращаю тебе эту забавную безделицу.^Признаться, я так и не смог разобраться в её предназначении.
^Наш общий знакомый, граф А., темнит и насвистывает какую-то глупую песенку про болото.
^Возможно, в этом есть какой-то смысл. Возможно я упускаю из виду что-то лежащее на поверхности.
^Представь себе, он сказал мне с изрядной фамильярностью "Джемс, вы слишком серьёзно к этому относитесь!" и показал "нос".
^При удобном случае постарайся его разговорить.
^Навеки твой. J. McP.»
^Твёрдый мужской почерк. Интересно, кто такие граф А. и таинственный тётушкин «Навеки твой J. McP.»?]];
end;
end;
found_in = { 'room17_box' };
}
obj {
-"стены, стенки/мн";
nam = "room17_walls";
description = function(s)
if _"room17_mask":has'worn' then
p "Одна из стен привлекает ваше внимание.";
else
p "Пустые стены.";
end;
end;
}:attr 'static'
obj {
-"стена , стенка/ед";
nam = "room17_wall";
before_Exam = function(s)
enable("room17_cornice");
return false;
end;
description = function(s)
p [[Гладкая стена.]];
return false;
end;
}:disable():attr 'scenery, supporter'
obj {
-"карниз,старый бронзовый карниз";
nam = "room17_cornice";
before_Exam = function(s)
enable("room17_canvas");
return false;
end;
description = function(s)
p "Обычный, немного потёртый бронзовый карниз, ";
if parent 'room17_canvas' == s then
p "с которого свисает обтрёпанный по краям холст.";
else
p "привинченный к стене.";
end;
end;
found_in = { 'room17_wall' }
}:disable():attr 'static, supporter'
-- Менять нельзя!!!! Это не ваш предмет!!! Вы не знаете как он выглядит, его придумает другой автор!!!
--obj {
-- -"круглый ключ,ключ";
-- nam = "circlekey";
-- description = "Круглый ключ.";
-- found_in = { 'room17_keyhole' }
--}
--[[Изменить объект маски - добавить включение и выключение объектов. Так же написать обработчики для следующих элементов паззла.
дополнить обработчики холста , разобраться с сорвать холст]]
Verb { "повес/ить",
"{noun}/вн,held на {noun}/вн,supporter : PutOn",
"~ на {noun}/вн,supporter {noun}/вн,held : PutOn reverse",
}

965
room2.lua Normal file
View File

@ -0,0 +1,965 @@
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room2_" или "terassa_"
-- Все описания можно менять
-- Задача: Игрок должен найти в локации
-- ВНИМАНИЕ: Это одна из стартовых локаций! Не надо делать сложно! Доступ на восток и запад преграждать нельзя! Доступа на юг может не быть, он открывается не отсюда
-- Игрок может придти в локацию как с ключом так и без ключа!
----[[
-- ## ##
-- ## ## ##
-- ## ## #### ##### ###### ###### ##### ## ## ## ## ## ##
-- ####### ## ## ## ## ## ## ## ## ### ## ## ## ###
-- ## ## ##### ## ## ###### ## ## ## # ## ##### ## # ##
-- ## ## ## ## ## ## ## ## ## ### ## ## ## ### ##
-- ## ## ###### ##### ## ## ##### ## ## ## ## ## ##
--]]
-- local _'room2_s'.pl_high = 0;
-- local _'room2_s'.has_noticed_key = false;
-- -- local room2_uni = 0
-- local room2_uni = {arch = false, botan = false, hist = false}
function room2_check_uni(k)
local _uni = _'room2_s'.uni
if not _uni[k] then
_uni[k] = true
local _n = 0
for a in pairs(_uni) do
if _uni[a] then _n = _n + 1; end
end
if _n <= 2 then
return " (Ты пару месяцев изучала " .. _'room2_s':noun('вн',k) .. ", когда была в университете, но поняла — не твоё)."
elseif _n < 5 then
return " (Ну, ты знаешь: университет, пара месяцев " .. _'room2_s':noun('рд',k) .. ", не твоё)."
else
return " (Да-да: университет — " .. _'room2_s':noun('им',k) .. " — не твоё)."
end
end
return ""
end;
obj {
-"архитектура|ботаника|история|анатомия|морская навигация";
nam = "room2_s"; -- room2_settings
pl_high = 0;
has_noticed_key = false;
been_on_high = false;
uni = {false, false, false, false, false};
vowels = {"а","и","о","у","э","А","И","О","У","Э"};
-- uni = {arch = false, botan = false, hist = false, anat = false};
-- unitxt1 = {arch = 'архитектура', botan = 'false', hist = 'false', anat = ""};
-- unitxt2 =
}
function room2_sober()
if _'room2_s'.pl_high == 1 then
p "Ты чувствуешь, что эффект от яда проходит и миру возвращаются привычные тусклые краски.";
_'room2_s'.pl_high = 0;
end
end;
room2_room = Class({
-- title = function(s)
-- if _'room2_s'.pl_high == 1 then
-- s.title = s.title .. " (немного под кайфом)";
-- end;
-- end;
['before_Exam,Open'] = function()
return false;
end;
before_Listen = function(s,w)
if not w then
if _'room2_s'.pl_high == 0 then
return "Минуту ты слушаешь, как шумит лес.";
else
return "Ты с беспокойством слушаешь, как шумит лес: тяжкие вздохи и скрипы, и зловещий шелест ветвей.";
end
end
return false
end;
before_Taste = function()
local _txt = "Поверь мне, это не та часть дома, где ты должна давать волю своему языку.";
if _'room2_s'.pl_high == 1 then
_txt = _txt .. " (Он, кстати, немного онемел)";
end
return _txt
end;
before_Default = function()
if not mp:check_touch() then
return false
end
end;
post_Any = function(s,ev,w)
if not w then return end;
if ev == 'Exam' or ev == 'LookUnder' or ev == 'LookAt' then
w:attr'seen'; -- предмет осмотрен
if _'room2_s'.pl_high == 0 then -- если гг не под кайфом
w:attr'seen_before_high'; -- предмет осмотрен до кайфа
if w:has'seen_on_high' then -- если предмет был осмотрен под кайфом
w:attr'seen_after_high'; -- предмет осмотрен после кайфа
end
elseif _'room2_s'.pl_high == 1 then -- если гг под кайфом
w:attr'seen_on_high'; -- предмет осмотрен под кайфом
end
end
if ev == 'Listen' and w:access() then
w:attr'listened'; -- предмет послушан
if _'room2_s'.pl_high == 0 then -- если гг не под кайфом
w:attr'listened_before_high'; -- предмет послушан до кайфа
if w:has'listened_on_high' then -- если предмет был послушан под кайфом
w:attr'listened_after_high'; -- предмет послушан после кайфа
end
elseif _'room2_s'.pl_high == 1 then -- если гг под кайфом
w:attr'listened_on_high'; -- предмет послушан под кайфом
end
end
return false;
end
}, room)
-- о/об в зависимости от первой буквы слова
function room2_about(str)
local _vowels = _'room2_s'.vowels
for a in pairs(_vowels) do
if _vowels[a] == str:sub(1, 2) then return "об" end
end
return "о"
end;
room2_Prop = Class {
before_Exam = function()
return false
end,
before_Default = function(s, ev, w)
p("Тебе нет нужды беспокоиться "..room2_about(s:noun'пр').." "..s:noun 'пр'..".");
end
}:attr 'scenery'
--"оставаться"
room2_Exhibit = Class {
['before_Exam,LookUnder,LookAt,Search'] = function(s)
if not s:access() then
p("Ты разглядываешь ", s:noun 'вн', " сквозь закрытые дверцы ", parent(s):noun 'рд', ":");
end
return false;
end;
before_Listen = function(s)
if not s:access() then
return p("Если ", s:noun 'им', " и издаёт какие-то звуки, ты их не слышишь за закрытыми дверцами ", parent(s):noun 'рд', ".");
end
return false;
end;
before_Default = function(s, ev, w)
p(s:Noun 'им', " — экспонат. Пусть лучше {#word/оставаться,#first,нст} на месте.");
end;
}:attr 'static';
room2_Far = Class {
['before_Exam,WaveHands'] = function()
return false
end,
before_Default = function(s, ev, w)
p(s:Noun 'им', " слишком далеко.");
end
}:attr 'scenery'
room2_Photo = Class {
before_Turn = function(s)
mp:xaction('Turn', _'room2_album')
end;
before_Default = function(s,ev) mp:xaction(ev, parent(s)) end;
}:attr 'concealed'
-- помахать пугалу
VerbExtend {"#Wave",
"{noun}/дт : WaveHands"
}
-- идти по дорожке
VerbExtend {"#Walk",
"по {noun}/дт : Walk"
}
-- перевернуть страницу
VerbExtendWord {"#Turn",
"переверн/уть"
}
----[[
-- #####
-- ## ##
-- ## ## ##### ## ## #### ## ## ## ## ## ##
-- ## ## ## ## ## ## ## ## ## ## ### ## ###
-- ## ## ## ## ##### ##### ## ## ## # ## ## # ##
-- ## ## ## ## ## ## ## ## ## ## ### ## ### ##
-- ## ## ##### ## ## ###### ### ## ## ## ## ##
-- #
--]]
-- room {
-- nam = "room2_limbo";
-- }
room2_room {
nam = "room2_terassa",
title = function()
return _'room2_s'.pl_high == 0 and "терраса за домом" or "терраса за домом (в мире ярких красок)"
end;
-- dsc = "Дом на юге. Дорожка обегает вокруг дома на западе и на востоке.",
dsc = function(s)
local _forest = _'room2_s'.pl_high == 0 and "тёмного, жутковатого" or "чёрного, жуткого";
local _scarecrow = (_'room2_s'.pl_high == 1 and _'room2_scarecrow':has'seen_on_high') and "^^Перед лесом беснуется пугало." or "";
return "С этой стороны дом чуть менее впечатляющ, но всё такой же большой. Дорожка огибает его с запада и востока, сворачивая к каменным ступенькам, что ведут на террасу. С другой стороны — на севере — полоска заросшего огорода отделяет тебя от " .. _forest .. " леса." .. _scarecrow
end;
s_to = 'room2_on_terrasa',
u_to = 'room2_on_terrasa',
n_to = function () p "В тот тёмный лес тебе точно не надо." end,
e_to = function()
room2_sober()
return 'room1_kryltco' -- НУЖНО ПОДСТАВИТЬ НУЖНУЮ КОМНАТУ !!!
end;
w_to = function()
room2_sober()
return 'room1_kryltco' -- НУЖНО ПОДСТАВИТЬ НУЖНУЮ КОМНАТУ !!!
end;
}
room2_room {
nam = "room2_on_terrasa",
title = function()
return _'room2_s'.pl_high == 0 and "на террасе" or "на террасе (в мире ярких красок)"
end;
dsc = "Тут тенисто и прохладно — плющ защищает пространство от зноя. В дом ведёт широкая, двустворчатая дверь. По обеим сторонам от неё стоят застеклённые шкафы с заметными табличками на них. Левый с табличкой «Саргассово море», правый — «Экспедиция в Такла-Макан».^Выход с террасы — на север, вниз по ступеням.";
s_to = 'room2_door',
n_to = function(s)
if not _'room2_s'.has_noticed_key and where(_'room2_smt_shiny') ^ 'room2_terassa' then
p("Сбегая по ступенькам, ты вдруг замечаешь, что на земле под плющом что-то блестит.");
_'room2_s'.has_noticed_key = true;
_'room2_smt_shiny':attr'~concealed';
end
return 'room2_terassa';
end;
d_to = function(s) mp:xaction("Walk", _'@n_to') end;
}
door {
-"дверь";
nam = "room2_door";
door_to = function()
room2_sober()
return 'room12_gostinnaya' -- НУЖНО ПОДСТАВИТЬ НУЖНУЮ КОМНАТУ !!!
end;
when_locked = [[Здесь есть закрытая дверь.]];
when_open = [[Дверь открыта.]];
with_key = ''; -- НУЖНО ПОДСТАВИТЬ НУЖНЫЙ КЛЮЧ !!!
before_Unlock = function(s, w)
if w ^ 'bigkey' then
return "Хм, столько приключений, чтобы добыть большой ключ, а он к этой двери не подходит."
end
return false
-- return mp.msg.Unlock.WRONGKEY;
-- p ("Нет, ", w:noun 'им', " здесь не подходит.")
end;
before_Push = "Похоже, сила здесь не поможет. Нужен подходящий ключ.";
before_Attack = "Ты колотишь в дверь кулаком, но, как и предполагала — никто не открывает.";
found_in = { 'room2_on_terrasa' };
}:attr 'scenery,openable,lockable,locked';
room2_Prop {
-"дорожка,тропинка|красные кирпичи,красные,кирпичи,пучки травы,пучки,трещинки/но";
nam = "room2_walk";
description = function(s)
local _txt = _'room2_s'.pl_high == 0 and "" or " Ты на несколько минут замираешь, разглядывая узоры трещинок на разных кирпичах, их отличия по высоте, степень выщербленности, оттенки цвета и тому подобные вещи."
return "Красные кирпичи, утопленные в землю. Между ними пробиваются пучки нетоптаной травы. Дорожка обегает вокруг дома на западе и на востоке.".._txt
end;
before_Walk = "Тебе сначала нужно определиться, куда — на запад или восток — ты собираешься пойти.";
found_in = {'room2_terassa'};
}
room2_Prop {
-"терраса|дом,фасад";
nam = "room2_terrasa_obj";
description = function(s)
local _txt = s:hasnt'seen' and "(конечно же!) " or "";
if here() ^ "room2_terassa" then
return "Широкая открытая терраса, выдающаяся вперёд от фасада дома на добрые пару метров. Деревянные перила окрашены в голубой " .. _txt .. "цвет. Однако, их почти не видно за густыми зарослями плюща, опутавшего всю террасу и забравшегося по её столбам к самой крыше. Вход на террасу — на юге, по каменным ступенькам."-- .. s:noun('вн',3)
else
return _'room2_on_terrasa'.dsc
end
end;
['before_Enter,Climb'] = function(s)
if here() ^ "room2_terassa" then
walk 'room2_on_terrasa'
else
mp:xaction("Walk", _"@s_to")
end
end;
['before_Exit,GetOff'] = function(s)
if here() ^ "room2_on_terrasa" then
mp:xaction("Walk", _"@n_to")
else
return false
end
end;
found_in = {'room2_terassa','room2_on_terrasa'};
}:attr 'supporter';
room2_Prop {
-"ступеньки,ступени";
nam = "room2_steps";
description = function(s)
local _txt = "Широкие каменные ступеньки, немного стёртые посередине, ";
if here() ^ "room2_terassa" then
return _txt .. "поднимаются на высокую террасу."
else
return _txt .. "сбегают с террасы вниз, к дорожке."
end
end;
before_Walk = function(s)
if here() ^ "room2_terassa" then
mp:xaction("Walk", _"@s_to")
else
mp:xaction("Walk", _"@n_to")
end
end;
found_in = {'room2_terassa','room2_on_terrasa'};
}
room2_Prop {
-"перила,столбики";
nam = "room2_handrails";
description = function(s)
if here() ^ "room2_terassa" then
return "Перила едва видны, почти полностью скрытые листьями плюща."
else
local _txt = room2_check_uni(1);
return "С этой стороны видно, что столбики перил — искусная зодческая работа в псевдо-русском стиле." .. _txt
end
end;
found_in = {'room2_terassa','room2_on_terrasa'};
}
obj {
-"плющ|листья плюща,листья,прожилки";
nam = "room2_ivy";
description = function(s)
local _study = room2_check_uni(2);
local _txt = "";
if _'room2_s'.pl_high == 0 then
if here() ^ "room2_terassa" then
_txt = "Красивый, большелистый плющ, опутавший всю террасу. С виду — обычный Hedéra hélix." .. _study .. " Но тебя настораживает красноватый отлив с нижней стороны его листьев.";
if not _'room2_s'.has_noticed_key and _'room2_smt_shiny':access() then
-- _txt = _txt .. "^^Ты вдруг замечаешь, что на земле под плющом что-то блестит.";
-- _'room2_s'.has_noticed_key = true;
-- _'room2_smt_shiny':attr'~concealed';
elseif _'room2_smt_shiny':access() then
_txt = _txt .. "^^Под плющом всё блестит какой-то предмет."
end
else
_txt = "Плющ опутал все перила террасы, по столбам поднялся к самой крыше, надёжно укрыв пространство террасы своими большими листьями от взглядов с улицы (не то чтобы было кому подглядывать). Очень похожий на Hedéra hélix." .. _study .. " Однако, снизу его листья покрыты красными прожилками, а про такое ты не читала."
end
else
_txt = "Вездесущий плющ, опутавший всю террасу своими стеблями. С виду — обычный Hedéra hélix." .. _study .. " Но ты уже на своём опыте поняла, что это не он. Какая-то иноземная разновидность, ядовитая и коварная. Его большие красноватые листья дрожат на ветру (которого нет).";
end
return _txt;
end;
['before_Take,Touch,Tear'] = function(s)
if not _'room2_s'.been_on_high then
return "Нет уж. Вдруг он ядовитый, а у тебя обнаружится аллергическая реакция, и что тогда? Аптеки поблизости ты что-то не наблюдаешь.";
else
if _'room2_s'.pl_high == 0 then
_'room2_s'.pl_high = 1
return "Сначала ты медлишь: это уже похоже на зависимость, но потом — была не была — суёшь руку прямо в заросли плюща. И тут же выдёргиваешь, почувствовав жжение. Яркие краски, к твоему удовольствию, возвращаются.";
else
return "Ты ещё чувствуешь действие яда на своё сознание, дополнительной дозы тебе сейчас не нужно.";
end
end
end;
before_Climb = function(s)
local _txt = _'room2_s'.been_on_high == true and " К тому же он ядовитый." or ""
return "Было бы интересно, конечно, прямо как в кино. Но, к сожалению, его стебли недостаточно крепкие и не выдержат твоего веса.".._txt
end;
found_in = {'room2_terassa','room2_on_terrasa'};
}:attr 'scenery':dict {
["листья/вн"] = "листья";
["листья/рд"] = "листьев";
["листья/дт"] = "листьям";
["листья/тв"] = "листьями";
["листья/пр"] = "листьях";
};
obj {
-"что-то блестящее,что-то,блестящее,монет*,ключ*,кулон*,предмет*,земля*";
nam = "room2_smt_shiny";
dsc = "На земле под плющом что-то блестит.";
description = function(s)
local _txt = s:has'seen' and " В принципе, ты видишь прогалины между листьев, где бы ты смогла протянуть руку к предмету, не задев плюща." or ""
return "Ты никак не можешь разобрать, что же это такое — тебе мешают листья плюща. Монета? Ключ? Кулон?".._txt
end;
before_Take = function(s)
move('bigkey', pl);
remove(s);
_'room2_s'.has_noticed_key = true;
_'room2_s'.pl_high = 1;
_'room2_s'.been_on_high = true;
walkin('room2_took_key');
if (s.once) then
mp.score=mp.score+1
end
end;
found_in = {'room2_terassa'};
}:attr 'concealed'
cutscene {
nam = 'room2_took_key';
text = {
"Ты осторожно, стараясь не касаться ни листьев, ни стеблей плюща, протягиваешь руку к тому месту, где блестит таинственный предмет.";
"Двумя пальцами подцепляешь его, чувствуя холод металла. И так же осторожно тянешь руку обратно — из красноватых зарослей плюща.";
"Ты уже почти вынула руку, когда происходит странное — один из листьев качается на ветру (но ветра же нет!) и всей поверхностью липнет к твоему запястью.";
"Зашипев от боли, ты выдёргиваешь руку и разглядываешь обожжённое запястье, но не видишь никаких следов.";
"Единственное, что изменилось — краски окружающего мира становятся как-то насыщеннее, ярче. Хм.";
"Зато разжав кулак, ты видишь, что достала большой ключ.";
};
}
room2_Prop {
-"шкафы";
description = "Застеклённые шкафы с хранящимися в них экспонатами: в левом — про тайны Саргассова моря, в правом — про секретную советскую экспедицию в пустыню Такла-Макан.";
found_in = {'room2_on_terrasa'};
}:attr 'scenery';
room2_Prop {
-"экспонаты,предметы";
description = "Лучше рассматривать их поближе, что в левом, что в правом шкафах.";
found_in = {'room2_on_terrasa'};
}:attr 'scenery';
----[[
-- #####
-- ## ## ## #
-- ## ## ##### ##### ## ## ## ## ## # ## ## ## #### #####
-- ## ## ## ## ## ## ## ## ## ### ## # ## ## ## ## ## # ##
-- ## ## ###### ###### #### # ## # ## ## # ## ##### ##### ## # ##
-- ## ## ## ## ## ## # # ### ## ## # ## ## ## ## ## #####
-- ## ## ##### ###### #### # ## ## ####### ## ## ###### #
--]]
obj {
word = -"левый шкаф, шкаф, левый/но|саргассы/мн,но",
nam = 'room2_left_cabinet',
description = function(s)
local _txt = s:has'open' and "открытый" or "закрытый"
local _mary = _'room2_celeste':hasnt'seen' and "парусника" or "«Марии Селесты»";
return "Слева от двери стоит ".._txt.." шкаф, названный «Саргассово море». Судя по описанию на табличке в нём представлены экспонаты, так или иначе связанные с тайнами Саргассова моря и Бермудского треугольника. Среди всего содержимого шкафа твоё внимание привлекают: большая морская раковина, масштабная модель ".._mary.." и компас.";
end;
before_LetIn = "Не нужно в шкаф ничего совать — всё необходимое в нём уже есть.";
found_in = {'room2_on_terrasa'};
obj = {'room2_compass','room2_shell','room2_celeste'};
}:attr 'scenery,container,transparent,openable,~animate';
room2_Prop {
-"дверцы левого шкафа,левые дверцы,дверцы,левые";
description = function(s)
if _'room2_left_cabinet':has'open' then
return false
end
p("Ты разглядываешь содержимое левого шкафа сквозь стеклянные дверцы:^^");
mp:content(_'room2_left_cabinet');
return;
end;
before_Open = function(s) mp:xaction("Open", _'room2_left_cabinet') end;
before_Close = function(s) mp:xaction("Close", _'room2_left_cabinet') end;
found_in = {'room2_on_terrasa'};
}
room2_Exhibit {
word = function(s)
return s:has'seen' and -"компáс,компас|картушка" or -"компас,компáс";
end;
nam = "room2_compass",
description = function(s)
local _study = room2_check_uni(5);
if _'room2_s'.pl_high == 0 then
if s:hasnt'seen_on_high' then
local _txt = s:hasnt'seen' and " («компáс», мысленно поправляешь ты себя)" or "";
return "Старинный морской " .. s:noun('им') .. _txt .. ". Медный корпус с нанесёнными на него румбами, пожелтевшая картушка повёрнута красной стрелкой Норда в сторону леса." .. _study;
else
return "Теперь с компáсом всё в порядке — картушка замерла и своей красной «N» указывает в сторону леса."
end
else
if s:hasnt'seen_on_high' then
local _txt = s:hasnt'seen' and " («компáсом», мысленно поправляешь ты себя)" or "";
return "Что-то не так с этим " .. s:noun('тв') .. _txt .. " — его картушка почему-то безостановочно вращается. Ты никогда такого не видела. (Картушка — это та часть морского компáса, которая поворачивается вместо стрелки у сухопутного компаса)" .. _study;
else
if s:hasnt'seen_after_high' then
return "Картушка компáса всё вращается."
else
return "Картушка компáса опять вращается!"
end
end
end
end;
before_Take = function(s)
local _txt = _'room2_s'.pl_high == 0 and "" or " (особенно, если его картушка вращается как сумасшедшая)";
return "Тебе с твоей врождённой способностью ориентироваться по сторонам света дополнительное приспособление не нужно" .. _txt .. ".";
end;
}:dict{
["компáс/мр,но,С"] = {"компáс/им", "компáсы/им,мн", "компáс/вн",
"компáсы/вн,мн", "компáса/рд", "компáсов/рд,мн",
"компáсу/дт", "компáсам/дт,мн", "компáсом/тв",
"компáсами/тв,мн", "компáсе/пр", "компáсах/пр,мн"}
}
room2_Exhibit {
-"раковина,ракушка,морская";
nam = "room2_shell";
description = function (s)
if s:hasnt'listened_on_high' then
local _txt = s:hasnt'listened' and " Интересно, если её послушать, будет ли слышно море?" or ""
return "Большая и очень красивая раковина, на внешней стороне покрытая множеством разной длины отростков, внутри — гладкая и переливающаяся перламутром.".._txt
else
if _'room2_s'.pl_high == 0 then
return "Ладно, в прошлый раз на тебя что-то нашло и тебе почудилось всякое, но большая перламутровая раковина уже не кажется тебе такой же красивой."
else
return "Раковина всё такая же большая и красивая, но ты боишься оторвать взгляд от её внутренней поверхности — вдруг оттуда покажется то, что там скреблось."
end
end
end;
before_Listen = function (s)
if not s:access() then
return p("Если ", s:noun 'им', " и издаёт какие-то звуки, ты их не слышишь за закрытыми дверцами ", parent(s):noun 'рд', ".");
end
if s:hasnt'listened_on_high' then
local _txt = room2_check_uni(4);
if _'room2_s'.pl_high == 0 then
return "Ты аккуратно поднимаешь довольно тяжёлую раковину и прикладываешь её к уху. И тут же слышишь шум прибоя. Который, как ты, конечно, знаешь — всего лишь шум твоего собственного сердцебиения и тока крови." .. _txt;
elseif _'room2_s'.pl_high == 1 then
return "Ты аккуратно поднимаешь тяжёлую раковину и прикладываешь её к уху. Сначала ты слышишь шум прибоя. Который, как ты, конечно, знаешь — всего лишь шум твоего собственного сердцебиения и тока крови." .. _txt .. "^Ты задерживаешь раковину у уха и, кажется, за прибоем начинаешь слышать что-то ещё. Песню. Женский голос поёт сладкозвучно и очень печально, наверное, о потерянной любви, потому что ты не знаешь других причин петь так грустно и так красиво. Как вдруг песня обрывается и голос гаркает:^— ¿Quién está ahí?^А потом из глубин раковины доносится скребущийся звук. Всё ближе и громче. Ты отдёргиваешь от себя раковину и поспешно возвращаешь её на полку.";
end
else
if _'room2_s'.pl_high == 0 then
return "Возможно в прошлый раз тебе и показалось, однако, всякое желание подносить эту раковину к своему уху у тебя отбило напрочь."
else
return "Ты ни за что не притронешься к этой раковине!"
end
end
end;
before_Open = "Нет, это другая раковина, не та, которая из двух створок и открывается, а та, которая завитая спиралью и в ней ещё можно слушать море. Ты что, не видишь?";
before_Take = function(s) mp:xaction("Listen", s) end;
}
-- нужно повторение словарных слов, потому что иначе не воспринимает:
--"модель,корабль,паруса"
room2_Exhibit {
word = function(s)
local _model = s:has'seen' and "модель «Марии Селесты»" or "модель парусника";
local _wrd = _'room2_s'.pl_high == 0 and "" or "диорама,кракен*,пожар*,чудовище*,щупальца*,доски*";
return -"".._model..",модель,мария,селеста,бригантина,палуба,корма,рубка,мачта,mary celeste,mary,celeste,название*/жр,нд|корабль,парусник,такелаж|паруса,надстройки,якоря,якорьки,механизмы/мн|".._wrd.."/жр,нд";
end;
nam = "room2_celeste";
description = function (s)
if _'room2_s'.pl_high == 0 then
if s:hasnt'seen_on_high' then
return "Красивая двухмачтовая бригантина, скрупулёзно воссозданная в масштабе модели: путаница такелажа, белоснежные паруса, палуба с различными надстройками и механизмами, крошечные якорьки. На корме, под окнами капитанской рубки — название «MARY CELESTE».";
else
return "Это вновь та же аккуратная бригантина без признаков разрушения. С тщательно воссозданными парусами, такелажем, якорьками. Название вновь полное: «MARY CELESTE»."
end
else
local _txt = s:has'seen_before_high' and " уже" or ""
return "С удивлением ты наблюдаешь".._txt.." не просто модель, а целую живую диораму: парусник «Мария Селеста», атакованный огромным кракеном. Паруса оборваны и висят клочьями с рей, задняя мачта сломана посредине и свисает с правого борта, щупальца чудовища опутали всю верхнюю палубу и через люки запустились на нижние. Дверь в капитанскую рубку заколочена досками. На носу пожар. В названии на корме не хватает нескольких букв."
end
end
}:dict {
["кракен/вн"] = "кракена";
["кракен/рд"] = "кракена";
["кракен/дт"] = "кракену";
["кракен/тв"] = "кракеном";
["кракен/пр"] = "кракене";
["диорама/вн"] = "диораму";
["диорама/рд"] = "диорамы";
["диорама/дт"] = "диораме";
["диорама/тв"] = "диорамой";
["диорама/пр"] = "диораме";
}
----[[
-- #######
-- ## ## ## #
-- ## ## ###### #### ##### ## ## ## ## ## # ## ## ## #### #####
-- ## ## ## ## ## ## ## ## ## ## ### ## # ## ## ## ## ## # ##
-- ## ## ###### ##### ###### #### # ## # ## ## # ## ##### ##### ## # ##
-- ## ## ## ## ## ## ## ## # # ### ## ## # ## ## ## ## ## #####
-- ## ## ## ###### ###### #### # ## ## ####### ## ## ###### #
--]]
obj {
-"правый шкаф, шкаф, правый, Такла-Макан/но|дверцы правого шкафа, дверцы",
nam = 'room2_right_cabinet',
description = function(s)
local _txt = s:has'open' and "открытый" or "закрытый"
return "Справа от двери — ".._txt.." шкаф с табличкой «Экспедиция в Такла-Макан». Описание гласит, что экспонаты в нём связаны с секретной советской экспедицией 1946 года на северо-запад Китая. Больше всего тебя заинтересовали: карта с маршрутом экспедиции, альбом с фотографиями и обломок чёрного камня."
end;
before_LetIn = "Не нужно в шкаф ничего совать — всё необходимое в нём уже есть.";
found_in = {'room2_on_terrasa'};
obj = {'room2_black_rock','room2_album','room2_map'};
}:attr 'scenery,container,transparent,openable';
room2_Prop {
-"дверцы правого шкафа,правые дверцы,дверцы,правые";
description = function(s)
if _'room2_right_cabinet':has'open' then
return false
end
p("Ты разглядываешь содержимое правого шкафа сквозь стеклянные дверцы:^^");
mp:content(_'room2_right_cabinet');
return;
end;
before_Open = function(s) mp:xaction("Open", _'room2_right_cabinet') end;
before_Close = function(s) mp:xaction("Close", _'room2_right_cabinet') end;
found_in = {'room2_on_terrasa'};
}
room2_Exhibit {
-"обломок чёрного камня,кусок,чёрный,камень,кусок,обломок";
nam = "room2_black_rock";
description = function(s)
if _'room2_s'.pl_high == 0 then
return "Небольшой — с твой кулак — обломок совершенно чёрного камня непонятной породы. Мог бы быть углём, однако, в отличие от антрацитов совершенно не отражает света."
else
if _'room2_album'.page == 6 then
return "Внутри чёрного обломка пульсирует неяркий красный свет."
elseif _'room2_album'.page == 7 then
return "Обломок почти светится изнутри красным пульсирующим светом!"
elseif _'room2_album'.page == 8 then
return "Огонь внутри обломка уже не пульсирует, а просто светит сквозь, казалось бы, непроницаемые стенки. Кажется, от него исходят едва слышные вибрации."
else
return "С ходу незаметно, но если приглядеться — внутри обломка как будто пульсирует очень слабый свет."
end
end
end;
before_Listen = function(s)
if not s:access() then
return p("Если ", s:noun 'им', " и издаёт какие-то звуки, ты их не слышишь за закрытыми дверцами ", parent(s):noun 'рд', ".");
end
if _'room2_s'.pl_high == 1 and _'room2_album'.page == 8 then
return "Ты слышишь едва заметный, на самой границе слышимости, зуд, волнами расходящийся от камня.";
end
return false;
end;
before_Touch = "Ты сама не понимаешь почему, но тебе не хочется к нему прикасаться.";
}
room2_Exhibit {
-"альбом с фотографиями,альбом/мр,ед|фотографии,фотки|печать,обложка,книга";
nam = "room2_album";
page = 1;
description = function(s)
if s:hasnt'open' then
return "Потёртый кожаный альбом с прямоугольной печатью «СОВСЕК» посередине красной обложки."
else
return "Раскрытый альбом с пожелтевшей фотографией забытой экспедиции:^"..s.obj[s.page].pageDsc()
end
end;
before_Open = function(s)
if not s:access() then
return false;
end
if s:hasnt'open' then
s:attr'open';
return "Ты осторожно открываешь альбом, явив свету пожелтевшую фотографию семидесятипятилетней давности:^"..s.obj[s.page].pageDsc().."^^Похоже, ты можешь перевернуть страницу дальше.";
end
return false;
end;
before_Close = function(s)
return false;
end;
before_Turn = function(s)
if not s:access() then
return false;
end
if s:hasnt'open' then
return "В закрытом альбоме страницы переворачивать не получится."
end
s.page = s.page + 1
if s.page > table.getn(s.obj) then
s.page = 1
return "Похоже, эта страница была последней. Ты перелистываешь в самое начало:^"..s.obj[s.page].pageDsc();
else
return "Ты переворачиваешь страницу альбома:^"..s.obj[s.page].pageDsc();
end
end;
['post_Exam,Open,Turn,LookUnder,LookAt'] = function(s)
local w = s.obj[s.page]
w:attr'seen'; -- фото осмотрено
if _'room2_s'.pl_high == 0 then -- если гг не под кайфом
w:attr'seen_before_high'; -- фото осмотрено до кайфа
if w:has'seen_on_high' then -- если фото был осмотрено под кайфом
w:attr'seen_after_high'; -- фото осмотрено после кайфа
end
elseif _'room2_s'.pl_high == 1 then -- если гг под кайфом
w:attr'seen_on_high'; -- фото осмотрено под кайфом
end
return false;
end;
-- found_in = {'room2_terassa'};
obj = {
room2_Photo {
-"фотография|страница|фото";
nam = "room2_album_1";
pageDsc = function()
local _culman = ""
local _members = ""
local _stone = _'room2_album_6'.has_seen_light and "^^Пульсация света в камне возвращается к едва различимому красноватому отсвету. Как будто камень реагирует на то, какая фотография сейчас открыта." or ""
if _'room2_s'.pl_high == 0 then
_members = "Кто-то в костюме и в лихо сдвинутой кепке, кто-то в гимнастёрке с медалью, кто-то в невзрачной робе и с короткой стрижкой. Почти никого старше тридцати. "
else
_members = "Там, где должны быть лица, фото расцарапано до белой основы. "
end
if _'room2_s'.pl_high == 1 and _'room2_album_7':has'seen' then
_culman = "На фоне — кульман, на котором расчерчен зловещий зиккурат."
else
_culman = "На фоне — кульман со схемами и картами, впрочем, качество фотографии не позволяет разглядеть деталей."
end
return "    Фотография восьмерых участников экспедиции на кафедре исторического факультета МГУ. ".._members.._culman.._stone;
end
};
room2_Photo {
-"фотография|страница|фото";
nam = "room2_album_2";
pageDsc = function()
if _'room2_s'.pl_high == 0 then
local _zundapp = ""
if _'room2_album_3':hasnt'seen' then
_zundapp = "В полумраке на заднем плане видны мотоциклы с колясками, но не в фокусе, поэтому непонятно, какой марки."
else
_zundapp = "В полумраке на заднем плане видны «Цундаппы» с колясками, но не в фокусе, поэтому деталей не разобрать."
end
return "    Фотография гаража: на переднем плане — «Студебеккер», подготавливаемый к пустынному пробегу. Жёсткий кунг обтянут светлой тканью, на крышу кабины установлен деревянный щит от нагрева, в открытом капоте видны большие цилиндры воздушных фильтров, установлены дополнительные противотуманные фары. ".._zundapp;
else
return "    Фотография гаража: на переднем плане — «Студебеккер», перед подготовкой к пустынному пробегу. Видно, что машина в своём недавнем прошлом — фронтовая. Кунг насквозь прошит пулеметными очередями, кабина изнутри — в багровых пятнах, фары разбиты. В полумраке на заднем плане — другая техника в схожем состоянии."
end
end
};
room2_Photo {
-"фотография|страница|фото";
nam = "room2_album_3";
pageDsc = function()
if _'room2_s'.pl_high == 0 then
if _'room2_album_3':hasnt'seen' then
return "    Фотография железнодорожного состава: на платформах друг за другом закреплены два «Студебеккера» и три мотоцикла. По характерной раме ты, наконец, понимаешь, что это за марка: «Цундаппы». Само собой.";
else
return "    Фотография железнодорожного состава: на платформах друг за другом закреплены два «Студебеккера» и три мотоцикла с характерными рамами — трофейные «Цундаппы»."
end
else
return "    Фотография железнодорожного состава и путей перед ним: на платформах закреплены и полускрыты под брезентом «Студебеккеры» и трофейные «Цундаппы».^Участок путей перед локомотивом неисправен — снимок застал группу пленных в изношенных немецких шинелях за укладкой новых шпал, пропитанных чёрным креозотом."
end
end
};
room2_Photo {
-"фотография|страница|фото";
nam = "room2_album_4";
pageDsc = function()
if _'room2_s'.pl_high == 0 then
return "    Фотография «Цундаппа» на фоне минаретов и большого портала, покрытого характерным орнаментом, под которым толпится большая толпа в полосатых халатах и чалмах. Хотя фото и чёрно-белое, ты уверена, что портал облицован керамикой глубокого лазоревого цвета. В углу подпись чернилами: «Самарканд».";
else
return "    Фотография «Цундаппа» на фоне средневековых минаретов и большого портала, кое-где покрытого характерным орнаментом. Местность безлюдная и заброшенная. Керамическое покрытие сооружений давно осыпалось, их стены постепенно разрушаются и покрываются пятнами. В углу подпись чернилами: «Самарканд»."
end
end
};
room2_Photo {
-"фотография|страница|фото";
nam = "room2_album_5";
pageDsc = function()
if _'room2_s'.pl_high == 0 then
return "    Фотография сгрудившихся участников экспедиции вокруг открытого капота одного из «Студебеккеров». Чуть правее один из группы (начальник?) общается с двумя местными, невысокими, в халатах и тюбетейках. На фоне выстроились в ряд разномастные глинобитные домики. В углу теми же чернилами и тем же почерком: «Кашгар».";
else
return "    Фотография сгрудившихся участников экспедиции вокруг тела одного из своих. Чуть правее начальник группы направляет длинный «ТТ» на двух местных, невысоких, в халатах и тюбетейках, сжимающих ножи и ощерившихся. На фоне выстроились в ряд разномастные глинобитные домики. В углу теми же чернилами и тем же почерком: «Кашгар»."
end
end
};
room2_Photo {
-"фотография|страница|фото";
nam = "room2_album_6";
has_seen_light = false;
pageDsc = function()
local _dot = ""
local _stone = ""
if _'room2_s'.pl_high == 0 then
_dot = "светящаяся точка сигареты"
else
_'room2_album_6'.has_seen_light = true
_dot = "две светящиеся точки глаз"
_stone = "^^Ты замечаешь, как в чёрном обломке пульсация света становится всё заметней.";
end
return "    Ночное фото «Студебеккера» на фоне засвеченной вспышкой пустыни. Трое участников в свете фар откапывают перед грузовиком две колеи. В темноте кабины — ".._dot..". Фонтан песка, сорвавшийся с одной из лопат, навсегда застыл в свете вспышки.".._stone;
end
};
room2_Photo {
-"фотография|страница|фото|зиккурат";
nam = "room2_album_7";
pageDsc = function()
if _'room2_s'.pl_high == 0 then
return "    На переднем плане фотографии — оба грузовика и мотоциклы. Все члены экспедиции стоят у техники, спиной к камере. Они смотрят вдаль, туда, где посреди плоской пустыни возвышается огромный чёрный зиккурат.^Многоярусная пирамида с длинной лестницей, ведущей к самой вершине. Все линии геометрически чёткие и точные, совсем не тронутые временем. Тебе почему-то становится не по себе от одного взгляда на это угольно-чёрное сооружение.";
else
return "    На переднем плане фотографии никого нет, ни техники, ни людей. Только у горизонта, над плоской пустыней возвышается огромный чёрный зиккурат.^Многоярусная пирамида с длинной лестницей, ведущей к самой вершине. Все линии геометрически чёткие и точные, совсем не тронутые временем. Даже здесь, в тысячах и тысячах километрах от этого угольно-чёрного монумента, ты чувствуешь исходящую от него угрозу.^^Свет, пульсирующий в камне становится ещё ярче."
end
end
};
room2_Photo {
-"фотография|страница|фото";
nam = "room2_album_8";
pageDsc = function()
if _'room2_s'.pl_high == 0 then
if _'room2_album_8':hasnt'seen_on_high' then
return "    Хм, эта фотография смазанная и нечёткая. Никак нельзя понять, что на ней запечатлено. Зачем она здесь?";
else
return "    Фотография опять смазанная и нечёткая. Ты уже не уверена, что тебе не привиделась та ужасная картина."
end
else
return "    Фотография сделана в замкнутом помещении с чёрными стенами, полом и потолком. Все восемь участников экспедиции стоят перед объективом. Совершенно голые, с залитыми кровью плечами, они держат собственные головы в вытянутых вперёд руках. Глаза распахнуты в ужасе, рты перекошены в безмолвном крике.^^Камень вспыхивает изнутри красным светом."
end
end
};
};
}:attr'openable,~open';
-- room2_Exhibit {
-- -"журнал";
-- nam = "room2_journal";
-- description = "Описание журнала с газетными вырезками и телеграммами.";
-- obj = {
-- obj {
-- -"газетные вырезки,газетные,вырезки,газеты";
-- description = "Вырезки из газет, подклеенные в журнал.";
-- };
-- obj {
-- -"телеграммы";
-- description = "Телеграммы, подклеенные в журнал.";
-- }
-- }
-- }
room2_Exhibit {
-"карта|маршрут";
nam = "room2_map";
description = function (s)
local _study = room2_check_uni(3);
if _'room2_s'.pl_high == 0 then
return "Большая карта СССР и прилегающих стран от 1946-го года, на которую нанесена красная линия маршрута экспедиции: от Москвы через Саратов и Ташкент до Самарканда — пунктирная, обозначающая путь по железной дороге. От Самарканда через Коканд, Ош и перевал Талдык на Кашгар — двойная линия, проходящая по маршрутам средневекового Шёлкового Пути.".._study.." От Кашгара и в самый центр безлюдной пустыни Такла-Макан — линия тонкая и прямая, словно подробных данных о том, как именно продвигалась экспедиция, не было. Там, где кончается эта линия, нарисован красный кружок, обозначенный загадочным «КФ937».";
else
return "Большая карта СССР и прилегающих стран от 1946-го года, на которую нанесена красная линия маршрута экспедиции: сначала по железной дороге, затем через горные долины по маршрутам средневекового Шёлкового Пути.".._study.." И, наконец, в самое сердце смертельной пустыни Такла-Макан, где пульсирует чёрный треугольник.";
end
end;
}
----[[
-- #####
-- ## ##
-- ## ## ## ## ###### ## ## ## # ## ##### ## ## ## ## #####
-- ## ## ## ## ## ## ## ## # # # ## ## ## ## ## ### ## ##
-- ## ## ##### ###### ## ## ### ###### ####### ## # ## ######
-- ## ## ## ## ## ###### # # # ## ## ## ### ## ##
-- ##### ## ## ## ## ## # ## ##### ## ## ## ## #####
-- #####
--]]
room2_Far {
-"лес,осинник|деревья|сосны,осины,тени|чаща";
nam = "room2_forest";
description = function (s)
if _'room2_s'.pl_high == 0 then
return "Старый смешанный лес: величавые сосны тянутся к уже совсем летнему небу, а под ними — непролазный, тёмный осинник."
else
return "Лес вдруг стал темнее и более зловещим. Старые сосны скрипят, качаясь на ветру (но ветра ты не чувствуешь), а в непроходимом осиннике передвигаются медленные тени. Огородное пугало, раскинувшее перед лесом свои руки, кажется ещё меньше на фоне подступившей чащи."
end
end;
['before_Walk,Enter'] = function(s) mp:xaction("Walk", _"@n_to") end;
found_in = {'room2_terassa','room2_on_terrasa'};
}
room2_Far {
-"огород,заросший,каркас|теплица|трава|стебли";
nam = "room2_garden";
description = function (s)
if _'room2_s'.pl_high == 0 then
return "Неухоженный, неподготовленный к сезону огород. От окружающей травы его отличают только пустой каркас теплицы да высокое старое пугало."
else
return "Стебли сорной травы, захватившей огород, тянутся вверх к свету, покачиваясь на несуществующем ветру. И как будто сторонятся старого пугала."
end
end;
['before_Walk,Enter'] = "Тебе там нечего делать, да и к лесу приближаться не хочется.";
found_in = {'room2_terassa','room2_on_terrasa'};
}
room2_Far {
-"небо|солнце|облака,волны";
nam = "room2_sky";
description = function (s)
if _'room2_s'.pl_high == 0 then
return "Чистое, глубоко-синее небо с ярким и уже почти по-летнему жарким солнцем."
else
return "Небо кажется ещё глубже и ещё более синим, чем раньше. Ты прямо-таки видишь, как от ослепительно яркого солнца расходятся волны света и жара."
end
end;
found_in = {'room2_terassa','room2_on_terrasa'};
}
-- room2_Far {
-- -"дом,особняк";
-- nam = "room2_house";
-- description = function (s)
-- return ""
-- end;
-- ['before_Walk,Enter'] = function(s) mp:xaction("Walk", _"@s_to") end;
-- found_in = {'room2_terassa'};
-- }
room2_Far {
-"пугало|руки,глаза|мяч,халат,уилсон,рот";
nam = "room2_scarecrow";
description = function (s)
local _txt = s:hasnt'seen' and " (Уилсон?!)" or ""
if _'room2_s'.pl_high == 0 then
return "Большое старое пугало встаёт над высокой травой огорода, раскинув в стороны длинные руки-палки, словно последний защитник, вставший между лесом и домом. На него надет потрёпанный рабочий халат с полустёртым логотипом. Вместо головы — дырявый волейбольный мяч".._txt..", на котором углём нарисованы круглые чёрные глаза и зубастый рот."
else
local _t = s:has'seen_before_high' and " ещё более" or ""
return "Старое пугало".._t.." походит на последнего защитника, оставшегося от некогда большой армии. Он стойко возвышается над змеящимися стеблями сорной травы. Он раскинул руки в стороны, чтобы то ли не пустить лес к людям, то ли удержать людей от похода в чащу. Он пытается обернуться и гримасничает — угольные глаза беспрестанно меняют размер и сдвигаются по голове-мячу".._txt..", а зубастый рот то открывается, то закрывается."
end
end;
before_Wave = function(s) mp:xaction("WaveHands",s) end;
before_WaveHands = function(s)
if _'room2_s'.pl_high == 1 then
return "Ты вскидываешь руку и что есть силы машешь пугалу. И оно — должно быть, от порыва ветра (какого ветра?) — поворачивается туда-сюда, махнув тебе рукавом халата в ответ."
end
return "Ты помахала руками, но пугало не ответило.";
end;
before_Walk = "Пожалуй, нет.";
found_in = {'room2_terassa','room2_on_terrasa'};
}
-- Менять нельзя!!!! Это не ваш предмет!!! Вы не знаете как он выглядит, его придумает другой автор!!!
--obj {
-- -"большой ключ,ключ",
-- nam = "bigkey",
-- description = "Большой ключ.",
--}
room {
nam = 'test_room1';
}

101
room3.lua Normal file
View File

@ -0,0 +1,101 @@
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room3_" или "hall_"
-- Все описания можно менять
-- Задача: Игрок должен найти в локации предмет longkey. Проход на север нельзя не перекрывать
room {
nam = "room3_hall";
title = "Прихожая";
dsc = function (s)
p "С момента когда ты последний раз была дома у тётушки, здесь многое поменялось. Выход из дома на юге. К северу зал, на востоке гардероб.";
if s.west>0 then
p "На западе есть проход в кладовку.";
end;
end;
n_to = 'room10_zal';
e_to = 'room8_garderob';
s_to = 'room1_kryltco';
west = 0;
w_to = function(s)
if s.west==0 then
return false;
else
return 'room4_kladovka';
end;
end;
before_Listen = "Ничего не слышно.";
after_Smell = function(s, w)
if w ~= nil then
return false;
end;
if w == nil then
return "Пахнет пропавшим кремом.";
else
return false;
end;
end;
-- before_Smell = "Пахнет пропавшим кремом.";
obj = { 'room3_table' };
}
obj {
-"столик,журнальный столик,стол";
nam = "room3_table";
dsc = "У стены стоит небольшой журнальный столик.";
description = function(s)
p"Небольшой столик для бумаг.";
mp:content(s)
end;
before_Take = "Стол слишком тяжёлый, да и не нужен тебе.";
after_Smell = "От стола тоже пахнет пропавшим кремом.";
before_LookUnder = function(s)
p"Прилепленных под столешницу жвачек нет. Похоже здесь живут интеллегентные люди. А может быть приходящая горничная неплохо справляется. Стоило бы взять у тёти номер - твоя горничная это сплошная ходячая катастрофа!";
end;
obj = {'room3_papers','room3_photo','room3_crem'};
}:attr 'static,supporter';
obj {
-"бумаги, квитанции, платёжки, платежки, счета,счета за коммуналку,письма, письма от коллекторов|стопка";
nam = 'room3_papers';
description = 'Огромная стопка бумаг, квитанций, платёжек со счетами за коммуналку. Также тут есть письма от коллекторов. ';
["before_Consult,Search"] = function(s, o)
p 'Бегло изучив платёжки, квитанции и письма от коллекторов (несколько курсов бухгалтерского учёта - не твоё - всё же не прошли даром), ты обнаружила, что у тёти громадные долги по коммуналке. Похоже, она годами коммуналку не оплачивала! ';
end;
before_Take = 'К чему они тебе? Оплачивать тётины долги? При всём желании, у тебя просто нет столько денег. ';
before_Smell = 'Пахнут долгами, разорением и пропавшим кремом. ';
["before_Taste,Eat"] = 'Даже если съесть все квитанции и письма от коллекторов, долги у тёти всё ещё остануться. ';
["before_Rub,Touch"] = 'Ты потёрла одну из квитанций. Сумма долга на ней нисколько не изменилась. ';
["before_Attack,Tear,Tie,Cut"] = 'Неплохое решение, но всё же это тётины квитанции. Пусть она сама решает, как с ними поступить ';
before_Kiss = "Не поможет. ";
}
obj {
-"фотография, фотография в рамке|рамка|фото|тётя|агата|тимо|мужчина|каштаны";
nam = 'room3_photo';
description = 'Фотография, на которой изображена твоя тётя Агата в молодости, её покойный муж Тимо, и ещё какой-то мужчина, который тебе совершенно не знаком. Стоят они на фоне каштанов.';
before_Take = 'Врядли тебе стоит брать с собой тётину фотографию. ';
before_Smell = 'Едва уловимый запах каштанов и пропавшего крема. ';
before_Kiss = "Ты целуешь тётино фото. Ах, где же она и почему не отвечает! ";
["before_Rub,Touch"] = 'На ощупь ничего необычного. ';
["before_Attack,Tear,Tie,Cut"] = function (s)
p 'Не надо портить тётино фото, возможно оно дорого ей как память. ';
end;
}
obj {
-"крем для рук, крем, баночка крема, баночка";
nam = 'room3_crem';
description = 'Швейцарский крем для рук из натуральных белорусских компонентов. Судя по этикетке, тётя не успела использовать его до окончания срока годности.';
before_Smell = 'Ужасно пахнет. Крем, к сожалению, пропал. ';
before_Any = 'Пропавший швейцарский крем из натуральных белорусских компонентов, который не успели использовать до истечения срока годности? Ты не хочешь иметь с ним ничего общего. ';
}
-- Менять нельзя!!!! Это не ваш предмет!!! Вы не знаете как он выглядит, его придумает другой автор!!!
--obj {
-- -"длинный ключ,ключ";
-- nam = "longkey";
-- description = "Длинный ключ.";
--}

517
room4.lua Normal file
View File

@ -0,0 +1,517 @@
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room4_" или "kladovka_"
-- Все описания можно менять
-- Задача: Игрок должен открыть люк в пол предметом bonekey, он может придти в локацию как с ним, так и без него
global { song = 0 }
Verb {
"#play",
"игр/ать,поигр/ать",
"Play",
"на {noun}/пр,held : Play",
}
mp.msg.Play = {}
function mp:Play(w)
if mp:check_touch() then
return
end
if mp:check_held(w) then
return
end
p(mp.msg.Play.PLAY)
end
--"может"
mp.msg.Play.PLAY = "{#Me/им} не {#word/может,#me} играть на {#first/пр}."
room {
nam = "room4_kladovka";
title = "Кладовка";
transported = false,
dsc = function(s)
if from() ^ "room4_ostrov" and s:once() then
return "Я увидела своё отражение, стоящее в кладовке. Затем мир покачнулся, и я снова оказалась в тесной комнате."
else
return "Тесная неинтересная комната. К западу кухня, на востоке прихожая."
end
end;
onenter = function(s)
if not s.transported then
s.transported = true
move(me(), "room4_ostrov");
place("room4_dolphin", "room4_mirror")
place("room4_crab", "room4_mirror")
place("room4_frog", "room4_mirror")
end
end;
w_to = "room6_kitchen";
e_to = function(s)
if s:once() then
p 'Ты толкнула дверь и оказалась в прихожей. Оказывается здесь есть проход! Теперь ходить между помещениями будет куда удобней!';
end;
_'room3_hall'.west = 1;
return 'room3_hall';
end;
d_to = function(s)
if _"room4_hatch":has "open" then
return "room5_podval"
elseif _"room4_hatch":has "locked" then
p "Люк заперт."
else
p "Люк закрыт."
end
end;
before_Listen = "Ничего не слышно.";
before_Smell = "Ничем не пахнет.";
obj = {
nam = "room4_bonekey",
obj {
-- Упростил. Зеркало это один объект, находящийся в двух комнатах сразу.
-"зеркало|стекло";
nam = "room4_mirror";
seen = false,
dsc = function(s)
-- Проверяем откуда мы на зеркало смотрим (из кладовки или с острова) и выводим подходящее описание
if here() ^ "room4_kladovka" then
return "На стене висит старинное зеркало.";
else
return "Прямо в воздухе висит старинное зеркало.";
end
end;
description = function(s)
-- Та же фигня, что и в dsc
if here() ^ "room4_kladovka" then
return [[Большое зеркало в старинной бронзовой раме, представляющей собой осьминога, растопырившего щупальца.]];
else
return [[Большое зеркало в бронзовой раме по краю которой располагаются чеканные фигурки: змеи, краба и дельфина.]];
end
end;
before_Search = function(s)
-- s:once() возвращает true только один раз. Так что при первом осмотре попадаем на остров, а потом не попадаем
if not s.seen then
if where("room4_sapfir") ^ "room4_dolphin" and where("room4_rybin") ^ "room4_crab" and where("room4_izymryd") ^ "room4_frog" then
s.seen = true
move(me(), "room4_kladovka")
mp.score=mp.score+1
else
--"посмотреть"
return "Моё отражение в зеркале выглядит как обычно. Ничего странного не происходит."
end
else
return "Меня закрутило, завертело и втянуло прямо в зеркало. Я снова оказалась в кладовке. Ну и чудеса..."
end
end;
-- Добавим описаний. Парсер же
before_Take = "Слишком большое и тяжёлое. Невозможно сдвинуть.";
before_Smell = "Пахнет морем. Странно, но так и есть.";
before_Taste = "Это не съедобно.";
before_Touch = "Гладкое и прохладное.";
}: attr "static",
-- Для парсера модельку лучше поподробнее :)
-- Я бы ещё источник света добавил для красоты %)
obj {
-"стена|стены";
description = "Стены покрыты пыльной штукатуркой.";
before_Take = "Взять стены? Как?";
before_Smell = "Пахнет пылью.";
-- {#word...} это ещё одна магия метапарсера. Позволяет автоматически выводить глагол в нужной форме.
-- В основном применяется в библиотеках. Если не нравится, вписуй хардкод :)
before_Taste = "{#Me/им} не {#word/хотеть,#me,нст} пробовать стены на вкус.";
before_Touch = "Шершавые и пыльные стены.";
}:attr "scenery",
obj {
-"пол";
-- По аналогии со стенами
description = "Каменный пол. Здесь явно не заморачивались с ремонтом.";
before_Take = "Взять пол невозможно";
before_Smell = "Пахнет пылью.";
before_Taste = "{#Me/им} не {#word/хотеть,#me,нст} пробовать камни пола на вкус.";
before_Touch = "Прохладный, слегка неровный камень.";
}:attr "scenery",
obj {
-"потолок";
description = "Потолок покрыт голубой краской.";
before_Take = "Взять потолок невозможно";
before_Smell = "Не могу допрыгнуть, чтобы понюхать.";
before_Taste = "Не дотянусь.";
before_Touch = "Увы, не дотянусь.";
}:attr "scenery",
};
}
door {
-"люк";
nam = "room4_hatch";
when_locked = "В полу виден закрытый люк.";
when_open = "В полу находится открытый люк.";
with_key = "bonekey";
door_to = function(s)
if here() ^ "room4_kladovka" then
-- Горафу надо сказать, что сюда нужно вписнуть комнату как в d_to кладовки
return "room5_podval"
else
return "room4_kladovka"
end
end;
found_in = {
"room4_kladovka",
-- Горафу надо сказать, что сюда нужно вписнуть комнату как в d_to кладовки
-- "room5_podval",
};
after_Unlock = function(s)
remove('bonekey');
mp.score=mp.score+1;
p "Ты отпираешь люк вниз, избавляясь от костяного ключа.";
end;
}:attr "openable,lockable,locked,static"
function mermaid_sing()
local songs = {
[[Юные девы в царстве подводном^
Живут наслаждаясь, не зная забот.^
Песни поют о народе свободном.^
В тёмных глубинах ведут хоровод.]],
[[Юные девы в царстве подводном^
Жемчугом любят себя украшать,^
Что перламутром богат бесподобным,^
И под луной может нежно мерцать.]],
[[Юные девы из царства подводного^
Мужчин завлекают песней любви.^
Чарами голоса - дара природного,^
Страсти огонь разжигают в крови.]],
[[Юные девы из царства подводного^
Губят ночною порой корабли.^
Из-за желанья познать, неуёмного,^
Секреты и тайны верхней земли.]],
}
song = song + 1
if song > #songs then
song = 1
end
return "Раздаётся завораживающая песня русалки:^"..songs[song]
end
room {
nam = "room4_ostrov";
title = "За зеркалом";
dsc = function(s)
if s:once() then
-- Сообщение при первом посещении комнаты
-- {#Me/падеж} вписует ГГ в соответствие с pl.word (задаётся в init() в main3.lua)
return "Всего лишь мельком я увидела своё отражение в старинном зеркале, и меня завертело, закружило, ослепило... Проморгавшись, я поняла, что оказалась совсем в другом месте."
else
-- При последующих осмотрах/посещениях
return "Маленький остров, представляющий собой цветочную поляну, окружённую водой."
end
end;
obj = {
"room4_mirror",
obj {
-"цветы|розы/но";
nam = "room4_flowers";
dsc = "Весь остров в цветах.";
description = [[Прекрасные алые розы.]];
["before_Take,Tear"] = function(s)
if not have "room4_flower" then
take "room4_flower"
--"сорвать"
return "{#Me/им} {#word/сорвать,#me,прш} цветок."
else
return "Мне не нужен ещё один цветок."
end
end;
before_Give = function(s, w)
return _"room4_flower".before_Give(_"room4_flower", w)
end;
}: attr "static",
obj {
-"флейта|дудка|дудочка|дуда";
nam = "room4_fluet";
dsc = "В траве лежит флейта.";
description = [[Изящная флейта, искусно вырезанная из слоновой кости.]];
-- Следующую строку с комментарием не удаляй. Она добавляет слово "брать" в словарь игры
--"брать"
Show = function(s, w)
return "Русалка смеётся, и делает жест, будто играет на флейте."
end;
after_Take = "{#Me/им} {#word/брать,#me,нст} флейту.";
before_Smell = "Пахнет цветами.";
--"хотеть"
before_Taste = "{#Me/им} не {#word/хотеть,#me,нст} пробовать флейту на вкус.";
before_Touch = "Гладкая и приятная на ощупь.";
["Blow,Use,Play"] = function(s)
if s:once() then
mp.score=mp.score+1
enable "room4_mermaid"
return "На переливы флейты из воды вынырнула настоящая русалка."
else
return mermaid_sing();
end
end;
},
obj {
-"цветок|роза/но";
nam = "room4_flower";
dsc = false,
donated = false,
description = "Прекрасная алая роза.";
Tear = function(s)
if have(s) then
-- if s.once then
-- Объясняем, что больше одного цветка не нужно или что-то такое
return "Мне больше не нужны цветы. Да и жаль рвать такую красоту."
else
take(s)
return "Я сорвала цветок."
end
end;
Show = function(s, w)
return "Русалка радостно кивает, и показывает на свои волосы."
end;
before_Give = function(s, w)
if w ^ "room4_mermaid" then
if not s.donated then
mp.score=mp.score+1
s.donated = true
place(s, here())
take "room4_sapfir"
take "room4_rybin"
take "room4_izymryd"
enable "room4_gems"
p "Я даю русалке цветок. Она мило краснеет и забирает розу, тут же украшая ею свои волосы. Взамен она протягивает мне три драгоценных камня: изумруд, сапфир и рубин. Я с благодарностью принимаю их."
else
return "Русалке больше не нужны цветы."
end
else
return "Кому-кому?"
end
end;
},
-- Тоже моделька для антуражу. См. стены в кладовке :)
obj {
-"небо";
description = "Ясное синее небо, ни облачка.";
before_Take = "Взять небо? Как это возможно?";
before_Smell = "Пахнет ветром и морем.";
before_Taste = "Не дотянусь.";
before_Touch = "Жаль, не дотянусь.";
}:attr "scenery",
obj {
-"солнце";
description = "Яркое солнце, аж глазам больно на него смотреть.";
before_Take = "Жаль нельзя запихнуть его в карман. Было бы здорово иметь своё карманное солнце.";
before_Smell = "Отсюда я не могу понять, чем пахнет солнце.";
before_Taste = "Не дотянусь.";
before_Touch = "Жаль, не дотянусь.";
}:attr "scenery",
obj {
-"земля";
description = "Земля заросла цветами. Присмотревшись, я замечаю среди кустов роз человеческие кости.";
before_Take = "Мне не нужен здешний дёрн.";
before_Smell = "Пахнет цветами и травой.";
before_Taste = "Не хочу даже пробовать.";
before_Touch = "Немного влажная, будто не так давно шёл дождь. Или был прилив, мхм...";
}:attr "scenery",
obj {
-"трава";
description = "Земля заросла цветами. Присмотревшись, я замечаю в траве человеческие кости.";
before_Take = "Мне не нужна трава.";
before_Smell = "Пахнет цветами и травой.";
before_Taste = "Не хочу даже пробовать.";
before_Touch = "Немного влажная, будто не так давно шёл дождь.";
}:attr "scenery",
obj {
-"человеческие кости|кости|человеческие останки|останки";
description = "Множество человеческих костей. Да это могильник!";
before_Take = "Фу, я не буду к этому прикасаться.";
before_Smell = "Я не буду это нюхать!";
before_Taste = "Не хочу даже пробовать.";
before_Touch = "Ни за что к этому не прикоснусь.";
}:attr "scenery",
obj {
-"море|вода ";
description = "Синее море, абсолютно прозрачное на мелководье. Красота неописуемая.";
before_Take = "Мне некуда налить воды.";
before_Smell = "Пахнет свежестью и морскими водорослями.";
before_Taste = "На вкус вода солёная, ничего особенного, да и жажду этим не утолишь.";
before_Touch = "Вода ледяная, бррр... Странно, при такой-то жаре.";
}:attr "scenery",
obj {
-"рама";
description = "Бронзовая старинная рама. Украшена фигурками змеи, краба и дельфина.";
before_Take = "Невозможно оторвать раму от зеркала.";
before_Smell = "Пахнет металлом.";
before_Taste = "На вкус, как металл.";
before_Touch = "Прохладный металл.";
}:attr "scenery",
obj {
-"драгоценные камни|камни|драгоценный камень|камень";
nam = "room4_gems";
description = function(s)
if have "room4_izymryd" or have "room4_rybin" or have "room4_sapfir" then
return "Красивые драгоценные камни, что дала мне русалка."
else
return false
end
end;
Show = function(s, w)
return "Русалка кивает, и показывает пальчиком на висящее в воздухе зеркало."
end;
before_Take = "Они уже у меня.";
before_Smell = "Пахнет красотой.";
before_Taste = "На вкус, как стекло.";
before_Touch = "Прохладные с идеальной огранкой.";
}:attr "scenery":disable(),
obj {
-"русалка|ресницы|глаза|волосы|грудь";
nam = "room4_mermaid";
description = "Прекрасная русалка с длинными русыми волосами и большими томными глазами, обрамлёнными длинными пушистыми ресницами. Грудь прикрыта большими раковинами, скрепленными жемчугом. Морская дева по пояс высунулась из воды, и с интересом вас рассматривает.";
["Talk,Listen"] = function(s)
return [[Я пытаюсь поговорить с русалкой, но в ответ она лишь поёт:^
ПрОклятое зеркало старого капитана^
Затягивает всех, смотрящихся в стекло,^
На остров одинокий средь злого океана,^
Что стал могилой жуткой однажды для него.^
Тот капитан - колдун, ловушку душ поставил,^
Со Смертью заключив ужасный договор^
За тысячу людей, что в бездну он отправил^
Воскреснет вновь пират, продолжит свой террор.]];
end;
life_Give = function(s, w)
-- Очередная магия метапарсера для генерации фраз
--"нужен"
local things = {
[[Русалка брезгливо скривила губки. ]],
[[Русалка недовольно шлёпнула хвостом по воде, обдав меня дождём солёных брызг. ]],
[[Русалка отрицательно покачала головой. ]],
}
local r = rnd(#things)
return things[r].."Ей не {#word/нужен,#second} {#second}."
end;
Kiss = "Русалка уклонилась от прикосновений, смущённо хихикнула и погрозила мне пальчиком.";
-- Методы возвращают объекты. Так что их можно "стакать" :)
}:attr "static,animate":disable(),
};
}
obj {
-"сапфир";
nam = "room4_sapfir";
found_in = "emptyroom";
description = [[Синий полупрозрачный драгоценный камень.]];
before_Insert = function(s, w)
if not w ^ "room4_dolphin" then
return "Камень никак не хочет держаться в углублении."
end
place(s, w)
--"вставить"
return "{#Me/им} вставляешь сапфир в углубление."
end;
Show = function(s, w)
return "Русалка кивает, и показывает пальчиком на висящее в воздухе зеркало."
end;
}: attr "scenery"
obj {
-"рубин";
nam = "room4_rybin";
found_in = "emptyroom";
description = [[Сияющий красный драгоценный камень.]];
before_Insert = function(s, w)
if not w ^ "room4_crab" then
return "Камень слишком большой и не влезает в углубление."
end
place(s, w)
return "{#Me/им} вставляешь рубин в углубление."
end;
Show = function(s, w)
return "Русалка кивает, и показывает пальчиком на висящее в воздухе зеркало."
end;
}: attr "scenery"
obj {
-"изумруд";
nam = "room4_izymryd";
found_in = "emptyroom";
description = [[Зелёный блестящий драгоценный камень.]];
before_Insert = function(s, w)
if not w ^ "room4_frog" then
return "Камень не подходит по форме к этому углублению."
end
place(s, w)
return "{#Me/им} вставляешь изумруд в углубление."
end;
Show = function(s, w)
return "Русалка кивает, и показывает пальчиком на висящее в воздухе зеркало."
end;
}: attr "scenery"
obj {
-- Уточнение /но сообщает парсеру, что дельфин у нас неодушевлённый
-"отверстие в фигурке дельфина/но|углубление в фигурке дельфин/но|дельфин/но";
nam = "room4_dolphin";
description = function(s)
if where "room4_sapfir" ^ "room4_dolphin" then
return "Бронзовая фигурка дельфина с переливающимся сапфиром во лбу."
else
return "Бронзовая фигурка дельфина с маленьким углублением во лбу."
end
end;
-- При передаче объекта в объект у объекта-приёмника вызываются методы *_Recieve
before_LetIn = function(s, w)
--"подходит"
return "{#Second/им} не {#word/подходит,#second} по форме."
end;
}:attr "static,container,transparent"
obj {
-"отверстие в фигурке краба/но|углубление в фигурке краба/но|краб/но|углубление/но";
nam = "room4_crab";
description = function(s)
if where "room4_rybin" ^ "room4_crab" then
return "Бронзовая фигурка краба с сияющим рубином в середине панцыря."
else
return "Бронзовая фигурка краба с маленьким углублением в середине панцыря."
end
end;
before_LetIn = function(s, w)
--"подходит"
return "{#Second/им} не {#word/подходит,#second} по форме."
end;
}:attr "static,container,transparent"
obj {
-"отверстие в фигурке змеи/но|углубление в фигурке змеи/но|змея/но";
nam = "room4_frog";
description = function(s)
if where "room4_izymryd" ^ "room4_frog" then
return "Бронзовая змея, с похожим на каплю блестящего яда, изумрудом во рту."
else
return "Бронзовая змея с маленьким углублением во рту."
end
end;
before_LetIn = function(s, w)
--"подходит"
return "{#Second/им} не {#word/подходит,#second} по форме."
end;
}:attr "static,container,transparent"
--
--
--
obj {
-"костяной ключ,ключ";
nam = "bonekey";
description = "Костяной ключ.";
found_in = { 'room14_box1' };
score=false;
after_Take = function(s)
if not s.score then
mp.score=mp.score+1;
end;
_'bonekey'.score=true;
return false;
end;
}
game.hint_verbs = { "#Exam", "#Walk", "#Take", "#Drop" }

269
room5.lua Normal file
View File

@ -0,0 +1,269 @@
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room5_" или "podval_"
-- Все описания можно менять
-- Задача: Это изначально тёмная комната. Игрок может придти как с источником света, так и без него. Задача - найти предмет pyramidekey
room {
nam = "room5_podval";
title = "Подвал";
dsc = function(s)
-- if (s :has 'light') then
p "Страшная подвальная комната. Рядом со входом ржавый вентиль с веревкой. "
-- else
-- p "Темно, хоть глаз выколи. Тебе удалось нащупать вентиль на стене и верёвку, свисающую с потолка."
-- end
end;
dark_dsc = "Темно, хоть глаз выколи. Тебе удалось нащупать вентиль на стене и верёвку, свисающую с потолка.";
u_to = 'room4_kladovka';
before_Listen = "Ничего не слышно.";
before_Smell = "Ничем не пахнет.";
obj = { 'room5_verev', 'room5_ventil','room5_podval_decor', 'room5_stena' };
}: attr '~light'
-- Менять нельзя!!!! Это не ваш предмет!!! Вы не знаете как он выглядит, его придумает другой автор!!!
--obj {
-- -"пирамидальный ключ,ключ";
-- nam = "piramidekey";
-- description = "Пирамидальный ключ.";
--}
room {
nam = "room5_reserve";
title = "Специальная комната для отработавших обьектов";
}
obj {
-"островки|островок|облупившаяся краска,краска|островки краски|островок краски|летающие частицы,частицы|летающая частица,частица|щёлочка|щель|дверной проём|проём",
nam = 'room5_podval_decor';
}: attr 'scenery'
obj {
-"упавшая дверь|дверь",
nam = 'room5_fall_door';
description = "Упавшая дверь больше не представляет для тебя интереса.";
}: attr 'scenery'
obj {
-"небольшая коробка|коробка";
nam = 'room5_korob';
obj = { 'piramidekey' };
}: attr 'scenery,container,open'
obj {
-"потолок|потолочная ниша|ниша",
nam = 'room5_nisha';
description = "Ниша в потолке излучает яркий свет, словно прожектор. Видны летающие частицы пыли.";
}: attr 'scenery'
obj {
-"потайная дверь,дверь|кольцо|ручка двери|ручка",
nam = 'room5_door';
val_open = 0;
description = function(s)
p("Потайная дверь, ручка выполнена в виде кольца.")
if (s.val_open == 0) then
p("Дверь вровень со стеной.")
elseif (s.val_open == 2) then
p("Дверь немного раскрылась, оставив небольшую щёлку, размером с волос.")
elseif (s.val_open == 1) then
p("Дверь раскрылась на половину ступни.")
end
end;
before_Open = function(s)
if (s.val_open == 0) then
p("С большим усилием ты потянула за ручку двери и она немного приоткрылась, оставив щёлочку.")
s.val_open = 1
else
p("Как ты ни пыталась тянуть ручку, дверь не поддавалась. Пройти пока невозможно.")
end
return true
end;
before_Pull = function(s)
if (s.val_open == 0) then
p("С большим усилием ты потянула за ручку двери и она немного приоткрылась, оставив щёлочку.")
s.val_open = 1
else
p("Как ты ни пыталась тянуть ручку, дверь не поддавалась. Пройти пока невозможно.")
end
return true
end;
before_Push = function(s)
if (s.val_open == 0) then
p("Ты не понимаешь, зачем тебе толкать дверь.")
elseif (s.val_open == 1) then
p("Попытки приоткрыть дверь обычным способом провалились и ты решила попробовать её захлопнуть. Навалившись все телом тебе удалось её закрыть. Затем она открылась уже немного шире! Может пролезть половина твоей ступни.")
s.val_open = 2;
else
p("Этот трюк больше не работает! Да что сделать с этой проклятой дверью?! Да я её...")
end
return true
end;
before_Attack = function(s)
if (s.val_open < 2) then
p("Ты не понимаешь, зачем тебе ломать дверь.")
else
p("Со всей дури ты ударила дверь ногой и она, к твоему удивлению рухнула! Одна из петель совсем прогнила. В проёме показалась небольшая коробка.")
mp.score=mp.score+1;
move(_'room5_door','room5_reserve')
move(_'room5_fall_door','room5_podval')
move(_'room5_korob','room5_podval')
end
return true;
end;
}: attr 'static'
obj {
-"стена|стены",
nam = 'room5_stena';
description = function(s)
if (_'room5_ventil'.is_fixed) then
p("Стены больничного белого цвета. Кажется, на одной из стен появилась трещина, явно свежая.")
else
p("Стены больничного белого цвета. Навевают какие-то мрачные мысли.")
end
end;
}: attr 'scenery'
obj {
-"ровная трещина,подозрительная трещина,тонкая трещина,пыльная трещина,трещина|прямоугольник",
nam = 'room5_tres';
description = "Трещина на стене тонкая и подозрительно ровная, образует прямоугольник около двух метров в высоту и метра в ширину. Какая же она пыльная!";
before_Touch = function(s)
p("Немного потрогав края трещины, ты обнаружила, что это потайная дверь! Чуточку усердия в очистке и дело в шляпе.")
mp.score=mp.score+1;
move(s,'room5_reserve')
move(_'room5_door','room5_podval')
return true
end;
before_Blow = function(s)
p("Немного подув на трещину, ты обнаружила, что это потайная дверь! Чуточку усердия в очистке и дело в шляпе.")
mp.score=mp.score+1;
move(s,'room5_reserve')
move(_'room5_door','room5_podval')
return true
end;
before_Rub = function(s)
p("Немного потерев трещину, ты обнаружила, что это потайная дверь! Чуточку усердия в очистке и дело в шляпе.")
mp.score=mp.score+1;
move(s,'room5_reserve')
move(_'room5_door','room5_podval')
return true
end;
before_Attack = function(s)
p("Немного постучав по трещине, ты обнаружила, что это потайная дверь! Чуточку усердия в очистке и дело в шляпе.")
mp.score=mp.score+1;
move(s,'room5_reserve')
move(_'room5_door','room5_podval')
return true
end;
}: attr 'scenery'
obj {
-"веревка|жгут",
nam = 'room5_verev';
blind_desc = "На ощупь эластичный жгут, не очень толстый.";
light_desc = "Грязная веревка, свисает с какой-то ниши в потолке.";
is_tied = false;
description = function(s)
if (not mp:thedark()) then
p(s.light_desc)
else
p(s.blind_desc)
end
if (s.is_tied) then
p "Веревка привязана к вентилю. Где ей, кажется, самое место."
end
end;
before_Touch = function(s)
p(s.blind_desc)
return true
end;
before_Take = function(s)
p "Жгут очень длинный и идёт куда-то наверх. Ты не понимаешь как его взять с собой."
return true
end;
before_Pull = function(s)
p "Ты потянула жгут на себя и где-то наверху мелькнул свет. К сожалению, жгут оказался слишком тугим и вырвался из рук. Свет погас."
return true
end;
before_Climb = function(s)
p "В школе у тебя был трояк по физкультуре. Не очень приятное воспоминание, но что поделать. Хотя может в этом что-то есть."
return true
end;
before_Tie = function(s,w)
if (s.is_tied) then
p "Ты уже надежно привязала к вентилю, всё в порядке!"
return true
elseif (w==_'room5_ventil') then
p "Получилось! Хоть узлы не забыла как вязать."
mp.score=mp.score+1;
s.is_tied = true
return true
else
return false
end;
end;
}: attr 'scenery,luminous'
obj {
-"большой вентиль,ржавый вентиль,мерзкий вентиль,вентиль",
nam = 'room5_ventil';
numturns = 0;
is_fixed = false;
light_desc = "Мерзкий ржавый вентиль с островками облупившейся краски.";
blind_desc = "На ощупь холодный. Если подналечь, то все крысы разбегутся от жуткого скрипа.";
description = function(s)
if (not mp:thedark()) then
p(s.light_desc)
else
p(s.blind_desc);
end
if (_'room5_verev'.is_tied) then
if s.is_fixed or s.numturns > 0 then
p "Веревка сильно натянута и она каким-то образом открывает доступ к свету из ниши."
else
p "Веревка привязана к вентилю."
end
end
end;
before_Touch = function(s)
p(s.blind_desc)
return true
end;
before_Turn = function(s)
if (_'room5_verev'.is_tied == false) then
p "С очень большим трудом вентиль поддался. Такое ощущение, что им всё-таки иногда пользуются. Но, никакой реакции"
else
if (s.is_fixed == false) then
if (s.numturns == 0) then
p "Кажется прошло полгода, прежде чем удалось провернуть вентиль. Откуда-то сверху забрезжил свет..."
_'room5_podval':attr'light'
s.numturns = 3;
elseif (s.numturns < 5) then
p "Вентиль провернулся намного легче."
s.numturns = s.numturns+2;
if (s.numturns >= 5) then
p "Вентиль начал закручиваться сам по себе! Верёвка максимально натянулась и с потолка раздался грохот. Такое ощущение, что стены содрогнулись! "
move(_'room5_nisha','room5_podval')
move(_'room5_tres','room5_podval')
s.is_fixed = true
mp.score=mp.score+1;
end
end
else
p "Вентиль больше не вращается."
end
end
return true
end;
each_turn = function(s)
if (s.is_fixed == false) and (s.numturns > 0) then
s.numturns = s.numturns-1
if (s.numturns == 0) then
p "Вентиль начал быстро раскручиваться в обратную сторону и свет погас."
_'room5_podval':attr'~light'
end
end
end
}: attr 'scenery,luminous'

684
room6.lua Normal file
View File

@ -0,0 +1,684 @@
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room6_" или "kitchen_"
-- Все описания можно менять
-- Задача: Игрок должен найти в локации matches, также игрок может открыть дверь на западе предметом longkey, игрок может прийти в локацию как с ним, так и без него
mp.clear_on_move = false; -- GORAPH
room {
-"кухня,комната";
nam = "room6_kitchen";
title = "Кухня";
dsc = function(s)
p"Оранжевые стены кухни радуют глаз. Свет пробивается в приоткрытое окно в западной стене.^^Если пойти на север, можно вернуться в столовую, через белую дверь, а облупившаяся деревянная дверь на востоке ведёт в кладовку.";
DaemonStart('kitchen_old_man');
end;
n_to = 'kitchen_door_north';
-- n_to = 'room6_test';
e_to = 'kitchen_door_west';
s_to = function(s)
p"Вдоль южной стены простирается столешница, но никакого выхода там нет.";
end;
w_to = function(s)
p"В западной стене есть окно, но назвать его выходом сложно.";
end;
cant_go = "Отсюда можно пойти только на восток в кладовку и на север в столовую.";
before_Think = "Хмм.";
before_Listen = function(s)
if _'kitchen_old_man'.counter > 2 and _'kitchen_old_man'.counter < 7 then
p"Ты слушаешь, что говорит старик.";
return true;
end;
p"Ничего не слышно."
end;
before_Smell = function(s, w)
if w == nil then
p"Ничем не пахнет.";
return true;
end;
return false;
end;
before_Drop = function(s, i)
if i ^ 'kitchen_avocado' or i ^ 'kitchen_avocado_pieces' or i ^ 'kitchen_bread' or i ^ 'kitchen_bread_piece' or i ^ 'kitchen_sandwich' then
p"Не бросай еду на пол.";
return true;
end;
return false;
end;
before_Yes = "Ты хочешь ответить, но старик не услышит тебя.";
before_No = "Ты хочешь ответить, но старик не услышит тебя.";
obj = {'kitchen_main_table', 'kitchen_grass', 'kitchen_round_table', 'kitchen_basket', 'kitchen_lift', 'kitchen_door_north', 'kitchen_door_west', 'kitchen_button_up', 'kitchen_button_down', 'kitchen_old_man', 'kitchen_window', 'kitchen_forest', 'kitchen_walls', 'kitchen_ceiling', 'kitchen_pec', 'kitchen_cat'};
}
room {
nam = "room6_test";
title = "Тестовая комната";
dsc = "Пройдите на юг.";
s_to = 'room6_kitchen';
obj = {'longkey'};
}
-- ## BLOCKER BUGS
-- [x] отобрать все kitchen предметы при выходе из комнаты
-- история-награда
-- про потерю хозяйкой девственности?
-- ## IMPORTANT
-- ## TEXT WANTED
-- ## OPTIONAL / NICE TO HAVE
-- cut walls with knife
-- обозлённый дед может триггернуть лифт наверх в момент когда сделаешь бутерброд
-- "сказать"
-- "сказать коту мяу"
-- "сказать старику привет"
-- реакции старика на посланные предметы
-- отрезать деда ножом
-- добавить круглую косточку
-- добавить вместо "в кухонном лифте - внутри" по отношению к находящимся там предметам
-- дед периодически напоминает о задании
function kitchen_drop_items()
if inside('kitchen_knife', pl) then
p"Ты кладёшь нож обратно на столешницу.";
move('kitchen_knife', 'kitchen_main_table');
end;
if inside('kitchen_avocado', pl) then
p"Ты кладёшь авокадо обратно в корзину.";
move('kitchen_avocado', 'kitchen_basket');
end;
if inside('kitchen_avocado_pieces', pl) then
p"Ты кладёшь ломтики авокадо на столешницу.";
move('kitchen_avocado_pieces', 'kitchen_main_table');
end;
if inside('kitchen_bread', pl) then
p"Ты кладёшь хлеб обратно в хлебницу.";
move('kitchen_bread', 'kitchen_breadbox');
end;
if inside('kitchen_bread_piece', pl) then
p"Ты кладёшь кусок хлеба на столешницу.";
move('kitchen_bread_piece', 'kitchen_main_table');
end;
if inside('kitchen_sandwich', pl) then
p"Ты кладёшь бутерброд на столешницу.";
move('kitchen_sandwich', 'kitchen_main_table');
end;
if inside('kitchen_candy', pl) then
p"Ты кладёшь конфету на стол.";
move('kitchen_candy', 'kitchen_round_table');
end;
if inside('kitchen_lighter', pl) then
p"Ты кладёшь зажигалку на стол.";
move('kitchen_lighter', 'kitchen_round_table');
end;
end;
door {
-"дверь в кладовку,восточная дверь,облупившаяся дверь,дверь/жр,ед";
nam = "kitchen_door_west";
door_to = function(s, d)
kitchen_drop_items()
return 'room4_kladovka'; -- ! GORAPH
end;
with_key = 'longkey';
after_Unlock = function (s)
remove 'longkey';
mp.score=mp.score+1;
p"Ты отпираешь дверь в кладовку длинным ключом. Ключ тебе больше не понадобится, так что ты оставляешь его в скважине.";
end;
}: attr 'concealed,closed,openable,locked,lockable,static';
door {
-"дверь в столовую,северная дверь,белая дверь,дверь/жр,ед,~од";
nam = "kitchen_door_north";
door_to = function(s, d)
kitchen_drop_items()
return 'room7_stolovaya'; -- ! GORAPH
end;
}: attr 'concealed,open,openable,static';
obj {
-"длинный ключ,ключ|завитушка";
nam = "longkey";
description = "Длинный ключ из чугуна, с завитушкой, похожей на восьмёрку.";
}
obj {
-"столешница,раковина";
nam = "kitchen_main_table";
dsc = "Вдоль южной стены простирается кухонная столешница.";
description = function(s)
p"Это обычная столешница, тут есть кухонные приборы, по большей части тебе ненужные, а также раковина, в которой моют продукты или утварь.";
mp:content(s);
end;
obj = {'kitchen_knife', 'kitchen_breadbox'};
}:attr 'static,supporter';
obj {
-"нож";
nam = "kitchen_knife";
description = "Острый кухонный нож с деревянной ручкой.";
}:attr '';
obj {
-"прямоугольный стол,стол";
nam = "kitchen_round_table";
dsc = "Посреди комнаты стоит прямоугольный стол.";
description = function(s)
p"Это стол прямоугольной формы из массива дерева. Он имеет характерные потёртости, сколы и многочисленные следы от ножей. На нём стоит корзина для фруктов.";
mp:content(s)
end;
before_Take = "Это старинный стол из массива дерева. Его невозможно сдвинуть с места.";
before_Smell = "Стол пахнет каштанами, а ещё чем-то неуловимым.";
before_LookUnder = function(s)
if _'kitchen_old_man'.told_you_a_story == true then
p"Под столом ты находишь выжженную надпись: «Комната #6 для проекта “17 комнат”, авторы: Всеволод Зубарев и Антон Артамонов, 2021. Тестеры: Гога и Пётр. Спасибо за внимание!»";
else
p"Там что-то есть, но ты, пожалуй, потом посмотришь — сейчас есть дела поважнее.";
end;
end;
obj = {'kitchen_basket'};
}:attr 'static,supporter';
obj {
-"корзина для фруктов,корзина";
nam = "kitchen_basket";
-- dsc = "На прямоугольном деревянном столе посреди комнаты стоит корзина для фруктов.";
description = function (s)
p"Пологая плетёная корзина для хранения фруктов.";
mp:content(s);
end;
before_Take = "Корзина тебе не понадобится.";
obj = {'kitchen_avocado'};
}:attr 'static,container,~openable,open,concealed';
obj {
-"авокадо/ср|фрукт/мр,ед,~од|фрукты/мр,мн,~од";
nam = "kitchen_avocado";
description = "Сочное тёмно-зелёное авокадо.";
before_Eat = "Сначала авокадо нужно порезать — со шкурой его не едят.";
before_Smell = "У авокадо слабый, но приятный сладкий запах.";
before_Cut = function(s, w)
if w == nil then
p"Чем ты хочешь разрезать авокадо?";
return true;
end;
mp:check_held(s);
mp:check_held(w);
if w ~= nil then
if w ^ "kitchen_knife" then
p"Ты снимаешь кожуру с авокадо, выбрасываешь круглую косточку и разрезаешь его на аккуратные ломтики.";
move('kitchen_avocado_pieces', me());
remove 'kitchen_avocado';
return true;
else
p"Этим разрезать авокадо не получится.";
return true;
end;
end;
return false;
end;
}:attr 'edible';
obj {
-"ломтики авокадо,ломтики|авокадо";
nam = "kitchen_avocado_pieces";
description = "То, что осталось от авокадо: ровные ломтики.";
before_Eat = "Авокадо было всего одно, и оно, похоже, предназначено не тебе.";
before_Cut = "Авокадо уже порезано на ломтики.";
}:attr 'edible';
obj {
-"хлебница";
nam = "kitchen_breadbox";
-- dsc = "На столешнице стоит хлебница.";
description = function(s)
p "Продолговатая, голубого оттенка советская хлебница, которую можно открыть плавным движением. ";
if s:has 'open' then
p"Она открыта.";
else
p"Она закрыта.";
end;
end;
before_Take = "Она слишком громоздка, чтобы носить с собой. Да и зачем она тебе?";
obj = {'kitchen_bread'};
}:attr 'static,container,openable,closed';
obj {
-"буханка чёрного хлеба,буханка|хлеб";
nam = "kitchen_bread";
was_cut = false;
description = function(s)
p"Ещё довольно свежая буханка хлеба."
if s.was_cut then
p"Ты уже отрезала от неё кусок.";
end;
end;
before_Eat = "Будь это сегодняшний хлеб, ты бы с удовольствием откусила кусок прямо от корки. Но так тебя не тянет.";
before_Cut = function(s, w)
if s.was_cut == true then
if _'kitchen_old_man'.fed == false then
p"Пожалуй, одного куска хватит.";
else
p"Больше хлеб тебе не потребуется. Можешь вернуть его обратно.";
end;
return true;
end;
if w == nil then
p"Чем ты хочешь отрезать от хлеба?";
return true;
end;
mp:check_held(s);
mp:check_held(w);
if w ~= nil then
if w ^ "kitchen_knife" then
p"Ты отрезаешь кусок хлеба.";
s.was_cut = true;
move('kitchen_bread_piece', me());
return true;
else
p"Этим отрезать от хлеба не получится.";
return true;
end;
end;
return false;
end;
}:attr 'edible';
obj {
-"кусок хлеба,кусок,хлеб";
nam = "kitchen_bread_piece";
description = "Кусок хлеба.";
before_Eat = "Это не твой хлеб.";
before_Receive = function(s, w)
if w ^ 'kitchen_avocado_pieces' then
p"Ты кладёшь авокадо на кусок хлеба. Теперь у тебя есть бутерброд с авокадо! Это то, что хотел старик?";
move('kitchen_sandwich', me());
remove 'kitchen_bread_piece';
remove 'kitchen_avocado_pieces';
if s.once then
mp.score=mp.score+1;
end
return true;
end;
end;
before_Cut = "Кусок хлеба уже отрезан.";
}:attr 'edible';
obj {
-"бутерброд с авокадо,бутерброд";
nam = "kitchen_sandwich";
description = "Бутерброд с авокадо: на куске хлеба лежат ломтики авокадо.";
before_Eat = "К сожалению, придётся отдать его старику.";
before_Cut = "Кусок хлеба уже отрезан.";
}:attr 'edible';
obj {
-"кухонный лифт,лифт|ниша";
nam = "kitchen_lift";
loc = 'down'; -- / 'up'
used = false,
looked_at = false;
dsc = "В восточной стене есть ниша, в которой обустроен кухонный лифт.";
description = function(s)
if s.looked_at == false then
s.looked_at = true;
p "Ты видишь лифт для транспортировки еды из кухни, скорее всего на верхний этаж. Вспоминаешь, что видела подобное устройство много раз в фильмах. «Всегда мечтала, чтобы каждое утро мне подавали завтрак подобным способом», — слегка улыбнувшись, подумала ты.^^";
if s:has 'open' and s.loc == 'down' then
p"Он открыт.";
if #objs'kitchen_lift' == 0 then
p "Внутри ничего нет.";
end;
mp:content(s);
else
p"Он закрыт.";
end;
p "С правой стороны от лифта на отдельной панели есть две расположенные одна под другой круглые потёртые кнопки, на них изображены стрелки вверх и вниз соответственно.";
else
p "Кухонный лифт.";
if s:has 'open' and s.loc == 'down' then
p"Он открыт.";
if #objs'kitchen_lift' == 0 then
p "Внутри ничего нет.";
end;
mp:content(s);
else
p"Он закрыт.";
end;
end;
end;
before_Enter = "Он недостаточно большой, чтобы в него забраться.";
before_Take = "Лифт не представляется возможным вытащить из стены, он жёстко прикреплён к подъёмному механизму.";
before_Open = function(s)
if s.loc == 'up' then
p"Дверца лифта не открывается — похоже, он находится наверху.";
return true;
end;
return false;
end;
before_Receive = function (s, i)
if i ^ 'matches' then
if _'kitchen_old_man'.received_lighter == true then
p"Больше деду помощь не нужна.";
else
p"Нет, это тебе ещё пригодится. Лучше отдай ему зажигалку, и он будет доволен.";
end;
return true;
end;
return false;
end;
after_Open = "Ты открываешь дверцу лифта.";
}:attr 'static,container,openable,closed';
obj {
-"кнопка вверх,кнопка наверх,кнопка|наверх,вверх";
nam = "kitchen_button_up";
description = "Красная круглая кнопка, указывающая наверх.";
before_Push = function(s)
if _'kitchen_lift':has 'open' then
p"Ты нажимаешь кнопку, раздаётся щелчок, но ничего не происходит.";
return true;
end;
if _'kitchen_lift'.loc == 'up' then
p"Ты нажимаешь кнопку, но ничего не происходит.";
return true;
else
_'kitchen_lift'.loc = 'up';
if _'kitchen_lift'.used == false then
p"Ты слышишь, как что-то внутри стен заработало, щёлкнуло, загудело, и лифт томно и неспешно начал свой подъём.";
_'kitchen_lift'.used = true;
else
p"Ты нажимаешь кнопку, и лифт с урчащим звуком уезжает наверх.";
end;
end;
end;
}:attr 'static,concealed';
obj {
-"кнопка вниз,кнопка|вниз";
nam = "kitchen_button_down";
description = "Красная круглая кнопка, указывающая вниз.";
before_Push = function(s)
if _'kitchen_lift':has 'open' then
p"Ты нажимаешь кнопку, но ничего не происходит.";
return true;
end;
if _'kitchen_lift'.loc == 'down' then
p"Ты нажимаешь кнопку, но ничего не происходит.";
return true;
else
_'kitchen_lift'.loc = 'down';
_'kitchen_old_man'.counter_lift_interaction = 0;
p"Ты нажимаешь кнопку, и лифт возвращается вниз.";
end;
end;
}:attr 'static,concealed';
obj {
-"старик,дед,репродуктор";
nam = "kitchen_old_man";
counter = 0;
counter_lift_interaction = 0;
counter_lift_interaction_2 = 0;
counter_since_fed = 0;
mentioned_matches = false;
fed = false;
annoyed = false;
received_lighter = false;
told_you_a_story = false;
description = "Старика здесь нет, он общается с тобой через репродуктор, видимо, из какой-то другой комнаты.";
before_Default = function(s, ev, w)
p"Старика здесь нет, он общается с тобой через репродуктор, видимо, из другой комнаты.";
end;
before_Talk = "Ты пытаешься заговорить с дедом, но он тебя не слышит — связь с ним, увы, односторонняя.";
daemon = function(s)
if where(pl) ~= _'room6_kitchen' then
return;
end;
s.counter = s.counter + 1;
if s.counter == 3 then
p"«Кхе-кхе! Алло?! — раздаётся старческий голос из какого-то невидимого репродуктора. — Там кто-нибудь есть?»";
elseif s.counter == 4 then
p"«Не молчи. Я видел, как ты входила в дом. Должно быть, ты моя новая сиделка», — говорит он.";
elseif s.counter == 6 then
p"«Слушай, мне плевать, кто ты. Я голоден и требую чтобы ты, паразитка, сейчас же позаботилась об этом. Сделай для меня бутерброд с авокадо и отправь его мне через во-он тот лифт в стене, слышишь?» У тебя создаётся впечатление, что он за тобой наблюдает.";
elseif s.counter == 7 then
p"«Эй, я не собираюсь ждать вечно. На кухне есть всё, что тебе потребуется, давай, вперёд, au boulot !» — заканчивает он.";
end;
if s.counter > 7 then
if s.fed == true then
s.counter_since_fed = s.counter_since_fed + 1;
if s.counter_since_fed == 3 then
if s.annoyed == true then
p"«Ладно, хоть какая-то польза от тебя есть».";
else
p"«Хотел ещё раз поблагодарить тебя за то, что в итоге не отказала в просьбе старику, t'es une fille sage».";
end;
elseif s.counter_since_fed == 4 then
s.mentioned_matches = true;
if s.annoyed == true then
p"«Ещё вот. Мне очень хочется покурить, но спички, как назло, закончились. Поищи где-то в печи и отправь мне, ясно тебе?»";
else
p"«Однако, постой, ma chérie, тут вновь нужна твоя помощь. Мне очень хочется покурить, но обнаружилось, что у меня закончились спички. Не могла бы ты отправить их мне? Полагаю, ты сможешь найти их где-то рядом с печью».";
end;
end;
if _'kitchen_lift'.loc == 'up' then
if s.counter_since_fed > 4 then
if s.counter_lift_interaction_2 == 0 then
s.counter_lift_interaction_2 = s.counter_lift_interaction_2 + 1;
_'kitchen_lift':attr 'open';
p"Лифт вновь открывается наверху. «Ну что тут у нас?» — отзывается голос старика.";
return;
elseif s.counter_lift_interaction_2 == 1 then
if #objs'kitchen_lift' == 0 then
s.counter_lift_interaction_2 = 100;
_'kitchen_lift':attr '~open';
if s.annoyed == true then
p "«Опять ты надо мной издеваешься!» — он со злостью захлопывает дверцу лифта со своей стороны.";
else
s.annoyed = true;
p"«Что за чёрт побери! Отправь мне чем я смогу прикурить», — он громко закрывает дверь лифта со своей стороны.";
end;
elseif inside('kitchen_lighter', 'kitchen_lift') then
s.counter_lift_interaction_2 = 2;
remove 'kitchen_lighter';
if s.annoyed then
p "«Ну неужели! Дождался».";
else
p "«Молодец! Это сгодится».";
end;
else
s.counter_lift_interaction_2 = 100;
_'kitchen_lift':attr '~open';
if s.annoyed == true then
p "«Опять ты надо мной издеваешься!» — он со злостью захлопывает дверцу лифта со своей стороны.";
else
s.annoyed = true;
p"«Что за чёрт побери! Отправь мне чем я смогу прикурить», — он громко закрывает дверь лифта со своей стороны.";
end;
end;
elseif s.counter_lift_interaction_2 == 2 then
s.counter_lift_interaction_2 = 3;
_'kitchen_lift':attr '~open';
s.received_lighter = true;
p "«Так, ну, расскажу тебе теперь байку о хозяйке этого дома».";
elseif s.counter_lift_interaction_2 == 3 then
s.counter_lift_interaction_2 = 4;
p "«Жила она когда-то на улице Весенних Территорий, — не спрашивай, где это, — в семейном коттедже. На тот момент было у неё два мужичка. Они, то есть два мужичка, были, по своей натуре, людьми неприхотливыми. Все трое жили хорошо, дружно, душа в душу. Если бы не одна неудобная, но в общем-то мелкая на первый взгляд вещь. У хозяйки было странное хобби. Она коллекционировала каштаны. Была просто помешана на каштанах».";
elseif s.counter_lift_interaction_2 == 4 then
s.counter_lift_interaction_2 = 5;
p "«…И когда мужички пытались ей намекнуть на то, что она чрезмерно увлеклась своим хобби, — ведь к тому моменту каштанами был завален весь дом, их можно было найти в каждом шкафчике, в каждой комнате — и что собирать каштаны — это глупо, в ответ она лишь смеялась и говорила, что просто любит каштаны за их форму, за то, что они успокаивают, когда ты держишь их в руке. С её точки зрения, каштаны были даже важнее, чем шампанское, и поэтому она тратила огромные суммы на путешествия по всей стране, в поисках мест, где она ещё их не собирала. А стол вот этот кухонный, он здесь как раз из того дома, с улицы Весенних Территорий».";
elseif s.counter_lift_interaction_2 == 5 then
s.counter_lift_interaction_2 = 6;
s.told_you_a_story = true;
p "«…На нем лежали много разных каштанов, от самых мелких до крупных и экзотических. И временами она их собирала и подолгу разглядывала. И в эти моменты на её лице появлялось какое-то странное выражение. А потом она подходила к окну и тихо плакала. Никто так и не знает о причинах столь странного её поведения. Иногда она проводила с ними так много времени, что могла заснуть прямо на полу, под этим самым столом. И вот однажды она рассказала нам, что, проснувшись, неожиданно для себя обнаружила, что под столом выжжены имена мастеров данного труда, но, честно говоря, за столько лет я так и не проверил это. Но, возможно, это будет сделать интересно тебе. Спасибо, что послушала эту небольшую историю».";
end;
end;
end;
return;
end;
if _'kitchen_lift'.loc == 'up' then
if s.fed == false then
if s.counter_lift_interaction == 0 then
s.counter_lift_interaction = s.counter_lift_interaction + 1;
_'kitchen_lift':attr 'open';
p"Ты слышишь, как лифт открывается где-то наверху. «Так, что это тут?» — доносится эхом по шахте.";
return;
elseif s.counter_lift_interaction == 1 then
if #objs'kitchen_lift' == 0 then
s.counter_lift_interaction = 100;
_'kitchen_lift':attr '~open';
s.annoyed = true;
p "«Что? Но здесь ничего нет, чертовка!» — ты слышишь, как он с грохотом закрывает дверцу лифта.";
elseif inside('kitchen_sandwich', 'kitchen_lift') then
s.counter_lift_interaction = 2;
remove 'kitchen_sandwich';
if s.annoyed then
p "«Ну наконец-то, бутерброд с авокадо».";
else
p "«О, то что надо! Спасибо, наверное».";
end;
else
s.counter_lift_interaction = 100;
_'kitchen_lift':attr '~open';
s.annoyed = true;
p "«Что это такое? Ты издеваешься?» — он злобно захлопывает дверцу лифта.";
end;
elseif s.counter_lift_interaction == 2 then
move('kitchen_candy', 'kitchen_lift');
_'kitchen_lift':attr '~open';
_'kitchen_lift'.loc = 'down';
p "«Спасибо, было вполне себе сносно. Полагаю, проявленная тобою забота заслуживает соразмерной награды, хе-хе», — он захлопывает дверцу лифта и отправляет его вниз.";
s.fed = true;
mp.score=mp.score+1;
end;
end;
end;
end;
end;
}:attr 'animate,concealed';
obj {
-"конфетка,конфета";
nam = "kitchen_candy";
description = "Если бы не растаявший шоколад, просочившийся сквозь выцветшую обёртку, то отнести данную субстанцию к когда-то бывшей конфете, пришедшей к нам, видимо, прямиком из СССР, было бы практически невозможно. Отвратительно.";
after_Eat = function(s)
p"Ты начинаешь медленно отрывать обёртку от смеси шоколада, ореховой крошки и кремовой прослойки. Кусок за куском. Затем ногтями выковыриваешь те остатки бумаги, которые возможно. Руки становятся липкими, стремительно покрываются шоколадными следами. Создаётся ощущение, что от этого уже невозможно будет отмыться. Наконец, то, что когда-то было конфетой, обнажило все свои слои и освободилось от упаковки.^^\
Ты медленно подводишь лакомство к лицу, всматриваешься, ловишь носом сладковатый аромат; тут изображение плывёт, глаза автоматически прикрываются сознание возвращается, ты стоишь в центре кухни, продолжая смотреть на свою ладонь, только конфеты там больше нету. По характерному привкусу во рту ты понимаешь, что ты сделала вскоре после помутнения сознания, понимаешь, но отказываешься верить в произошедшее.";
if _'kitchen_cat'.seen == true then
p"^^Ты вспоминаешь о коте за окном. А ведь можно было просто… отдать конфету ему!";
end;
end;
}:attr 'edible';
obj {
-"окно";
nam = "kitchen_window";
description = "Окно приоткрыто. За ним виднеется лужайка, а поодаль высится лес.";
before_Open = "Окно и так уже приоткрыто.";
before_Close = "Сегодня тёплый день, ни к чему закрывать окно.";
}:attr 'static,concealed';
obj {
-"лужайка";
nam = "kitchen_grass";
description = function(s)
if inside('kitchen_cat', 'room6_kitchen') then
p"Ты видишь, как на лужайке под солнцем развалился белый кот.";
else
p"Солнце освещает лужайку, но кота и след простыл.";
end;
end
}:attr 'static,concealed';
obj {
-"кот,котик|бабочка";
seen = false;
nam = "kitchen_cat";
description = function(s)
s.seen = true;
p"Беззаботный белый котик с рыжими пятнами. На шее у него висит чёрная бабочка. Признаться, тебе хотелось бы быть им, а не решать загадки этого дома.";
end;
before_Default = function(s, ev, w)
s.seen = true;
if ev == 'Exam' then
p"Беззаботный белый котик с рыжими пятнами. На шее у него висит чёрная бабочка. Признаться, тебе хотелось бы быть им, а не решать загадки этого дома."
return true;
end;
p"Не стоит беспокоить котика без причины.";
end;
before_ThrownAt = function(s, w)
if w ^ "kitchen_candy" then
p"Ты бросаешь конфету за окошку коту. Он игриво хватает конфету и убегает с ней в лес.";
remove 'kitchen_candy';
remove 'kitchen_cat';
else
p"Это не нужно давать коту, может, попробовать что-то другое?";
end;
end;
life_Give = function(s, w)
if w ^ "kitchen_candy" then
p"Ты бросаешь конфету за окошку коту. Он игриво хватает конфету и убегает с ней в лес.";
remove 'kitchen_candy';
remove 'kitchen_cat';
else
p"Это не нужно давать коту, может, попробовать что-то другое?";
end;
end;
}:attr 'static,concealed,animate';
obj {
-"лес";
nam = "kitchen_forest";
description = "Ты видишь непроглядный лес.";
}:attr 'static,concealed';
obj {
-"стены";
nam = "kitchen_walls";
description = "Стены, покрытые оранжевой краской.";
}:attr 'static,concealed';
obj {
-"потолок";
nam = "kitchen_ceiling";
description = "Потолок высотой примерно четыре метра. Местами в углу паутина, где-то чёрные пятна копоти от печи. В целом, всё, что ожидаешь увидеть в подобном месте.";
}:attr 'static,concealed';
obj {
-"печь/жр|горнило,подпечье";
dsc = "Справа от лифта находится печь.";
nam = "kitchen_pec";
searched = false;
description = function(s)
if _'kitchen_old_man'.mentioned_matches == true then
if s.searched == false then
s.searched = true;
move('matches', me());
move('kitchen_lighter', me());
mp.score=mp.score+1;
p"Ты обыскиваешь горнило и находишь спички и зажигалку. Ты забираешь их себе.";
else
p"Больше в печи ничего нет.";
end;
else
p"Печь как печь. Стенки, горнило и подпечье, забитое дровами.";
end;
end;
before_Burn = "У тебя нет времени или необходимости разводить огонь.";
}:attr 'static';
obj {
-"зажигалка";
nam = "kitchen_lighter";
description = "Зажигалка. На дне ещё есть немного газа.";
before_Burn = function(s,w)
p "Вроде работает.";
end
}:attr '';
-- Менять нельзя!!!! Это не ваш предмет!!! Вы не знаете как он выглядит, его придумает другой автор!!! -- GORAPH
obj {
-"спички|спичка";
nam = "matches";
description = "Коробок спичек. Осталась всего одна.";
before_Burn = function(s,w)
p "Не стоит просто так сжигать последнюю спичку.";
end;
}

263
room7.lua Normal file
View File

@ -0,0 +1,263 @@
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room7_" или "stolovaya_"
-- Все описания можно менять
-- Задача: Игрок должен найти в локации предмет thooskey.
room {
nam = "room7_stolovaya";
title = "Столовая";
dsc = "К югу кухня, к востоку зал.";
e_to = 'room10_zal';
s_to = 'room6_kitchen';
before_Listen = "Ничего не слышно.";
before_Smell = "Ничем не пахнет.";
obj = { 'room7_camel','room7_stand','room7_table','room7_plate','room7_leaf','room7_ribbon','room7_helmet','room7_bird','room7_small_key','room7_shield','room7_plinth','room7_walls','room7_emblem','room7_window','room7_buttons','room7_b1','room7_b2','room7_b3','room7_b4','room7_b5','room7_b6','room7_b7','room7_b8','room7_b9','room7_floor','room7_top' };
}
-- Менять нельзя!!!! Это не ваш предмет!!! Вы не знаете как он выглядит, его придумает другой автор!!!
--obj {
-- -"зубчатый ключ,ключ";
-- nam = "thooskey";
-- description = "Зубчатый ключ.";
--}
obj {
-"верблюд";
nam = "room7_camel";
description = "Механический, умеренно волосатый верблюд, у которого вместо горба полусферическая, серебряная крышка с пупочкой и приводом. Сбоку находится миниатюрная цифровая панель из слоновой кости.";
before_Take = "Он довольно таки тяжелый, да и вообще это ни к чему.";
}: attr 'supporter,~animate'
obj {
-"крышка";
nam = "room7_cap";
found_in = 'room7_camel';
description = "Крышка как крышка - ничего интересного. Судя по всему поднимается механическим приводом.";
before_Take = "Она намертво приварена к приводу.";
before_Open = "Крышка открывается и закрывается автоматически.";
before_Close = "Крышка открывается и закрывается автоматически.";
}: attr 'container,openable'
obj {
-"привод";
nam = "room7_privod";
found_in = 'room7_camel';
description = "Посеребренный привод, одна часть которого приварена к крышке, а другая скрывается в волосатых недрах механического верблюда.";
}: attr 'static,concealed'
obj {
-"цифровая панель,панель";
nam = "room7_pannel";
found_in = 'room7_camel';
description = "Три ряда маленьких кнопок с цифрами от одного до девяти.";
}: attr 'static'
obj {
-"первая кнопка,кнопка,1";
default_Event = "Push";
nam = "room7_b1";
before_Push = "Сломано. Сколько не нажимай - кнопка не поддается.";
}:attr 'concealed,static'
obj {
-"вторая кнопка,кнопка,2";
default_Event = "Push";
nam = "room7_b2";
before_Push = "Заело.";
}:attr 'concealed,static'
obj {
-"третья кнопка,кнопка,3";
default_Event = "Push";
nam = "room7_b3";
before_Push = "Не поддается.";
}:attr 'concealed,static'
obj {
-"четвертая кнопка,кнопка,4";
default_Event = "Push";
nam = "room7_b4";
before_Push = "Эта кнопка слишком легко нажимается. Видать она уже ничего не делает.";
}:attr 'concealed,static'
obj {
-"пятая кнопка,кнопка,5";
default_Event = "Push";
nam = "room7_b5";
before_Push = function()
p "Что-то зажужжало, завибрировало, щелкнуло, механический верблюд неуклюже заковылял к столу, остановился и крышка со звоном отскочила.";
_'room7_dish':attr '~concealed';
end;
}:attr 'concealed,static'
obj {
-"шестая кнопка,кнопка,6";
default_Event = "Push";
nam = "room7_b6";
before_Push = "Эта кнопка вдавлена внутрь и уже давно ничего не делает.";
}:attr 'concealed,static'
obj {
-"седьмая кнопка,кнопка,7";
default_Event = "Push";
nam = "room7_b7";
before_Push = "Сломано.";
}:attr 'concealed,static'
obj {
-"восьмая кнопка,кнопка,8";
default_Event = "Push";
nam = "room7_b8";
before_Push = "Эта кнопка слишком легко нажимается. Видать она уже ничего не делает.";
}:attr 'concealed,static'
obj {
-"девятая кнопка,кнопка,9";
default_Event = "Push";
nam = "room7_b9";
before_Push = "Заело.";
}:attr 'concealed,static'
obj {
-"кнопки";
default_Event = "Push";
nam = "room7_buttons";
before_Push = "Ну не все же сразу!";
}:attr 'concealed,static'
obj {
-"информационный стенд,стенд";
nam = "room7_stand";
description = function()
walk 'room7_manual';
end;
}:attr 'static'
cutscene {
nam = "room7_manual";
text = {
"ИНСТРУКЦИЯ ПО ЭКСПЛУАТАЦИИ ОДНОГОРБОГО МЕХАНИЧЕСКОГО ВЕРБЛЮДА С АВТОМАТИЧЕСКОЙ КРЫШКОЙ^^Данное устройство разработано и запатентовано фирмой Кох и Шварц специально для обеспечения безопасности питания, как то предотвращения преднамеренной порчи пищи, отравления оной и других действий направленных на подрывание здоровья владельца дома через третьих лиц. Одногорбый механический верблюд с автоматической крышкой (далее ОМВАК) призван обезопасить и минимизировать цепочку через которую готовое блюдо попадает на стол.";
"Для введения в эксплуатацию ОМВАК, надлежит... (этот фрагмент руководства утрачен)^^Габаритная модульная мебель фирмы Кох и Шварц размешается согласно пожеланиям заказчика, но... (этот фрагмент руководства утрачен)";
"Из соображений безопасности возможность открыть автоматическую крышку есть только у двух человек в доме - у повара и у хозяина ОМВАК. Для этого к данной модели прилагаются два разных ключа - явный (для повара) и тайный, о котором никто не должен знать (кроме хозяина). При этом повар может открыть крышку только в том случае, если поднос пуст и проверочная кнопка на его поверхности отжата. Хозяин же может открыть крышку только после его транспортировки до места назначения, но может разблокировать саму возможность открытия крышки для повара.";
"Запатентованный потайной ключ фирмы Кох и Шварц изготавливается в трех различных исполнениях - запонка, пуговица и брошка. Выбор поставляемой модели потайного ключа для ОМВАК зависит от заказчика и оговаривается заранее.^^Пользоваться потайным ключом крайне просто - стоит поднести его к крышке ОМВАК, как она автоматически откроется. Для окружающих использование вами ключа прикрепленного с этой целью к манжете платья так и останется тайной.";
};
next_to = 'room7_stolovaya';
}
obj {
-"булочка|кайзерка";
nam = "room7_bun";
found_in = 'room7_dish';
description = "Кайзерка с маком - муляж изготовленный из папье-маше. Не очень-то и похожа на настоящую.";
before_Smell = "Пахнет краской, лаком и растворителем.";
before_Tear = function(s)
p "Ты разрываешь булочку из папье-маше и обнаруживаешь внутри предмет.";
move ('longkey',pl);
mp.score=mp.score+1;
remove(s);
end;
before_Attack = function(s)
p "Ты разламываешь булочку из папье-маше и обнаруживаешь внутри предмет.";
move ('longkey',pl);
mp.score=mp.score+1;
remove(s);
end;
before_Take = "Таскать с собой повсюду муляж булочки? Этого еще не хватало! Пусть лежит где лежит.";
}: dict {
["кайзерка/вн"] = "кайзерку";
["кайзерка/рд"] = "кайзерки";
["кайзерка/дт"] = "кайзерке";
["кайзерка/тв"] = "кайзеркой";
["кайзерка/пр"] = "кайзерке";
}
obj {
-"стол";
nam = "room7_table";
description = "Миниатюрный старинный обеденный столик, но очень тяжелый.";
['before_Push,Pull,Turn'] = function()
p "Не стоит даже пытаться - он очень тяжелый и кроме того ты боишься поцарапать пол.";
end;
before_Take = "И откуда только такие безумные мысли приходят людям в голову?";
}: attr 'supporter'
obj {
-"пуговица";
nam = "room7_button";
found_in = 'room7_table';
description = "Старинная медная пуговица с чеканным гербом.";
}: attr 'static'
obj {
-"герб";
nam = "room7_emblem";
description = "Щит, на нем изображен шлем, ключик, птица и дубовый лист. По бокам симметрично изогнутые ленты. Ничего особенного.";
}: attr 'scenery'
obj {
-"шлем";
nam = "room7_helmet";
}: attr 'scenery'
obj {
-"щит";
nam = "room7_shield";
}: attr 'scenery'
obj {
-"ключик";
nam = "room7_small_key";
}: attr 'scenery'
obj {
-"птица";
nam = "room7_bird";
description = "Стилизованное изображение птицы.";
}: attr 'scenery,~animate'
obj {
-"дубовый лист,лист";
nam = "room7_leaf";
}: attr 'scenery'
obj {
-"лента|ленты";
nam = "room7_ribbon";
}: attr 'scenery'
obj {
-"поднос";
nam = "room7_dish";
found_in = 'room7_camel';
}: attr 'static,supporter,concealed'
obj {
-"пол";
nam = "room7_floor";
description = "Шахматный пол. Белые и черные плитки довольно таки большие. Каждый предмет в комнате стоит на отдельной клетке. По бокам, рядом с плинтусами, нанесены ряды цифр.";
}: attr 'scenery'
obj {
-"плинтус|плинтусы";
nam = "room7_plinth";
}: attr 'static,concealed'
obj {
-"плитка|плитки";
nam = "room7_plate";
description = "Белый мрамор, черный мрамор.";
}: attr 'scenery'
obj {
-"потолок";
nam = "room7_top";
description = "Обыкновенный, беленый известью потолок.";
}: attr 'scenery'
obj {
-"стена|стены";
nam = "room7_walls";
}: attr 'scenery'
obj {
-"окно|окна";
nam = "room7_window";
}: attr 'scenery'

976
room8.lua Normal file
View File

@ -0,0 +1,976 @@
require "snapshots"
mp.auto_animate = false
obj {
-"зубчатый ключ,ключ";
nam = "thooskey";
description = "Зубчатый ключ.";
-- found_in = 'room8_garderob';
}
game : dict {
["блузка/рд"] = 'блузки';
["блузка/вн"] = 'блузку';
["блуза/вн"] = 'блузу';
["блуза/рд"] = 'блузы';
["оторочка/рд"] = 'оторочки';
["оторочка/вн"] = 'оторочку';
["труселя/рд"] = 'труселей';
["труселя/вн"] = 'труселя';
["штаны/вн"] = 'штаны';
["термоштаны/вн"] = 'термоштаны';
["штаны/рд"] = 'штанов';
["термоштаны/рд"] = 'термоштанов';
["леггинсы/рд"] = 'леггинсов';
["легинсы/рд"] = 'легинсов';
["леггинсы/вн"] = 'леггинсы';
["легинсы/вн"] = 'легинсы';
}
-- Синонимы из Cloak of Darkness. Не знаю почему это не стандарт.
Verb {
'#PutOn8',
'повес/ить',
'~ {noun}/вн,held на {noun}/вн,2,scene: PutOn',
'~ на {noun}/вн,2,scene {noun}/вн,held: PutOn reverse',
'~ {noun}/вн,held в {noun}/вн,2,scene: Insert',
}
Verb {
'#PutOn8_2',
'остав/ить',
'~ {noun}/вн,held на {noun}/пр,2,scene: PutOn',
}
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room8_" или "garderob_"
-- Все описания можно менять
-- Задача: Игрок должен получить доступ на запад с помощью предмета thooskey. Изначально он должен быть закрыт. Игрок может придти в комнату как с этим предметом, так и без него
function room8_switch_temperature(temp, forced)
local oldtemp = _('room8_garderob')._mode
-- TODO: очень тяжёлый цикл, надо как-то оптимизировать
std.for_each_obj(function(v)
if (forced and v:where() ~= nil and v:where().nam == 'room8_control') then
return
end
if (
v.mode ~= nil
and v:where() ~= nil
and v:where().nam ~= 'emptyroom'
) then
local newobject = nil
if temp == 'hot' and v.paired_hot ~= nil then
newobject = _(v.paired_hot)
end
if temp == 'cold' and v.paired_cold ~= nil then
newobject = _(v.paired_cold)
end
if temp == 'neutral' and v.paired_neutral ~= nil then
newobject = _(v.paired_neutral)
end
if newobject ~= nil then
-- dprint('Меняем местами '..v.nam ..' и '..newobject.nam)
move(newobject, v:where());
if (v:has('worn')) then
newobject:attr('worn')
else
newobject:attr('~worn')
end
-- ЭТА СТРОКА ТРЕБУЕТ КОМНАТУ emptyroom В ФИНАЛЬНОЙ ИГРЕ
move(v, _('emptyroom'));
end
end
end)
_('room8_garderob')._mode = temp
if temp == 'cold' then
return 'В комнате становится холодно. Мороз захватывает вещи и выворачивает их. Твоя одежда покрывается мехом. Гардероб готов к зиме.'
end
if temp == 'hot' then
return 'В комнате становится жарко. Жара берёт каждую вещь и выжимает её для того, чтобы подготовить гардероб к летнему дню.'
end
if temp == 'neutral' then
return 'Комната возвращается в свою скучную неопределённо тёплую атмосферу.'
end
end
room {
nam = "room8_garderob";
title = "Гардеробная комната";
dsc = function(s)
if s:once() then
snapshots:write('entersroom');
end
local description = '';
if here().hot() then
description = [[Жарко. ]];
end
local clothes = ''
if _('room8_lock').obj[1] ~= nil then
clothes = clothes .. 'На замке двери висит '.._('room8_lock').obj[1]:noun('им')..'.';
end
if _('room8_control').obj[2] ~= nil then
clothes = clothes .. 'На рычаге висит '.._('room8_control').obj[2]:noun('им')..'.';
end
return description..[[
Ты стоишь в маленьком повороте прихожей, между шкафом с одеждой и пустой стеной, украшенной ярким плакатом. Рядом с плакатом находится серый рычаг с фигурной рукояткой. Комната продолжает прихожую (на западе) и упирается в дверь гаража (на востоке). Возле стены стоит пьедестал с надписью «Машина времени».
]]..clothes;
end;
e_to = function()
if _('room8_garagedoor'):has('locked') then
p 'Дверь закрыта на электронный замок.';
return;
end;
return 'room9_garazh';
end;
w_to = 'room3_hall';
_mode = 'neutral';
hot = function()
return here()._mode == 'hot'
end;
cold = function()
return here()._mode == 'cold'
end;
temperature = function(temp)
if (temp ~= 'hot' and temp ~= 'cold' and temp ~= 'neutral') then
return
end
return room8_switch_temperature(temp, false)
end;
before_Listen = function(s)
if s.cold() then
return "Здесь тихо, и ты слышишь только своё замерзающее дыхание.";
elseif s.hot() then
return "Быстро разогретые крючки шкафа тихо шипят. Молчание.";
else
return "Тишина.";
end
end;
before_Smell = " не пахнет.";
}
obj {
-"вешалка|вешалки/мн";
nam = "room8_hanger";
found_in = 'room8_clothes';
description = 'Здесь нет вешалок, одежда висит на крючках.';
}: attr 'concealed,static';
obj {
-"рукоятка,рукоятка рычага/жр,но|монстр/мн,од";
nam = 'room8_control_end';
found_in = 'room8_control';
description = 'Изогнутый декоративный крюк на конце рычага изображает язык милого монстра. За эту рукоятку удобно хвататься.';
before_Receive = 'Рукоятка это часть рычага. Нужно вешать вещи на рычаг.'
}: attr 'concealed,static,~animate';
obj {
-"единорог/мр,од|единороги/мр,од,мн|фигура/жр,но|фигуры/мн,жр,но";
nam = 'room8_clothes_details';
found_in = 'room8_garderob';
description = 'Сцены из жизни какой-то девушки с мечом, которая захватывает волшебную страну единорогов, находит там какого-то пучеглазого монстра и уезжает с ним в большой дом, который подозрительно напоминает дом твоей тёти. Хм.';
}: attr 'concealed,static';
obj {
-"рычаг,кондиционер";
nam = "room8_control";
found_in = 'room8_garderob';
description = function(self)
local r = 'Это тяжёлый вертикальный рычаг с рукояткой в виде изогнутого крюка'
if here().cold() then
r = r .. ', который поднят в сторону надписи "ШЕРСТЬ". Его можно '..fmt.b('толкнуть')..' вниз, в нейтральное положение.'
elseif here().hot() then
r = r .. ', который опущен в сторону надписи "ПЕСОК". Его можно '..fmt.b('потянуть')..' вверх, в нейтральное положение.'
else
r = r .. ', который выставлен между надписей "ШЕРСТЬ" и "ПЕСОК". Его можно '..fmt.b('потянуть')..' вверх или '..fmt.b('толкнуть')..' вниз.'
end
pn(r)
if self.obj[2] ~= nil then
pn ('На рычаге висит '..self.obj[2]:noun('им')..'.')
end;
return true
end;
after_Receive = function(self, thing)
local weight = 0
if thing.weight ~= nil then
weight = thing.weight
end
if weight == 0 then
return ('Рычаг, конечно, не рассчитан на одежду, но '..thing:noun('им')..' для него — не проблема.');
end
if weight == 1 then
return ('Рычаг издаёт короткий скрип, но в остальном не замечает, что на нём висит '..thing:noun('им')..'.');
end
if weight == 2 then
return ('Рычаг скрипит, но выдерживает вес '..thing:noun('рд')..'.');
end
if weight > 2 then
return 'Рычаг со скрипом падает под тяжестью одежды в нижнее положение. '..room8_switch_temperature('hot', true)
end
end;
before_Pull = function(self)
if here().hot() and self.obj[2] ~= nil and self.obj[2].weight ~= nil and self.obj[2].weight > 2 then
return 'Тяжёлая одежда на рычаге не даёт поднять его.'
end;
if here().cold() then
return 'Это крайнее положение.'
end
if here().hot() then
return here().temperature('neutral')
end
return here().temperature('cold')
end;
before_Push = function()
if here().hot() then
return 'Это крайнее положение.'
end
if here().cold() then
return here().temperature('neutral')
end;
return here().temperature('hot')
end;
capacity = 2;
}: attr 'static,supporter,scenery';
obj {
-"дверь";
nam = 'room8_garagedoor';
found_in = 'room8_garderob';
with_key = 'thooskey';
after_Unlock = function(s)
_('thooskey'):disable();
mp.score=mp.score+1;
return 'Ключ застревает в замке, но дверь всё-таки открывается.';
end;
description = function(s)
if s:has('locked') then
return "Закрытая дверь, на которой мигает электронный замок.";
end
return "Дверь в гараж, распахнутая настежь. Можно идти на запад.";
end;
when_open = 'Дверь в гараж открыта.';
}: attr 'scenery,openable,lockable,locked';
obj {
-"замок,электронный замок";
nam = 'room8_lock';
before_Unlock = 'Зубчатый ключ не подходит к электронному замку. Но в двери ты замечаешь замочную скважину. Попробуй отпереть саму дверь.';
found_in = 'room8_garderob';
before_Attack = 'Антивандальная защита замка состоит в том, что у него нет отверстий, а стальной корпус нельзя пробить.';
before_Touch = function(s)
if here().hot() then
return "Замок обжигающе горяч на ощупь.";
elseif here().cold() then
return "Осторожно, так и примёрзнуть пальцем можно. Он же ледяной.";
end;
return "Металл как металл.";
end;
capacity = 1;
after_Receive = function(self, thing)
local is_boiling = here().hot() and thing.mode == 'cold';
if is_boiling then
pn ('Из-под '..thing:noun('рд')..' доносится резкий писк, затем что-то начинает шипеть и ты видишь струйку дыма. Дверь распахивается настежь.');
_('room8_garagedoor'):attr('open');
_('room8_garagedoor'):attr('~locked');
if not self:has('broken') then
mp.score=mp.score+1;
end;
self:attr('broken')
return true;
end;
return false;
end;
description = function(s)
local description = 'Электронный замок со стальным корпусом и гордой наклейкой «Модель "Невзломайка" с антивандальной защитой. Проверено в режиме от минус сорока до сорока градусов.» Это маленькая коробка с двумя лампочками.';
if s:has('broken') then
description = description .. ' Внутри замка что-то перегрелось и расплавилось. Он безнадёжно сломан.'
else
description = description .. ' Сейчас горит красная лампочка с надписью "Требуется ключ-карта".';
if here().hot() then
description = description .. " Воздух вокруг замка заметно нагрет, а лампочка немного мигает.";
elseif here().cold() then
description = description .. " Наклейка покрылась коркой льда.";
end;
end
pn(description);
return false;
end;
}: attr 'scenery,supporter,transparent';
clothing = Class {
check_inventory = function(level, nam, part)
local c = nil; -- одежда того же уровня
local j = nil; -- одежда более высокого уровня
me():inventory():for_each(function(v)
if not v:has('clothing') then
return
end
if not v:has('worn') then
return
end
local newlevel = v.getlevel(v)
local newpart = v.getpart(v)
if (
newlevel == level
and v.nam ~= nam
and newpart == part
) then
c = v
elseif newlevel > level and newpart == part then
j = v
level = newlevel
end
end)
return {c, j, level};
end;
getlevel = function(self)
if self == nil then
dprint('В функцию getlevel передан null')
return 0
end
local level = self.level;
if level == nil then
level = 0
end;
return level;
end;
getpart = function(self)
if self == nil then
dprint('В функцию getlevel передан null')
return 0
end
local part = self.part;
if part == nil then
part = 'top';
end;
return part;
end;
each_turn = function(s)
if here().nam == 'room8_garderob' or not have(s) or not s:has('worn') then
s:attr'~concealed'
else
s:attr'concealed'
end
end;
before_Any = function(s)
if here().nam == 'room14_secondfloor' then
return "Это не то место, где тебе это понадобится.";
else
return false;
end
end;
-- Проверка надевания: нельзя надеть майку на шубу
-- Проверка снятия: нельзя снять майку перед шубой
['before_Wear,Disrobe'] = function(self)
local level = self.getlevel(self);
local part = self.getpart(self)
local retval = self.check_inventory(level, self.nam, part);
local c = retval[1];
local j = retval[2];
level = retval[3];
if (j ~= nil) then
return 'Сначала нужно снять '..j:noun('вн')..'.';
end;
if (mp.event == 'Wear' and c ~= nil) then
return 'Ты не можешь одновременно носить '..c:noun('вн') .. ' и '..self:noun('вн')..'.';
end
if (mp.event == 'Disrobe') then
if here().nam == 'room8_garderob' then
return false;
else
return 'Ну не здесь же!';
end;
end;
return false;
end;
}: attr 'clothing';
-- Да, ты можешь писать "открыть крючок" потому что это синоним шкафа.
-- Но то, что крючки не смоделированы, должно намекать на их несущественность.
obj {
-"шкаф,гардероб/мр|крючки/мн|крючок|одежда/жр,но";
nam = 'room8_clothes';
before_Receive = function(self, thing)
if not thing:has('clothing') then
return 'Это — шкаф только для одежды.';
end;
return false;
end;
after_Receive = function(self, thing)
return('Ты находишь свободный крючок и вешаешь '..thing:noun('вн')..' в шкаф.');
end;
found_in = 'room8_garderob';
description = function()
pn 'Старинный платяной шкаф с резными фигурами на дверцах. Плотно забит одеждой.'
return false;
end;
}: attr 'container,openable,static,scenery';
--[[
не участвуют в системе одежды, невозможно снять: туфли, нижнее бельё
level = 0: шарф, головной платок
level = 1: штаны
level = 2: рубашка, майка
level = 3: пиджак, куртка
level = 4: шуба
--]]
clothing {
-"синяя кепка,кепка/жр,но";
nam = 'room8_cap';
level = 0;
part = 'head';
mode = 'neutral';
paired_hot = 'room8_baseballcap';
paired_cold = 'room8_ushanka';
description = 'Старая синяя кепка с греческой буквой «альфа».';
}
clothing {
-"чёрная ушанка,ушанка/жр,но";
nam = 'room8_ushanka';
part = 'head';
level = 0;
weight = 0;
mode = 'cold';
paired_hot = 'room8_baseballcap';
paired_neutral = 'room8_cap';
description = 'Чёрная тёплая ушанка с жёлтым геральдическим львом на лбу.';
}
-- я не знаю почему но auto_animate считает ЭТО живым
clothing {
-"белая бейсболка,бейсболка/жр,но";
nam = 'room8_baseballcap';
part = 'head';
level = 0;
mode = 'hot';
paired_neutral = 'room8_cap';
paired_cold = 'room8_ushanka';
description = 'Новенькая белая бейсболка.';
}: dict {
['бейсболка/вн'] = 'бейсболку';
['белая бейсболка/вн'] = 'белую бейсболку';
['бейсболка/дт'] = 'бейсболке';
['белая бейсболка/дт'] = 'белой бейсболке';
}: attr '~animate';
-- Сюжетная проблема: так как мы моделируем одежду до уровней,
-- героиня должна быть во что-то одета изначально.
-- Придётся давать ей вещи в самом начале игры.
clothing {
-"бра/ср|бюстгальтер,лифчик/мр";
nam = 'room8_underwear_top';
description = 'Твоё нижнее бельё.';
part = 'top';
before_Disrobe = function()
return 'Да ни за что.';
end;
each_turn = function(s) end
}: attr 'worn,concealed';
clothing {
-"трусы,трусики,труселя/ср,мч|белье,бельё/ср";
nam = 'room8_underwear_bottom';
part = 'bottom';
description = 'Твоё нижнее бельё.';
before_Disrobe = function()
return 'Да ни за что.';
end;
each_turn = function(s) end
}: attr 'worn,concealed';
clothing {
-"туфли/жр,мч|туфля/жр";
nam = 'room8_shoes';
part = 'feet';
description = 'Чёрные блестящие туфли на каблуке.';
before_Disrobe = function()
return 'Да ни за что.';
end;
each_turn = function(s) end
}: attr 'worn,concealed';
clothing {
-"штаны/ср,мч";
nam = 'room8_pants';
part = 'bottom';
mode = 'neutral';
description = 'Чёрные формальные штаны.';
paired_hot = 'room8_shorts';
paired_cold = 'room8_winterpants';
level = 1;
}: attr 'worn';
clothing {
-"шорты/ср,мч";
nam = 'room8_shorts';
part = 'bottom';
mode = 'hot';
paired_neutral = 'room8_pants';
paired_cold = 'room8_winterpants';
description = 'Короткие серые шорты.';
level = 1;
}
clothing {
-"зимние штаны,штаны,щтаны/ср,мч";
nam = 'room8_winterpants';
part = 'bottom';
mode = 'cold';
paired_neutral = 'room8_pants';
paired_hot = 'room8_shorts';
weight = 3;
description = 'Зимние утеплённые штаны. Очень тяжёлые.';
level = 1;
}
clothing {
-"белая блузка,блузка,белая блуза,блуза/жр";
nam = 'room8_blouse';
part = 'top';
description = 'Белая блузка с принтом картины Малевича на груди.';
mode = 'neutral';
level = 2;
weight = 1;
paired_cold = 'room8_winterblouse';
paired_hot = 'room8_shortblouse';
}: attr 'worn';
clothing {
-"вязаная блуза,шерстяная блуза,блуза/жр";
nam = 'room8_winterblouse';
part = 'top';
description = 'Белая вязаная блузка.';
mode = 'cold';
paired_neutral = 'room8_blouse';
paired_hot = 'room8_shortblouse';
level = 2;
weight = 2;
}
clothing {
-"мини-блузка,мини-блуза,блузка,блуза/жр";
nam = 'room8_shortblouse';
part = 'top';
description = 'Белая мини-блузка. Может быть, даже мини-мини.';
mode = 'hot';
paired_neutral = 'room8_blouse';
paired_cold = 'room8_winterblouse';
level = 2;
weight = 1;
}
clothing {
-"жилет/мр";
nam = 'room8_formalvest';
description = 'Чёрный короткий жилет.';
level = 3;
weight = 1;
part = 'top';
mode = 'hot';
paired_neutral = 'room8_formalcoat';
paired_cold = 'room8_winter_formalсoat';
}
clothing {
-"твидовый пиджак,пиджак/мр";
nam = 'room8_winter_formalсoat';
description = 'Чёрный твидовый пиджак. Очень тёплый.';
level = 3;
weight = 1;
part = 'top';
mode = 'cold';
paired_neutral = 'room8_formalcoat';
paired_hot = 'room8_formalvest';
}
clothing {
-"чёрный пиджак,черный пиджак,пиджак/мр";
nam = 'room8_formalcoat';
paired_hot = 'room8_formalvest';
paired_cold = 'room8_winter_formalсoat';
description = 'Чёрный женский пиджак. Выглядит очень профессионально.';
level = 3;
weight = 2;
part = 'top';
mode = 'neutral';
}: attr 'worn';
take('room8_underwear_bottom');
take('room8_shoes');
take('room8_pants');
take('room8_blouse');
take('room8_formalcoat');
take('room8_underwear_top');
clothing {
-"леггинсы,легинсы/ср,мн";
nam = 'room8_leggins';
part = 'bottom';
level = 1;
mode = 'hot';
paired_cold = 'room8_thermo';
paired_neutral = 'room8_sport';
description = 'Белые спортивные леггинсы из быстро сохнущей ткани.';
}
clothing {
-"спортивные штаны,спортивки/ср,мн";
nam = 'room8_sport';
part = 'bottom';
level = 1;
mode = 'neutral';
found_in = 'room8_clothes';
paired_hot = 'room8_leggins';
paired_cold = 'room8_thermo';
description = 'Спортивные облегающие штаны с полосками.';
}
clothing {
-"термоштаны/ср,мн";
nam = 'room8_thermo';
part = 'bottom';
level = 1;
mode = 'cold';
paired_hot = 'room8_leggins';
paired_neutral = 'room8_sport';
description = 'Белые тёплые леггинсы для очень холодной погоды.';
}
clothing {
-"халат/мр";
nam = 'room8_robe';
level = 2;
weight = 2;
part = 'top';
mode = 'cold';
paired_neutral = 'room8_tshirt';
paired_hot = 'room8_sportshirt';
description = 'Махровый тёплый клетчатый халат, в котором всегда тепло и мягко.';
}
clothing {
-"майка/жр";
nam = 'room8_tshirt';
part = 'top';
mode = 'neutral';
level = 1;
paired_cold = 'room8_robe';
paired_hot = 'room8_sportshirt';
description = 'Лёгкая белая майка, на спине нарисованы крестики-нолики.';
}
clothing {
-"футболка/жр";
nam = 'room8_sportshirt';
mode = 'hot';
part = 'top';
level = 1;
paired_cold = 'room8_robe';
paired_neutral = 'room8_tshirt';
description = 'Спортивная полосатая футболка с короткими рукавами. На спине нарисован номер 7.';
}
clothing {
-"шуба/жр|мутон/мр";
nam = 'room8_wintercoat';
part = 'top';
paired_hot = 'room8_lightwear';
level = 4;
weight = 3;
mode = 'cold';
paired_neutral = 'room8_shirt';
description = 'Меховая мутоновая шуба. Не совсем подходящая одежда для отапливаемых помещений. У меха какой-то странный зелёный оттенок.';
}
clothing {
-"рубашка/жр";
nam = 'room8_shirt';
part = 'top';
level = 2;
found_in = 'room8_clothes';
paired_hot = 'room8_lightwear';
paired_cold = 'room8_wintercoat';
mode = 'neutral';
description = 'Женская салатовая рубашка с длинными рукавами.';
}
clothing {
-"лёгкая рубашка,рубашка/жр";
nam = 'room8_lightwear';
part = 'top';
level = 2;
mode = 'hot';
paired_cold = 'room8_wintercoat';
paired_neutral = 'room8_shirt';
description = "Чёрная рубашка с длинными рукавами с большими дырами для вентиляции. Очень большими дырами.";
}
clothing {
-"шарф/мр";
nam = 'room8_winterscarf';
part = 'head';
level = 0;
mode = 'cold';
paired_neutral = 'room8_shawl';
paired_hot = 'room8_kerchief';
description = 'Шерстяной клетчатый шарф с надписью «ЭНИГМА».'
}
clothing {
-"шаль/жр";
nam = 'room8_shawl';
found_in = 'room8_clothes';
part = 'head';
level = 0;
weight = 1;
mode = 'neutral';
paired_cold = 'room8_winterscarf';
paired_hot = 'room8_kerchief';
description = 'Клетчатая шаль с витыми узорами по краям.';
}
clothing {
-"платок/мр";
nam = 'room8_kerchief';
part = 'head';
level = 0;
mode = 'hot';
paired_cold = 'room8_winterscarf';
paired_neutral = 'room8_shawl';
description = 'Лёгкий прозрачный платок для головы.';
}
clothing {
-"майка-свитер, майка, свитер/мр";
nam = 'room8_sweatershirt';
part = 'top';
weight = 2;
level = 3;
mode = 'hot';
paired_cold = 'room8_duckdown_jacket';
paired_neutral = 'room8_puffyvest';
description = 'Синяя майка, стилизованная под свитер. На ней даже напечатаны ниточки.';
}
clothing {
-"тёплый жилет,жилет/мр";
nam = 'room8_puffyvest';
part = 'top';
weight = 2;
level = 3;
mode = 'neutral';
paired_cold = 'room8_duckdown_jacket';
paired_hot = 'room8_sweatershirt';
description = 'Синий пуховой жилет с короткими рукавами.';
}
clothing {
-"пуховик/мр";
nam = 'room8_duckdown_jacket';
part = 'top';
weight = 3;
level = 3;
paired_hot = 'room8_sweatershirt';
paired_neutral = 'room8_puffyvest';
mode = 'cold';
description = 'Синий длинный пуховик для сорокаградусных морозов. В нём ты будешь выглядеть синим колобком. А если найти поясок, то колбаской.'
}
obj {
-"машина времени,машина/жр,но|пьедестал,переключатель/мр,но|кнопка/жр,но";
nam = 'room8_timemachine';
found_in = 'room8_garderob';
description = 'Маленький пьедестал с надписью «Машина времени однонаправленная». На пьедестале находится переключатель, который указывает на положение «ВЫКЛ».';
after_SwitchOn = function()
pn "Реальность немного расплывается… а затем собирается воедино.";
-- Метапарсер для команды UNDO занимает дефолтный слот снапшотов,
-- так что нам надо использовать свой слот
snapshots:restore('entersroom');
end;
after_Push = function()
pn "Реальность немного расплывается… а затем собирается воедино.";
snapshots:restore('entersroom');
end;
}: attr 'switchable,static,scenery';
obj {
-"плакат,постер,комикс/мр,но";
nam = 'room8_poster';
found_in = 'room8_garderob';
description = [[
Цветной комикс: человек заходит в магазин одежды.^
Я ищу что-нибудь, что кричало бы «Тяжёлый металл!»^
Мы положили в каждый карман вот этого пуховика по гантеле. Надевать для примерки будете?
]];
}: attr 'static,scenery';
obj {
-"прихожая/жр,но|поворот/ср,но";
nam = 'room8_out_e';
found_in = 'room8_garderob';
description = 'Отсюда видна часть прихожей.';
}: attr 'static,concealed';
obj {
-"карман/мр,но|карманы/мн,мр,но";
nam = 'room8_out_pockets';
description = 'Карманы пусты, в них нет ничего интересного.';
}: attr 'static,concealed';
take('room8_out_pockets');
obj {
-"стены/мн,жр,но|обои/мн,ср,но|стена/жр,но";
nam = 'room8_out_wallsw';
found_in = 'room8_garderob';
description = 'Обычные стены с бежевыми обоями. На одной из стен висит постер.';
}: attr 'scenery,~animate';
obj {
-"пол,линолеум/мр,но";
nam = 'room8_out_floor';
found_in = 'room8_garderob';
description = 'Непримечательный тёмно-коричневый линолеум.';
}: attr 'scenery,~animate';
obj {
-"потолок/мр,но";
nam = 'room8_out_ceiling';
found_in = 'room8_garderob';
description = 'Белый натяжной потолок со встроенными светильниками.';
}: attr 'scenery,~animate';
obj {
-"светильник/мр,но|светильники/мр,мн,но|лампочка/жр,но|лампочки/мн,жр,но";
nam = 'room8_out_ceilinglight';
found_in = 'room8_garderob';
description = 'Обычные лампочки в потолке освещают комнату мягким белым светом.';
}: attr 'scenery,~animate,light';
clothing {
-"юбка/жр";
nam = 'room8_skirt';
part = 'bottom';
weight = 1;
level = 1;
found_in = 'room8_clothes';
mode = 'neutral';
description = 'Красная длинная юбка в зелёный горошек.';
paired_hot = 'room8_miniskirt';
paired_cold = 'room8_coldskirt';
}
clothing {
-"миниюбка,мини-юбка,юбка,мини/жр";
nam = 'room8_miniskirt';
part = 'bottom';
weight = 0;
paired_neutral = 'room8_skirt';
paired_cold = 'room8_coldskirt';
level = 1;
mode = 'hot';
description = 'Красная мини-юбка с зелёными полосами по бокам.'
}: dict {
['миниюбка/рд'] = 'миниюбки';
['миниюбка/вн'] = 'миниюбку';
['мини-юбка/рд'] = 'мини-юбки';
['мини-юбка/вн'] = 'мини-юбку';
['мини/вн'] = 'мини';
['мини/рд'] = 'мини';
}
clothing {
-"вязаная юбка,юбка/жр";
nam = 'room8_coldskirt';
part = 'bottom';
weight = 2;
paired_neutral = 'room8_skirt';
paired_hot = 'room8_miniskirt';
level = 1;
mode = 'cold';
description = 'Длинная вязаная бордовая юбка с фигурной вышивкой по краям.';
}
clothing {
-"парадное платье,платье/жр";
nam = 'room8_parade_dress';
part = 'top';
description = 'Это огромное бордовое парадное платье с рюшами, несколькими внутренними юбками и длинным шлейфом.';
mode = 'neutral';
found_in = 'room8_clothes';
paired_hot = 'room8_eveningdress';
paired_cold = 'room8_colddress';
level = 2;
-- подлянка для игрока: платье достаточно тяжёлое, чтобы его перенести в тёплый режим, но там оно бесполезно
weight = 3;
}
clothing {
-"вечернее платье,платье/жр";
nam = 'room8_eveningdress';
part = 'top';
description = 'Длинное синее вечернее платье из лёгко проветриваемой ткани.';
mode = 'hot';
paired_neutral = 'room8_parade_dress';
paired_cold = 'room8_colddress';
level = 2;
weight = 1;
}
clothing {
-"тёплое платье,меховое платье,платье,оторочка/жр";
nam = 'room8_colddress';
part = 'top';
description = 'Это красное вечернее утеплённое платье с меховой оторочкой.';
mode = 'cold';
paired_neutral = 'room8_parade_dress';
paired_hot = 'room8_eveningdress';
level = 2;
weight = 1;
}
clothing {
-"куртка/жр";
nam = 'room8_jacket';
found_in = 'room8_clothes';
part = 'top';
level = 3;
mode = 'neutral';
paired_cold = 'room8_hoody';
paired_hot = 'room8_top';
description = 'Кожаная куртка с нашивкой «ПИНГВИН». Хороша в пасмурный день.';
}
clothing {
-"топ,верх/мр";
nam = 'room8_top';
part = 'top';
level = 1;
mode = 'hot';
paired_neutral = 'room8_jacket';
paired_cold = 'room8_hoody';
description = 'Белый спортивный верх (топ) из быстро сохнущей ткани.';
}
clothing {
-"толстовка/жр";
nam = 'room8_hoody';
part = 'top';
level = 3;
paired_neutral = 'room8_jacket';
paired_hot = 'room8_top';
mode = 'cold';
description = 'Серая спортивная толстовка с длинными рукавами.';
}

420
room9.lua Normal file
View File

@ -0,0 +1,420 @@
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "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'
----------------------------------------
-----------------------
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_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;
}

37
theme.ini Normal file
View File

@ -0,0 +1,37 @@
include = arctic
scr.w = 1024
scr.h = 576
scr.gfx.bg = ;bg.png
scr.col.bg = white
win.x = 20
win.y = 20
win.w = 964
win.h = 420
inv.x = 505
inv.y = 10
inv.col.link = #666666
inv.col.fg = #222222
;inv.w = 127
;inv.h = 440
menu.button.x = 1000
menu.button.y = 552
inv.x = 10
inv.y = 460
inv.w = 964
inv.h = 100
inv.mode = horizontal-left
snd.click =
scr.gfx.x = 650
scr.gfx.y = 10
scr.gfx.w = 144
scr.gfx.h = 448
scr.gfx.mode = embedded
win.fnt.name = theme/{LiberationSerif-Regular,LiberationSerif-Bold,LiberationSerif-Italic,LiberationSerif-BoldItalic}.ttf
win.fnt.size = 18
inv.fnt.name = theme/{LiberationSerif-Regular,LiberationSerif-Bold,LiberationSerif-Italic,LiberationSerif-BoldItalic}.ttf
inv.fnt.size = 18
menu.gfx.button = theme/menu.png

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
theme/menu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

39
theme/theme.ini Normal file
View File

@ -0,0 +1,39 @@
;$Name:Parser
include = arctic
scr.w = 1024
scr.h = 576
scr.gfx.bg = ;bg.png
scr.col.bg = white
win.x = 20
win.y = 20
win.w = 964
win.h = 420
inv.x = 505
inv.y = 10
inv.col.link = #666666
inv.col.fg = #222222
;inv.w = 127
;inv.h = 440
menu.button.x = 1000
menu.button.y = 552
inv.x = 10
inv.y = 460
inv.w = 964
inv.h = 100
inv.mode = horizontal-left
snd.click =
scr.gfx.x = 650
scr.gfx.y = 10
scr.gfx.w = 144
scr.gfx.h = 448
scr.gfx.mode = embedded
win.fnt.name = {LiberationSerif-Regular,LiberationSerif-Bold,LiberationSerif-Italic,LiberationSerif-BoldItalic}.ttf
win.fnt.size = 18
inv.fnt.name = {LiberationSerif-Regular,LiberationSerif-Bold,LiberationSerif-Italic,LiberationSerif-BoldItalic}.ttf
inv.fnt.size = 18
menu.gfx.button = menu.png

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
themes/default/bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
themes/default/menu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

35
themes/default/theme.ini Normal file
View File

@ -0,0 +1,35 @@
; $Name: Стандартная$
include = default
scr.w = 960
scr.h = 540
scr.gfx.bg = bg.jpg
scr.col.bg = wheat
win.x = 360
win.y = 30
win.w = 540
win.h = 450
win.col.fg = #221100
inv.col.link = #221100
inv.col.fg = #332200
menu.button.x = 920
menu.button.y = 500
inv.x = 340
inv.y = 480
inv.w = 540
inv.h = 60
inv.mode = horizontal-left
snd.click =
scr.gfx.x = 650
scr.gfx.y = 10
scr.gfx.w = 144
scr.gfx.h = 448
scr.gfx.mode = embedded
win.fnt.name = ../{LiberationSerif-Regular,LiberationSerif-Bold,LiberationSerif-Italic,LiberationSerif-BoldItalic}.ttf
win.fnt.size = 18
inv.fnt.name = ../{LiberationSerif-Regular,LiberationSerif-Bold,LiberationSerif-Italic,LiberationSerif-BoldItalic}.ttf
inv.fnt.size = 18
menu.gfx.button = ../menu.png

BIN
themes/menu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
themes/mobile/bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

35
themes/mobile/theme.ini Normal file
View File

@ -0,0 +1,35 @@
; $Name: Мобильная$
include = default
scr.w = 540
scr.h = 960
scr.gfx.bg = bg.jpg
scr.col.bg = wheat
win.x = 30
win.y = 230
win.w = 480
win.h = 640
win.col.fg = #221100
inv.col.link = #221100
inv.col.fg = #332200
menu.button.x = 500
menu.button.y = 920
inv.x = 20
inv.y = 880
inv.w = 500
inv.h = 60
inv.mode = horizontal-left
snd.click =
scr.gfx.x = 650
scr.gfx.y = 10
scr.gfx.w = 144
scr.gfx.h = 448
scr.gfx.mode = embedded
win.fnt.name = ../{LiberationSerif-Regular,LiberationSerif-Bold,LiberationSerif-Italic,LiberationSerif-BoldItalic}.ttf
win.fnt.size = 24
inv.fnt.name = ../{LiberationSerif-Regular,LiberationSerif-Bold,LiberationSerif-Italic,LiberationSerif-BoldItalic}.ttf
inv.fnt.size = 24
menu.gfx.button = ../menu.png