tester, Hello. I had similar problem with my crafter-bot. So, here's my way to solve it:
Код:
const
maxBufferSize = 5; //for example. change it according to your needs
var
delayedPackets: array[1..maxBufferSize] of String;
packetIndex, packetEnd : integer;
delayedPacketTimer :TTimer;
procedure sendDelayedPacket;
begin
buf:=delayedPackets[packetIndex];
SendToServer; //use 'SendToServerEx' here if it's required
//if (packetIndex=packetEnd) then delayedPacketTimer.enabled:=false; //uncomment this if you don't want the process to be endless
inc(packetIndex);
if (packetIndex>maxBufferSize) then packetIndex:=1;
end;
procedure Init;
begin
packetIndex:=1;
packetEnd:=1;
//here you can set packet's values, that you want to be sent with delay
//...or do it somewhere in script later
delayedPackets[1]:=HStr('bla-bla-bla');
delayedPackets[2]:=HStr('bla-bla-bla');
delayedPackets[3]:=HStr('bla-bla-bla');
//...and so on
delayedPacketTimer:=TTimer.Create(nil);
delayedPacketTimer.OnTimer:=@SendDelayedPacket;
delayedPacketTimer.interval:=5000; //set here required interval at wich packets will be sent. You can change it later in you script also.
delayedPacketTimer.enabled:=false; //set it to 'true' to start packets parcel
end;
procedure Free;
begin
delayedPacketTimer.enabled:=false;
delayedPacketTimer.Free;
end;
begin
if FromClient and (pck[1]=#$1b) and (pck[2]=#$04) then delayedPacketTimer.enabled:=true; //activates the parcel when you press social 'Advance' or type '/socialcharge' in game
end.
Something like this... Enjoy. =)