Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

Ответ на сообщения в чате.

Рег
2 Мар 2016
Сообщения
234
Реакции
0
Выставил ответы на сообщения в чате от чужих игроков в событиях. Часто бывает что я рядом с компьютером и нет нужды чтобы отвечал бот, я отключаю интерфейс, но после того как я его опять включаю, бот начинает писать ответ и это палево :) Как этого избежать? Скрипт?
 
if (ChatMessage.ChatType = mtAll) and ChatMessage.Unread and not (ChatMessage.Sender = User.Name) then
begin
delay(3000);
engine.enterText('hi');
delay(3000);
end;
 
MAX5555 написал(а):
if (ChatMessage.ChatType = mtAll) and ChatMessage.Unread and not (ChatMessage.Sender = User.Name) then
begin
delay(3000);
engine.enterText('hi');
delay(3000);
end;
enterText только для активного окна, лучше say, но может не пахать с сг.
 
@MAX5555,
Понятно :) Придется заморочиться. Как минимум еще радиус нужно указать персонажа который написал в чат, а то будет отвечать всем подряд. Спасибо.
 
Что-то мало совсем информации на форумах об этой теме. Могу конечно сделать условие на проверку сообщений + на лишних персонажей в зоне/радиусе, но лучше все-таки, мне кажется, будет в условии привязать сообщение в чате + ник того кто написал+ радиус/зона. В общем проблема заключается в вычислении ника персонажа написавшего сообщение. Может быть есть у кого-то пример хоть подобного скрипта?
 
Спустя 3 часа дошло )) Тест прошел успешно.
Код:
for i := 0 to CharList.count -1 do begin
if (User.distto(charlist.items(i))<1111) and not (charlist.items(i).ismember) and (charlist.items(i).inzone) and (ChatMessage.Sender=charlist.items(i).name) and (ChatMessage.Unread) and (ChatMessage.ChatType = mtPrivate) and not(ChatMessage.Sender = User.Name) then begin
//код
end;
 
sasha282 написал(а):
ChatMessage.ChatType = mtAll
Зачем такая сложная проверка?
ChatMessage.ChatType = mtAll
скрипт отвечает на белый чат у которого и так ренж 2000
более полезней будет добавить больше вариантов ответа



dArk написал(а):
ChatMessage.ChatType = mtAll
enterText пашет и на неактивных окнах, но проблема с длинными сообщениями
 
@MAX5555, Видимо, чет не то скинул :) Исправил код, выше. 2000 рейндж много, логичнее когда я отвечать буду персонажам, которые близко ко мне. Мое мнение что максимально допустимый рейндж 1000. Насчет enterText подтверждаю, работает с неактивными окнами.
Вариантов ответа хватает, хотя и еще в процессе, хочу сделать чтобы при отсутствии вариантов притворился иностранцем :), сделал все производные от часто используемых слов (например на поиск слов с таким буквосочетанием "прив" - "приве, привет, приветики,приветули и т.д., правда на слово "привстань" тоже среагирует, но кто такое писать мне будет :) ") + рандом ответы + задержка до ответа с рандом делеем. Думаю покатит такой вариант.
 
Проблема обнаружилась! Почему-то при появлении обьявлений сервера срабатывают все условия и пишется ответ. Как исключить такие сообщения?

после дня теста оказалось, что это не системные сообщения виноваты. За день 1 ложное срабатывание, причем когда был чужой в зоне+сообщение об ивенте.
 
Здравствуйте мужчины :Kappa:
Я нуб в этих делах, решил чат ответчик сделать для своего ботюни. Что я сделал не так в этом простейшем примере, или чего не хватает, подскажите плиз.




  1. procedure vchat;
    begin
    if (ChatMessage.ChatType = mtAll) and ChatMessage.Unread and not (ChatMessage.Sender = User.Name) then
    begin
    if (ChatMessage.Text = 'Пр') or (ChatMessage.Text = 'hi') or (ChatMessage.Text = 'привет') or (ChatMessage.Text = 'q') then
    begin
    Engine.GamePrint ('Прувед');
    end;
    end;
    end;

И сюда же еще один вопрос. По поводу "Unread сообщение не прочитано нами", не могу понять, как бот определяет прочитано оно нами или нет, если он тупо в чате плавает и вроде бы не меняет своего значения
 
Назад
Сверху