Justin
11-07-2012, 10:49 PM
So today, I woke up to find one of my accounts to be banned, this is my first ever ban using Simba\SMART.
The account was an AFK account to keep the clan avatar active in the clans home world 24/7.
The script was poorly scripted as I wasn't planning to release it to anyone else.
I'll post the script here so people can learn on what NOT to do in their scripts in order to keep them un-detectable
program SS_AVATAR;
{$DEFINE SMART}
{$I SRL/SRL.simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$I SRL/SRL/Misc/Debug.Simba}
var
Tmp, FinalMsg, CurrentCommandPlayerName, CurrentFollowing, TmpName, SummonAvatar, s, FagName: string;
TPA: TPointArray;
ATPA: T2DPointArray;
x, y, m, i, redx, redy: integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Active := True;
end;
function GetLastClanMsg: string;
var
P: TPoint;
cArr: TPointArray;
B: TBox;
begin
Result := '';
P := TextCoords(8);
if (FindColorsTolerance(cArr, 0, MCX1, P.y, MCX2, P.y + 13, 255)) then
begin
B := GetTPABounds(cArr);
result := Trim(GetTextAtExWrap(b.x1 - 1, p.y, B.x2 + 1, p.y + 13, 0, 5, 2, 0, 255, SmallCharsNS));
end;
end;
procedure SendMsg(Text: string);
var
I: Integer;
begin
for i := 1 to Length(Text) do
SendKeys(Text[i], 10 + Random(25), 10 + Random(25));
TypeByte(VK_ENTER);
end;
function isMMonMS(MM: TPoint): Boolean;
begin
Result := (MMtoMS(MM) <> Point( - 1, - 1));
end;
procedure FindClanMember_Follow;
var
DPoint: Tpoint;
x, y: Integer;
Box: TBox;
begin
if (CurrentFollowing = Between('/', ':', FinalMsg)) then
begin
SendMsg('//I am already following you, ' + Between('/', ':', FinalMsg));
exit;
end;
ClickNorth(SRL_ANGLE_HIGH);
repeat
if FindColorTolerance(x, y, 1082874, MMX1, MMY1, MMX2, MMY2, 25) then
begin
DPoint := MMToMS(Point(x, y));
MouseBox(DPoint.x - 30, DPoint.y - 5, DPoint.x + 5, DPoint.y + 50, Mouse_Move);
if (DPoint.x - 30 < - 1) then
begin
SendMsg('//You are off my screen, please move closer');
wait(2000);
end;
while (DPoint.x - 30 < - 1) do
begin
FindColorTolerance(x, y, 1082874, MMX1, MMY1, MMX2, MMY2, 10) DPoint := MMToMS(Point(x, y));
wait(100);
end;
Box := IntToBox(DPoint.x - 30, DPoint.y - 5, DPoint.x + 5, DPoint.y + 50);
SMART_DrawBox(Box);
Wait(100);
writeln(GetUpText);
if (IsUpText(TmpName)) then
begin
ClickMouse2(mouse_Right);
if (OptionsExist(['Follow ' + TmpName], True)) then
begin
ClickMouse2(True);
SendMsg('//I am now following: ' + TmpName);
CurrentFollowing := TmpName;
exit;
end;
end;
end;
until (false);
end;
begin
DeclarePlayers;
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
SetUpSRL;
LoginPlayerToLob SelectWorld(83);
LoginPlayer;
CurrentFollowing := 'No one';
Wait(3000);
ClickNorth(SRL_ANGLE_HIGH);
repeat
if not (LoggedIn) then
begin
LoginPlayerToLob SelectWorld(83);
LoginPlayer;
end;
MMouse(709, 196 - 50, 0, 0);
wait(500);
if (CurrentWorld <> 83) then
begin
ExitToLobby;
SelectWorld(83);
LoginPlayer;
end;
Tmp := GetLastClanMsg;
Tmp := Replace(Tmp, '..', ':');
Tmp := Replace(Tmp, '[', '');
Tmp := Replace(Tmp, ']', '');
FinalMsg := Replace(Tmp, 'CLAN NAME ', '/');
if ((Pos('@Follow', FinalMsg) > 0) or ((Pos('@follow', FinalMsg) > 0))) then
begin
TmpName := Between('/', ':', FinalMsg) FindClanMember_Follow;
CurrentCommandPlayerName := Between('/', ':', FinalMsg);
Wait(3000);
end;
if ((Pos('@Reset', FinalMsg) > 0) or ((Pos('@reset', FinalMsg) > 0))) then
begin
SendMsg('//Variables have been reset. You will be able to find me around Edgeville Bank');
Tmp := '';
FinalMsg := '';
CurrentCommandPlayerName := '';
CurrentFollowing := '';
TmpName := '';
SummonAvatar := 'Unknown';
CurrentFollowing := 'No one';
ClickNorth(SRL_ANGLE_HIGH);
Mouse(628, 132 - 50, 2, 2, mouse_Left);
wait(1500);
GameTab(tab_Magic);
MMouse(573, 276 - 50, 5, 5);
ClickMouse2(true);
wait(RandomRange(3000, 5000));
MMouse(293, 205 - 50, 5, 5);
ClickMouse2(true);
wait(20000);
ClickNorth(SRL_ANGLE_NONE);
Mouse(670, 153 - 50, 5, 5, mouse_Left);
wait(2500);
while IsMoving do
wait(200);
Mouse(673, 166 - 50, 5, 5, mouse_Left);
wait(2500);
while IsMoving do
wait(200);
Wait(3000);
end;
if ((Pos('@Unfollow', FinalMsg) > 0) or ((Pos('@unfollow', FinalMsg) > 0))) then
begin
CurrentFollowing := 'No one';
ClickNorth(SRL_ANGLE_HIGH);
Mouse(628, 132 - 50, 2, 2, mouse_Left);
SendMsg('//I am no longer following ' + Between('/', ':', FinalMsg));
Wait(3000);
end;
if ((Pos('@Info', FinalMsg) > 0) or ((Pos('@info', FinalMsg) > 0))) then
begin
MMouse(709, 196 - 50, 0, 0);
wait(500);
if (IsUpTextMultiCustom(['all F', 'Call Follower'])) then
begin
SummonAvatar := 'true';
end
else
SummonAvatar := 'false';
SendMsg('//Avatar Active : ' + SummonAvatar + ' | Currently following : ' + CurrentFollowing + ' | Run ' + IntToStr(GetMMLevels('run', s)));
Wait(3000);
end;
if ((Pos('@Rest', FinalMsg) > 0) or ((Pos('@rest', FinalMsg) > 0))) then
begin
RestUntil(100);
SetRun(True);
SendMsg('//Run energy now 100% and Run activated (Will need to @Follow)');
Wait(3000);
end;
MMouse(709, 196 - 50, 0, 0);
TypeByte(VK_Right);
wait(RandomRange(1000, 3000));
if not (IsUpTextMultiCustom(['all', 'wer', 'C', 'wer', 'or', '3'])) then
begin
ClickNorth(SRL_ANGLE_HIGH);
FindColorsSpiralTolerance(x, y, TPA, 14210930, MSX1, MSY1, MSX2, MSY2, 50);
ATPA := TPAtoATPAEx(TPA, 10, 10);
m := High(ATPA) for i := 0 to m do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
if (WaitUpTextMulti(['elep', 'ortal'], 500)) then
begin
ClickMouse2(mouse_Right);
wait(200);
WaitOptionMulti(['ele', 'Teleport'], 800);
wait(3000);
TypeSendEx('1', false);
wait(15000);
MMouse(543, 192 - 50, 0, 0);
ClickMouse2(true);
wait(2000);
MMouse(328, 269 - 50, 0, 0);
ClickMouse2(true);
wait(2000);
MakeCompass('w');
SetAngle(SRL_ANGLE_LOW);
wait(1000);
MMouse(632, 62 - 50, 0, 0);
ClickMouse2(true);
wait(20000);
while ismoving do
wait(1000);
MakeCompass('e');
SetAngle(SRL_ANGLE_LOW);
FindColorsSpiralTolerance(x, y, TPA, 1480880, MSX1, MSY1, MSX2, MSY2, 20);
ATPA := TPAtoATPAEx(TPA, 10, 10);
m := High(ATPA);
MouseSpeed := 30;
for i := 0 to m do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
if (WaitUpTextMulti(['nter', 'avatar'], 250)) then
begin
ClickMouse2(mouse_Right);
wait(300);
WaitOptionMulti(['Interact', 'eract'], 800);
FindColorTolerance(redx, redy, 1376488, MMX1, MMY1, MMX2, MMY2, 25) wait(1000);
TypeSendEx('1', false);
wait(3000);
if (FindBlackChatMessage('should get closer')) then
begin
writeln('Need to get closer and try again.. waiting for avatar to move');
MakeCompass(RandomRange(0, 300));
MMouse(redx, redy, 0, 0);
ClickMouse2(true);
wait(5000);
repeat
FindColorTolerance(redx, redy, 1376488, MMX1, MMY1, MMX2, MMY2, 25);
MMouse(redx, redy, 0, 0);
ClickMouse2(true);
wait(5000);
MakeCompass(RandomRange(0, 359));
FindColorsSpiralTolerance(x, y, TPA, 1480880, MSX1, MSY1, MSX2, MSY2, 20);
ATPA := TPAtoATPAEx(TPA, 10, 10);
m := High(ATPA);
for i := 0 to m do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
if (WaitUpTextMulti(['nter', 'avatar'], 500)) then
begin
ClickMouse2(mouse_Right);
wait(300);
WaitOptionMulti(['Interact', 'eract'], 800);
wait(3000);
TypeSendEx('1', false);
wait(3000);
end;
end;
until (FindColorTolerance(x, y, 5232606, 115, 182 - 50, 182, 256 - 50, 5));
end;
if FindColorTolerance(x, y, 5232606, 115, 182 - 50, 182, 256 - 50, 5) then
begin
MMouse(x, y, 2, 2);
ClickMouse2(true);
wait(3000);
TypeSendEx('1', false);
break;
end;
end;
end;
end;
end;
wait(5000);
MMouse(543, 191 - 50, 2, 2);
ClickMouse2(True);
wait(2500);
MMouse(455, 268 - 50, 2, 2);
clickmouse2(true);
wait(3000);
FindColorsSpiralTolerance(x, y, TPA, 14210930, MSX1, MSY1, MSX2, MSY2, 50);
ATPA := TPAtoATPAEx(TPA, 10, 10);
m := High(ATPA) for i := 0 to m do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
if (WaitUpTextMulti(['elep', 'ortal'], 500)) then
begin
ClickMouse2(false);
wait(300);
WaitOptionMulti(['Quick', 'uick'], 800);
wait(10000);
ClickNorth(SRL_ANGLE_HIGH);
break;
end;
end;
end;
until (false);
end.
What I've learnt from this;
Jagex don't like people clicking in static positions
Jagex don't like accounts being logged in for 24 hrs a day
Jagex would rather ban an account that does minimal harm to the game then a goldfarmer who is raking in IRL cash
Random mouse movements are important
Pushing the same key for 24 hrs a day is bad
Anti-bans would help
Don't stay in the same location
From looking at the ban messages ect, it seems like a Jagex Mod manually had to ban me, showing that Botney Bay failed to detect me.
Here are some screenshots
http://srljustin.com/images/banned1.png
http://srljustin.com/images/banned2.png
The account was an AFK account to keep the clan avatar active in the clans home world 24/7.
The script was poorly scripted as I wasn't planning to release it to anyone else.
I'll post the script here so people can learn on what NOT to do in their scripts in order to keep them un-detectable
program SS_AVATAR;
{$DEFINE SMART}
{$I SRL/SRL.simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$I SRL/SRL/Misc/Debug.Simba}
var
Tmp, FinalMsg, CurrentCommandPlayerName, CurrentFollowing, TmpName, SummonAvatar, s, FagName: string;
TPA: TPointArray;
ATPA: T2DPointArray;
x, y, m, i, redx, redy: integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Active := True;
end;
function GetLastClanMsg: string;
var
P: TPoint;
cArr: TPointArray;
B: TBox;
begin
Result := '';
P := TextCoords(8);
if (FindColorsTolerance(cArr, 0, MCX1, P.y, MCX2, P.y + 13, 255)) then
begin
B := GetTPABounds(cArr);
result := Trim(GetTextAtExWrap(b.x1 - 1, p.y, B.x2 + 1, p.y + 13, 0, 5, 2, 0, 255, SmallCharsNS));
end;
end;
procedure SendMsg(Text: string);
var
I: Integer;
begin
for i := 1 to Length(Text) do
SendKeys(Text[i], 10 + Random(25), 10 + Random(25));
TypeByte(VK_ENTER);
end;
function isMMonMS(MM: TPoint): Boolean;
begin
Result := (MMtoMS(MM) <> Point( - 1, - 1));
end;
procedure FindClanMember_Follow;
var
DPoint: Tpoint;
x, y: Integer;
Box: TBox;
begin
if (CurrentFollowing = Between('/', ':', FinalMsg)) then
begin
SendMsg('//I am already following you, ' + Between('/', ':', FinalMsg));
exit;
end;
ClickNorth(SRL_ANGLE_HIGH);
repeat
if FindColorTolerance(x, y, 1082874, MMX1, MMY1, MMX2, MMY2, 25) then
begin
DPoint := MMToMS(Point(x, y));
MouseBox(DPoint.x - 30, DPoint.y - 5, DPoint.x + 5, DPoint.y + 50, Mouse_Move);
if (DPoint.x - 30 < - 1) then
begin
SendMsg('//You are off my screen, please move closer');
wait(2000);
end;
while (DPoint.x - 30 < - 1) do
begin
FindColorTolerance(x, y, 1082874, MMX1, MMY1, MMX2, MMY2, 10) DPoint := MMToMS(Point(x, y));
wait(100);
end;
Box := IntToBox(DPoint.x - 30, DPoint.y - 5, DPoint.x + 5, DPoint.y + 50);
SMART_DrawBox(Box);
Wait(100);
writeln(GetUpText);
if (IsUpText(TmpName)) then
begin
ClickMouse2(mouse_Right);
if (OptionsExist(['Follow ' + TmpName], True)) then
begin
ClickMouse2(True);
SendMsg('//I am now following: ' + TmpName);
CurrentFollowing := TmpName;
exit;
end;
end;
end;
until (false);
end;
begin
DeclarePlayers;
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
SetUpSRL;
LoginPlayerToLob SelectWorld(83);
LoginPlayer;
CurrentFollowing := 'No one';
Wait(3000);
ClickNorth(SRL_ANGLE_HIGH);
repeat
if not (LoggedIn) then
begin
LoginPlayerToLob SelectWorld(83);
LoginPlayer;
end;
MMouse(709, 196 - 50, 0, 0);
wait(500);
if (CurrentWorld <> 83) then
begin
ExitToLobby;
SelectWorld(83);
LoginPlayer;
end;
Tmp := GetLastClanMsg;
Tmp := Replace(Tmp, '..', ':');
Tmp := Replace(Tmp, '[', '');
Tmp := Replace(Tmp, ']', '');
FinalMsg := Replace(Tmp, 'CLAN NAME ', '/');
if ((Pos('@Follow', FinalMsg) > 0) or ((Pos('@follow', FinalMsg) > 0))) then
begin
TmpName := Between('/', ':', FinalMsg) FindClanMember_Follow;
CurrentCommandPlayerName := Between('/', ':', FinalMsg);
Wait(3000);
end;
if ((Pos('@Reset', FinalMsg) > 0) or ((Pos('@reset', FinalMsg) > 0))) then
begin
SendMsg('//Variables have been reset. You will be able to find me around Edgeville Bank');
Tmp := '';
FinalMsg := '';
CurrentCommandPlayerName := '';
CurrentFollowing := '';
TmpName := '';
SummonAvatar := 'Unknown';
CurrentFollowing := 'No one';
ClickNorth(SRL_ANGLE_HIGH);
Mouse(628, 132 - 50, 2, 2, mouse_Left);
wait(1500);
GameTab(tab_Magic);
MMouse(573, 276 - 50, 5, 5);
ClickMouse2(true);
wait(RandomRange(3000, 5000));
MMouse(293, 205 - 50, 5, 5);
ClickMouse2(true);
wait(20000);
ClickNorth(SRL_ANGLE_NONE);
Mouse(670, 153 - 50, 5, 5, mouse_Left);
wait(2500);
while IsMoving do
wait(200);
Mouse(673, 166 - 50, 5, 5, mouse_Left);
wait(2500);
while IsMoving do
wait(200);
Wait(3000);
end;
if ((Pos('@Unfollow', FinalMsg) > 0) or ((Pos('@unfollow', FinalMsg) > 0))) then
begin
CurrentFollowing := 'No one';
ClickNorth(SRL_ANGLE_HIGH);
Mouse(628, 132 - 50, 2, 2, mouse_Left);
SendMsg('//I am no longer following ' + Between('/', ':', FinalMsg));
Wait(3000);
end;
if ((Pos('@Info', FinalMsg) > 0) or ((Pos('@info', FinalMsg) > 0))) then
begin
MMouse(709, 196 - 50, 0, 0);
wait(500);
if (IsUpTextMultiCustom(['all F', 'Call Follower'])) then
begin
SummonAvatar := 'true';
end
else
SummonAvatar := 'false';
SendMsg('//Avatar Active : ' + SummonAvatar + ' | Currently following : ' + CurrentFollowing + ' | Run ' + IntToStr(GetMMLevels('run', s)));
Wait(3000);
end;
if ((Pos('@Rest', FinalMsg) > 0) or ((Pos('@rest', FinalMsg) > 0))) then
begin
RestUntil(100);
SetRun(True);
SendMsg('//Run energy now 100% and Run activated (Will need to @Follow)');
Wait(3000);
end;
MMouse(709, 196 - 50, 0, 0);
TypeByte(VK_Right);
wait(RandomRange(1000, 3000));
if not (IsUpTextMultiCustom(['all', 'wer', 'C', 'wer', 'or', '3'])) then
begin
ClickNorth(SRL_ANGLE_HIGH);
FindColorsSpiralTolerance(x, y, TPA, 14210930, MSX1, MSY1, MSX2, MSY2, 50);
ATPA := TPAtoATPAEx(TPA, 10, 10);
m := High(ATPA) for i := 0 to m do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
if (WaitUpTextMulti(['elep', 'ortal'], 500)) then
begin
ClickMouse2(mouse_Right);
wait(200);
WaitOptionMulti(['ele', 'Teleport'], 800);
wait(3000);
TypeSendEx('1', false);
wait(15000);
MMouse(543, 192 - 50, 0, 0);
ClickMouse2(true);
wait(2000);
MMouse(328, 269 - 50, 0, 0);
ClickMouse2(true);
wait(2000);
MakeCompass('w');
SetAngle(SRL_ANGLE_LOW);
wait(1000);
MMouse(632, 62 - 50, 0, 0);
ClickMouse2(true);
wait(20000);
while ismoving do
wait(1000);
MakeCompass('e');
SetAngle(SRL_ANGLE_LOW);
FindColorsSpiralTolerance(x, y, TPA, 1480880, MSX1, MSY1, MSX2, MSY2, 20);
ATPA := TPAtoATPAEx(TPA, 10, 10);
m := High(ATPA);
MouseSpeed := 30;
for i := 0 to m do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
if (WaitUpTextMulti(['nter', 'avatar'], 250)) then
begin
ClickMouse2(mouse_Right);
wait(300);
WaitOptionMulti(['Interact', 'eract'], 800);
FindColorTolerance(redx, redy, 1376488, MMX1, MMY1, MMX2, MMY2, 25) wait(1000);
TypeSendEx('1', false);
wait(3000);
if (FindBlackChatMessage('should get closer')) then
begin
writeln('Need to get closer and try again.. waiting for avatar to move');
MakeCompass(RandomRange(0, 300));
MMouse(redx, redy, 0, 0);
ClickMouse2(true);
wait(5000);
repeat
FindColorTolerance(redx, redy, 1376488, MMX1, MMY1, MMX2, MMY2, 25);
MMouse(redx, redy, 0, 0);
ClickMouse2(true);
wait(5000);
MakeCompass(RandomRange(0, 359));
FindColorsSpiralTolerance(x, y, TPA, 1480880, MSX1, MSY1, MSX2, MSY2, 20);
ATPA := TPAtoATPAEx(TPA, 10, 10);
m := High(ATPA);
for i := 0 to m do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
if (WaitUpTextMulti(['nter', 'avatar'], 500)) then
begin
ClickMouse2(mouse_Right);
wait(300);
WaitOptionMulti(['Interact', 'eract'], 800);
wait(3000);
TypeSendEx('1', false);
wait(3000);
end;
end;
until (FindColorTolerance(x, y, 5232606, 115, 182 - 50, 182, 256 - 50, 5));
end;
if FindColorTolerance(x, y, 5232606, 115, 182 - 50, 182, 256 - 50, 5) then
begin
MMouse(x, y, 2, 2);
ClickMouse2(true);
wait(3000);
TypeSendEx('1', false);
break;
end;
end;
end;
end;
end;
wait(5000);
MMouse(543, 191 - 50, 2, 2);
ClickMouse2(True);
wait(2500);
MMouse(455, 268 - 50, 2, 2);
clickmouse2(true);
wait(3000);
FindColorsSpiralTolerance(x, y, TPA, 14210930, MSX1, MSY1, MSX2, MSY2, 50);
ATPA := TPAtoATPAEx(TPA, 10, 10);
m := High(ATPA) for i := 0 to m do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
if (WaitUpTextMulti(['elep', 'ortal'], 500)) then
begin
ClickMouse2(false);
wait(300);
WaitOptionMulti(['Quick', 'uick'], 800);
wait(10000);
ClickNorth(SRL_ANGLE_HIGH);
break;
end;
end;
end;
until (false);
end.
What I've learnt from this;
Jagex don't like people clicking in static positions
Jagex don't like accounts being logged in for 24 hrs a day
Jagex would rather ban an account that does minimal harm to the game then a goldfarmer who is raking in IRL cash
Random mouse movements are important
Pushing the same key for 24 hrs a day is bad
Anti-bans would help
Don't stay in the same location
From looking at the ban messages ect, it seems like a Jagex Mod manually had to ban me, showing that Botney Bay failed to detect me.
Here are some screenshots
http://srljustin.com/images/banned1.png
http://srljustin.com/images/banned2.png