Инструменты пользователя

Инструменты сайта


help:txt2gam

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:txt2gam [2023/01/03 14:59]
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) =====
  
Строка 13: Строка 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>
Строка 25: Строка 23:
 </​sxh>​ </​sxh>​
  
-Конец локации обозначается символом ''​**-**'' ​(дефис) в отдельной строке. После этого ​символа ​в той же строке могут идти любые символы,​ например,​ снова название локации:​+Конец локации обозначается строкой **''​%%--%%''​** (дефиса) в отдельной строке. После этого в той же строке могут идти любые символы,​ например,​ снова название локации:​
  
 <sxh qsp> <sxh qsp>
-- начало+-- начало
 </​sxh>​ </​sxh>​
  
Строка 40: Строка 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>
Строка 70: Строка 59:
 "​Какой-то код. Много-много кода "​Какой-то код. Много-много кода
 Этот код попадёт в локацию"​ Этот код попадёт в локацию"​
-! пытаемся вывести произведение 45 и 9 умноженное на -+--
--(45*9)+
 "А вот этот код не попадёт в локацию"​ "А вот этот код не попадёт в локацию"​
-- начало (хотим,​ чтобы конец локации был здесь) +-- начало (хотим,​ чтобы конец локации был здесь)
-Все строки от -(45*9) будут проигнорированы+
  
 # локация 2 # локация 2
 ! какой-то код ! какой-то код
-- локация 2+-- локация 2
 </​sxh>​ </​sxh>​
  
-Если не закрыть локацию строкой начинающейся с ''​**-**'',​ новую локацию открыть будет нельзя,​ а значит строка,​ начинающаяся с символа ​''​**#**''​ может вызвать ошибку "​Неизвестное действие"​ в конечной игре:+Если не закрыть локацию строкойначинающейся с **''​%%--%%''​**, новую локацию открыть будет нельзя,​ а значит строка,​ начинающаяся с символа **''​#''​** может вызвать ошибку "​Неизвестное действие"​ в конечной игре:
  
 <sxh qsp> <sxh qsp>
Строка 88: Строка 75:
 # локация 2 # локация 2
 "​Забыли закрыть локацию перед открытием новой"​ "​Забыли закрыть локацию перед открытием новой"​
-- локация 2+-- локация 2
 </​sxh>​ </​sxh>​
  
Строка 111: Строка 98:
 Для удобства скопируйте утилиту **TXT2GAM** (т.е. файл "''​txt2gam.exe''"​) в папку с игрой. Теперь для конвертирования игры вам нужно сделать следующее:​ Для удобства скопируйте утилиту **TXT2GAM** (т.е. файл "''​txt2gam.exe''"​) в папку с игрой. Теперь для конвертирования игры вам нужно сделать следующее:​
  
- 1. Откройте консоль + Откройте консоль 
- 2. Перейдите на диск "''​D:''",​ введя команду ''​**D:​**''​ в командной строке и нажав клавишу "​Enter"​. + Перейдите на диск "''​D:''",​ введя команду ''​**D:​**''​ в командной строке и нажав клавишу "​Enter"​. 
- 3. Перейдите в папку с вашей игрой с помощью команды **cd**. В нашем примере это делается так ''​**cd "​QSP\Games\myCoolGame"​**''​ + Перейдите в папку с вашей игрой с помощью команды **cd**. В нашем примере это делается так ''​**cd "​QSP\Games\myCoolGame"​**''​ 
- 4. Запустите утилиту **TXT2GAM**,​ указав в качестве параметров сначала исходный файл вашей игры (т.е. "''​game.txt''"​),​ а затем название файла, который хотите получить,​ например "''​myCoolGame.qsp''":​+ Запустите утилиту **TXT2GAM**,​ указав в качестве параметров сначала исходный файл вашей игры (т.е. "''​game.txt''"​),​ а затем название файла, который хотите получить,​ например "''​myCoolGame.qsp''":​
 <sxh> <sxh>
  txt2gam.exe game.txt myCoolGame.qsp  txt2gam.exe game.txt myCoolGame.qsp
Строка 131: Строка 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>​
  
Строка 149: Строка 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-строки из текста.+
  
 ==== Примеры вызова:​ ==== ==== Примеры вызова:​ ====
Строка 193: Строка 179:
 Теперь нужно в редакторе добавить действие/​кнопку,​ при нажатии на которую будет запущен файл "''​start.bat''"​ с двумя аргументами - указанием исходного TXT-файла и конечного "''​.qsp''"​-файла. Теперь нужно в редакторе добавить действие/​кнопку,​ при нажатии на которую будет запущен файл "''​start.bat''"​ с двумя аргументами - указанием исходного TXT-файла и конечного "''​.qsp''"​-файла.
  
- 1. Запустите EmEditor, выберите в меню **Tools / External Tools / Customize Tools...** + Запустите EmEditor, выберите в меню **Tools / External Tools / Customize Tools...** 
- 2. В появившемся окошке нажмите кнопку **New**. + В появившемся окошке нажмите кнопку **New**. 
- 3. В поле **Title** впишите название действия (например,​ "​QSP"​). + В поле **Title** впишите название действия (например,​ "​QSP"​). 
- 4. В поле **Command** строку ''​D:​\Games\QSP\start.bat''​ + В поле **Command** строку ''​D:​\Games\QSP\start.bat''​ 
- 5. В поле **Arguments** строку ''"​$(Path)"​ "​$(Dir)\$(Filename).gam"''​ (сохраняя кавычки) + В поле **Arguments** строку ''"​$(Path)"​ "​$(Dir)\$(Filename).gam"''​ (сохраняя кавычки) 
- 6. В поле **Initial Directory** строчку ''​D:​\Games\QSP''​ + В поле **Initial Directory** строчку ''​D:​\Games\QSP''​ 
- 7. Затем поставьте флажок напротив **Save File**, и нажмите **OK**. + Затем поставьте флажок напротив **Save File**, и нажмите **OK**. 
- 8. На панели инструментов появится новая кнопка с подписью "​QSP",​ при нажатии на которую будут произведены требуемые действия.+ На панели инструментов появится новая кнопка с подписью "​QSP",​ при нажатии на которую будут произведены требуемые действия.
  
 Теперь нужно назначить сочетание клавиш для кнопки. Теперь нужно назначить сочетание клавиш для кнопки.
  
- 1. Выберите пункт меню **Help / Keyboard Map...**. В категории **External Tools** найдите пункт **QSP** (обычно,​ в самом низу) и щелкните по нему 2 раза. + Выберите пункт меню **Help / Keyboard Map...**. В категории **External Tools** найдите пункт **QSP** (обычно,​ в самом низу) и щелкните по нему 2 раза. 
- 2. Установите курсор в поле **Press New Shortcut Key** и нажмите желаемое сочетание клавиш (к примеру,​ F1). Станет доступной кнопка **Assign**. Нажимаем. + Установите курсор в поле **Press New Shortcut Key** и нажмите желаемое сочетание клавиш (к примеру,​ F1). Станет доступной кнопка **Assign**. Нажимаем. 
- 3. Далее жмём **OK** и пишем игры в формате TXT2GAM :-)+ Далее жмём **OK** и пишем игры в формате TXT2GAM :-)
  
 Чтобы установить пароль на файл, создаваемый утилитой TXT2GAM, замените в файле **''​start.bat''​** строчку Чтобы установить пароль на файл, создаваемый утилитой TXT2GAM, замените в файле **''​start.bat''​** строчку
Строка 228: Строка 214:
 ===== Дополнительная информация и полезные ссылки:​ ===== ===== Дополнительная информация и полезные ссылки:​ =====
  
- 1. В настоящий момент общепринятым расширением для текстовых файлов формата **TXT2GAM** можно считать "''​.qsps''"​. "​Просто потому что"​ (с) [[https://​github.com/​gretmn102/​QSP-VSCode#​допустим-я-хочу-попробовать|Pseudopod]]. + В настоящий момент общепринятым расширением для текстовых файлов формата **TXT2GAM** можно считать "''​.qsps''"​. "​Просто потому что"​ (с) [[https://​github.com/​gretmn102/​QSP-VSCode#​допустим-я-хочу-попробовать|Pseudopod]]. 
- 2. Существует утилита **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]]. 
- 3. Существовали разные [[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**]],​ но были утеряны. 
- 4. Подсветка синтаксиса для 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-файлов в любую сторону. 
- 5. Существует подсветка для [[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''",​ однако вы можете отредактировать файл подсветки,​ указав нужное вам расширение. 
- 6. 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]]. 
- 7. Существует учебник по написанию игр на QSP, если вы начинаете сразу с работы в текстовом редакторе:​ [[help:​txt2gam_manual|Пишем QSP-игру в текстовом редакторе]]. + Существует учебник по написанию игр на QSP, если вы начинаете сразу с работы в текстовом редакторе:​ [[help:​txt2gam_manual|Пишем QSP-игру в текстовом редакторе]]. 
- 8. Можно дополнительно обрабатывать qsps-файлы специальными программами перед тем, как конвертировать в файл игры QSP. Эти программы называются препроцессорами. В 2010 году NTROPY написал статью на эту тему: [[help:​txt2gam_preprocessor|"​Препроцессор при использовании TXT2GAM"​]]+ Можно дополнительно обрабатывать qsps-файлы специальными программами перед тем, как конвертировать в файл игры QSP. Эти программы называются препроцессорами. В 2010 году NTROPY написал статью на эту тему: [[help:​txt2gam_preprocessor|"​Препроцессор при использовании TXT2GAM"​]]
  
 [[help:​analyzer|Вперёд:​ Анализатор кода]] [[help:​analyzer|Вперёд:​ Анализатор кода]]
help/txt2gam.1672757944.txt.gz · Последние изменения: 2023/01/03 14:59 — aleks_versus