SCAR Code:
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
////////// SUBMERSAL'S POWERWHACKER /////////
////////// /////////
////////// Version 2.0 /////////
////////// /////////
////////// -ADDED FEATURES- /////////
////////// EntFinding /////////
////////// Better Random Finding /////////
////////// AntiBan /////////
////////// MULTIPLAYER! /////////
////////// /////////
////////// -NEXT VERSION- /////////
////////// Axe-Checking /////////
////////// SRLreports /////////
//////////////////////////////////////////////////////////////////////////////////////
////////// INSTRUCTIONS /////////
////////// - 1. Colour pick the tree you want to powercut (MUST BE NORMAL, /////////
////////// UNLESS YOU WANT TO DTM THE LOG AND CHANGE SOME STUFF /////////
////////// /////////
////////// - 2. Target the RS window ( using the (+) ) and stand in an area /////////
////////// with a hell load of trees. /////////
////////// /////////
////////// - 3. RUN THE SCRIPT (CTRL + ALT + R) - ENJOY YOUR WHACKING! /////////
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
program PowerCutter;
{.include srl/srl.scar}
const
TreeColor = 2836802; //colour pick the tree that you want to start on to powerwhack(HAS to be normal)
procedure DeclarePlayers;
begin
HowManyPlayers:= 6;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:= 0;
Players[0].Name := 'Username'; //UserName
Players[0].Pass := 'Password'; //Password
Players[0].Nick := 'Nick'; //2-4 letters of username
Players[0].Integers[1] := 10; //Number of loads before switching
Players[0].Active := True; //Active
Players[1].Name := 'Username'; //UserName
Players[1].Pass := 'Password'; //Password
Players[1].Nick := 'Nick'; //2-4 letters of username
Players[1].Integers[1] := 10; //Number of loads before switching
Players[1].Active := True;
Players[2].Name := 'Username'; //UserName
Players[2].Pass := 'Password'; //Password
Players[2].Nick := 'Nick'; //2-4 letters of username
Players[2].Integers[1] := 10; //Number of loads before switching
Players[2].Active := True; //Active
Players[3].Name := 'Username'; //UserName
Players[3].Pass := 'Password'; //Password
Players[3].Nick := 'Nick'; //2-4 letters of username
Players[3].Integers[1] := 10; //Number of loads before switching
Players[3].Active := True; //Active
Players[4].Name := 'Username'; //UserName
Players[4].Pass := 'Password'; //Password
Players[4].Nick := 'Nick'; //2-4 letters of username
Players[4].Integers[1] := 10; //Number of loads before switching
Players[4].Active := True; //Active
Players[5].Name := 'Username'; //UserName
Players[5].Pass := 'Password'; //Password
Players[5].Nick := 'Nick'; //2-4 letters of username
Players[5].Integers[1] := 10; //Number of loads before switching
Players[5].Active := True; //Active
end;
function FindFastRandoms: Boolean; //Thank you very much to the scripter who wrote this
var
i: Integer;
begin
for i:=1 to 10 do
begin
case I of
1: If FindDead then
Result := True;
2: If FindMod then
Result := True;
3: If FindMime then
Result := True;
4: If FindMaze then
Result := True;
5: If FindQuiz then
Result := True;
6: If FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
8: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
9: RC;
10: Respond;
end;
wait(1);
end;
end;
procedure FindRandoms; //And this
begin
FindTalk;
FindFastRandoms;
FindNormalRandoms;
FindLamp('Woodcutting');
SolvePinball;
if (FindFight) then
begin
MakeCompass('N');
RunTo('N', True);
Wait(7000 +Random(3000));
RunBack;
end;
end;
procedure AntiBan;
begin
if (not(LoggedIn)) then
Exit;
case Random(8) of
0: RandomRClick;
1: HoverSkill('Woodcutting', False);
2: RandomMovement;
3: BoredHuman;
4: PickUpMouse;
5: AlmostLogout;
6: DoEmote(1 +Random(20));
7: begin
GameTab(1 +Random(12));
wait(2000 +Random(1500));
GameTab(4);
end;
end;
end;
procedure EntFinder; // Big Thanks to YoHoJo. Modded by Bobbohobbo - No way I could have wrote this myself
var
EX, EY: integer;
FX, FY: integer;
SafeEntWait: LongInt;
begin
if (not (LoggedIn)) then
Exit;
begin
Status('Checking For Ent')
if
(FindObjCustom(EX, EY, ['Tree'], [4690821], 5)) then
begin
MMouse(EX, EY, 0, 0)
if FindColorTolerance(FX, FY, 55769, 85, 15, 115, 15, 20) then
begin
Status('Ent Found');
MouseFindFlag(645, 83, 2, 2);
MarkTime(SafeEntWait)
repeat
FTWait(5)
FindNormalRandoms;
if not (LoggedIn) then
NextPlayer(False);
until TimeFromMark(SafeEntWait) > 29000 + Random(10000)
end;
end;
end;
end;
var
x, y: Integer;
procedure Cut;
var C:integer;
begin
if(FindObj(x,y,'ree',TreeColor,15))then
begin
Mouse(x,y,5,5,True);
Writeln('Walking to Tree');
Flag;
Writeln('Cutting Tree');
C:= InvCount;
repeat
wait(250);
if not(LoggedIn)then
Exit;
MakeCompass('N');
HighestAngle;
EntFinder;
until(InvCount > C);
end;
end;
procedure Drop;
var Logs:integer;
begin
Logs := DTMFromString('78DA637466626078CA8002527C74C1342394C' +
'FE80354F390010D30A2AA0900AA794D408D1D50CD47026AAC816A' +
'EE1050E30E54730B55859BA91CAA1A63A09A17F8CD01006FA409A' +
'A');
if(FindDTM(Logs,x,y,MIX1,MIY1,MIX2,MIY2))then
begin
Mouse(x,y,5,5,False);
if(ClickOption('rop',2))then
begin
wait(1000+random(650));
Writeln('Dropped');
end else
begin
ArrangeInv;
end;
end else
begin
ArrangeInv;
end;
end;
procedure Signature;
begin
ClearDebug;
Writeln(' _ _ ');
Writeln(' | | | |');
Writeln(' ___ _ _| |__ _ __ ___ ___ _ __ ___ __ _| |');
Writeln('/ __| | | | _ \| _ _ \ / _ \ __/ __|/ _` | |');
Writeln('\__ \ |_| | |_) | | | | | | __/ | \__ \ (_| | |');
Writeln('|___/\__,_|_.__/|_| |_| |_|\___|_| |___/\__,_|_|');
Writeln(' ');
Writeln(' ');
Writeln(' AnyWhere NormalTree PowerWhacker! [V2] ');
Writeln('-------------------------------------------------');
Writeln('-------------------------------------------------');
end;
var Logs:integer;
begin
Signature;
SetupSRL;
DeclarePlayers;
if (not (loggedIn)) then
begin
LoginPlayer;
end;
repeat
repeat
if not(LoggedIn)then
Exit;
Cut;
until(InvFull)
repeat
if not(LoggedIn)then
Exit;
Drop;
until(FindDTM(Logs,x,y,MIX1,MIY1,MIX2,MIY2));
until(False)
end.