Открыть главное меню

Изменения

FireURQ:Руководство пользователя

15 640 байт добавлено, 18:43, 31 июля 2020
м
убрал лишнее слово "выдает"
- все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.
В метке лучше не делать пробелов, так как, хотя существующий интерпретатор их поддерживает, это необязательно для следующих версий. Длина метки не ограничена, но для удобства автора квеста лучше не делать меток длиннее строки. В метке допускаются символы, обозначающие буквы русского и латинского алфавита, цифры, знак подчеркивания и знаки арифметических операций + и - (лучше не злоупотреблять странными названиями).
Недопустимы символы ''';''' '''/*''' '''*/''' '''&'''
Моя грамотность была на исходе
Потому что символ ";" и все что после него идет было бы обработано как комментарий.
 
'''Примечание:'''
Вывод строковой переменной, как числа '''#текстовая_переменная$''' даст нам количество символов в строке.
==Оформление текста==
Для определения шрифта, которым будет выводиться текст, используется переменная '''textfont'''. В нее в виде строкового значения следует записать имя файла шрифта.
Все используемые игрой шрифты должны лежать в папке с игрой, либо архиве QSZ. '''FireURQ''' позволяет имеет встроенные шрифты с засечками (serif) и без засечек (sans) во всех начертаниях — полужирном (bold), наклонном (italic) и полужирном наклонном (bold-italic).  Чтобы использовать обычные True Type эти шрифты Windows. Для этого шрифт должен быть либо установлен в системеигре, либо лежать в папке достаточно написать '''textfont = «serif-italic[25]»''' и у вас будет наклонный шрифт 25-го размера с игрой (архиве QSZ)засечками
Формат использования шрифта такой:
= Переходы =
 
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.
==Переход по кнопкам (оператор BTN)==
 
Самый распространённый переход осуществляется с помощью кнопок.
Кнопки всегда расположены после выведенного текста и используются для переходов по меткам.
'''''Примечание: лучше ставить между текстом и кнопками лишний оператор''''' '''pln''' - '''''так ваша игра будет выглядеть гораздо лучше.'''''
 
Общее обозначение: btn <локация>, <надпись на кнопке>]
 
Где <локация> - имя метки, на которую будет совершен переход, <надпись на кнопке> - надпись на кнопке, которая отображается на экране. В случае если <надпись на кнопке> не указана, в качестве надписи используется название метки, куда ведет кнопка.
 
'''''Пример:'''''
'''btn лес,Войти в лес'''
Эта команда выведет на экран кнопку с текстом '''Войти в лес''', ведующую на локацию '''лес'''
 
'''''Примечание 1: пробелы до и после надписи на кнопке игнорируются.'''''
 
'''''Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.'''''
 
'''''Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.'''''
 
У кнопок есть так называемое "эхо". Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную '''hide_btn_echo'''. Если установить её в единицу, то сообщения показываться не будут.
 
'''''Пример:'''''
'''hide_btn_echo = 1'''
===Команда CLSB===
'''Идти на Юг'''
&nbsp;
 
===Оформление кнопок в Fireurq===
 
Оформление кнопок делается в файле skin.xml
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].
==Переход по ссылке==
 
FireURQ позволяет использовать в тексте (и декораторах) ссылки.
 
'''''Формат ссылок:'''''
'''<nowiki>[[текст ссылки|название локации]]</nowiki>'''
 
'''''Пример:'''''
'''pln Вы стоите рядом с покосившимся <nowiki>[[домиком|домик_осмотреть]]</nowiki>. Вокруг раскинулись <nowiki>[[клумбы с аромантными цветами|клумбы_осмотреть]]</nowiki>.'''
 
Здесь '''домик_осмотреть''' и '''клумбы_осмотреть''' - названия локаций, на которые будут осуществляться переходы при нажатии на ссылку.
 
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши.
 
'''''Пример:'''''
'''linkcolor = 0xffffff'''
'''linkhcolor = 0x0000ff'''
В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.
 
Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.
 
'''''Упрощенный формат вывода ссылок такой:'''''
'''<nowiki>[[текст ссылки]]</nowiki>'''
 
В данном случае ссылка будет вести на метку под названием "текст ссылки".
 
'''''Пример:'''''
'''pln На волнах раскачивается деревянная <nowiki>[[лодка]]</nowiki>.'''
 
Здесь, при клике на ссылку произойдет переход на метку "лодка".
 
'''''Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа <nowiki>[[деревянная лодка]]</nowiki>, которые ведут на локации с такими именами.'''''
 
У ссылок, как и у btn есть "эхо", то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную '''hide_link_echo'''. Если установить её в 1, то "эхо" выводиться не будет.
 
'''''Пример:'''''
'''hide_link_echo = 1'''
 
'''''Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.'''''
==Переход по оператору GOTO==
 
'''''Синтаксис:'''''
'''GoTo Метка'''
 
После выполнения оператора '''goto''' происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по '''goto''' НЕ ВЫПОЛНЯЮТСЯ. Это сделано специально и умышленно - чтобы можно было делать переходы внутри локации.
 
Примечание: в случае не нахождения метки, goto просто игнорируется.
 
'''''Пример:'''''
'''goto лес'''
Этот код произведёт перемещение на локацию с названием ''''лес'''.
==Переход по оператору PROC==
 
'''''Синтаксис:'''''
'''Proc Метка'''
 
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за '''proc''', откуда команда была вызвана. Допустима любая вложенность '''proc'''-вызовов (вплоть до использования рекурсии!).
 
Нормально обрабатываются последовательные переходы по '''proc''' - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end'а происходит не опрос пользователя, а возврат к предыдущему proc'у и так до самого начала цепочки.
 
'''''Пример:'''''
''':берег_реки'''
'''pln Вы стоите на берегу реки, позади вас Туманный лес.'''
'''proc лес'''
'''pln Отсюда только одна дорога - на запад.'''
'''end'''
''';----------'''
''':лес'''
'''pln Из леса на вас поглядывают волки.'''
'''end'''
 
При выполнении этот код выведет на экран следующее:
 
Вы стоите на берегу реки, позади вас Туманный лес.
Из леса на вас поглядывают волки.
Отсюда только одна дорога - на запад.
 
То есть, после выполнения по '''proc''' локации '''лес''', мы вернёмся в локацию '''берег_реки''' и продолжим с того места, на котором был вызов команды '''proc'''.
'''''Важно:''''' При наличии локации common (см. ниже) операторы на локации common при переходе по '''proc''' НЕ ВЫПОЛНЯЮТСЯ и системная переменная '''current_loc''' не меняется.
 
'''Примечание:''' Часто из метки вызванной с помощью '''proc''' ведёт вызов '''goto''' и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор '''forget_procs'''
==Переход по декораторам TEXTBUTTON и IMGBUTTON==
 
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе '''Декораторы'''.
==Контекстное меню==
 
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе '''Выпадающие меню'''.
 
==Параметры при переходах==
 
Локальные параметры при переходах возможно передать параметры.
 
Общее обозначение: <метка>(param1, param2, ...)
 
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные <метка>_1, <метка>_2 и так далее. Все старые значения "переменных с параметрами" — удаляются (даже если в прошлый раз было больше параметров).
 
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.
 
'''''Пример:'''''
'''btn лес(1,"опушка"),Войти в лес'''
На локации '''лес''', переменные '''лес_1''' и '''лес_2''' будут соответссвенно равны '''1''' и '''опушка'''
 
то есть, если мы напишем код:
''':лес'''
'''pln #лес_1$ и #%лес_2$'''
'''end'''
то в результате, при переходе по кнопке, увидим на экране:
'''1 и опушка'''
 
Параметры при переходах очень удобны для организации проверок внутри локации.
 
'''''Замечание:''''' Если вы передаёте параметры метке, то её название не должно начинаться с цифры, то есть исключены названия вроде '''25''' или '''40метро'''. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - '''метро40'''.
= Музыка и звук =
'''end'''
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.
 
=Функции=
 
==Случайное значение Rnd==
 
Иногда полезно - особенно, если не злоупотреблять этим, ввести в квест элемент случайности, непредсказуемости. Именно для этого был введен механизм случайности: Rnd[x] - системная переменная (только для чтения) которая при пустом значении x хранит в себе случайное значение от 0 до 1, включая 1, а при целом x (к примеру, X=6) выдает целые значения (от 1 до 6 включительно в нашем случае). При каждом обращении к переменной она принимает другое значение.
 
'''случай1 = rnd''' ;В результате переменная случай1 равна, например, 0.78
 
'''случай2 = rnd4''' ;В результате переменная случай2 равна, например, 3
 
==Ввод текста INPUT==
 
В урке есть возможность ввести строку, значение которой будет потом присвоено указанной переменной.
 
При необходимости ввести с клавиатуры русский текст через оператор '''input''' в строковую переменную ее следует предварительно объявить выражением:
'''строка = ""'''; Данное выражение создает строковую переменную нулевой длины.
 
'''pln Введите строку: & input строка'''
 
На экране мы увидим:
'''Введите строку:'''
 
==Команда forget_procs==
 
В URQL есть нюанс - если мы используем '''goto метка''' из локации вызванной по '''proc''', то история вызовов не забывается.
Но есть команда '''forget_procs''', которая позволяет это исправить.
 
Рассмотрим следующий код:
 
:пример
pln Выводим текст 1
proc выход1
pln Выводим текст 2
end
 
:выход1
goto выход2
end
 
:выход2
forget_procs ; вставляем для того, чтобы забыть предыдущие действия
pln Выводим текст 3
end
 
Без команды '''forget_procs''' мы увидим на экране
 
Выводим текст 1
Выводим текст 3
Выводим текст 2
 
Если же мы используем эту команду, то на экране появится:
 
Выводим текст 1
Выводим текст 3
 
что чаще всего и нужно.
[[Категория:Документация FireURQ]]
156
правок