- Вывод текста
- Программирование
- Оформление
- Расширенные возможности
- Нюансы написания игр под разные плееры
-
- 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='Это последняя локация примера.' i=1 :loop if i<=len($s): *p $mid($s,i,1) wait 200 i=i+1 jump 'loop' end *nl & 'Это всё.' -
Между локациями в таком файле может быть записан любой текст, он не попадёт в конечный файл игры. Поэтому вы можете помещать туда различные комментарии, команды препроцессора и другой сопроводительный текст.
Поскольку концом локации считается символ -
в начале отдельно стоящей строки, могут возникнуть ошибки, если вы напишете команду, наподобие этой:
-(x+23)
Записанная в поле "Выполнить при посещении" редактора Quest Generator данная команда будет нормально работать в итоговой игре, однако если эту команду записать в файле формата TXT2GAM, конвертер посчитает её окончанием локации, и все последующие за данной командой строки вплоть до начала следующей локации будут проигнорированы.
# начало "Какой-то код. Много-много кода Этот код попадёт в локацию" ! пытаемся вывести произведение 45 и 9 умноженное на -1 -(45*9) "А вот этот код не попадёт в локацию" - начало (хотим, чтобы конец локации был здесь) Все строки от -(45*9) будут проигнорированы # локация 2 ! какой-то код - локация 2
Если не закрыть локацию строкой начинающейся с -
, новую локацию открыть будет нельзя, а значит строка, начинающаяся с символа #
может вызвать ошибку "Неизвестное действие" в конечной игре:
# начало "Выводим текст" # локация 2 "Забыли закрыть локацию перед открытием новой" - локация 2
Внимание! Для формата TXT2GAM не предусмотрено редактирование базового описания и базовых действий. Поэтому при экспорте игры из Quest Generator в формат TXT2GAM будьте внимательны: все базовые описания и базовые действия будут экспортированы в основной код локаций. Если впоследствии вы импортируете игру обратно из TXT2GAM-файла в Quest Generator, то поля "Описание" и "Базовые действия" во всех локациях окажутся пустыми.
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 (UCS-2 / UTF-16).
u
, U
— режим Unicode (UCS-2 LE/ UTF-16 LE).
o
, O
— сохранить игру в старом формате (".gam
"). По умолчанию используется новый формат (".qsp
").
s[char]
, S[char]
— вместо [char]
нужно указать символ, с которого начинаются ваши локации. Т.е. это символ, который вы можете использовать вместо #
, если это необходимо.
e[char]
, E[char]
— вместо [char]
нужно указать символ, которым будет отмечаться конец локации. Т.е. это символ, который вы можете использовать вместо -
, если это необходимо.
p[pass]
, P[pass]
— вместо [pass]
укажите пароль, который хотите установить на игру. По умолчанию NO
. Если пароль содержит пробелы, заключите его в кавычки.
t
, T
— извлечь строки из текста.
q
, Q
- извлечь q-строки из текста.
txt2gam.exe file.txt gamefile.qsp pMyPassword txt2gam.exe file.txt gamefile.qsp txt2gam.exe file.txt gamefile.qsp u 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
При разработке игр в текстовом редакторе, очень полезным может оказаться создание специального действия / кнопки для автоматической компиляции файла в ".qsp
" и запуска плеера сразу с редактируемым файлом.
То есть пишете текст игры в редакторе, нажимаете некое сочетание клавиш и получаете запущенную в плеере игру.
Данное руководство, на примере EmEditorа , описывает, как это сделать.
Для начала, создайте папку (допустим, "D:\Games\QSP
"), распаковав в неё базовый архив плеера ("qspgui.exe
" + все DLLки) и архив утилиты TXT2GAM.
Далее, создайте в этой папке (рядом с "qspgui.exe
", "txt2gam.exe
") файл "start.bat
" со следующим содержимым:
txt2gam %1 %2 start qspgui %2
Теперь нужно в редакторе добавить действие/кнопку, при нажатии на которую будет запущен файл "start.bat
" с двумя аргументами - указанием исходного TXT-файла и конечного ".qsp
"-файла.
D:\Games\QSP\start.bat
"$(Path)" "$(Dir)\$(Filename).gam"
(сохраняя кавычки)D:\Games\QSP
Теперь нужно назначить сочетание клавиш для кнопки.
Чтобы установить пароль на файл, создаваемый утилитой TXT2GAM, замените в файле start.bat
строчку
txt2gam.exe %1 %2
на
txt2gam.exe %1 %2 pMyPassword
где MyPassword
- устанавливаемый пароль. Для задания паролей с пробелами, строчка pMyPassword
должна быть указана в кавычках:
txt2gam.exe %1 %2 "pMy Pass word"
.qsps
". "Просто потому что" (с) Pseudopod..qsp
" в текстовые файлы формата TXT2GAM. Исходная ссылка утеряна, можно скачать в архиве программ QSP от Aleks Versus..tqsp
", однако вы можете отредактировать файл подсветки, указав нужное вам расширение.