Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
Аватара пользователя
Степан
Добрый день.
Возникла задачка организовать, скажем так, "чат-бот" - пользователь пишет определенному пользователю, скриптом выполняется определенное действие - после чего пользователю приходит ответ - "все выполнено".
Реализовали так - повесили событие OnPrivateMessage - там делаем определенные действия, в и теле скрипта делаем ответ mSendPrivateMessage(iUINTo, iUIN, sMsg, iMsgType, true).
Проблема в том, что ответ в чат приходит раньше, чем запрос, т.е хотелось бы так "Запрос/Ответ", а получается так "Ответ/Запрос".
Можно, конечно, было подавить исходное сообщение и добавить его в ответ - но оба сообщения получаются от "ответчика" - а хотелось бы запрос от отправителя, а скриптовый ответ - от получателя.
Можно ли это как-то реализовать?
Версия MyChat - актуальная, 7.7.0
Аватара пользователя
Алексей Пикуров
Добрый день.

Подавите сообщение и отправьте из скрипта два приватных сообщения: сначала от имени отправителя, а затем от имени бота. Таким образом у вас не нарушится логика в чате, будет видно сообщение-запрос и сообщение-ответ, очерёдность будет правильная.

Перенёс вашу тему в соответствующий раздел и немного дополнил шапку.
Аватара пользователя
Степан
А сообщения отправленные mSendPrivateMessage не будут перехвачены OnPrivateMessage? А то побоялся "цикла" - у меня же скрипт висит на отправке сообщения от юзера условному "боту" - если я из этого же обработчика инициирую отправку такого же сообщения от юзера "боту" - процесс не зациклится?
Технически, конечно, можно доп. проверку какую-нибудь устраивает с сохранением определенного флага либо в тексте, либо в БД - но я просто думал вдруг что-то не так делаю с этими "ранними" ответами.
В любом случае - спасибо за ответ.
Аватара пользователя
Алексей Пикуров
Цикла не будет. Работайте спокойно.