- Вывод текста
- Программирование
- Оформление
- Расширенные возможности
- Нюансы написания игр под разные плееры
-
- x AeroQSP
- Утилиты и средства разработки
Это старая версия документа.
Игрок исследует игровой мир, или следует по сюжету игры, перемещаясь по локациям. Задача автора игры — правильно прописать эти перемещения.
Для перемещения между локациями в QSP предусмотрены специальные команды. Эти команды можно использовать в любом месте игры, но как правило, их размещают в действиях, чтобы позволить игроку самому решать, куда он хочет переместиться.
! переход на локацию "Тронный зал" goto 'Тронный зал'
Окна основного описания
и очистка Окна действий
.Окно основного описания
текста из поля "Базовое описание" локации (поле "Описание" в QGen).Окно действий
действий из поля "Базовые действия"goto "тёмный_лес" ! эквивалентно gt "тёмный_лес"
GOTO [$локация],[аргумент 0],[аргумент 1], ... ,[аргумент 18]Передаваемые на локацию значения называются аргументами или параметрами. Эти значения плеер автоматически помещает в специальный массив
args[]
в ячейки с нулевой по восемнадцатую. Пример:# начало ! это код локации начало act "Начать игру": ! при нажатии на действие игрок перейдёт на локацию "комната" goto "комната","начало" & ! на локацию комната будет передана строка со словом "начало" end --- начало --- # комната ! это код локации комната $откуда_пришли=$args[0] & ! из $args[0] получаем значение, переданное с командой goto if $откуда_пришли="начало": ! если пришли с локации "начало", выводим душещипательную катсцену *pl "Здесь начинается наша история" else ! если пришли не с локации "начало", просто выводим описание комнаты *pl "Описание комнаты" end --- комната ---
Окна основного описания
.! переход на локацию "разговор с начальником" xgoto 'разговор с начальником'
Окна действий
.Окно основного описания
текста из поля "Базовое описание" локации (поле "Описание" в QGen). Новое описание дополняет уже имеющееся.Окно действий
действий из поля "Базовые действия"xgoto "дремучая_чаща" ! эквивалентно xgt "дремучая_чаща"
XGOTO [$локация],[аргумент 0],[аргумент 1], ... ,[аргумент 18]Передаваемые на локацию значения называются аргументами или параметрами. Эти значения плеер автоматически помещает в специальный массив
args[]
в ячейки с нулевой по восемнадцатую. Пример:! локация "разговор с начальником" $вариант=$args[0] & ! первое значение помещаем в переменную вариант счётчик=args[1] & ! второе значение в переменную счётчик act "— Можно задать вам вопрос?": *pl 'Я: — Можно задать вам вопрос?' xgoto 'разговор с начальником','можно?',счётчик+1 end if $вариант='можно?': if счётчик=1: 'Начальник: — Задавайте.' else 'Начальник: — Вы это уже спрашивали.' end else 'Начальник: — С чем пожаловали?' end
Иногда нам нужно прервать выполнение определённого кода, выполнить код на другой локации, а затем вернуться и продолжить выполнять прерванный код. В таких случаях операторы GOTO и XGOTO нам не подходят, ведь они осуществляют переход на локацию и оставляют нас на ней.
В QSP есть более подходящие для таких ситуаций команды, они подробно описаны в разделе "Пользовательские функции и процедуры".