QSP Уроки: различия между версиями
Содержимое удалено Содержимое добавлено
Elmortem (обсуждение | вклад) м →Вводное слово, Коментарии: про GAMConv |
Byte (обсуждение | вклад) мНет описания правки |
||
Строка 1:
__NOTOC__
==Вводное слово,
[[QSP]] - программа для игры в текстовые квесты специального формата. Для того, чтобы написать свой текстовый квест вам понадобится любой текстовый редактор и программа [[TXT2GAM]]. Для более удобного использования этой программы я написал специальную оболочку [[GAMConv]], которой вы можете пользоваться для конвертирования кода уроков.<br>
В примерах будут использоваться
''Пример:''
<pre>! эта строка видна только создателю квеста, игрок её не увидит</pre>
О других применениях
==Урок 1. Локации, Действия, Переходы==
Текстовый квест в [[QSP]] состоит из отдельных локаций, на которых могут выполняться различные игровые действия. Каждая локация имеет начало (тут же указывается имя локации), код локации (середину) и конец (знак «-», минус).
''Пример:''
Строка 18:
-</pre>
Проигрывание квеста начинается с самой первой локации. Традиционно эта локация называется "Начало".
Для того, чтобы вывести в игре текст вы просто пишете строку в коде локации, заключённую в
''Пример (1.txt):''
Строка 40:
ACT 'Вернуться обратно':GOTO 'Начало'
-</pre>
Вторая локация создаётся точно так же, как и первая. Как можно
Как вы уже заметили, все строки в [[QSP]] заключены в апострофы, это специфика синтаксиса, которую необходимо соблюдать.
Отконвертировав этот пример, вы сможете походить по двум локациям.
Это основа всех квестов на [[QSP]]. Дальше мы попробуем неспеша сделать небольшой квест, в каждом новом уроке добавляя ему новые элементы, пока не охватим все возможности [[QSP]].
==Урок 2. Переменные, Условия==
Пусть у нас будет игра из трёх локаций. В одной локации игрок сможет зарабатывать деньги, в другой - тратить их на различные предметы, в третьей - дарить эти предметы различным людям. К этим
''Пример (3.txt):''
Строка 65:
-
#Дом
' Дома всегда очень уютно. И вкусно пахнет едой. Мама, сидя в кресле, вяжет носки. Отец с вашим братом чинит скворечник. Сестра хлопочит на кухне. Дома всегда
ACT 'Идти в порт':GOTO 'Работа'
ACT 'Идти в магазин':GOTO 'Магазин'
-</pre>
Можете откомпилировать и походить по городу.
Теперь нам нужно добавить игроку деньги и механизм их зарабатывания. Деньги мы реализуем с помощью переменных.
''Пример:''
Строка 108:
ACT 'Идти в магазин':GOTO 'Магазин'
-</pre>
Для того, чтобы в тексте локации вывести значение переменной используется конструкция «'<<Имя_переменной>>'». Таким образом мы изменили все локации, чтобы на них выводилось количество монет у игрока. К тому же, в локации «Порт» показывается
Условия в [[QSP]] задаются командой «IF», после которой идёт само условие и ставится двоеточие. Затем идут инструкции, которые выполнятся, если условие верное и ставится команда «END», которая завершает условие. В нашем случае мы проверяем, равна ли переменная «Ящик» трём. Если равна, то мы увеличиваем переменную «Деньги» на пять и приравниваем переменную «Ящик» к нулю, чтобы можно было
Чтобы текст игры обновился и игрок увидел новые значения переменных, нужно перейти на ту же локацию.
Отконвертируйте и запустите пример, теперь игрок сможет зарабатывать деньги переноской ящиков.
==Урок 3. Инвентарь==
Теперь нам нужно добавить игроку возможность покупать различные предметы в магазине и затем дарить. Для предметов очень
Чтобы добавить предмет в инвентарь, есть команда «ADDOBJ», после
''Пример (5.txt):''
Строка 176:
ACT 'Идти в магазин':GOTO 'Магазин'
-</pre>
С помощью условий мы заранее проверяем, есть ли у игрока достаточно денег, чтобы купить тот или иной предмет. И если денег хватает - добавляем действие покупки этого предмета. Когда игрок выбирает действие купить что-либо, мы забираем у него монеты, добавляем в его инвентарь предмет и делаем переход на ту же локацию («Магазин»), чтобы количество денег пересчиталось.
Следующим важным моментом будет механизм "дарения" предметов. Он будет реализован в локации «Дом».
Строка 269:
ACT 'Идти в магазин':GOTO 'Магазин'
-</pre>
Конструкция «IF OBJ 'имя_предмета'» проверяет, есть ли у игрока в инвентаре указанный предмет. В нашем случае мы проверяем наличие тех предметов, которые мы можем купить в магазине. И если у игрока есть такие предметы - создаём действие «дарения» этих предметов. Когда игрок совершит действие, мы
| |||