-- $Name:Обучение$ instead_version "1.3.1" require "dash" -- '--' replace :) require "para" -- be more "Russian" require "quotes" game.act = 'Не получается.'; game.inv = "Гм.. Не то.."; game.use = 'Не сработает...'; game.pic = 'instead.png'; set_music('ramparts.mod'); main = room { nam = 'Обучение', act = function() -- only one vobj, no check, just goto goto('r1'); end, dsc = txtc("Добро пожаловать в режим обучения INSTEAD.")..[[^^ Игра состоит из сцен. Каждая сцена игры имеет описание, состоящее из статической и динамической части. Динамическая часть включает объекты, персонажей и т.д. С динамической частью игрок может взаимодействовать с помощью мыши, нажимая на подсвеченные ссылки.^^ Данная сцена называется "Обучение" и сейчас Вы читаете статическую часть её описания. Единственным объектом сцены является объект "Дальше", который Вы видите внизу текста. Итак, для продолжения обучения Вы можете нажать на "Дальше".]], obj = { vobj('continue', '{Дальше}'), }, }; paper = obj { nam = 'бумага', dsc = 'Первое, что Вы замечаете в комнате -- {листок бумаги}.', tak = 'Вы взяли бумагу.', var { seen = false, haswriting = false }, inv = function(s) if here() == r2 then s.seen = true; end if not s.haswriting then return 'Чистый лист клетчатой бумаги. Похоже, его вырвали из тетради.'; end p 'Лист клетчатой бумаги, на котором написано Ваше имя.'; end, used = function(s, w) if w == pencil and here() == r4 then s.haswriting = true; p 'Вы пишете на листке своё имя.'; end end, }; pencil = obj { nam = 'карандаш', dsc = 'На полу лежит {карандаш}.', tak = 'Вы подобрали карандаш.', var { seen = false }, inv = function(s) if here() == r2 then s.seen = true; end p 'Обычный деревянный карандаш.'; end, }; r1 = room { nam = 'Урок 1', enter = code [[ lifeon('r1') ]], life = function(s) if not have 'paper' or not have 'pencil' then return end put(vway('continue', [[Отлично!^Вы скорее всего заметили, что статическая часть описания сцены исчезла, уступив место описанию предметов, которые Вы взяли. Чтобы снова посмотреть полное описание сцены, можно нажать на её название, отображаемое в верхней части окна -- "Урок 1". Кроме того, можно нажать клавишу F5 на клавиатуре, результат будет таким же.^^ {Дальше}]], 'r2')); lifeoff('r1'); end, dsc = [[Урок 1. Взаимодействие с объектами^^ Продолжим урок. Сейчас Вы находитесь в комнате. Возьмите оба предмета, которые Вы видите. Напомним, что для этого Вы можете просто использовать мышь. Если Вам удобнее пользоваться клавиатурой -- можно выбрать нужный предмет с помощью клавиш со стрелками и нажать "Ввод" для взаимодействия с ним.]], obj = { 'paper', 'pencil'}, }; r2 = room { nam = 'Урок 2', enter = code [[ lifeon('r2') ]], life = function(s) if not paper.seen or not pencil.seen then return end put(vway("continue", "Хорошо!^^{Дальше}", 'r3')); lifeoff('r2'); end, dsc = [[Урок 2. Использование инвентаря - Часть I^^ Теперь у Вас появились предметы, которые можно использовать или изучать. Для этого предназначен инвентарь. Вы можете посмотреть на любой предмет инвентаря дважды щелкнув мышью по этому предмету. То же самое можно сделать с помощью клавиатуры: нажмите "Tab", чтобы переключиться на панель инвентаря, выберите нужный предмет и дважды нажмите "Ввод". Чтобы вернуться назад к описанию сцены, нажмите "Tab" еще раз.^^ Итак, посмотрите на бумагу. Затем, повторите эту операцию с карандашом.]], }; apple = obj { nam = 'яблоко', dsc = 'На столе лежит {яблоко}.', tak = 'Вы взяли яблоко со стола.', var { knife = false }, inv = function(s) if here() == r4 then remove(s, me()); return 'Вы съедаете яблоко.'; end p 'Выглядит аппетитно.'; end, }; desk = obj { nam = 'стол', dsc = 'На этом уроке вы видите деревянный {письменный стол}.', var { haswriting = false, seen = false }, act = function(s) if s.haswriting then s.seen = true; return 'Большой дубовый письменный стол. На столешнице видна мелкая надпись карандашом: "Lorem Ipsum".'; end p 'Большой дубовый письменный стол.'; end, used = function(s, w) if w == pencil and not s.haswriting then s.haswriting = true; p 'Вы пишете на столешнице несколько букв.'; end end, obj = { 'apple' }, }; r3 = room { nam = 'Урок 3', enter = code [[ lifeon('r3') ]], life = function(s) if not desk.seen or not have('apple') then return end put(vway("continue", "^^{Дальше}", 'r4')); lifeoff('r3'); end, dsc = [[Урок 3. Использование инвентаря - Часть II^^ Вы можете действовать предметами инвентаря на другие предметы сцены или инвентаря. В этой комнате вы увидите стол. Попробуйте воздействовать карандашом на стол.^^ Для этого нажмите мышью на карандаш, а затем на стол. То же самое можно сделать с помощью клавиатуры: используя клавиши "Tab", "Ввод" и "стрелки".^^ Затем посмотрите на стол. И не забудьте взять яблоко, оно нам пригодится в следующем уроке.]], obj = { 'desk' }, }; r4 = room { nam = 'Урок 4', enter = function() apple.knife = false; lifeon('r4'); end, life = function(s) if not paper.haswriting or have('apple') then return end put(vway("continue", "Хорошо.^^{Дальше}", 'r5')); lifeoff('r4'); end, dsc = [[Урок 4. Использование инвентаря - Часть III^^ Хорошо, теперь изучим еще несколько действий с предметами.^^ Во-первых, напишите что-нибудь на бумаге. Для этого нажмите мышью на карандаш, а затем на бумагу. После этого вы можете посмотреть на бумагу, чтобы увидеть вашу запись.^^ Во-вторых, съешьте яблоко, которое Вы взяли со стола в предыдущей комнате. Для этого дважды щелкните по яблоку в инвентаре.^^ Все описанные действия можно выполнить с помощью клавиатуры так же, как показано в предыдущем уроке.]], }; r5 = room { nam = 'Урок 5', exit = function(s, t) if t ~= r6 then return 'Этот урок мы уже прошли.^ Пожалуйста, перейдите на урок 6.', false; end end, dsc = [[Урок 5. Перемещение - Часть I^^ Теперь изучим переходы между комнатами. В этой комнате Вы видите пять дополнительных ссылок с номерами уроков. Перейдите на урок 6. ^^ Для этого нажмите мышью на соответствующую ссылку. Вы также можете воспользоваться клавиатурой -- выберите нужную ссылку с помощью клавиш со стрелками и нажмите "Ввод" для перехода.]], way = { 'r1', 'r2', 'r3', 'r4', 'r6'}, }; r6 = room { nam = 'Урок 6', exit = function(s, t) if t ~= theend then p 'Этот урок мы уже прошли.^ Пожалуйста, перейдите на последний урок.' return false; -- same as return "text", false end end, dsc = [[Урок 6. Перемещение - Часть II^^ Теперь перейдите на последний урок.]], way = { 'r1', 'r2', 'r3', 'r4', 'r6', 'theend'}, }; theend = room { nam = 'Последний урок', dsc = [[Вы можете выбирать игру, сохранять и загружать её состояние и выполнять другие действия с помощью меню. Для вызова меню нажмите клавишу "Esc" или нажмите мышью на символ меню (справа снизу).^^ Теперь Вы готовы к игре. Удачи!!!^^ Игры для INSTEAD можно скачать здесь: ]]..txtu("http://instead.syscall.ru")..[[^^ В обучении использован трек Ramparts от Scorpion.]], obj = { vway('keys', 'Посмотреть {список клавиш}.', 'help')}, }; help = room { nam = 'Список клавиш', dsc = [[ Esc - Вызов меню;^ Alt+Q - Выход;^ Alt+Enter - Полноэкранный/оконный режим;^ F5 - Обновление сцены;^ Пробел/Backspace - Прокрутка описания сцены;^ Tab/Shift+Tab - Переключение между активными зонами;^ PgUp/PgDn - Прокрутка активной зоны;^ Стрелки влево/вправо - Выбор ссылок в активной зоне;^ F2 - Сохранение игры;^ F3 - Загрузка игры;^ F8 - Быстрое сохранение игры;^ F9 - Быстрая загрузка игры.^^ Клавиши, поведение которых зависит от выбранного режима клавиатуры (см. Меню -> Настройки -> Режим клавиатуры):^^ Стрелки вверх/вниз:^  - В режиме "Прокрутка": прокрутка активной зоны;^  - В режиме "Ссылки": выбор ссылок в активной зоне;^  - В режиме "Умный": одновременно выбор ссылок и прокрутка активной зоны.^^ Стрелки вверх/вниз + Shift или Alt:^  - В режиме "Прокрутка": выбор ссылок в активной зоне;^  - В режиме "Ссылки": прокрутка активной зоны;^  - В режиме "Умный": прокрутка активной зоны. ]], obj = { vway('cmdline', 'Посмотреть {параметры командной строки}.', 'help2')}, }; help2 = room { nam = 'Параметры командной строки', dsc = [[ -nosound - запуск без звука;^ -alsa - принудительное использование alsa (только для Linux);^ -debug - отладочный режим для разработчика игр;^ -theme <тема> - выбор темы;^ -game <игра> - выбор игры;^ -themespath <путь> - дополнительный путь к темам;^ -gamespath <путь> - дополнительный путь к играм;^ -windows - оконный режим;^ -fullscreen - полноэкранный режим;^ -noautosave - отключить автосохранение/автозагрузку;^ -encode [encoded.lua] - закодировать исходный текст lua (используйте doencfile для загрузки такого файла);^ -mode [ШИРИНАxВЫСОТА] - установить разрешение. ]], obj = { vway('keys', 'Посмотреть {список клавиш}.', 'help')}, };