2011-06-17 16:55:56 +03:00
|
|
|
|
-- $Name:Навчання$
|
|
|
|
|
|
|
|
|
|
instead_version "1.3.1"
|
|
|
|
|
|
|
|
|
|
require "dash" -- '--' replace :)
|
|
|
|
|
require "para" -- be more "Russian"
|
|
|
|
|
require "quotes"
|
|
|
|
|
|
|
|
|
|
game.act = 'Не виходить.';
|
|
|
|
|
game.inv = "Гм.. Не то..";
|
|
|
|
|
game.use = 'Не зработає...';
|
|
|
|
|
|
2011-06-17 19:49:24 +03:00
|
|
|
|
game.pic = 'instead.png';
|
2011-06-17 16:55:56 +03:00
|
|
|
|
|
2011-06-17 19:49:24 +03:00
|
|
|
|
set_music('ramparts.mod');
|
2011-06-17 16:55:56 +03:00
|
|
|
|
|
|
|
|
|
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 'Великий дубовий письмовий стіл. На стільниці видно дрібний напис олівцем: "Любіть Україну".';
|
|
|
|
|
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 <game.lua> [encoded.lua] - закодувати вихідний текст lua (використовуйте doencfile для загрузки такого файла);^
|
|
|
|
|
-mode [ШИРИНАxВИСОТА] - встановити вимір екрану.
|
|
|
|
|
]],
|
|
|
|
|
obj = { vway('keys', 'Подивитись {список клавіш}.', 'help')},
|
|
|
|
|
};
|