This can be used like a wait, except that you put in mintimetowait and maxtimetowait instead of a +random. The difference is that it uses the wait time to perform various antiban functions, hence Random Anti-Ban Buried In Timer.
I haven't put the antiban functions in, there are just waits so you can see how it works. I have too much scripting ADD to sit down and write a bunch of modified antiban procs, but you can if you want. Here's how:
First, write the procedure, and put it in the anti ban procs section.
After you have a bunch, go to near the bottom where there is a case of. Make a new branch, call it 2, and instead of ab1 ab2 etc, put the names of your procs that you want. Then go up a bit to the other case of and make a branch, also call it 2, and put the max time each proc takes to run. Make sure they correspond to the same order.
Now when you use it, put 2 for WhichAntiBanList
I may make something similiar in the future that uses a condition instead of time. So it could wait (and do stuff) until you get a full load of ess, or the flag is close etc.
Questions/Comments/Suggestions?
SCAR Code:
//*************************************************************************
{RABBIT(mintimetowait, maxtimetowait, WhichAntiBanList : integer)
RABBIT By Boreas
Random Anti-Ban Buried In Timer
Works like a wait, (you put in timetowait), except that
while it is waiting, it performs some antiban procedures.
The first 2 parameters are just what they sound like. If you RABBIT to wait for
a specific amount of time, instead of a random time within the range, just make
them the same.
WhichAntiBanList chooses which list of antibans to choose from. Currently there
is only 1 list, so just put 1. Other lists will be added in the future, for example
a list that only has anti bans that don't disturb the gametab part (in case your
script is watching the gametab).
HoverSkill
Leave Screen
Pickup Mouse
RandomClick
RandomRightClick
--RotateScreen--not sure about this one
Type something then backspace it---replaces random chat
RandomMouseMovement
CheckWhichFriendsOnline
ChangeRunModeAndChangeBack
CheckWhichQuestsIveDone
ExamineSomethingInInventory}
//----------------anti ban procs-------------------------------------
procedure ab1;
begin
writeln('doing testab1');
wait(1000);
writeln('done testab1');
end;
procedure ab2;
begin
writeln('doing testab2');
wait(2000);
writeln('done testab2');
end;
procedure ab3;
begin
writeln('doing testab3');
wait(3000);
writeln('done testab3');
end;
procedure ab4;
begin
writeln('doing testab4');
wait(4000);
writeln('done testab4');
end;
procedure ab5;
begin
writeln('doing testab5');
wait(5000);
writeln('done testab5');
end;
procedure ab6;
begin
writeln('doing testab5');
wait(5000);
writeln('done testab5');
end;
procedure ab7;
begin
writeln('doing testab6');
wait(6000);
writeln('done testab6');
end;
procedure ab8;
begin
writeln('doing testab7');
wait(7000);
writeln('done testab7');
end;
procedure ab9;
begin
writeln('doing testab8');
wait(8000);
writeln('done testab8');
end;
procedure ab10;
begin
writeln('doing testab10');
wait(10000);
writeln('done testab10');
end;
procedure ab11;
begin
writeln('doing testab11');
wait(10000);
writeln('done testab11');
end;
procedure ab12;
begin
writeln('doing testab12');
wait(10000);
writeln('done testab12');
end;
//---------------------------------------------------------------------
Procedure RABBIT(rabbitmin, rabbitmax, WhichAntiBanList :integer);
var timeused, a, b, timeleft:integer;
rabmonkey, rabmintime, numberofabs, rabbittime,goat:integer;
rabtime : array of integer;
begin
case whichantibanlist of
1:
begin
numberofabs := 12;
setarraylength(rabtime, 13);
rabtime[1]:= 1000; //time each anti ban procedure takes
rabtime[2]:= 2000;
rabtime[3]:= 3000;
rabtime[4]:= 4000;
rabtime[5]:= 5000;
rabtime[6]:= 6000;
rabtime[7]:= 7000;
rabtime[8]:= 8000;
rabtime[9]:= 9000;
rabtime[10]:= 10000;
rabtime[11]:= 10000;
rabtime[12]:= 10000;
end;
{2: //add lists here
begin
numberofabs := 12;
setarraylength(rabtime,numberofabs);
rabtime[1]:= 12000; //time each anti ban procedure takes
rabtime[2]:= 2000;
rabtime[3]:= 3000;
rabtime[4]:= 4000;
rabtime[5]:= 5000;
rabtime[6]:= 6000;
rabtime[7]:= 7000;
rabtime[8]:= 8000;
rabtime[9]:= 9000;
rabtime[10]:= 10000;
end;}
else
begin
writeln('Error in RABBIT, Which Anti-Ban List. Going with default');
numberofabs := 12;
setarraylength(rabtime,numberofabs);
rabtime[1]:= 1000; //time each anti ban procedure takes
rabtime[2]:= 2000;
rabtime[3]:= 3000;
rabtime[4]:= 4000;
rabtime[5]:= 5000;
rabtime[6]:= 6000;
rabtime[7]:= 7000;
rabtime[8]:= 8000;
rabtime[9]:= 9000;
rabtime[10]:= 10000;
rabtime[11]:= 10000;
rabtime[12]:= 10000;
end;
end;
rabmintime := 100000000000000;
repeat
add1(goat);
rabmintime:= min(rabmintime,rabtime[goat]);
until (goat=numberofabs);
if (rabbitmin>rabbitmax) then
begin
writeln('ERROR-rabbitmin is greater than rabbitmax.')
terminatescript;
end else
rabbittime := randomrange(rabbitmin, rabbitmax);
timeleft := rabbittime;
//writeln(inttostr(rabbittime)); //comment this
repeat
rabmonkey :=(ran(numberofabs))
if(not(timeleft<rabtime[rabmonkey]))then
begin
a:=getsystemtime;
case whichantibanlist of
1:
case rabmonkey of
1: ab1;
2: ab2;
3: ab3;
4: ab4;
5: ab5;
6: ab6;
7: ab7;
8: ab8;
9: ab9;
10: ab10;
11: ab11;
12: ab12;
end;
{2: add lists here
case rabmonkey of
1: ab1;
2: ab2;
3: ab3;
4: ab4;
5: ab5;
6: ab6;
7: ab7;
8: ab8;
9: ab9;
10: ab10;
11: ab11;
12: ab12;
end;}
else
begin
writeln('Error in RABBIT, Which Anti-Ban List. Going with default');
case rabmonkey of
1: ab1;
2: ab2;
3: ab3;
4: ab4;
5: ab5;
6: ab6;
7: ab7;
8: ab8;
9: ab9;
10: ab10;
11: ab11;
12: ab12;
end;
end;
end;
b:=getsystemtime;
timeleft:=timeleft-(b-a)
timeused:=timeused+(b-a)
end;
until timeleft<rabmintime;
wait(timeleft);
end;
//**************************************************************************