Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
help:sluzhebnye_lokacii [2013/11/05 17:09] newsash |
— (текущий) | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | =====Служебные локации===== | ||
- | В QSP есть возможность сделать так, что бы локация выполнялась каждый раз при возникновении определенного события. Для этого нужно присвоить название локации предназначенной для этого системной переменной. Пример: <sxh qsp> | ||
- | $onobjsel = '$onobjsel' | ||
- | $onnewloc = '$перерисовка' | ||
- | </sxh> | ||
- | * Сохранения: | ||
- | * **$ONGLOAD** - сразу после загрузки состоянии игры | ||
- | * **$ONGSAVE** - непосредственно перед сохранением состояния игры | ||
- | * Предметы: | ||
- | * **$ONOBJADD** - при добавлении предмета | ||
- | * $ARGS[0] - название добавленного предмета | ||
- | * **$ONOBJDEL** - при удалении предмета | ||
- | * $ARGS[0] - название удалённого предмета | ||
- | * **$ONOBJSEL** - при выборе предмета | ||
- | * Получить название выбранного предмета можно через функцию "SELOBJ". <sxh qsp> | ||
- | if $selobj = 'чайник': | ||
- | P 'Самый обычный чугунный чайник.' | ||
- | end | ||
- | </sxh> | ||
- | * При выборе играющим какого-либо предмета, он остаётся выделенным. Снять выделение можно командой UNSELECT или UNSEL. <sxh qsp> | ||
- | if selobj = 'нож': | ||
- | *P 'Нельзя убить этого человека' | ||
- | unsel | ||
- | end | ||
- | </sxh> | ||
- | * Локации: | ||
- | * **$ONNEWLOC** - при переходе на новую локацию | ||
- | * Выполняется перед передачей управления игроку (после выполнения кода всех участвующих в переходах локаций) | ||
- | * Получить название локации, на которую был осуществлён переход, можно с помощью функции "CURLOC"<sxh qsp> | ||
- | if $curloc = 'дом': кошка = 1 | ||
- | </sxh> | ||
- | * Действия: | ||
- | * **$ONACTSEL** - при выборе действия. | ||
- | * Именно при выборе действия, а не при нажатии действия. | ||
- | * Получить название выбранного действия можно через функцию"SELACT".<sxh qsp> | ||
- | if instr(1,$selact,'Пойти'): play 'sounds\walk.mp3' | ||
- | </sxh> | ||
- | * Время | ||
- | * $COUNTER - содержит название локации-счётчика. Локация-счётчик полезна для проверки выделенных предметов, введённого текста... | ||
- | * SETTIMER [#выражение] - задает интервал таймера для локации-счётчика (по умолчанию 500мс, т.е. локация-счётчик обрабатывается 2 раза в секунду). Также влияет на частоту автоматического обновления интерфейса. | ||
- | * Строка ввода | ||
- | * $USERCOM - содержит название локации-обработчика строки ввода. Полезна при организации парсера (управление игрой с помощью строки ввода). Текущий текст строки ввода возвращает функция "USER_TEXT". | ||
- | |||
- | PS: | ||
- | |||
- | При обработке локаций по GOSUB, а также локаций, на которые указывают пункты пользовательского меню и системные переменные ($COUNTER, $USERCOM, $ONGLOAD, $ONGSAVE, $ONNEWLOC, $ONACTSEL, $ONOBJSEL, $ONOBJADD, $ONOBJDEL), учитываются базовые описания и действия на локациях (при отсутствии действий с такими же названиями - к текущим действиям добавляются базовые действия обрабатываемой локации, базовое описание локации добавляется к текущему основному описанию). Аналогично, при вызовах XGOTO, к текущему основному описанию добавляется базовое описание локации, на которую произошёл переход. | ||
- | |||
- | |||
- | PS: | ||
- | |||
- | Очистить строку ввода можно в любом месте игры с помощью оператора "CMDCLEAR". | ||
- | |||
- | Базовые системные переменные - основные переменные. | ||
- | Переменные, задающие обработчики событий - позволяют обрабатывать такие события, как выбор предмета, переход на новую локацию, ввод строки в поле ввода... | ||
- | Переменные настройки интерфейса - позволяют настраивать цвета, шрифт, а также использовать в описаниях HTML. | ||
- | |||
- | PS: | ||
- | При использовании операторов "KILLALL, KILLVAR" удаляются также все системные переменные. |