SRL Archive - MSI Suggestions

MSI_AntiBan


Sir R. M8gic1an

2010-09-06 03:08:44

I find that MSI does wayy too much antiban, especially while walking.

It reduces walking effectiveness and it makes the character look like a stupid kid with ADD, as it is performing the randommest actions one after the other.

I suggest we add a timer to it, and put a const in RunMe.simba;


const
ANTIBAN_MIN_WAIT = 30000;

proc MSI_AntiBan
begin
if NextAntiBan > GetSystemTime then exit;

//...

NextAntiBan := GetSystemTime + ANTIBAN_MIN_WAIT;
end;

Anyone against this?

~RM

Coh3n

2010-09-06 03:21:05

Why don't we just lower the ANTIBAN_CHANCE constant in Globals? Or lower the times in MSI_Antiban. I'm all for customization, but I'd still like to keep player/script setup steps to a minimum.

Sir R. M8gic1an

2010-09-06 03:32:38

Well, changing a const is really an option, not a necessary thing to do while setting up.

The thing is with chance,
if you have a 1% chance but you call the function 1000 times in 1 minute, you'll still do it 10 times, although with 1% you'd imagine it would be much less.

~RM

Coh3n

2010-09-06 03:36:34

Lol, sorry I should have properly looked at what you said. I thought it was minimum time to do anti ban, not minimum wait between performances. My apologies.

I'm not against it at all. :)

NCDS

2010-09-06 11:30:32

Sounds good to me.

Another way to go about it maybe would be to do:

if InRange(Random(10), 2, 6) then
case Random(this) of
...
end;

Just seems like it would keep thing's more random, opposed to an exact timer.

marpis

2010-09-07 11:46:51

From: NCDS
Sounds good to me.

Another way to go about it maybe would be to do:

if InRange(Random(10), 2, 6) then
case Random(this) of
...
end;

Just seems like it would keep thing's more random, opposed to an exact timer.



if (Random(3) = 0) then
if (Random(4) = 0) then
equals

if (Random(12) = 0) then

One random() is enough, if you want it to do antiban less ofter either add a timer or increase the number in random().

NCDS

2010-09-07 14:23:35

From: marpis

if (Random(3) = 0) then
if (Random(4) = 0) then
equals

if (Random(12) = 0) then

One random() is enough, if you want it to do antiban less ofter either add a timer or increase the number in random().



procedure AntiBan;
var
WTime, t: Integer;
begin
if (not (InRange(Random(10), 3, 6))) then
Exit;

case Random(200) of

1, 3, 5:
begin
HoverSkill('woodcutting', False);
PlayerReport[CurrentPlayer].ELevel := GetSkillInfo('woodcutting', False);
PlayerReport[CurrentPlayer].EExp := GetXP('woodcutting');
end;

12:
begin
BoredHuman;
MakeCompass('n');
end;

50, 53:
RandomRClick;

60, 65:
HoverSkill('random', False);

80..82:
begin
WTime := RandomRange(2000, 8000);
MarkTime(t);

repeat
Status('Waiting '+IntToStr((WTime - TimeFromMark(t)) div 1000)+' seconds randomly..');
Wait(1000);
until(TimeFromMark(t) >= WTime);

end;
end;
end;

Has been working great to be honest :redface:

marpis

2010-09-08 00:41:52

From: NCDS

procedure AntiBan;
var
WTime, t: Integer;
begin
if (not (InRange(Random(10), 3, 6))) then
Exit;

case Random(200) of


Has been working great to be honest :redface:


I know that works, but it could as well be just
case Random(500) of

because

InRange(random(10), 3, 6) = 0.4
Random(200) = 0.02
1/(0.02*0.4) = 500

NCDS

2010-09-08 00:47:53

From: marpis
I know that works, but it could as well be just
case Random(500) of

because

InRange(random(10), 3, 6) = 0.4
Random(200) = 0.02
1/(0.02*0.4) = 500


Yeah, I don't know why I even bothered posting that to be honest. I know exactly what your talking about, just ignore that. :closedeyes:

Coh3n

2010-09-23 18:04:42

Committed. :)