SRL Archive - Discussions and Debates

About Antiban


Sir R. M8gic1an

2010-03-14 17:31:28


About antiban…

http://en.wikipedia.org/wiki/Uncanny_valley

Meaning that 100% success rate can actually be a factor to fuel suspicion.

Humans misclick. We do it all the time.

~RM ~


Should we misclick on purpose? Should we not? Do you think they check for such a thing? How much more complicated will it make our scripts? Will they look more human like? Less Bannable? Or more bannable, for missing the 'rock' or whatever?

small idea

function MisMouse(Target: TPoint; rX, rY: integer; Right: boolean; MouseColor(Yellow, Red, Either)): boolean;
var
realX, realY, tx, ty, tt: integer;
TimeFactor: extended;
begin
realX := Random(rX) + Target.x;
realY := Random(rY) + Target.y;

tx := Random(RMOUSE_X);
ty := Random(RMOUSE_Y);
tt := 50 + Random(CLICK_TIME) ;
Timefactor := tt * 0.1;

Mouse(realX, RealY, tx, ty, Right);
wait(tt);
Mouse(
Target.x - round(TimeFactor*(realX + tx)),
Target.y - round(TimeFactor*(realY + ty)),
Right
);

Result := true;

If MouseColor <> Either then
if MouseColor = Red then
if DidRedClick then
Result := true
else
Result := false
else //MouseColor = Yellow
if DidYellowClick then
Result := true
else
Result := false;

end;

Not so small. I got kinda into it. Rather cool :p

~RM

Narcle

2010-03-14 17:37:20

I was considering this. Having misclicks but then having full functions to fix the mistake. It would be 2x the work but would be best anti ban possible.

Sabzi

2010-03-14 17:39:01

I am never as precise as my scripts. I always misses here and there. I don't know what about others but I think it's a good idea to miss more.

Sir R. M8gic1an

2010-03-14 17:44:07

We can have a lot of dedication in it.


MisTab(%, Tab, RTab)
if not random(100) <= % then
begin
GameTab(Tab);
exit;
end else begin
Gametab(Tab + pow(-1, 1+ random(1)* RTab);
wait(50+random(75));
Gametab(Tab);
end;
end;

I think these are actually worth developing… (and interesting :p)

~RM

Gu3st...

2010-03-14 17:46:58

I agree, I have tried to get one of these into SRL too but it didn't happen :/
I so want this in MSI.

Sir R. M8gic1an

2010-03-14 18:18:54

I just noticed a small problem. We use MMouse to check UpText.

Therefore we need the mouse to check the text before it misclicks.

This would mean a new function, MouseTextContinuous, that checks for the text as it goes along. It's possible enough.

~RM

Wanted

2010-03-14 18:20:27

Overkill

It better be a default option for all this to not happen.

Sir R. M8gic1an

2010-03-14 18:24:13

From: IceFire908
Overkill

It better be a default option for all this to not happen.


Use Mouse instead of MisMouse. Duh.

or set MisMouse percentage to 100%. Duh.

I'm not sure you really thought about that post of yours through :) In case you haven't realized, there'd be a MIS_MOUSE_PRCT const.

~RM

Timer

2010-03-14 18:33:06

I was doing things like this.

What I got into doing was changing the speed of my mouse depending on distance from target. I like it. :)

Also, I like your theory here, just a pain in the ass to write… aye?

Sir R. M8gic1an

2010-03-14 18:41:22

From: Timer
I was doing things like this.

What I got into doing was changing the speed of my mouse depending on distance from target. I like it. :)

Also, I like your theory here, just a pain in the ass to write… aye?


I like that of changing the mouse speed.

I don't think it should be too hard to write.

I'd do it now, but unfortunately am supposed to be working :(

~RM

Wanted

2010-03-14 20:00:57

From: Rasta Magician
Use Mouse instead of MisMouse. Duh.

or set MisMouse percentage to 100%. Duh.


And if the script you are using doesn't?

From: Rasta Magician


I'm not sure you really thought about that post of yours through :) In case you haven't realized, there'd be a MIS_MOUSE_PRCT const.

~RM


No, I didn't really think it through… but I doubt the majority of people who use this are thinking it through either. When you "missclick" a lot of things happen.

The first thing that happens is you didn't do what you were supposed to do obviously, so it requires you try again but it's probably a good idea you don't 'missclick' twice in a row. This much requires an extra variable and a loop… simple enough.

The second thing that happens when you miss click is you click, any number of things can happen at this point. You could click an NPC and begin a chat convo, click an NPC and start a fight… accidentally climb a latter, open a door, pick up unwanted junk off the ground.. the list goes on, and there's a humongous margin for the unexpected to happen when you do something like this. For this you would need a convo handler, possible area detection, inventory checker, shopscreen checker, InFight… sounds like a massive headache to me.

The last thing that happens is you might need to get back to where you are supposed be… whether it's you climbed down into a cellar or ran away from an NPC attacking you. Requires more code… that needs to be skillfully incorporated with the first and second things.

Sure the idea of accidentally misclicking sounds good in theory, but it's not that simple.. at least not as simple as some people would make it out be. The reason I stress this is because it's not as simple as a const or setting set to true for false… there's a lot of variables at stake… and in my opinion requires too much unessential, unreliable, unnecessary, extra coding which will most likely be improperly used by the mass majority of people. How much would this really help anyways? A simple misclick may look even more botlike… it's really not worth the code and effort.

Surely, passion for a particular thing like this is something you would think would need to be concentrated on by an individual for an individual script and not the communities base as a whole, however things like this can go either way and it's a lot better to see them in use before they are implemented and such.

Not trying to suppress anyones idea, just stating some well thought out skepticism on the matter.

NCDS

2010-03-14 20:04:25

From: IceFire908


The second thing that happens when you miss click is you click, any number of things can happen at this point. You could click an NPC and begin a chat convo, click an NPC and start a fight… accidentally climb a latter, open a door, pick up unwanted junk off the ground.. the list goes on, and there's a humongous margin for the unexpected to happen when you do something like this. For this you would need a convo handler, possible area detection, inventory checker, shopscreen checker, InFight… sounds like a massive headache to me.

The last thing that happens is you might need to get back to where you are supposed be… whether it's you climbed down into a cellar or ran away from an NPC attacking you. Requires more code… that needs to be skillfully incorporated with the first and second things.


That could all be avoided by checking for the 'Walk here' uptext before actually clicking though.

Sir R. M8gic1an

2010-03-14 20:07:59

The algorithm ams to only miclick once ;) It's a question of properly setting the TimeFactor.

~RM

Wanted

2010-03-14 20:08:16

From: NCDS
That could all be avoided by checking for the 'Walk here' uptext before actually clicking though.


Fat chance, things move around a lot. You're compromising integrity for a misclick which contributes to antiban on an unknown infinitesimal level.

Sir R. M8gic1an

2010-03-14 20:13:45

From: IceFire908
Fat chance, things move around a lot. You're compromising integrity for a misclick which contributes to antiban on an unknown infinitesimal level.


Only things that move around are moving NPCs. Just don't use it in areas with moving NPCs?

~RM

Camaro'

2010-03-14 22:25:34

I don't like the idea. I think in the end it is going to look more bot like then what we have now.

But hey, its worth a shot.

mikevskater

2010-03-15 00:36:25

i think this is a great idea, i cant tell you how many times i'd move the mouse to fast and click "next" to a rock, then really quickly click on the rock, if we could make the script get the actual points, make it miss, then really fast click on the "object" (more suitable name) that, i think, is the most "human" or bot could get with clicking on things.

marpis

2010-03-15 01:43:34

The "move mouse over the target point and fix it"- action should be in the regular MMouse too, not just LaptopMouse.
SCAR scripts do misclick anyway at some point, so no need to add that to antiban.

The Claw

2010-03-15 10:46:39

Interesting idea, but I wouldnt use it. None of my characters get banned without it, so not really worth the hassle imo..would be better to do something like what I did in MageMeFast, which is every certain minutes (decided randomly at the start of the script b/w 1 and 15), perform something a human would do when they're bored - for example, mess with the camera then put it back, right click then examine somewhere, or just random mouse movements. This breaks up the constant successes, without messing with the script's functionality. Reset the timing every so often (say, every 15 minutes) and with enough randomness on each action as well as each "timing", some very interesting combinations can occur which look human - for example, rotate camera angle, put it back, 2 mins later, right click, 5 mins later, mousmove, 1 min later, rotate camera angle, then gametab change to check xp of skill youre training, etc. This "flows" with the script nicely, and as long as you get back to the original conditions after each action, there shouldnt be any problems. Much harder to get back to the original conditions with misclicks, as has already been stated.

I had pretty much the same reasoning behind coding that, just implemented differently

Heres some code:

function DoClawAntiBan: Boolean;
var
z, c, i, x, y: Integer;
begin
if TimeFromMark(OverallTimer) > 10 * 60000 then
begin
ClearReport;
MarkTime(OverallTimer);
for i := 0 to 5 do
begin
AntibanTimer[i] := Random((i + 1) * i) + 1 + Random(3);
AddToReport('AntibanTimer[' + IntToStr(i) + '] = ' + IntToStr(AntibanTimer[i]));
end;
end;
for i := 0 to 5 do
if TimeFromMark(AntiBanMark[i]) > (AntibanTimer[i] * (60000 + Random(30000))) then
begin
AddToReport('Performing antiban number ' + IntToStr(i));
case i of
0: begin MMouse(RandomRange(0, 760), RandomRange(0, 500), 0, 0); Wait(Random(1500) + Random(500)); end;
1: begin
MMouse(RandomRange(0, 760), RandomRange(0, 500), 0, 0);
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
Wait(Random(3000));
MMouse(RandomRange(0, 760), RandomRange(0, 500), 0, 0);
Wait(Random(2000));
end;
2: Wait(Random(15000));
3: begin
repeat
c := Random(13) + 1;
GameTab(c);
Wait(Random(2000));
inc(z);
until z >= 3;
// GameTab(4);
end;
4: BoredHuman;
5: HoverSkill('magic', False);
end;
MarkTime(AntiBanMark[i]);
Result := True;
end;
end;

Run this once at the start of the script:

for i := 0 to 5 do
MarkTime(AntibanMark[i]);

And call DoClawAntiBan at least once per minute.

scuz 10

2010-03-20 15:33:24

My main in rs is a 138, and i do play legit A LOT. I've never autoed on my main, but I have watched myself play very carefully. I misclick a lot more than you would think. Nobody can sit and do something with 100% accuracy all the time. I think misclicks would add whole new level of antiban to scripts that is completely missing.

Narcle

2010-03-21 05:13:28

I think the most common Miss-clicks are in ChooseOptions (from my experience) and SRL has a 100% accuracy with it.

However this complicates it, sometimes the ChooseOption action moves u to the item, or inspects it from afar depending on the object.

Depending where the script is at, the scripter could setup ChooseOptions that they know the reaction too, if it moves you, or doesn't move you etc. and then do the necessary actions to fix the miss-click. Basically its a controlled "miss" click.

Doing random miss-clicks is to risky as the reasons stated above.