Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
help:txt2gam [2023/01/03 15:01] aleks_versus |
help:txt2gam [2024/11/09 03:26] (текущий) byte [TXT2GAM. Краткое руководство] |
||
---|---|---|---|
Строка 5: | Строка 5: | ||
Утилита "**TXT2GAM**" ("''txt2gam.exe''") предназначена для конвертирования текстовых файлов, написанных в специальном формате, в файлы QSP-игр "''.qsp''". Таким образом вы можете создавать игры в обычном текстовом редакторе, а затем конвертировать их в приемлемые для плееров файлы. | Утилита "**TXT2GAM**" ("''txt2gam.exe''") предназначена для конвертирования текстовых файлов, написанных в специальном формате, в файлы QSP-игр "''.qsp''". Таким образом вы можете создавать игры в обычном текстовом редакторе, а затем конвертировать их в приемлемые для плееров файлы. | ||
- | [[https://qsp.org/attachments/txt2gam011.zip|Скачать утилиту для Windows]] | + | [[https://github.com/QSPFoundation/txt2gam/releases|Скачать утилиту для Windows/Linux/MacOS]] |
- | + | ||
- | [[help:txt2gam_linux|Сборка TXT2GAM на Linux]] | + | |
===== Формат TXT2GAM (QSPS) ===== | ===== Формат TXT2GAM (QSPS) ===== | ||
Строка 14: | Строка 11: | ||
Использовать qsps-файлы предпочтительнее по трём причинам: | Использовать qsps-файлы предпочтительнее по трём причинам: | ||
- | * воспроизведение таких файлов поддерживается плеером **qSpider**; | + | * воспроизведение таких файлов поддерживается плеером **[[help:qspider|qSpider]]**; |
- | * расширение для **MS Visual Studio Code** поддерживает подсветку синтаксиса qsps-файлов; | + | * расширение для **[[https://github.com/gretmn102/QSP-VSCode/blob/master/README.md|MS Visual Studio Cod]]e** поддерживает подсветку синтаксиса qsps-файлов; |
- | * в пакете для **Sublime Text** встроена подсветка синтаксиса qsps-файлов. | + | * в **[[https://github.com/AleksVersus/JAD_for_QSP|пакете для Sublime Text]]** встроена подсветка синтаксиса qsps-файлов. |
Как было отмечено выше, файлы в формате **TXT2GAM** — это обычные текстовые файлы, в которых мы размещаем код QSP, при этом данный код нужно записывать по определённым правилам. | Как было отмечено выше, файлы в формате **TXT2GAM** — это обычные текстовые файлы, в которых мы размещаем код QSP, при этом данный код нужно записывать по определённым правилам. | ||
- | Начало локации отмечается символом ''**#**'' (решётка/диез), после которого должен стоять пробел и название локации. Например так: | + | Начало локации отмечается символом **''#''** (решётка/диез), после которого должен стоять пробел и название локации. Например так: |
<sxh qsp> | <sxh qsp> | ||
Строка 26: | Строка 23: | ||
</sxh> | </sxh> | ||
- | Конец локации обозначается символом ''**-**'' (дефис) в отдельной строке. После этого символа в той же строке могут идти любые символы, например, снова название локации: | + | Конец локации обозначается строкой **''%%--%%''** (2 дефиса) в отдельной строке. После этого в той же строке могут идти любые символы, например, снова название локации: |
<sxh qsp> | <sxh qsp> | ||
- | - начало | + | -- начало |
</sxh> | </sxh> | ||
Строка 41: | Строка 38: | ||
goto 'next' | goto 'next' | ||
end | end | ||
- | - (конец локации) | + | -- (конец локации) |
- | + | ||
# next | # next | ||
$s='Это последняя локация примера.' | $s='Это последняя локация примера.' | ||
- | i=1 | + | loop local i = 1 while i<=len($s) step i += 1: |
- | :loop | + | |
- | if i<=len($s): | + | |
*p $mid($s,i,1) | *p $mid($s,i,1) | ||
wait 200 | wait 200 | ||
- | i=i+1 | ||
- | jump 'loop' | ||
end | end | ||
*nl & 'Это всё.' | *nl & 'Это всё.' | ||
- | - | + | -- |
</sxh> | </sxh> | ||
Между локациями в таком файле может быть записан любой текст, он не попадёт в конечный файл игры. Поэтому вы можете помещать туда различные комментарии, команды препроцессора и другой сопроводительный текст. | Между локациями в таком файле может быть записан любой текст, он не попадёт в конечный файл игры. Поэтому вы можете помещать туда различные комментарии, команды препроцессора и другой сопроводительный текст. | ||
- | Поскольку концом локации считается символ ''**-**'' в начале отдельно стоящей строки, могут возникнуть ошибки, если вы напишете команду, наподобие этой: | + | Отнеситесь внимательно к строке завершения локации **''%%--%%''** в начале отдельно стоящей строки. |
- | + | Записанная в поле "Выполнить при посещении" редактора **Quest Generator**, она будет частью локации в итоговой игре, однако если эту строку записать в файле формата **TXT2GAM**, конвертер посчитает её окончанием локации, и все последующие строки вплоть до начала следующей локации будут проигнорированы. | |
- | <sxh qsp> | + | |
- | -(x+23) | + | |
- | </sxh> | + | |
- | + | ||
- | Записанная в поле "Выполнить при посещении" редактора **Quest Generator** данная команда будет нормально работать в итоговой игре, однако если эту команду записать в файле формата **TXT2GAM**, конвертер посчитает её окончанием локации, и все последующие за данной командой строки вплоть до начала следующей локации будут проигнорированы. | + | |
<sxh qsp> | <sxh qsp> | ||
Строка 71: | Строка 59: | ||
"Какой-то код. Много-много кода | "Какой-то код. Много-много кода | ||
Этот код попадёт в локацию" | Этот код попадёт в локацию" | ||
- | ! пытаемся вывести произведение 45 и 9 умноженное на -1 | + | -- |
- | -(45*9) | + | |
"А вот этот код не попадёт в локацию" | "А вот этот код не попадёт в локацию" | ||
- | - начало (хотим, чтобы конец локации был здесь) | + | -- начало (хотим, чтобы конец локации был здесь) |
- | Все строки от -(45*9) будут проигнорированы | + | |
# локация 2 | # локация 2 | ||
! какой-то код | ! какой-то код | ||
- | - локация 2 | + | -- локация 2 |
</sxh> | </sxh> | ||
- | Если не закрыть локацию строкой начинающейся с ''**-**'', новую локацию открыть будет нельзя, а значит строка, начинающаяся с символа ''**#**'' может вызвать ошибку "Неизвестное действие" в конечной игре: | + | Если не закрыть локацию строкой, начинающейся с **''%%--%%''**, новую локацию открыть будет нельзя, а значит строка, начинающаяся с символа **''#''** может вызвать ошибку "Неизвестное действие" в конечной игре: |
<sxh qsp> | <sxh qsp> | ||
Строка 89: | Строка 75: | ||
# локация 2 | # локация 2 | ||
"Забыли закрыть локацию перед открытием новой" | "Забыли закрыть локацию перед открытием новой" | ||
- | - локация 2 | + | -- локация 2 |
</sxh> | </sxh> | ||
Строка 132: | Строка 118: | ||
</sxh> | </sxh> | ||
- | Если указать ключ ''**u**'', исходный файл будет обрабатываться как Unicode-файл (кодировка **UCS-2 LE** / **UTF-16 LE**): | + | Если указать ключ ''**a**'', исходный файл будет обрабатываться как ANSI-файл (кодировка **CP1251**). По умолчанию используется Unicode (**UTF-8**, **UCS-2 LE** / **UTF-16 LE**): |
<sxh> | <sxh> | ||
- | txt2gam.exe game.txt myCoolGame.qsp u | + | txt2gam.exe game.txt myCoolGame.qsp a |
</sxh> | </sxh> | ||
Строка 150: | Строка 136: | ||
==== Опции. [Options] ==== | ==== Опции. [Options] ==== | ||
- | ''a'', ''A'' — режим ANSI. По-умолчанию утилита работает в режиме Unicode (**UCS-2** / **UTF-16**). | + | * ''a'', ''A'' — режим ANSI. По умолчанию утилита работает в режиме Unicode (**UTF-8**, **UCS-2** / **UTF-16**). |
- | ''u'', ''U'' — режим Unicode (**UCS-2 LE**/ **UTF-16 LE**). | + | * ''o'', ''O'' — сохранить игру в старом формате ("''.gam''"). По умолчанию используется новый формат ("''.qsp''"). |
- | ''o'', ''O'' — сохранить игру в старом формате ("''.gam''"). По умолчанию используется новый формат ("''.qsp''"). | + | * ''s[string]'', ''S[string]'' — вместо ''[string]'' нужно указать строку, с которой начинаются ваши локации. Т.е. это строка, которую вы можете использовать вместо ''**#**'', если это необходимо. |
- | ''s[char]'', ''S[char]'' — вместо ''[char]'' нужно указать символ, с которого начинаются ваши локации. Т.е. это символ, который вы можете использовать вместо ''**#**'', если это необходимо. | + | * ''e[string]'', ''E[string]'' — вместо ''[string]'' нужно указать строку, которой будет отмечаться конец локации. Т.е. это строка, которую вы можете использовать вместо ''**--**'', если это необходимо. |
- | ''e[char]'', ''E[char]'' — вместо ''[char]'' нужно указать символ, которым будет отмечаться конец локации. Т.е. это символ, который вы можете использовать вместо ''**-**'', если это необходимо. | + | * ''p[pass]'', ''P[pass]'' — вместо ''[pass]'' укажите пароль, который хотите установить на игру. По умолчанию ''**NO**''. Если пароль содержит пробелы, заключите его в кавычки. |
- | ''p[pass]'', ''P[pass]'' — вместо ''[pass]'' укажите пароль, который хотите установить на игру. По умолчанию ''**NO**''. Если пароль содержит пробелы, заключите его в кавычки. | + | * ''t'', ''T'' — извлечь строки из текста. |
- | ''t'', ''T'' — извлечь строки из текста. | + | * ''q'', ''Q'' - извлечь строки кода (между "{" и "}") из текста. |
- | ''q'', ''Q'' - извлечь q-строки из текста. | + | |
==== Примеры вызова: ==== | ==== Примеры вызова: ==== | ||
Строка 232: | Строка 217: | ||
- Существует утилита **qsp2txt** для конвертирования игр в обратную сторону — из файлов игр "''.qsp''" в текстовые файлы формата **TXT2GAM**. Исходная ссылка утеряна, можно скачать в [[https://mega.nz/folder/jXwXlSRJ#TF7P-soOJOWIC8MrBA-L1A|архиве программ QSP от Aleks Versus]]. | - Существует утилита **qsp2txt** для конвертирования игр в обратную сторону — из файлов игр "''.qsp''" в текстовые файлы формата **TXT2GAM**. Исходная ссылка утеряна, можно скачать в [[https://mega.nz/folder/jXwXlSRJ#TF7P-soOJOWIC8MrBA-L1A|архиве программ QSP от Aleks Versus]]. | ||
- Существовали разные [[https://qsp.org/index.php?option=com_agora&task=topic&id=686&Itemid=57|подсветки синтаксиса для **Notepad++** и **AkelPad**]], но были утеряны. | - Существовали разные [[https://qsp.org/index.php?option=com_agora&task=topic&id=686&Itemid=57|подсветки синтаксиса для **Notepad++** и **AkelPad**]], но были утеряны. | ||
- | - Подсветка синтаксиса для Sublime Text входит в [[https://github.com/AleksVersus/JAD_for_QSP|пакет JAD на QSP для Sublime Text]]. | + | - Подсветка синтаксиса для Sublime Text входит в **[[https://github.com/AleksVersus/JAD_for_QSP|пакет QSP для Sublime Text]]**. В этот же пакет встроен плагин с конвертерами qsps и QSP-файлов в любую сторону. |
- Существует подсветка для [[https://qsp.org/components/com_agora/img/members/20/notepad-qsp.zip|Notepad++ от Олегуса]]. С этой подсветкой ассоциируются текстовые файлы с расширением "''.tqsp''", однако вы можете отредактировать файл подсветки, указав нужное вам расширение. | - Существует подсветка для [[https://qsp.org/components/com_agora/img/members/20/notepad-qsp.zip|Notepad++ от Олегуса]]. С этой подсветкой ассоциируются текстовые файлы с расширением "''.tqsp''", однако вы можете отредактировать файл подсветки, указав нужное вам расширение. | ||
- Werewolf разработал утилиту для конвертирования QSP-файла в текстовый формат (аналог **qsp2txt**), которая работает онлайн: [[https://codepen.io/srg-kostyrko/full/QWqdwxv|https://codepen.io/srg-kostyrko/full/QWqdwxv]]. Так же он разработал специальные пакеты для конвертирования файлов в любую сторону: [[https://github.com/QSPFoundation/converters|https://github.com/QSPFoundation/converters]]. | - Werewolf разработал утилиту для конвертирования QSP-файла в текстовый формат (аналог **qsp2txt**), которая работает онлайн: [[https://codepen.io/srg-kostyrko/full/QWqdwxv|https://codepen.io/srg-kostyrko/full/QWqdwxv]]. Так же он разработал специальные пакеты для конвертирования файлов в любую сторону: [[https://github.com/QSPFoundation/converters|https://github.com/QSPFoundation/converters]]. |