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

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

Writing /var/www/qsp.su/public_html/wiki/data/meta/access.log failed

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

help:organizing

Назад: Условия

Пользовательские функции и процедуры

  • GOSUB [$локация],[параметр 1],[параметр 2], …
  • GS [$локация],[параметр 1],[параметр 2], … - обработка локации с названием [$локация].
    • Основное описание и список действий локации добавляются к описанию и действиям старой локации.
    • Происходит выполнение операторов в поле "Выполнить при посещении"
    • Переданные параметры хранятся в массиве ARGS. Максимальное количество параметров - 91).
    • Затем продолжение выполнения программы со следующей команды после GS/GOSUB.
    • Внимание: Код, выполняемый по оператору ACT, считается отдельным блоком кода:
      GS 'переход', 'локация'
      
      #переход
      *PL $ARGS[0]  &! На экран выведется 'локация'
      ACT 'Перейти':
        GT $ARGS[0] &! Работать не будет, т.к. массив ARGS пуст
      END
      
    • Примеры:
      !обработка локации "ход". Массив ARGS пуст.
      GS 'ход'
      
      !обработка локации с названием из переменной $loc
      !Передаётся один параметр - ARGS[0] равен 1.
      GS $loc,1
      
      !обработка локации "ход" с передачей 3-х параметров. 
      ! $ARGS[0] = $var (значению), ARGS[1] = 2, 
      ! $ARGS[2] = "данные". Обратите внимание на символы '$'.
      GS 'ход',$var,2,'данные'
      
  • FUNC([$локация],[параметр 1],[параметр 2], …) - обработка локации с названием [$локация] аналогично оператору GS (GOSUB), но с возвращением значения.
    • Основное описание и список действий локации добавляются к описанию и действиям старой локации.
    • Происходит выполнение операторов в поле "Выполнить при посещении"
    • Переданные параметры хранятся в массиве ARGS. Максимальное количество параметров - 92).
    • Результат функции равен значению $RESULT при возврате строкового значения или RESULT при возврате числового значения.
    • Если при обработке локации были установлены и RESULT, и $RESULT, то предпочтение отдаётся строковому значению.
    • После обработки локации предыдущие значения ARGS и RESULT восстанавливаются.
    • Внимание: при использовании в коде локации-функции операторов GS/DYNAMIC переменные RESULT и $RESULT могут перезаписываться кодом, выполняемым этими операторами.
      • Исправлено в более новых версиях интерпретатора.
    • Примеры:
      !Обработка локации "функция" как функции. 
      !Массив ARGS пуст. 
      !Результат передается через $RESULT или RESULT
      !в зависимости от кода обрабатываемой локации.
      яблоки = FUNC('функция')
      
      !обработка локации с названием в $name как функции. ARGS[0] равен 1.
      PL FUNC($name, 1) * 78
      
      !обработка локации с названием в $name как функции. 
      !$ARGS[0] содержит строку "строка", ARGS[1] равен 2.
      MSG "text" + FUNC($name, "строка", 2)
      
  • EXIT - завершение выполнения текущего кода (преждевременный выход из подпрограммы / обработчика какого-либо события…).
    • Примеры:
      if args[0] = 0: exit
      

Вперёд: Переходы внутри локации, циклы

1) , 2) 10 включая имя локации
help/organizing.txt · Последние изменения: 2015/04/08 00:55 (внешнее изменение)