Учебник по QSP для редактора QGen - Урок шестой. Берём предметы. |
Автор: Nex |
27.02.2009 10:41 |
Страница 7 из 8
Урок шестой. Берём предметы.В текстовых играх часто применяются предметы. Для того, чтобы игрок всегда знал, какие предметы у него с собой, в QSP есть специальное окно инвентаря(с заголовком "Предметы"). Когда игрок берет предмет, тот появляется в инвентаре. Для того, чтобы добавить предмет в инвентарь, используется оператор ADDOBJ, для того, чтобы удалить предмет из инвентаря, используется оператор DELOBJ.
ADDOBJ 'Название предмета' DELOBJ 'Название предмета'
Вы спасли гномьего короля от смерти в лапах тигра. - Бери алмазов сколько захочешь, бери рубинов, сколько унесёшь, бери Меч Справедливости, он у нас один.
Напишем действие для того, чтобы брать алмазы. Создайте действие "Взять алмаз". В коде действия пишем: ADDOBJ 'Алмаз' Действие готово. Теперь, когда игрок выберет это действие, в инвентаре добавится предмет "Алмаз". Сколько раз нажмет, столько алмазов добавится, без ограничений по количеству.
Напишем действие для того, чтобы брать рубины. По замыслу игры, игроку позволено взять только 5 рубинов. Создайте действие "Взять рубин". В коде действия пишем: IF Количество_Рубинов < 5: ADDOBJ 'Рубин' Количество_Рубинов = Количество_Рубинов + 1 ELSE 'Жадность не порок, но вы не можете унести больше, чем уже взяли.' END В этом действии делается проверка на количество рубинов, которые уже взял игрок. Если количество рубинов меньше 5, то он может взять еще один рубин. Если нет, то выводим строку текста. Обратите внимание на строку Количество_Рубинов = Количество_Рубинов + 1 Здесь переменная "Количество_Рубинов" увеличивается на 1 каждый раз, когда игрок берет рубин. Такую переменную называют "счетчиком". Пока игрок не взял ни одного рубина, в этой переменной будет значение 0. Когда игрок будет брать рубины, это значение будет увеличиваться, пока не достигнет максимального значения 5.
Напишем действие для того, чтобы взять меч. Это действие будет присутствовать на локации только в том случае, если игрок еще не взял меч. Поэтому мы не создадим действие как обычно, а напишем его в коде самой локации, "обернув" его в условие. Пишем в коде локации: IF Меч = 0: ACT 'Взять Меч Справедливости': ADDOBJ 'Меч Справедливости' Меч = 1 GOTO $CURLOC END END Переменная "Меч" принимает всего два значения: 0 и 1. Такую переменную назвают "флажком". Изначально в переменной "Меч", как и в любой другой числовой переменной, хранится значение 0. Условие "Меч = 0" выполняется, и действие "Взять Меч Справедливости" добавляется в список действий. Рассмотрим подробно, что произойдет, когда игрок выберет это действие. ADDOBJ 'Меч Справедливости' В инвентарь добавляется предмет "Меч Справедливости". Меч = 1 В переменную "Меч" записывается значение 1. Мы "установили флажок", теперь игра "помнит", что игрок взял меч. GOTO $CURLOC Переход на текущую локацию. Заново выводится описание локации, заполняется список действий, и выполняется код локации. Условие "Меч = 0" не выполнится, и поэтому действие "Взять Меч Справедливости" не будет добавлено.
|
- Чекпойнты - автоматическое сохранение
- Выбор случайных вариантов - тянем карты из колоды [1.0]
- Плавное изменение цвета фона [1.0]
- Игровое время [1.0]
- Плавная остановка музыки в игре
- Поиск кратчайшего пути между городами
- Мини-игра "Взорви зомби" - пример использования локации-счётчика
- Архив примеров кода - "28 в 1"
- BlackJack Lite [1.1]
- Пример реализации боя [1.0]
- Back Tutorial [1.0]
- HTML Sample [1.0]
- Гибкий плейлист [1.0]
- Использование Wiki разметки [1.1]
- Использование в HTML специальных символов [1.0]
- Оформление меню для игры [1.0]
- Сапер [1.1]
- Конь и ферзь [1.0]
- Жизнь 1.0
- Создание диалогов [1.1]
- Библиотечка дополняющая инвентарь 0.76