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

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


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

help:service_locations

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


Назад: Порядок работы интерпретатора

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

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

$ONOBJSEL = 'ONOBJSEL'
$ONNEWLOC = 'перерисовка'
$ONOBJADD = '' &! Убрали обработчик

  • Сохранения:
    • $ONGLOAD - сразу после загрузки состоянии игры
    • $ONGSAVE - непосредственно перед сохранением состояния игры
  • Предметы:
    • $ONOBJADD - при добавлении предмета
      • $ARGS[0] - название добавленного предмета
      • $ARGS[1] - путь к картинке добавленного предмета
    • $ONOBJDEL - при удалении предмета
      • $ARGS[0] - название удалённого предмета
    • $ONOBJSEL - при выборе предмета
      • Получить название выбранного предмета можно через функцию "SELOBJ".
        IF $SELOBJ = 'чайник':
          P 'Самый обычный чугунный чайник.'
        END
        
      • При выборе играющим какого-либо предмета, он остаётся выделенным. Снять выделение можно командой UNSELECT или UNSEL.
        IF $SELOBJ = 'нож':
          *P 'Нельзя убить этого человека'
        END
        UNSEL
        
  • Локации:
    • $ONNEWLOC - при переходе на новую локацию
      • Выполняется перед передачей управления игроку (после выполнения кода всех участвующих в переходах локаций)
      • Получить название локации, на которую был осуществлён переход, можно с помощью функции "CURLOC"
        IF $CURLOC = 'дом': кошка = 1
        
  • Действия:
    • $ONACTSEL - при выборе действия.
      • Именно при выборе действия, а не при нажатии действия.
      • Получить название выбранного действия можно через функцию"SELACT".
        IF INSTR(1, $SELACT, 'Пойти'): PLAY 'sounds\walk.mp3'
        
  • Время
    • $COUNTER - локация-счетчик вызывается через одинаковые промежутки времени
      • По умолчанию промежутки 500мс, т.е. 2 раза в секунду
      • Автоматическое обновление интерфейса срабатывает с той же частотой
      • Промежутки задаются командой SETTIMER [#период] в миллисекундах
        SETTIMER 1000/частота_в_секундах
        
  • Строка ввода

Примечание: При использовании операторов "KILLALL, KILLVAR" очищаются также все системные переменные.


Вперёд: Динамический код

help/service_locations.1417960490.txt.gz · Последние изменения: 2014/12/07 16:54 (внешнее изменение)