Инструменты пользователя

Инструменты сайта


Боковая панель

help:sluzhebnye_lokacii

Это старая версия документа.


Служебные локации

В QSP есть возможность сделать так, что бы локация выполнялась каждый раз при возникновении определенного события. Для этого нужно присвоить название локации предназначенной для этого системной переменной. Пример:

$onobjsel = '$onobjsel'
$onnewloc = '$перерисовка'

  • Сохранения:
    • $ONGLOAD - сразу после загрузки состоянии игры
    • $ONGSAVE - непосредственно перед сохранением состояния игры
  • Предметы:
    • $ONOBJADD - при добавлении предмета
      • $ARGS[0] - название добавленного предмета
    • $ONOBJDEL - при удалении предмета
      • $ARGS[0] - название удалённого предмета
    • $ONOBJSEL - при выборе предмета
      • Получить название выбранного предмета можно через функцию "SELOBJ".
        if $selobj = 'чайник':
          P 'Самый обычный чугунный чайник.'
        end
        
      • При выборе играющим какого-либо предмета, он остаётся выделенным. Снять выделение можно командой UNSELECT или UNSEL.
        if selobj = 'нож':
          *P 'Нельзя убить этого человека'
          unsel
        end
        
  • Локации:
    • $ONNEWLOC - при переходе на новую локацию
      • Выполняется перед передачей управления игроку (после выполнения кода всех участвующих в переходах локаций)
      • Получить название локации, на которую был осуществлён переход, можно с помощью функции "CURLOC"
        if $curloc = 'дом': кошка = 1
        
  • Действия:
    • $ONACTSEL - при выборе действия.
      • Именно при выборе действия, а не при нажатии действия.
      • Получить название выбранного действия можно через функцию"SELACT".
        if instr(1,$selact,'Пойти'): play 'sounds\walk.mp3'
        
  • Время
    • $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" удаляются также все системные переменные.

help/sluzhebnye_lokacii.1383671364.txt.gz · Последние изменения: 2013/11/05 21:09 (внешнее изменение)