Здесь показаны различия между двумя версиями данной страницы.
| Следущая версия | Предыдущая версия | ||
|
help:txt2gam_manual [2023/01/03 15:11] aleks_versus создано |
help:txt2gam_manual [2026/04/07 12:29] (текущий) aleks_versus |
||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| ====== Пишем QSP-игру в текстовом редакторе ====== | ====== Пишем QSP-игру в текстовом редакторе ====== | ||
| - | Для того, чтобы написать свой текстовый квест, понадобится любой текстовый редактор и программа [[#informarch_txt2gam_manual|TXT2GAM]]. Для более удобного использования этой программы существует специальная оболочка [[https://qsp.org/index.php?option=com_content&task=view&id=53&Itemid=56|GAMConv]], которой можно пользоваться для конвертирования кода уроков. Для проигрывания квеста понадобится [[https://qsp.org/index.php?option=com_content&view=article&id=64&Itemid=56|QSP-плеер]]. | + | Для того, чтобы написать свой текстовый квест, понадобится любой текстовый редактор и программа [[https://qsp.org/index.php?option=com_content&task=view&id=52&Itemid=56l|TXT2GAM]]. Для более удобного использования этой программы существует специальная оболочка [[https://qsp.org/index.php?option=com_content&task=view&id=53&Itemid=56|GAMConv]], которой можно пользоваться для конвертирования кода уроков. Для проигрывания квеста понадобится [[https://qsp.org/articles/2-pleery-igr|QSP-плеер]]. |
| В примерах будут использоваться комментарии - строки, которые игрок не увидит и которые служат для того, чтобы можно было делать в коде игры различные заметки. Комментарий начинается с восклицательного знака ''!''. | В примерах будут использоваться комментарии - строки, которые игрок не увидит и которые служат для того, чтобы можно было делать в коде игры различные заметки. Комментарий начинается с восклицательного знака ''!''. | ||
| Строка 15: | Строка 15: | ||
| ===== Урок 1. Локации, Действия, Переходы ===== | ===== Урок 1. Локации, Действия, Переходы ===== | ||
| - | Текстовый квест в QSP состоит из отдельных локаций (кадров, сцен, эпизодов), на которых могут выполняться различные игровые действия. Каждая локация имеет начало (тут же указывается имя локации), код локации (середину) и конец (знак «-», минус). | + | Текстовый квест в QSP состоит из отдельных локаций (кадров, сцен, эпизодов), на которых могут выполняться различные игровые действия. Каждая локация имеет начало (тут же указывается имя локации), код локации (середину) и конец (два знака минус ''%%--%%'', дефис). |
| Пример: | Пример: | ||
| Строка 22: | Строка 22: | ||
| # Имя_локации | # Имя_локации | ||
| ! тут идёт код локации | ! тут идёт код локации | ||
| - | - | + | -- |
| </sxh> | </sxh> | ||
| - | Проигрывание квеста начинается с самой первой локации. Традиционно эта локация называется "Начало". Для того, чтобы вывести в игре текст, вы просто пишете строку в коде локации, заключённую в кавычки ('' или ""). | + | Проигрывание квеста начинается с самой первой локации. Традиционно эта локация называется "Начало". Для того, чтобы вывести в игре текст, вы просто пишете строку в коде локации, заключённую в кавычки (''%%''%%'' или ''""''). |
| Пример ("''1.txt''"): | Пример ("''1.txt''"): | ||
| Строка 32: | Строка 32: | ||
| # Начало | # Начало | ||
| 'Привет мир!' | 'Привет мир!' | ||
| - | - | + | -- |
| </sxh> | </sxh> | ||
| Строка 50: | Строка 50: | ||
| GOTO 'Вторая_локация' | GOTO 'Вторая_локация' | ||
| END | END | ||
| - | - | + | -- |
| # Вторая_локация | # Вторая_локация | ||
| 'Вы только что совершили переход в другую локацию.' | 'Вы только что совершили переход в другую локацию.' | ||
| 'Этот текст начинается с новой строки.' | 'Этот текст начинается с новой строки.' | ||
| ACT 'Вернуться обратно': GOTO 'Начало' | ACT 'Вернуться обратно': GOTO 'Начало' | ||
| - | - | + | -- |
| </sxh> | </sxh> | ||
| Строка 62: | Строка 62: | ||
| Если инструкция одна, то мы можем писать её сразу после двоеточия, на той же строке, в этом случае «END» ставить не обязательно (см. Вторая_локация). | Если инструкция одна, то мы можем писать её сразу после двоеточия, на той же строке, в этом случае «END» ставить не обязательно (см. Вторая_локация). | ||
| - | В нашем случае инструкциями является переход на другую локацию. Он осуществляется командой «GOTO», после которой идёт имя новой локации, заключённой в кавычки. Как вы уже заметили, все строки в QSP заключены в кавычки ('' или ""), это специфика синтаксиса, которую необходимо соблюдать. | + | В нашем случае инструкциями является переход на другую локацию. Он осуществляется командой «GOTO», после которой идёт имя новой локации, заключённой в кавычки. Как вы уже заметили, все строки в QSP заключены в кавычки (''%%''%%'' или ''""''), это специфика синтаксиса, которую необходимо соблюдать. |
| Отконвертировав этот пример, вы сможете походить по двум локациям. | Отконвертировав этот пример, вы сможете походить по двум локациям. | ||
| Строка 81: | Строка 81: | ||
| ' Ваша цель - зарабатывать деньги, покупать на них подарки и дарить своим близким.' | ' Ваша цель - зарабатывать деньги, покупать на них подарки и дарить своим близким.' | ||
| ACT 'Начать игру': GOTO 'Дом' | ACT 'Начать игру': GOTO 'Дом' | ||
| - | - | + | -- |
| # Работа | # Работа | ||
| ' Порт находится на самой южной окраине города. Здесь постоянно загружаются и разгружаются различные суда. Рабочих рук не хватает и складской бригадир всегда рад заплатить деньги за помощь.' | ' Порт находится на самой южной окраине города. Здесь постоянно загружаются и разгружаются различные суда. Рабочих рук не хватает и складской бригадир всегда рад заплатить деньги за помощь.' | ||
| ACT 'Идти домой': GOTO 'Дом' | ACT 'Идти домой': GOTO 'Дом' | ||
| ACT 'Идти в магазин': GOTO 'Магазин' | ACT 'Идти в магазин': GOTO 'Магазин' | ||
| - | - | + | -- |
| # Магазин | # Магазин | ||
| ' Магазин небольшой, но тут обычно есть всё, что нужно простому горожанину. Витрины заставлены различными товарами. У кассы стоит полная женщина и хмуро смотрит на вас.' | ' Магазин небольшой, но тут обычно есть всё, что нужно простому горожанину. Витрины заставлены различными товарами. У кассы стоит полная женщина и хмуро смотрит на вас.' | ||
| ACT 'Идти домой': GOTO 'Дом' | ACT 'Идти домой': GOTO 'Дом' | ||
| ACT 'Идти в порт': GOTO 'Работа' | ACT 'Идти в порт': GOTO 'Работа' | ||
| - | - | + | -- |
| # Дом | # Дом | ||
| ' Дома всегда очень уютно. И вкусно пахнет едой. Мама, сидя в кресле, вяжет носки. Отец с вашим братом чинит скворечник. Сестра хлопочет на кухне. Дома всегда хорошо.' | ' Дома всегда очень уютно. И вкусно пахнет едой. Мама, сидя в кресле, вяжет носки. Отец с вашим братом чинит скворечник. Сестра хлопочет на кухне. Дома всегда хорошо.' | ||
| ACT 'Идти в порт': GOTO 'Работа' | ACT 'Идти в порт': GOTO 'Работа' | ||
| ACT 'Идти в магазин': GOTO 'Магазин' | ACT 'Идти в магазин': GOTO 'Магазин' | ||
| - | - | + | -- |
| </sxh> | </sxh> | ||
| Строка 117: | Строка 117: | ||
| ' Ваша цель - зарабатывать деньги, покупать на них подарки и дарить своим близким.' | ' Ваша цель - зарабатывать деньги, покупать на них подарки и дарить своим близким.' | ||
| ACT 'Начать игру': GOTO 'Дом' | ACT 'Начать игру': GOTO 'Дом' | ||
| - | - | + | -- |
| # Работа | # Работа | ||
| ' Порт находится на самой южной окраине города. Здесь постоянно загружаются и разгружаются различные суда. Рабочих рук не хватает и складской бригадир всегда рад заплатить деньги за помощь.' | ' Порт находится на самой южной окраине города. Здесь постоянно загружаются и разгружаются различные суда. Рабочих рук не хватает и складской бригадир всегда рад заплатить деньги за помощь.' | ||
| Строка 132: | Строка 132: | ||
| GOTO 'Работа' | GOTO 'Работа' | ||
| END | END | ||
| - | - | + | -- |
| # Магазин | # Магазин | ||
| ' Магазин небольшой, но тут обычно есть всё, что нужно простому горожанину. Витрины заставлены различными товарами. У кассы стоит полная женщина и хмуро смотрит на вас.' | ' Магазин небольшой, но тут обычно есть всё, что нужно простому горожанину. Витрины заставлены различными товарами. У кассы стоит полная женщина и хмуро смотрит на вас.' | ||
| Строка 144: | Строка 144: | ||
| ACT 'Идти в порт': GOTO 'Работа' | ACT 'Идти в порт': GOTO 'Работа' | ||
| ACT 'Идти в магазин': GOTO 'Магазин' | ACT 'Идти в магазин': GOTO 'Магазин' | ||
| - | - | + | -- |
| </sxh> | </sxh> | ||
| Строка 169: | Строка 169: | ||
| ' Ваша цель - зарабатывать деньги, покупать на них подарки и дарить своим близким.' | ' Ваша цель - зарабатывать деньги, покупать на них подарки и дарить своим близким.' | ||
| ACT 'Начать игру': GOTO 'Дом' | ACT 'Начать игру': GOTO 'Дом' | ||
| - | - | + | -- |
| # Работа | # Работа | ||
| ' Порт находится на самой южной окраине города. Здесь постоянно загружаются и разгружаются различные суда. Рабочих рук не хватает и складской бригадир всегда рад заплатить деньги за помощь.' | ' Порт находится на самой южной окраине города. Здесь постоянно загружаются и разгружаются различные суда. Рабочих рук не хватает и складской бригадир всегда рад заплатить деньги за помощь.' | ||
| Строка 184: | Строка 184: | ||
| GOTO 'Работа' | GOTO 'Работа' | ||
| END | END | ||
| - | - | + | -- |
| # Магазин | # Магазин | ||
| ' Магазин небольшой, но тут обычно есть всё, что нужно простому горожанину. Витрины заставлены различными товарами. У кассы стоит полная женщина и хмуро смотрит на вас.' | ' Магазин небольшой, но тут обычно есть всё, что нужно простому горожанину. Витрины заставлены различными товарами. У кассы стоит полная женщина и хмуро смотрит на вас.' | ||
| Строка 216: | Строка 216: | ||
| ACT 'Идти домой': GOTO 'Дом' | ACT 'Идти домой': GOTO 'Дом' | ||
| ACT 'Идти в порт': GOTO 'Работа' | ACT 'Идти в порт': GOTO 'Работа' | ||
| - | - | + | -- |
| # Дом | # Дом | ||
| ' Дома всегда очень уютно. И вкусно пахнет едой. Мама, сидя в кресле, вяжет носки. Отец с вашим братом чинит скворечник. Сестра хлопочет на кухне. Дома всегда хорошо.' | ' Дома всегда очень уютно. И вкусно пахнет едой. Мама, сидя в кресле, вяжет носки. Отец с вашим братом чинит скворечник. Сестра хлопочет на кухне. Дома всегда хорошо.' | ||
| Строка 222: | Строка 222: | ||
| ACT 'Идти в порт': GOTO 'Работа' | ACT 'Идти в порт': GOTO 'Работа' | ||
| ACT 'Идти в магазин': GOTO 'Магазин' | ACT 'Идти в магазин': GOTO 'Магазин' | ||
| - | - | + | -- |
| </sxh> | </sxh> | ||
| Строка 235: | Строка 235: | ||
| ' Ваша цель - зарабатывать деньги, покупать на них подарки и дарить своим близким.' | ' Ваша цель - зарабатывать деньги, покупать на них подарки и дарить своим близким.' | ||
| ACT 'Начать игру': GOTO 'Дом' | ACT 'Начать игру': GOTO 'Дом' | ||
| - | - | + | -- |
| # Работа | # Работа | ||
| ' Порт находится на самой южной окраине города. Здесь постоянно загружаются и разгружаются различные суда. Рабочих рук не хватает и складской бригадир всегда рад заплатить деньги за помощь.' | ' Порт находится на самой южной окраине города. Здесь постоянно загружаются и разгружаются различные суда. Рабочих рук не хватает и складской бригадир всегда рад заплатить деньги за помощь.' | ||
| Строка 250: | Строка 250: | ||
| GOTO 'Работа' | GOTO 'Работа' | ||
| END | END | ||
| - | - | + | -- |
| # Магазин | # Магазин | ||
| ' Магазин небольшой, но тут обычно есть всё, что нужно простому горожанину. Витрины заставлены различными товарами. У кассы стоит полная женщина и хмуро смотрит на вас.' | ' Магазин небольшой, но тут обычно есть всё, что нужно простому горожанину. Витрины заставлены различными товарами. У кассы стоит полная женщина и хмуро смотрит на вас.' | ||
| Строка 282: | Строка 282: | ||
| ACT 'Идти домой': GOTO 'Дом' | ACT 'Идти домой': GOTO 'Дом' | ||
| ACT 'Идти в порт': GOTO 'Работа' | ACT 'Идти в порт': GOTO 'Работа' | ||
| - | - | + | -- |
| # Дом | # Дом | ||
| ' Дома всегда очень уютно. И вкусно пахнет едой. Мама, сидя в кресле, вяжет носки. Отец с вашим братом чинит скворечник. Сестра хлопочет на кухне. Дома всегда хорошо.' | ' Дома всегда очень уютно. И вкусно пахнет едой. Мама, сидя в кресле, вяжет носки. Отец с вашим братом чинит скворечник. Сестра хлопочет на кухне. Дома всегда хорошо.' | ||
| Строка 320: | Строка 320: | ||
| ACT 'Идти в порт': GOTO 'Работа' | ACT 'Идти в порт': GOTO 'Работа' | ||
| ACT 'Идти в магазин': GOTO 'Магазин' | ACT 'Идти в магазин': GOTO 'Магазин' | ||
| - | - | + | -- |
| </sxh> | </sxh> | ||
| Конструкция **IF OBJ 'имя_предмета'** проверяет, есть ли у игрока в инвентаре указанный предмет. В нашем случае мы проверяем наличие тех предметов, которые мы можем купить в магазине. И если у игрока есть такие предметы - создаём действие «дарения» этих предметов. Когда игрок совершит действие, мы заберем у него тот предмет, который он хочет подарить и выводим диалог благодарности за подарок. К тому же, мы используем команду ''**DELACT**'', которой удаляем действие, указанное после этой команды. | Конструкция **IF OBJ 'имя_предмета'** проверяет, есть ли у игрока в инвентаре указанный предмет. В нашем случае мы проверяем наличие тех предметов, которые мы можем купить в магазине. И если у игрока есть такие предметы - создаём действие «дарения» этих предметов. Когда игрок совершит действие, мы заберем у него тот предмет, который он хочет подарить и выводим диалог благодарности за подарок. К тому же, мы используем команду ''**DELACT**'', которой удаляем действие, указанное после этой команды. | ||
| Строка 334: | Строка 334: | ||
| SHOWSTAT 0 | SHOWSTAT 0 | ||
| SHOWINPUT 0 | SHOWINPUT 0 | ||
| - | - | + | -- |
| </sxh> | </sxh> | ||
| Строка 350: | Строка 350: | ||
| $FNAME = 'Arial' | $FNAME = 'Arial' | ||
| 'Этот текст написан красным цветом, четырнадцатым размером и шрифтом Arial на чёрном фоне.' | 'Этот текст написан красным цветом, четырнадцатым размером и шрифтом Arial на чёрном фоне.' | ||
| - | - | + | -- |
| </sxh> | </sxh> | ||
| Строка 374: | Строка 374: | ||
| ' <b>Ваша цель</b> - зарабатывать <i>деньги</i>, покупать на них <i>подарки</i> и дарить своим <i>близким</i>.' | ' <b>Ваша цель</b> - зарабатывать <i>деньги</i>, покупать на них <i>подарки</i> и дарить своим <i>близким</i>.' | ||
| ACT '<b>Начать игру</b>': GOTO 'Дом' | ACT '<b>Начать игру</b>': GOTO 'Дом' | ||
| - | - | + | -- |
| # Работа | # Работа | ||
| '<center><b>Порт</b></center><br>' | '<center><b>Порт</b></center><br>' | ||
| Строка 390: | Строка 390: | ||
| GOTO 'Работа' | GOTO 'Работа' | ||
| END | END | ||
| - | - | + | -- |
| # Магазин | # Магазин | ||
| '<center><b>Магазин</b></center><br>' | '<center><b>Магазин</b></center><br>' | ||
| Строка 423: | Строка 423: | ||
| ACT 'Идти домой': GOTO 'Дом' | ACT 'Идти домой': GOTO 'Дом' | ||
| ACT 'Идти в порт': GOTO 'Работа' | ACT 'Идти в порт': GOTO 'Работа' | ||
| - | - | + | -- |
| # Дом | # Дом | ||
| '<center><b>Дом</b></center><br>' | '<center><b>Дом</b></center><br>' | ||
| Строка 462: | Строка 462: | ||
| ACT 'Идти в порт': GOTO 'Работа' | ACT 'Идти в порт': GOTO 'Работа' | ||
| ACT 'Идти в магазин': GOTO 'Магазин' | ACT 'Идти в магазин': GOTO 'Магазин' | ||
| - | - | + | -- |
| </sxh> | </sxh> | ||