Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия | |||
help:sluzhebnye_lokacii [2013/11/05 18:33] newsash удалено |
— (текущий) | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | [[help:principle|Назад: Порядок работы интерпретатора]] | ||
- | =====Служебные локации===== | ||
- | В QSP есть возможность сделать так, что бы локация выполнялась каждый раз при возникновении определенного события. Для этого нужно присвоить название локации предназначенной для этого системной переменной. Выполнение локации происходит также, как при использовании оператора [[help:organizing|GS]]. Пример: <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** - локация-счетчик вызывается через одинаковые промежутки времени | ||
- | * По умолчанию промежутки 500мс, т.е. 2 раза в секунду | ||
- | * Автоматическое обновление интерфейса срабатывает с той же частотой | ||
- | * Промежутки задаются командой **SETTIMER** //[#период]// в миллисекундах <sxh qsp> | ||
- | SETTIMER 1000/частота_в_секундах | ||
- | </sxh> | ||
- | * Строка ввода | ||
- | * **$USERCOM** - по нажатию "Enter" в строке ввода | ||
- | * Текущий текст строки ввода возвращает функция "USER_TEXT" | ||
- | * Очистить строку ввода можно в любом месте игры с помощью оператора "CMDCLEAR".<sxh qsp> | ||
- | $text = $USER_TEXT | ||
- | CMDCLEAR | ||
- | </sxh> | ||
- | |||
- | **Примечание:** При использовании операторов "KILLALL, KILLVAR" очищаются также все системные переменные. | ||
- | |||
- | ---- | ||
- | Вперёд: |