Page 1 of 1

ICQ

Posted: 22.12.2013 14:02
by d3v1l
Есть вопрос по ICQ соединению. Аська коннектиться только на один чар, т.е. коннект не глобальный. Можно ли как-то сделать чтоб управлять всеми чарами через 1 аську?

К примеру отсылаю сообщение

Char2 anatomy -> у чара с ником "Char2" покажется скилл анатомии
Char1 stop -> у чара с ником "Char1" останавливается скрипт

ну и т.д.

пока только получилось сделать это на 1 одного чара

Версия стелса 6.1.5

Re: ICQ

Posted: 22.12.2013 14:36
by Vizit0r
через глобальные стелсовые переменные, например.

Re: ICQ

Posted: 22.12.2013 15:07
by d3v1l
хорошо, но для этого нужно отдельным потоком обрабатывать эту самую переменную.

Т.е. если сообщение пришло на определённый чар(1), и ник не соответсвует ему, то записываем комманду в глобальную переменную.

на другом чаре(2) я должен в отдельном потоке словить эту переменную, обработать её, записать ответ и уже у чара(1) послать сообщение

Есть такая возможность ? Информации я не нашёл.

Спасибо

Re: ICQ

Posted: 23.12.2013 2:06
by d3v1l
решил использовать event timer1 для отдельного потока.
Но до таймера ещё даже не дошёл, так как появилась другая проблема.

в событии evICQIncomingText

Code: Select all

procedure OnICQIncomingText(UIN: Cardinal; Text: String);
begin
...
AddToSystemJournal('try add CharReq: ' + SL.Strings[1]);
SetGlobal('stealth', 'CharReq', SL.Strings[1]);
AddToSystemJournal('add global CharReq: ' + SL.Strings[1]);
...
end;
не доходит до сообщения add global CharReq. Stealth client просто подвисает.
и выдаёт окно :

Code: Select all

[Window Title]
Client for Ultima Online

[Main Instruction]
Программа "Client for Ultima Online" не работает

[Content]
Возникшая проблема привела к прекращению работы программы. Windows закроет эту программу, а если есть известный способ устранения проблемы, уведомит вас об этом.

[Отладка] [Закрыть программу]
отладка в студии говорит:

Unhandled exception at 0x00424E07 in Stealth.exe: 0xC0000005: Access violation writing location 0x037A0930.

Re: ICQ

Posted: 23.12.2013 8:56
by Vizit0r
может с SL чавой-то не то?

Re: ICQ

Posted: 23.12.2013 13:35
by d3v1l
Vizit0r wrote:может с SL чавой-то не то?
я изначально тоже так подумал, но для этого я добавил строку, которая нормально добавляется на экран

Code: Select all

AddToSystemJournal('try add CharReq: ' + SL.Strings[1]);
AddToSystemJournal('Sl.String[1] Text upear normal');
SetGlobal('stealth', 'CharReq', SL.Strings[1]);
AddToSystemJournal('add global CharReq: ' + SL.Strings[1]);
Вывод на экран:
try add CharReq: asdasda
Sl.String[1] Text upear normal
после этого стелс сереет(подвисает)
то есть скрипт именно валиться на SetGlobal

Re: ICQ

Posted: 02.01.2014 1:27
by Vizit0r
ну наконец-то я нормально добрался до компа и синхронизировал исходники и прочее.

баг с SetGlobal исправил.

Re: ICQ

Posted: 02.01.2014 18:44
by d3v1l
огромное спасибо и С Новым Годом! Всего самого лучшего в новом году!!

Re: ICQ

Posted: 02.01.2014 19:15
by Vizit0r
спасибо :)

выложу правленую версию минимум через неделю (хотя лучше ориентироваться на две) - надо как минимум протестить, не выплыли ли новые баги в связи с переходом на новую версию Delphi.

Re: ICQ

Posted: 28.01.2014 20:53
by d3v1l
В версии 6.2.1 этот-же скрипт не коннектится к ICQ и соответственно не срабатывает ивент OnICQIncomingText.

переключился на версию 6.1.5, работает ICQ, но падает на моменте SetGlobal

Re: ICQ

Posted: 28.01.2014 20:55
by CxC
d3v1l wrote:В версии 6.2.1 этот-же скрипт не коннектится к ICQ и соответственно не срабатывает ивент OnICQIncomingText.
переключился на версию 6.1.5, работает ICQ, но падает на моменте SetGlobal
ICQ модуль

Re: ICQ

Posted: 29.01.2014 3:02
by d3v1l
CxC wrote:
d3v1l wrote:В версии 6.2.1 этот-же скрипт не коннектится к ICQ и соответственно не срабатывает ивент OnICQIncomingText.
переключился на версию 6.1.5, работает ICQ, но падает на моменте SetGlobal
ICQ модуль
спасибо за ссылку.