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

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


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

help:service_locations

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


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

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

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

$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 - локация-счетчик вызывается через одинаковые промежутки времени
      • По умолчанию промежутки 500мс, т.е. 2 раза в секунду
      • Автоматическое обновление интерфейса срабатывает с той же частотой
      • Промежутки задаются командой SETTIMER [#период] в миллисекундах
        SETTIMER 1000/частота_в_секундах
        
  • Строка ввода
    • $USERCOM - по нажатию "Enter" в строке ввода
      • Текущий текст строки ввода возвращает функция "USER_TEXT"
      • Очистить строку ввода можно в любом месте игры с помощью оператора "CMDCLEAR".
        $text = $USER_TEXT
        CMDCLEAR
        

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


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

help/service_locations.1383677563.txt.gz · Последние изменения: 2013/11/05 22:52 (внешнее изменение)