- Вывод текста
- Программирование
- Оформление
- Расширенные возможности
- Нюансы написания игр под разные плееры
-
- x AeroQSP
- Утилиты и средства разработки
Это старая версия документа.
Утилита "TXT2GAM" ("txt2gam.exe") предназначена для конвертирования текстовых файлов, написанных в специальном формате, в файлы QSP-игр ".qsp". Таким образом вы можете создавать игры в обычном текстовом редакторе, а затем конвертировать их в обычные игры.
Формат TXT2GAM так же называется форматом QSPS, а текстовые файлы, записанные в этом формате и имеющие расширение ".qsps", называются qsps-файлами.
Использовать qsps-файлы предпочтительнее по трём причинам:
Как было отмечено выше, файлы в формате TXT2GAM — это обычные текстовые файлы, в которых мы размещаем код QSP, при этом данный код нужно записывать по определённым правилам.
Начало локации отмечается символом # (решётка/диез), после которого должен стоять пробел и название локации. Например так:
# начало
Конец локации обозначается двумя символами "дефис" – в отдельной строке. После этого в той же строке могут идти любые символы, например, снова название локации:
-- начало
Между началом и концом локации записывается обычный код QSP, как если бы вы его писали в поле "Выполнить при посещении" редактора Quest Generator. Вот пример кода в формате TXT2GAM с двумя локациями:
# Начало 'It''s only test of new utility.' 'That is all.' act 'Далее': goto 'next' end -- (конец локации) # next $s='Это последняя локация примера.' loop local i = 1 while i<=len($s) step i += 1: *p $mid($s,i,1) wait 200 end *nl & 'Это всё.' --
Между локациями в таком файле может быть записан любой текст, он не попадёт в конечный файл игры. Поэтому вы можете помещать туда различные комментарии, команды препроцессора и другой сопроводительный текст.
Поскольку концом локации считается строка, начинающаяся с –, будьте внимательны при написании игры.
Так как, если вы пишете код в Quest Generator, такая строка, записанная в коде локации, хотя и будет вызывать ошибку, но всё же не сломает локацию. Однако, если вы сконвертируете игру с подобной ошибкой в qsps, а затем — обратно в игру, весь код локации после такой ошибочной строки потеряется.
# начало # начало "Какой-то код. Много-много кода Этот код попадёт в локацию" -- "А вот этот код не попадёт в локацию" -- начало (хотим, чтобы конец локации был здесь) # локация 2 ! какой-то код -- локация 2
Если не закрыть локацию строкой, начинающейся с –, новую локацию открыть будет нельзя, а значит строка, начинающаяся с символа # может вызвать ошибку "Неизвестное действие" в конечной игре:
# начало "Выводим текст" # локация 2 "Забыли закрыть локацию перед открытием новой" - локация 2
Если в Quest Generator вы использовали не только поле "Выполнить при посещении", но так же поля "Базовое описание" и "Базовые действия", содержимое этих полей при экспорте игры в формат TXT2GAM будет сконвертировано в обычный код QSP, но размещённый между комментариями ! BASE и ! END BASE в самом начале кода локации. При этом:
*P".Вот как это может выглядеть:
# Начало ! BASE *P 'Укузя 1.2 Привет! Вашему вниманию предоставляется небольшой квест про Укузю. Кто она такая, неизвестно. Если Вы прошли первую часть игры, то можно загрузиться.' ACT 'Начать!': gosub 'menu' goto 'norka' END ACT 'Проект': goto 'proect' END ACT 'Загрузить': goto 'saves' END ! END BASE Fcolor = RGB(248,194,240) Bcolor = RGB(1,0,0) if nach = 0: msg 'Совет: Разверните окно на весь экран' & nach=1 -- Начало ---------------------------------
Как видите, в базовом описании был текст из нескольких строк, а в базовых действиях было создано три действия. Всё это сконвертировалось в обычный QSP-код, заключённый между комментариями ! BASE и ! END BASE.
Далее для удобства мы этот код с комментариями будем называть Базовым блоком.
При конвертировании из формата TXT2GAM обратно в игру, происходит обратный процесс.
Если в коде локации присутствовал Базовый блок (комментарии ! BASE и ! END BASE, между которыми вы разместили код QSP), код этого блока будет преобразован в базовое описание и базовые действия локации в конечной игре.
Однако, тут есть нюанс.
Конвертер распознаёт только действия и оператор *P, добавленные в Базовый блок. То есть все остальные операторы и выражения будут проигнорированы.
Более того, будут проигнорированы все строки для оператора *P, заключённые не в кавычки, а так же все действия, названия которых не заключены в кавычки, или формируются динамическим способом.
Вот наглядный пример:
! BASE
*PL "Этот текст не попадёт в Базовое описание, потому что используется неверный оператор."
*P {Оператор верный, но текст записан в фигурных скобках.}
*P "А этот текст попадёт в Базовое описание."
ACT $action_name:
! Это действие не попадёт в Базовые действия, потому что
! его название указано не константой
END
! END BASE
Если в файле формата TXT2GAM в коде локации вы создали несколько Базовых блоков, то — при конвертировании — в Базовое описание и Базовые действия будут добавлены только текст и действия из первого Базового блока.
TXT2GAM — это консольная утилита, т.е. она запускается командами из консоли, например из командной строки Windows.
(Ознакомиться с основными командами командной строки вы можете в обучающей статье "Что такое консоль, команды и прочее такое разное — CMD").
Пример работы с утилитой:
txt2gam.exe game.txt game.qsp
Здесь: "game.txt" — исходный файл вашей игры, написанный в формате TXT2GAM; "game.qsp" — конечный файл, в котором будет сохранена ваша игра.
Предположим, вы написали игру в текстовом редакторе, и теперь она у вас лежит в виде файла "game.txt" на диске "D:" в папке "QSP\Games\myCoolGame".
Для удобства скопируйте утилиту TXT2GAM (т.е. файл "txt2gam.exe") в папку с игрой. Теперь для конвертирования игры вам нужно сделать следующее:
D:", введя команду D: в командной строке и нажав клавишу "Enter".cd "QSP\Games\myCoolGame"game.txt"), а затем название файла, который хотите получить, например "myCoolGame.qsp":
txt2gam.exe game.txt myCoolGame.qsp
Утилита поддерживает полные пути к файлам, поэтому вы можете использовать одну утилиту для конвертирования разных игр:
txt2gam.exe "D:\QSP\Games\myCoolGame\game.txt" "D:\QSP\releases\myCoolGame\myCoolGame.qsp"
Для получения дополнительной информации об утилите, запустите её в консоли без параметров:
txt2gam.exe
Если указать ключ u, исходный файл будет обрабатываться как Unicode-файл (кодировка UCS-2 LE / UTF-16 LE):
txt2gam.exe game.txt myCoolGame.qsp u
Общий вид команды для консоли:
txt2gam [txt file] [output file] [options]
a, A — режим ANSI. По умолчанию утилита работает в режиме Unicode (UTF-8, UCS-2 / UTF-16).o, O — сохранить игру в старом формате (".gam"). По умолчанию используется новый формат (".qsp").s[string], S[string] — вместо [string] нужно указать строку, с которой начинаются ваши локации. Т.е. это строка, которую вы можете использовать вместо #, если это необходимо.e[string], E[string] — вместо [string] нужно указать строку, которой будет отмечаться конец локации. Т.е. это строка, которую вы можете использовать вместо –, если это необходимо.p[pass], P[pass] — вместо [pass] укажите пароль, который хотите установить на игру. По умолчанию NO. Если пароль содержит пробелы, заключите его в кавычки.c, C — конвертировать текстовый файл в игру (режим по умолчанию).d, D — конвертировать игру в текстовый файл формата TXT2GAM.t, T — извлечь строки из текста. q, Q - извлечь строки кода (между "{" и "}") из текста.
txt2gam.exe file.txt gamefile.qsp pMyPassword txt2gam.exe file.txt gamefile.qsp txt2gam.exe file.txt gamefile.qsp a txt2gam.exe gamefile.qsp file.txt d pMyPassword txt2gam.exe file.txt gamefile.qsp o pMyPassword txt2gam.exe file.txt gamefile.qsp o e@ pMyPassword txt2gam.exe file.txt gamefile.qsp u o p"My Password" txt2gam.exe file.txt gamefile.qsp o txt2gam.exe file.txt gamefile.qsp o e@ txt2gam.exe file.txt gamefile.qsp s@ e~ txt2gam.exe file.txt gamefile.qsp s@ e~ o txt2gam.exe file.txt gamefile.qsp t u
.qsps". "Просто потому что" (с) Pseudopod..qsp" в текстовые файлы формата TXT2GAM. Исходная ссылка утеряна, можно скачать в архиве программ QSP от Aleks Versus..tqsp", однако вы можете отредактировать файл подсветки, указав нужное вам расширение.