That anti-ban is more like pro-ban. Having it change the compass the same ways every time is going to increase the chance of getting banned.
To stop it doing the actions every time, you want to add cases. You use cases like this:
case Random(50) of
0: anti-ban1
1: anti-ban2
2: anti-ban3
Let's break this down…
case Random (50) of
I'm referring to maths here…All you really need to know is that the
50 is the denominator of a fraction. This means that there is a 1 in 50 chance of them happening. So there is a 1 in 50 chance of anti-ban1, anti-ban2, and anti-ban3 all happening. So that's a 3 in 50 chance of any anti-ban happening. This means that it will not always perform anti-ban when it comes to that procedure.
Also, there are many more anti-ban functions which are widely used. Here are the most common ones:
- PickUpMouse ~ Acts like a human picking up their mouse
- BoredHuman ~ Performs actions a bored human would do
- RandomMovement ~ Moves the mouse randomly
- HoverSkill(Skill, Click) ~ Hovers or clicks on the skill specified. If you want a random skill looked at, put
'random' under Skill Used like
HoverSkill('magic', False); Of course, you can still use the compass functions in anti-ban.
So a good anti-ban procedure would look something like
procedure AntiBan;
var
X, Y : Integer;
S : TStringArray;
begin
S:= ['E', 'S', 'W'];
case Random(150) of
0: BoredHuman;
1: RandomMovement;
2: PickUpMouse;
3,4: HoverSkill('random', False); //Hovers over a random skill. You will notice instead of a 1 in 150 chance, this has a 2 in 150 chance, because of the 3,4
5: MMouse(Random(X), Random(Y), 0, 0);
6: begin
MakeCompass(Random(S));
Wait(2500 + Random(1000);
MakeCompass('M');
end;
end;
That's quite simple, but if you don't understand any of it, please let me know.
Richard.
EDIT: Also, in you're typing procedure, you could use
AddMistakes(Orig: string; Chance: Integer)
What is does is randomly add mistakes to the text you are typing. It would be used like
TypeSend(AddMistakes(Message1, 20));
For
Chance, 20 - 30 is a good number. The higher the number, the less likely it is that mistakes will be added.
One last thing, you should change your main loop to this:
begin
SetupSRL;
ActivateClient;
repeat
Autotalker;
until(IsFKeyDown(9));
ProgressReport;
end.
What I've done is added
SetupSRL so that SRL will work properly, and
ActivateClient so that you do not have to change to the RS window yourself. Also, you'll notice I've taken
AntiBan; out. Just call this in your
Autotalker; procedure. And I've moved
ProgressReport; down so that it doesn't get called every time the messages have been typed. I also changed the
(False); to
(IsFKeyDown(9)); so it will stop once the F9 key has been pressed.
Richard