Код:
// Если изменилась строка бафов то бафать следующий
if FromServer and (ConnectName=CharName) and (i>0) and (Ready=true) and (pck[1]=#$76) and (ReadD(2)=ObjectID) then
begin
if(i=N) then
begin
Timer.enabled:=true;
i:=0;
exit;
end;
if(i<N) then
begin
buf:=Skills[i];
SendToServerEx(CharName);
say('Юзаем скилл N'+inttostr(i+1));
Inc(i);
end;
end;
Поясню, этот кусок позволяет делать задержку между бафами НЕ статической, т.е. когда боту(баферу) приходит пакет об окончании каста, ложить следующий баф. if(i=N) - а это потому что пакет о конце каста приходит немного рановато, скилы при этом все равно срабатывают как надо, а из пати выходит ДО наклабывания последнего бафа. Поэтому выход из пати делаю по таймеру с задержкой 1 секунду. Как и где это испольховать додумывайте сами.
Иеще, если уж бот принимает пати, то надо убивать пакет от клиента на отказ пати(который шлется автоматом через секунд 10 примерно), чтоб лишний раз не палиться...