290 lines
13 KiB
Lua
290 lines
13 KiB
Lua
-- $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 'Великий дубовий письмовий стіл. На стільниці видно дрібний напис олівцем: "Любіть Україну".';
|
||
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')},
|
||
};
|