This commit is contained in:
p.kosyh 2011-06-17 13:55:56 +00:00
parent ef6f29d6d8
commit 121ea43170
2 changed files with 431 additions and 0 deletions

289
games/tutorial2-ua/main.lua Normal file
View file

@ -0,0 +1,289 @@
-- $Name:Навчання$
instead_version "1.3.1"
require "dash" -- '--' replace :)
require "para" -- be more "Russian"
require "quotes"
game.act = 'Не виходить.';
game.inv = "Гм.. Не то..";
game.use = 'Не зработає...';
game.pic = '../tutorial2/instead.png';
set_music('../tutorial2/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')},
};

142
lang/ua.ini Normal file
View file

@ -0,0 +1,142 @@
;$Name:Українська$
UNKNOWN_ERROR = Невідома помилка.
ERROR_MENU = Під час ініціалізації виникла невідома помилка:\n\
'%s'\n\
\n\
<a:/select>Так</a>
WARNING_MENU = Під час роботи гри виникла помилка:\n\
'%s'\n\
\n\
<a:/resume>Так</a>
SAVE_SLOT_EMPTY = пусто
SELECT_LOAD_MENU = Завантажте гру\n\n
AUTOSAVE_SLOT = Автозбереження
BROKEN_SLOT = помилка
SELECT_SAVE_MENU = Збережить гру\n\n
MAIN_MENU = \
<a:/resume>Продовжити гру</a>\n\
<a:/select>Вибір гри</a>\n\
<a:/themes>Вибір теми</a>\n\
<a:/new>Розпочати заново</a>\n\
<a:/load_menu>Завантажити гру</a>\n\
<a:/save_menu>Зберегти гру</a>\n\
<a:/about>ІнформацІя</a>\n\
<a:/settings>Налаштування</a>\n\
<a:/ask_quit>Вихід</a>
ABOUT_MENU = \
INSTEAD SDL - %s\n\
\n\
Інтерпретатор простих\n\
текстових пригод:\n\
Косих П.О. '2009-2011\n\
\n\
Адаптація для Windows:\n\
Риндін І.В. '2009\n\
\n\
Сайт проекта:\n\
<u>http://instead.googlecode.com</u>\n\
\n\
<a:/main>Назад</a>
BACK_MENU = <a:/main>Назад</a>
ON = Так
OFF = Ні
KBD_MODE_LINKS = Посилання
KBD_MODE_SMART = Розумний
KBD_MODE_SCROLL = Прокрутка
FROM_THEME = Тема
SETTINGS_SND_MENU = \
<a:/settings-gfx>[Графіка]</a><w: ><u>[Звук]</u><w: ><a:/settings-oth>[Інше]</a>\n\
\n\
Гучність: <a:/vol--><<</a><a:/vol-><</a> <a:/mtoggle>%d%%</a> <a:/vol+>></a><a:/vol++>>></a>\n\
\n\
Якість: <a:/hz-><<</a> %dГц <a:/hz+>>></a>\n\
\n\
Музика: <a:/music>%s</a>\n\
Звук клацання: <a:/click>%s</a>\n\
\n\
<a:/main>Застосувати</a>
SETTINGS_GFX_MENU = \
<u>[Графіка]</u><w: ><a:/settings-snd>[Звук]</a><w: ><a:/settings-oth>[Інше]</a>\n\
\n\
Розмір вікна: <a:/mode--><<</a>%s<a:/mode++>>></a>\n\
Повний екран: <a:/fs>%s</a>\n\
Масштаб шрифту: <a:/fs--><<</a>%d<a:/fs++>>></a>\n\
\n\
Підсвітка посиланнь: <a:/hl>%s</a>\n\
Власні теми ігр: <a:/owntheme>%s</a>\n\
\n\
<a:/main>Застосувати</a>
SETTINGS_OTH_MENU = \
<a:/settings-gfx>[Графіка]</a><w: ><a:/settings-snd>[Звук]</a><w: ><u>[Інше]</u>\n\
\n\
Режим прокрутки: <a:/motion>%s</a>\n\
Фільтр миши: <a:/filter>%s</a>\n\
Режим клавіатури: <a:/kbd>%s</a>\n\
\n\
Мова: <a:/lang--><<</a>%s<a:/lang++>>></a>\n\
Автозбереження: <a:/autosave>%s</a>\n\
\n\
<a:/main>Застосувати</a>
CUSTOM_THEME_MENU = \
Увага!!!\n\
\n\
Гра містить власну тему, але підтримка власних тем відключена в налаштуваннях. \
Гра може виглядати не так, як задумував її автор.\n\
\n\
<i>Ви можете дозволити можливість перевизначення тем в налаштуваннях.</i>\n\
\n\
<a:/resume>Так</a>
OWN_THEME_MENU = \
Увага!!!\n\
\n\
Вибрана гра перевизначає тему. Зміни не вступять до сили.\n\
\n\
<i>Ви можете заборонити можливість перевизначення тем в налаштуваннях.</i>\n\
\n\
<a:/resume>Так</a>
QUIT_MENU = \
Насправді вийти?\n\
\n\
<a:/quit>Так</a> | <a:/main>Ні</a>
SELECT_GAME_MENU = Вибір гри\n\n
SELECT_THEME_MENU = Вибір теми\n\n
SAVED_MENU = \
Гра збережена!\n\
\n\
<a:/resume>Так</a>
NOGAMES_MENU = \
Не знайдено жодної гри.\n\
Будь ласка, скопіруйте хоча б одну гру до каталогу:\n'%s'
NOTHEMES_MENU = \
Не знайдено жодної теми.\n\
Будь ласка, скопіруйте хоча б одну тему до каталогу:\n'%s'\n
CANCEL_MENU = <a:/resume>Відміна</a>
DISABLED_SAVE_MENU = \
Збереження заборонено грою.\n
BROWSE_MENU = \
[...]
REMOVE_MENU = \
Видалити гру?\n\
%s\n\
\n\
<a:/remove>Так</a> | <a:/select>Ні</a>