Main

<<< Модули системы

Шаблоны поведения

Данный модуль предназначен для настройки реакции системы на определённые события либо последовательность событий. В данном случае, под событием понимается оповещение системы о чём либо (с помощью команды say).

Эта же часть используется для обработки команд от пользователя в чате. Т.е. вы пишите в чате команду и по этим шаблонам она обрабатывается.

Т.е. принцип таков -- система оповещает пользователя какими-то фразами о происходящем (т.е. добавлением сообщения в общий чат), а данный модуль, после каждого оповещения, смотрит какому из сценариев эти оповещения соотвествуют.

Форма добавления/редактирования шаблона поведения:

Поля:

Название -- название сценария

Шаблон -- шаблон, с которым происходит сравнение. В поиске шаблона учавствуют не только оповещения от системы, но и команды (в том числе голосовые), данные пользователем. В самом простейшем случае можно сделать шаблон, состоящий из одного предложение, при появлении которого, будет выполнена нужная команда. Шаблон может включать неопределённые последовательности, а не только конкретные слова. Эти последовательности могут указыватся через синтаксис регулярных выражений (см. документацию по языку программирования PHP).

Ограничение по времени, секунд -- время, за которое выбирается последовательность оповещений для поиска в них соответствия шаблону (если 0, то берётся последнее количество команд, равное количеству строк вышеописанного шаблона)

Выполнить при совпадении -- действия, которые необходимо произвести, если шаблон будет выявлен (выполняется заданный скрипт, либо конкретный код). Замечание -- команда say внутри данного кода не инициирует повторный поиск шаблона для предотвращения бесконечного цикла поиска.

Обсуждение контекстов на форуме

Пример

  • Название: Повтори за мной
  • Шаблон: Повтори за мной (\w*)
  • Код:
$message_text="Вы сказали:". $original ."
Ваши слова:";

// Разбираем предложение на слова
// Надо учесть, что длинна $message_text имеет ограничения
$keywords = preg_split("/[\s,]+/",$original); 
$total=count($keywords);
for($i=0;$i<$total;$i++) {
	$message_text=$message_text." \nСлово №".$i.": ".$keywords[$i];
}
say($message_text);

// Получаем переменные из шаблона с помощь встроенных функций.
$total=count($matches);
$message_text="Вся строка с переменными: ".$matches[0] . "
Количество переменных: ".$total."
Переменная №1: ".$matches[1];

say($message_text);

// Установка свойства объекта на основании полученной переменной
sg("Объект.Свойство",$matches[1);

context_getuser(); - Получить пользователя из контекста
context_clear(); - сбросить контекст
context_activate(ID); - активировать/перейти в контекст ID\\

 

MajorDomo

Информация

Проекты

Партнёры

edit SideBar

 
 
 

 

Blix theme adapted by David Gilbert, powered by PmWiki