SRL Archive - Discussions and Debates

High-Low system


Krazy_Meerkat

2006-03-18 17:05:19

I've been thinking about how scar scripts work and why some of them will still get you banned and I think I've come to a conclusion.
Using any scar script for a short period of time say.. 5-10 minutes will never get you banned, but autoing all day and all night usually will :/
So I think it has something to do with our wait times. I've been doing a lot of work with waits recently so I've become more familiar with them and started using a simple system to make detection harder.
We all add random numbers to our wait times don't we? Yeah we do, well I figure that rs uses a few variables for each of our characters to store suspicious information like similar wait times etc.

Now if our wait time is always falling in between 100 milliseconds of the previous one for that stage of the loop eg. wait(500 + random(100)); then we will be raised a "suspicion" level, if it gets too suspicious I think they will log you out and increase your chances of getting a random.

Anyway I think that the wait time has something to do with being detected. So I propose that we use the High-Low wait system. Normal humans won't be able to do a random wait of between 400ms and 500ms, they do completely different waits (over long perioids of time). So why don't we?
The High-Low system works by having a random choice between waiting a long fixed period of time or a short fixed period.
For instance:

if(random(2) = 1)then
begin
wait-time:= 500;
end else
wait-time:= 2000;
wait(wait-time + random(300));

We can make as many wait times as we want using cases, but they should all be at different ends of the scale, and they shouldn't be able to reach each other by using the random number.
For instance:

case (random(4) +1 ) of
1 : wait-time:= 333;
2 : wait-time:= 2222;
3 : wait-time:= 6666;
4 : wait-time:= 11111;
end;
wait(wait-time + random(1000));
You see, if the random number looked like this:
wait(wait-time + random(2000));
Then there is a chance that it would cross over into the 2222 range, and you may as well use wait(333 + random(4222));
Well, it would be good to use in this situation, because it wouldn't breach any other wait times so it would be a very random case but you know.
So that's my little discussion, just keep it in mind. If you decide to use this system then remember that you should only use it with important waits, don't bother with waits for clicking an option etc. It's just a good idea to have more than one wait time, I usually use 2.
Good luck and happy cheating, I hope I have had some kind of impact to your view of precautionary steps

timmyboy

2006-03-18 19:07:25

Very good theory:) I think that you are entirely correct, and because of that, i'm going to be using your system. Thanks!

Rep+

XxKanexX

2006-03-18 19:17:12

Sounds like another way to help prevent banning. Instead of having to have cases everywhere you wait, you could do:


procedure ChanceWait(time1, time2, rand: integer);
begin
case random(2)+1 of
1: wait(time1 + random(rand));
2: wait(time2 + random(rand));
end;
end;

:)

timmyboy

2006-03-18 19:53:05

From: XxKanexX
Sounds like another way to help prevent banning. Instead of having to have cases everywhere you wait, you could do:


procedure ChanceWait(time1, time2, rand: integer);
begin
case random(2)+1 of
1: wait(time1 + random(rand));
2: wait(time2 + random(rand));
end;
end;

:)
Ooooo, even better, i'm using this:D Ty!
Btw, Kane, have you made any scar scripts? As you seem to know scar(pascal) coding/scripting pretty well.

XxKanexX

2006-03-18 20:03:33

From: timmyboy
Ooooo, even better, i'm using this:D Ty!
Btw, Kane, have you made any scar scripts? As you seem to know scar(pascal) coding/scripting pretty well.

I add things into SRL now and then. I'm very busy lately.

timmyboy

2006-03-18 20:40:29

Ah,well that explains your l33t coding skills, now I know who to ask with my problems(prepare to be flooded with PMs:p)









BTW, I almost never need help so don't worry:p

Krazy_Meerkat

2006-03-18 21:17:21

Thanks timmy, that would make you the first person to ever give me rep :)
Good idea kane, I was going to also suggest making it fairly one-sided. To usually select a regular wait time, but sometimes maybe wait a longer period of time (for example, having a drink or talking to someone)
Good luck ;)

XxKanexX

2006-03-18 21:25:06

From: Krazy_Meerkat
Thanks timmy, that would make you the first person to ever give me rep :)
Good idea kane, I was going to also suggest making it fairly one-sided. To usually select a regular wait time, but sometimes maybe wait a longer period of time (for example, having a drink or talking to someone)
Good luck ;)


Take a look at my DivWait. It can kind of do that, depending on the parameters.

Flyboy

2006-03-19 01:37:01

Since the object when autoing is to be efficent but still avoid detection I suggest having a normal wait and an extended wait. Then call on this special wait at several key spots in your script. It will normally just take the normal wait, but occationally it will take an extended wait.

This example will give an extended wait time 1% of the time:


procedure ChanceWait(NormalWait, ExtendedWait: integer);
begin
if random(100) = 0 then
wait(Round(ExtendedWait div 2) + random(ExtendedWait))
else
wait(Round(NormalWait div 2) + random(NormalWait));
end;

Krazy_Meerkat

2006-03-19 04:00:02

Well actually, that piece of code will give a normal wait time 1% of the time, the other 99% it will give the extended wait time.
I use a similar method to that, just with different ratios :)

Flyboy

2006-03-19 05:46:23

<Sneeks into edit mode in the hopes no one notices>
:D What are you talking about? It looks correct to me ;) :D

Krazy_Meerkat

2006-03-19 14:54:18

:p
I was actually thinking we could just make that extended automatic. Maybe 2 times the normal wait time plus random((normalwaittime/2)), but only if it is less than 4000 or something.

Brown

2006-03-21 07:40:22

I would add one of these ideas into an include for the next update. Im gonna start using these.