Несколько видео про Шаблоны поведения по ссылке.
Данный модуль предназначен для настройки реакции системы на определённые события либо последовательность событий. В данном случае, под событием понимается оповещение системы о чём либо (с помощью команды say).
Эта же часть используется для обработки команд от пользователя в чате. Т.е. вы пишите в чате команду и по этим шаблонам она обрабатывается.
Т.е. принцип таков -- система оповещает пользователя какими-то фразами о происходящем (т.е. добавлением сообщения в общий чат), а данный модуль, после каждого оповещения, смотрит какому из сценариев эти оповещения соотвествуют.
Форма добавления/редактирования шаблона поведения:
Поля:
Название -- название сценария
Шаблон -- шаблон, с которым происходит сравнение. В поиске шаблона учавствуют не только оповещения от системы, но и команды (в том числе голосовые), данные пользователем. В самом простейшем случае можно сделать шаблон, состоящий из одного предложение, при появлении которого, будет выполнена нужная команда. Шаблон может включать неопределённые последовательности, а не только конкретные слова. Эти последовательности могут указыватся через синтаксис регулярных выражений (см. документацию по языку программирования PHP).
Ограничение по времени, секунд -- время, за которое выбирается последовательность оповещений для поиска в них соответствия шаблону (если 0, то берётся последнее количество команд, равное количеству строк вышеописанного шаблона)
Выполнить при совпадении -- действия, которые необходимо произвести, если шаблон будет выявлен (выполняется заданный скрипт, либо конкретный код). Замечание -- команда say внутри данного кода не инициирует повторный поиск шаблона для предотвращения бесконечного цикла поиска.
Обсуждение контекстов на форуме
Пример
- Название: Повтори за мной
- Шаблон: Повтори за мной (\w*)
- Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$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\\