Простой пример, который выводит в хистори все сообщения чата:
uses SysUtils;
procedure ChatScanerThread();
begin
while delay(100) do begin
if (ChatMessage.Unread) and (ChatMessage.Time < 3333) then begin
Print(ChatMessage.Sender+': '+IntToStr(Ord(ChatMessage.ChatType))+' :'+ChatMessage.text);
end;
end;
end;
begin
Script.NewThread(@ChatScanerThread);
Delay(-1);
end.
Его можно немного усовершенствовать, чтобы искать нужные нам объявления:
uses SysUtils;
var phrases: array of string = ['продам драк лук', 'wts драконик лук', 'wts DB']; // задаем строки, которые нужно искать
procedure ChatScanerThread();
var i: integer;
begin
while delay(100) do begin
if (ChatMessage.Unread) and (ChatMessage.ChatType = mtShout) then begin
for i:= Low(phrases) to High(phrases) do begin
if (Pos(LowerCase(phrases[i]), LowerCase(ChatMessage.text)) > 0) then begin
Print(ChatMessage.Sender+': '+ChatMessage.Text);
PlaySound(ExePath+'\Sounds\msg.wav');
Engine.SetGameWindow(true);
break;
end;
end;
end;
end;
end;
begin
Script.NewThread(@ChatScanerThread);
Delay(-1);
end.