Страница 1 из 1

Шаблоны - Инициация диалога

Добавлено: Пн май 01, 2017 8:26 pm
xor
Привет!
к заметке Сергея viewtopic.php?f=7&t=1511&start=40#p16799, когда Алиса что-то спрашивает и ждет ответа от пользователя.

Отлично работает в режиме терминала,но повесил да/нет/отмена на кнопки пульта Ноолайт и на простые устройства Кнопки с кодом по нажатию (для Да)

Код: Выделить всё

say('да',0,1);
Последняя единичка - чтобы ответ отображался не от имени системы, а от Админа.
В настройках - не реагировать на сист. сообщения.
Пульт и простые кнопки не воспринимаются в этом контексте

Код: Выделить всё

19:54 Алиса: Ладно, проехали <- фраза при неполучении ответа 20 с
19:54 Admin: нет  <- тут от пульта/от кнопки
19:54 Алиса: Включим музыку? <- вопрос от системы
(полный игнор)
, если ввожу ответ в поле команда - всё работает:

Код: Выделить всё

19:55 Алиса: Нет? Неудачника ответ! <-фраза-реакция на Нет
19:55 Сергей: нет <- тут из окошка Команда
19:55 Алиса: Включим музыку? <- вопрос от системы
Как можно имитировать ввод пользователя в окошко команд?

Re: Шаблоны - Инициация диалога

Добавлено: Пн май 01, 2017 8:28 pm
nick7zmail
До компа доберусь - скину...у функции say, если мне память не изменяет, нет третьего параметра в принципе.

Отправлено с моего Xperia Z через Tapatalk

Re: Шаблоны - Инициация диалога

Добавлено: Пн май 01, 2017 8:37 pm
xor
Я пользовался этим
say($ph,$level,$user_id); – говорит фразу (использует глобальные переменные $voicemode [именно говорить] и $commandLine [преобразует ответ в echo utf2win(), иначе просто echo]). $level указывает уровень важности фразы (в зависимости от текущих настроек минимального уровня произношения, фраза может быть либо озвучена голосом либо просто записана в историю сообщений).

и из common.class.php:
/**
* Summary of say
* @param mixed $ph Phrase
* @param mixed $level Level (default 0)
* @param mixed $member_id Member ID (default 0)
* @return void
*/
function say($ph, $level = 0, $member_id = 0, $source = '')

Re: Шаблоны - Инициация диалога

Добавлено: Пн май 01, 2017 10:09 pm
nick7zmail
Хм...если так, то действительно должно работать...ниразу не пользовался. У меня сейчас вот такой вариант:

Код: Выделить всё

$ans='Да'; //или 'нет'
getURL('http://localhost/command.php?qry='.urlencode($ans)); 
К сожелению выбор юзеров не содержит, но говорит от имени пользователя "По-умолчанию", и вроде адекватно воспринимается шаблонами.

Re: Шаблоны - Инициация диалога

Добавлено: Пн май 01, 2017 10:31 pm
xor
Замена на предложенный вариант не помогла.
Шаблон в этом контексте так же не срабатывает.
в иксрее пишется
22:20:40 0.28125000 External context response: a:1:{s:15:"MATCHED_CONTEXT";i:0;}
А что это значит, нихт ферштейн

Re: Шаблоны - Инициация диалога

Добавлено: Вт май 02, 2017 12:57 am
xor
Что интересно, это не работает только при принудительной активации контекста через context_activate();.
При исполнении команды с пульта/кнопки
say('Включи свет везде',0,1);
всё нормально отрабатывает.

Re: Шаблоны - Инициация диалога

Добавлено: Вт май 02, 2017 6:51 am
nick7zmail
Действительно интересно)) Может попробовать в контексте (в том, в котором не отрабатывают ответы) - убрать галочку - не реагировать на системные сообщения? Может по каким-то параметрам он их к системным причисляет?

Re: Шаблоны - Инициация диалога

Добавлено: Вт май 02, 2017 1:38 pm
xor
Пробовал.
Я вышел из ситуации костылем - при ответе с помощью кнопки/пульта повторяю код из шаблона.
Но костыль остается костылем.