Технические аспекты создания ботов для CommFort 3.20
-
- Администратор
- Сообщения: 6879
- Зарегистрирован: 09:56, 27.06.2005
Технические аспекты создания ботов для CommFort 3.20
В данной теме просьба обсуждать только процесс создания ботов и вопросы с ним связанные. Все другие сообщения будут сразу же удаляться.
Последний раз редактировалось Maxim Mirgorodsky 16:37, 16.05.2007, всего редактировалось 1 раз.
-
- Администратор
- Сообщения: 6879
- Зарегистрирован: 09:56, 27.06.2005
Прежде всего, напомню: механизм, реализованный в 3.10 - временный. Это значит что как только будут реализованы более совершенные методы, этот будет убран. Механизм создан на основе идеи пользователя Shurup: http://www.commfort.com/rus/forum/viewt ... =2771#2771.
Информация, необходимая для написания программы-дополнения к CommFort client содержится в текстовом файле: http://www.commfort.com/tmp/bots_inf.txt.
К сожалению, нормального тестирования данной функциональности провести не удалсь, поэтому при обнаружении проблем походу будем доводить что надо .
Хотелось бы попросить авторов программам в требованиях не забывать указывать, что работать данные программы будут только при условии подключения к зарегистрированному серверу версии 3.10.
Перед написанием программы-дополнения убедитесь, что загружена последняя версия CommFort client. Разные версии 3.10 отличаются только кодом, относящимся к ботам. На данный момент последняя версия:
http://www.commfort.com/tmp/commfort_cl ... _patch.rar
Информация, необходимая для написания программы-дополнения к CommFort client содержится в текстовом файле: http://www.commfort.com/tmp/bots_inf.txt.
К сожалению, нормального тестирования данной функциональности провести не удалсь, поэтому при обнаружении проблем походу будем доводить что надо .
Хотелось бы попросить авторов программам в требованиях не забывать указывать, что работать данные программы будут только при условии подключения к зарегистрированному серверу версии 3.10.
Перед написанием программы-дополнения убедитесь, что загружена последняя версия CommFort client. Разные версии 3.10 отличаются только кодом, относящимся к ботам. На данный момент последняя версия:
http://www.commfort.com/tmp/commfort_cl ... _patch.rar
Последний раз редактировалось Maxim Mirgorodsky 09:10, 21.05.2007, всего редактировалось 1 раз.
-
- Администратор
- Сообщения: 6879
- Зарегистрирован: 09:56, 27.06.2005
При отправке в чат сообщений клавишей F9 в пакете для бота передаются данные пользователя, но сам текст сообщения не передаётся и равен нулю.
Очень хотелось бы чтоб когда пользователь отправляет картинку то в сообщении для бота передавалось бы что то типа текста - "картинка".
Очень хотелось бы чтоб когда пользователь отправляет картинку то в сообщении для бота передавалось бы что то типа текста - "картинка".
Не совсем понятно с этим моментом каким должен быть пакет который переедает инфу о порте для приёма...Узнать же адрес (в первую очередь порт), по которому необходимо
отправлять UDP пакеты к клиенту чата можно по первому пакету,
генерируемому программой CommFort client при подключении к серверу.
-
- Администратор
- Сообщения: 6879
- Зарегистрирован: 09:56, 27.06.2005
При отправке в чат сообщений клавишей F9 в пакете для бота передаются данные пользователя, но сам текст сообщения не передаётся и равен нулю.
Действительно. Сегодня исправлю и опубликую обновление. Обновления для ботов буду публиковать в виде нового файла commfort.exe, распространять придется эту exe вместе с ботом. Конечно не очень удобно, зато гибкость полная .
Очень хотелось бы чтоб когда пользователь отправляет картинку то в сообщении для бота передавалось бы что то типа текста - "картинка".
А разве не передается "[image]"?
Не совсем понятно с этим моментом каким должен быть пакет который переедает инфу о порте для приёма...
Речь идет о пакете с идентификатором "3". Он отправляется чатом всякий раз когда успешное подключение к серверу осуществляется. По нему как раз можно поймать порт клиента коммфорта.
Действительно. Сегодня исправлю и опубликую обновление. Обновления для ботов буду публиковать в виде нового файла commfort.exe, распространять придется эту exe вместе с ботом. Конечно не очень удобно, зато гибкость полная .
Очень хотелось бы чтоб когда пользователь отправляет картинку то в сообщении для бота передавалось бы что то типа текста - "картинка".
А разве не передается "[image]"?
Не совсем понятно с этим моментом каким должен быть пакет который переедает инфу о порте для приёма...
Речь идет о пакете с идентификатором "3". Он отправляется чатом всякий раз когда успешное подключение к серверу осуществляется. По нему как раз можно поймать порт клиента коммфорта.
Странно у меня вроде не передавался вообще пакет... Приду домой буду смотретьMaxim Mirgorodsky писал(а): А разве не передается "[image]"?
Спасибо теперь все понятноMaxim Mirgorodsky писал(а): Речь идет о пакете с идентификатором "3". Он отправляется чатом всякий раз когда успешное подключение к серверу осуществляется. По нему как раз можно поймать порт клиента коммфорта.
-
- Администратор
- Сообщения: 6879
- Зарегистрирован: 09:56, 27.06.2005
Действительно, пакет с "[image]" отправлялся лишь в тех случаях когда картинка публиковалась своя.
http://www.commfort.com/tmp/commfort_cl ... _patch.rar
- устранен недочет с текстом по F9.
- устранен недочет с [image].
http://www.commfort.com/tmp/commfort_cl ... _patch.rar
- устранен недочет с текстом по F9.
- устранен недочет с [image].
Чет не получается отправлять боту пакеты т.е. отправлять то отправляю но никакой реакции не вижу
вот например пакет
отправляю его на порт с которого клиент шлёт пакеты для бота и ничего что я неправильно делаю?
вот например пакет
Код: Выделить всё
32 00 00 00 04 00 00 00 6D 61 69 6E 02 00 00 00 3A 29
| код 50 |длин канал| назв канал|длин сообщ| текст сообщения
50 4 main 2 :)
-
- Администратор
- Сообщения: 6879
- Зарегистрирован: 09:56, 27.06.2005
Адрес указан точно... еще небольшое уточнение... пакет должен обязательно приходить тоже с того порта который указан в настройках клиента чата или важно только, что с того же самого IP?
Если не трудно можно ли выложить простенький примерчик где бы было два поля ввода это название канала и текст и который отсылал бы пакеты клиенту чата допустим с кодом 50.
Я надеюсь это поможет мне выявить в чем у меня проблема... на крайний случай можно будет сделать два дампа пакетов и найти в чем же неувязочка.
Если не трудно можно ли выложить простенький примерчик где бы было два поля ввода это название канала и текст и который отсылал бы пакеты клиенту чата допустим с кодом 50.
Я надеюсь это поможет мне выявить в чем у меня проблема... на крайний случай можно будет сделать два дампа пакетов и найти в чем же неувязочка.
-
- Администратор
- Сообщения: 6879
- Зарегистрирован: 09:56, 27.06.2005
Адрес указан точно... еще небольшое уточнение... пакет должен обязательно приходить тоже с того порта который указан в настройках клиента чата или важно только, что с того же самого IP?
Да, обязательно. И с того же порта, и с того же IP.
Сегодня постараюсь проверить, может все-таки в коде приема пакетов ошибка.
Да, обязательно. И с того же порта, и с того же IP.
Сегодня постараюсь проверить, может все-таки в коде приема пакетов ошибка.
Последний раз редактировалось Maxim Mirgorodsky 17:26, 20.05.2007, всего редактировалось 1 раз.
-
- Администратор
- Сообщения: 6879
- Зарегистрирован: 09:56, 27.06.2005
Проверил, код приема UDP сообщений работает нормально.
Рекомендации:
1 Откажитесь от 127.0.0.1, используйте только реальные интерфейсы.
2 Убедитесь, что вызывается WinSock команда bind (т.е. что программа-бот привязывается именно к тому интерфейсу и порту, который указан в настройках клиента чата).
3 Попробуйте воспользоваться тестовым сообщением 3.10b:
http://www.commfort.com/tmp/commfort_cl ... _patch.rar
- добавлена функция отладки, если клиенту чата отправить UDP пакет с содержимым "test" и этот пакет пройдет все фильтры, соответствующее сообщение отобразится в events.
Рекомендации:
1 Откажитесь от 127.0.0.1, используйте только реальные интерфейсы.
2 Убедитесь, что вызывается WinSock команда bind (т.е. что программа-бот привязывается именно к тому интерфейсу и порту, который указан в настройках клиента чата).
3 Попробуйте воспользоваться тестовым сообщением 3.10b:
http://www.commfort.com/tmp/commfort_cl ... _patch.rar
- добавлена функция отладки, если клиенту чата отправить UDP пакет с содержимым "test" и этот пакет пройдет все фильтры, соответствующее сообщение отобразится в events.
Проверил. Тестовое сообщение принимается на ура... значит проблема все таки в сформированном пакете.
Может сюда надо ещё что то дописывать? Потому что пакет идет именно такой каким я его создавал... я проверял снифером.
Публикация сообщения в канал:
--
число(50) + текст(название канала) + текст(сообщение)
Код: Выделить всё
32 00 00 00 04 00 00 00 6D 61 69 6E 02 00 00 00 3A 29
| код 50 |длин канал| назв канал|длин сообщ| текст сообщения
50 4 main 2 :)
-
- Администратор
- Сообщения: 6879
- Зарегистрирован: 09:56, 27.06.2005
Действительно, ошибка в модуле конвертирования коммфорта. Нда, даже простейшие функции нельзя в спешке писать и не проверив досконально по завершении...
http://www.commfort.com/tmp/commfort_cl ... _patch.rar
- исправлена ошибка, приводящая к неправильной идентификации приходящих пакетов
http://www.commfort.com/tmp/commfort_cl ... _patch.rar
- исправлена ошибка, приводящая к неправильной идентификации приходящих пакетов