SCAR Code:
{ /-------------\ /---------| |
/ \ / \ |
/ \ / \ |
| | | | | | |
| | | | | | |
| | | | | | |
|________| | |______ | | |
/ / / / |
/ / / / |
/ / / / SCRIPTZ |
/ / UPER / /_____ |
/ / |/ |/ | |
/ / | | | |
/ / | | | |
/ / | | | |
/ /________ \ / |
| | | \ / |
| | | \------------/_ |
| | | Super Scripts..| |.. |
| | | ____________________________________|
\ / | Version Info
\ / | 0.01 BETA template (skeleton)
\ / | 0.1 Released to public (Basik)
\---------/ | 0.2 Current (Axe Broken? Witdraw!)
____________________________________|_____________________________________|
}
program Yew_Cutt0r;
{.include SRL/SRL.scar}
Var
X, y, Banked, K : Integer;
Procedure Bank(What : String); Forward;
Const Ver = '0.1'; //Dont Touch!!!
procedure DeclarePlayers; //Fill this in!
begin
Disguise('SRL - Forms- Index...');
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := 'username';
Players[0].Pass := 'sernuiop';
Players[0].Nick := 'ser';
Players[0].Active := True;
Players[0].Integers[0] := 10; //Loads To Do?
Players[0].PIN := '0000'; //Leave at 0000 if no pin else enter it :)
{Add more players if you wish :)}
{Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Active := True;
Players[1].Integers[0] := 5; //Loads To Do? }
WriteLn('Using ' +IntToStr(HowManyPlayers) + ' Players');
end;
Procedure WalkToTree;
Label RV;
Begin
If FindSymbol(x, y, 'Tree') Then GoTo RV
Else
RadialWalk(FindDirtRoadColor, 230, 160, 65, 10, 20);
Begin
RV : WriteLn('Used Symbol Walking!');
If FindSymbol(x, y, 'Tree') Then
Mouse(x + 8, y + 4, 0, 0, True);
FFlag(4);
end;
end;
Procedure ChangeMouseSpeed;
var
Mchange :integer;
begin
Mchange := Random(18);
Case Mchange Of
0: MouseSpeed:=11;
1: MouseSpeed:=12;
2: MouseSpeed:=7;
3: MouseSpeed:=9;
4: MouseSpeed:=8;
end;
end;
Procedure MyAntiBan; //HERE READ SOME NOTES BELOW PLEASE DONT COPY ALL OF IT
Var //just take SOME IDEAS! only
DBanMe: Integer; //same means already explained
Begin
If Not (LoggedIn) Then Exit;
DBanMe := Random(18);
Case DBanMe Of
0: PickUpMouse; //pick your mouse up and drop it =)
1: GameTab(1 + Random(9)); //goes to tab 1
2: GameTab(1 + Random(5)); //does a emote such as dance and so
3: RandomRclick; //right clicks anywhere and just goes to cancel
4: PickUpMouse; //changes compass angle
5: HoverSkill('random', false); //scroll up for this 1
6: RandomRclick; //performs to logout but doesnt it just goes over it
7: ChooseOption('cancel');
//right clicks anywhere and just goes to cancel
8: MMouse(Random(MSX2), Random(MSY2), 0, 0); //moves mouse
9: HoverSkill('woodcutting', false); //goes to wc skill right clicks
10:
Begin
HoverSkill('random', false); //same^^^
sleepandmovemouse(200 + Random(100));
gametab(4); //goes to invo
ChooseOption('Cancel'); //same
MMouse(Random(MSY1), Random(MSX1), 0, 0);
End;
11:
Begin
GameTab(1 + Random(13));
wait(1000 + Random(600));
gametab(4); //same
// RandomButton; //same
ChooseOption('Cancel'); //same
End;
12:
Begin
HoverSkill('random', false); //any random skill =Z
sleepandmovemouse(200 + Random(100));
gametab(4);
End;
13: MMouse(x, y, (10 + random(350)), (10 + random(200)));
14: MMouse(x, y, (10 + random(400)), (10 + random(600)));
15: MMouse(x, y, (10 + random(550)), (10 + random(400)));
16: MMouse(x, y, (10 + random(500)), (10 + random(400)));
17: MMouse(Random(MSX2), Random(MSY2), 0, 0);
End;
End;
{*******************************************************************************
procedure RandomCompass;
By: P1nky (really common used)
Description: Will move the compass in any random direction.
*******************************************************************************}
Procedure RandomCompass; //common 1 should be added to srl.
Begin
Case Random(10) Of
0: MakeCompass('N');
1: MakeCompass(IntToStr(Random(360)));
2: MakeCompass('S');
3: MakeCompass(IntToStr(Random(180)));
4: MakeCompass('E');
5: MakeCompass(IntToStr(Random(360)));
6: MakeCompass('W');
7: SetAngle(True);
End;
End;
{*******************************************************************************
procedure RandomButton;
By: P1nky
Description: it will move the screen N/W/E/S randomnly with using the Arrows *up/right/left arrow on keyboard.*
*******************************************************************************}
Procedure RandomButton;
Begin
Case Random(3) Of
0:
Begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
End;
1:
Begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
End;
2:
Begin
KeyDown(VK_Up);
wait(Random(600) + 500);
KeyUp(VK_Up);
End;
End;
End;
Procedure DontBanMePlease;
begin
Case Random(7) Of
0: MyAntiBan;
1: ChangeMouseSpeed;
2: RandomButton;
3: RandomCompass;
end;
end;
Function AxeBroke : Boolean;
Begin
Result := (Not (GetColor(587, 221) = 857962)) Xor FindBlackChatMessage('do not');
end;
Procedure GetNewAxe;
Begin
Bank('Broken Axe');
Begin
MMouseItem(1);
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
end;
Begin
If Not FindDTM(DTMFromString('78DA635CCFC0C050C9C8800A18914820BD164' +
'8341150B31148D41350B31848541350330F484CC2AF06006E3905' +
'EA'), x, y, 23, 84, MSX2, MSY2) Then
Begin
Repeat
MMouse(489, 285, 3, 3);
GetMousePos(x, y);
HoldMouse(x, y, True);
Wait(1000 + Random(900));
ReleaseMouse(x, y, True);
Inc(K);
Until(FindDTM(DTMFromString('78DA635CCFC0C050C9C8800A18914820BD164' +
'8341150B31148D41350B31848541350330F484CC2AF06006E3905' +
'EA'), x, y, 23, 84, MSX2, MSY2)) Xor (K > 9);
If K > 9 Then
Begin
WriteLn('No Axe Found, Next Player');
LogOut;
NextPlayer(True);
Exit;
end;
End Else
If FindDTM(DTMFromString('78DA635CCFC0C050C9C8800A18914820BD164' +
'8341150B31148D41350B31848541350330F484CC2AF06006E3905' +
'EA'), x, y, 23, 84, MSX2, MSY2) Then
Begin
Mouse(x, y, 1, 1, True);
CloseBank;
End Else
Begin
Mouse(x, y, 0, 0, True);
CloseBank;
end;
WalkToTree;
end;
Exit;
end;
Function FindYew : Boolean;
Var
I, Cts : Integer;
TPA : Array Of TPoint;
ATPA : T2DPointArray;
Begin
Cts := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 2386011, MSX1, MSY1, MSX2, MSY2, 10);
ATPA := (TPAtoATPAEx(TPA, 4, 5));
For I := 0 to High(ATPA) Do
If MiddleTPAEx(ATPA[I], x, y) Then
Begin
MMouse(x, y, 0, 0);
GetMousePos(x, y);
If IsUpTextMultiCustom(['hop', 'ew', 'own']) Then
Begin
Result := True;
Wait(80+ Random(80));
end;
If Result = True Then
Exit
else
Try
Wait(1);
except
Wait(2);
Finally
Wait(3) //:p
end;
end;
ColorToleranceSpeed(Cts);
end;
{*******************************************************************************
function FindEnt(fx, fy: Integer; AvoidWhenFound: Boolean): Boolean;
By: Sumilion
Description: Will look for an Ent and avoid if found.
*******************************************************************************}
function FindEnt(fx, fy: Integer; AvoidWhenFound: Boolean): Boolean;
var
x, y, EntTime, tcts: Integer;
begin
if not(LoggedIn)then
Exit;
GetMousePos(x, y);
if(x <> fx)or(y <> fy)then
MMouse(fx, fy, 0, 0);
if(IsUpText('Chop'))then
begin
tcts := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.03, 0.75);
Result := (CountColorTolerance(118478, 9, 10, 124, 23, 10) > 10);
SetColorSpeed2Modifiers(0.2, 0.2);
ColorToleranceSpeed(tcts);
end;
if(Result)then
begin
WriteLn('Ent Found!!');
if(AvoidWhenFound)then
begin
Writeln('Waiting for it to go away.');
MFNF(MMCX, MMCY, -1, 1);
MarkTime(EntTime);
while(TimeFromMark(EntTime) < 35000)do
if(Random(20) > 15)then
IdleTime(500, 500, 0.4)
else
Wait(500 + Random(500));
EntsAvoided := EntsAvoided + 1;
end;
end;
end;
Procedure IfFight;
Begin
If (FindFight) Then
RunAway('E', False, 1, 1000 + Random(500));
end;
Procedure WaitWhileChop;
Var mrk : Integer;
Begin
MarkTime(mrk);
Repeat
FindNormalRandoms;
FindEnt(x, y, True);
IfFight;
Case Random(4) Of
0 : GameTab(1 + Random(12));
1, 2 : FtWait(5);
end;
Wait(900 + Random(100));
GameTab(4);
SleepAndMoveMouse(4000 + Random(3000));
IfFight;
FindEnt(x, y, True);
If AxeBroke Then
GetNewAxe
Else
IfFight;
FindNormalRandoms;
DontBanMePlease;
Until(Not IsUpText('ew')) Or (TimeFromMark(mrk) > 13000 + Random(3000));
FindEnt(x, y, True);
end;
Procedure SwitchTrees;
Begin
Case FindSymbol(x, y, 'Water source') Of
True : If FindSymbolIn(x, y, 'Tree', 547, 89, 683, 155) Then
MouseFlag(x + 7, y - 3, 3, 3, 0);
False : If FindSymbolIn(x, y, 'Tree', 570, 6, 700, 76) Then
MouseFlag(x + 7, y + 3, 3, 3, 0);
end;
end;
Procedure ChopTree;
Begin
Repeat
If Not FindYew Then
Wait(5000 + Random(1000));
FindNormalRandoms;
If Not FindYew Then
SwitchTrees
Else
Begin
Case Random(3) Of
0, 1 : Mouse(x, y, 2, 2, True);
2 : Begin
Mouse(x, y, 2, 2, False);
Wait(Random(80) + 100);
ChooseOptionMulti(['hop', 'ew', 'own']);
end;
end;
Begin
WaitWhileChop;
Wait(1);
FindNormalRandoms;
DontBanMePlease;
end;
end;
Until(InvFull);
IncEx(Players[CurrentPlayer].integers[3], 27);
Inc(Players[CurrentPlayer].integers[2]);
end;
Procedure Bank(What : String);
Begin
SetRun(True);
If FindBitmapToleranceIn(BitmapFromString(5, 7, 'beNrjFo7ipgsCAFtREGk='),
x, y, MMX1, MMY1, MMX2, MMY2, 80) Then
Begin
Wait(12000 + Random(2000));
MouseFlag(x, y + 8, 4, 7, 6)
end else
If Not FindColor(x, y, FindVarrockRoadColor, MMX1, MMY1, MMX2, MMY2) Then
Begin
Mouse(MMCX, MMCY - 60, 20, 5, True);
Wait(12000 + Random(2000));
End Else
Begin
Mouse(x, y, 9, 9, True);
Wait(12000 + Random(2000));
FFlag(5);
end;
If FindSymbol(x, y, 'Bank') Then
MouseFlag(x, y, 1, 1, 0);
If OpenBankFast('eb') Then
If BankScreen Xor PinScreen Then
Begin
If InPin(Players[CurrentPlayer].PIN) Then
Begin
FFlag(0);
If What = 'Broken Axe' Then Exit
Else
If What = 'Logs' Then
Deposit(2 + Random(24), 28, True);
Wait(700 + Random(800));
CloseBank;
end;
end;
Inc(Banked);
WriteLn('Banked!');
end;
Procedure Proggie;
Var I : Integer;
Begin
WriteLn('');
WriteLn('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ');
WriteLn('[ NaumanAkhlaQ Presents ]');
WriteLn('[ Yew Cutt0r!! ]');
WriteLn('| |');
WriteLn('| [> Worked '+ TimeRunning +'! | ');
WriteLn('| [> Chopped '+ IntToStr(Players[CurrentPlayer].integers[3])+' Logs |');
WriteLn('| [> Banked '+ IntToStr(Banked) +' Loads|');
WriteLn('| ---------------------- |');
WriteLn('| [> Current Version Is V'+ Ver+' Pub!|');
WriteLn('= Thank You For Using ;) |');
WriteLn('=================================== ');
For I := 0 to (HowManyPlayers - 1) do
Begin
WriteLn('[~ '+ Players[I].Name +' /\ Chopped '+IntToStr(Players[I].integers[3])+ ' Logs. /\ Banked ' +IntToStr(Players[I].integers[2])+' Loads!');
WriteLn(' <--------- |-----$$-----| --------->');
End;
Begin
WriteLn(' ++++++++++++++++++++');
SRLRandomsReport;
If (Not (LoggedIn)) Then
Begin
WriteLn('--> Lost Player : '+Players[CurrentPlayer].Name);
LogOut;
NextPlayer(False);
end else
WriteLn('> Using ' +IntToStr(HowManyPlayers)+ ' Players');
Try
If Banked >= Players[CurrentPlayer].Integers[0] Then
WriteLn('Loads Done and Dusted!');
Finally
FindNormalRandoms;
Except
end;
end;
end;
begin
SetupSRL;
DeclarePlayers;
ActivateClient;
Wait(999);
Repeat
If Not LoggedIn Then LoginPlayer;
Repeat
SetRun(True);
Proggie;
WalkToTree;
Proggie;
ChopTree;
Bank('Logs');
Proggie;
Until(Banked >= Players[CurrentPlayer].Integers[0]) xOr (Not LoggedIn)
LogOut;
If Banked >= Players[CurrentPlayer].Integers[0] Then
NextPlayer(True)
Else
NextPlayer(False);
Until(AllPlayersInactive);
TerminateScript;
end.