Nice script, everything seems to flow nicely. Keep it up. 
@ Sand. Wouldn't just adding (SetupWoodcutting
near the beginning of the main loop make it check for an axe?
This is what I did to your script, kind of cleaned it a little. Hope you like.
SCAR Code:
{_______________________________
| 1.Setup Players |
| |
| 2.Set RS window |
| |
| 3.Post Feedback |
| |
| 4.Add Smart If You Want |
|_____________________________|
}
program PowerCutterByMR_BUM;
{.include srl/srl.scar}
var
TreeColor : array of Integer;
i,x,y : integer;
Found : boolean;
Drops : integer;
Antibans : integer;
Loads : integer;
Gained : integer;
const
TreeWait = 7000; //How long it takes to cut a tree Miliseconds
RunDirection = 'N'; //Which direction to run if a fight occurs
DesiredLoads = 10; // Amount of loads per player
TreeType = 'Tree'; //What type of tree you want. Leave blank for any tree
// ^^^^ Must start with capital
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; // your runescape account
Players[0].Pass := ''; // your runescape password
Players[0].Nick := ''; // 3-4 letters of your runscape username
Players[0].Active := True; //In the script or not
{
Players[1].Name := ''; // your runescape account
Players[1].Pass := ''; // your runescape password
Players[1].Nick := ''; // 3-4 letters of your runscape username
Players[1].Active := True; //In the script or not
Players[2].Name := ''; // your runescape account
Players[2].Pass := ''; // your runescape password
Players[2].Nick := ''; // 3-4 letters of your runscape username
Players[2].Active := True; //In the script or not
Players[3].Name := ''; // your runescape account
Players[3].Pass := ''; // your runescape password
Players[3].Nick := ''; // 3-4 letters of your runscape username
Players[3].Active := True; //In the script or not
Players[4].Name := ''; // your runescape account
Players[4].Pass := ''; // your runescape password
Players[4].Nick := ''; // 3-4 letters of your runscape username
Players[4].Active := True; //In the script or not
}
end;
Procedure FindFightEx;
Begin
If(FindFight) then
Begin
Status('Fight found!');
Writeln('You were attacked')
Begin
Status('Running away!');
Writeln('Running....');
RunAway(RunDirection,False,1,8000+Random(3000))
Writeln('Got Away?');
end;
end;
end;
// By griff721
function FindGainedLevel: boolean;
begin
if not LoggedIn then
Exit;
if ClickContinue(False, False) then
begin
if FindNPCChatText('lations', Nothing) then
begin
writeln('We gained a Woodcutting!');
Inc(Gained);
ClickContinue(True, True);
Result := True;
Exit;
end;
end;
end;
procedure LoadColors;
begin
SetArrayLength(TreeColor,5);
TreeColor[0] := 4292724;
TreeColor[1] := 4158055;
TreeColor[2] := 2839885;
TreeColor[3] := 2112567;
TreeColor[4] := 1921864;
end;
Procedure FindTree;
begin
FindFightEx;
FindGainedLevel;
LoadColors;
If not(Loggedin)then Exit;
MakeCompass('N');
SetAngle(true);
SetRun(true);
For i:= 0 to (GetArrayLength(TreeColor) - 1) do
begin
if(FindColorSpiralTolerance(x,y,TreeColor[i],MSX1,MSY1,MSX2,MSY2,5))then
begin
Writeln('Serching For Tree');
MMouse(x,y,2,2);
if IsUpTextMultiCustom(['hop', 'own',(TreeType)]) then
begin
Writeln('Found Tree');
Mouse(x,y,2,2,true);
Writeln('Cutting Tree');
Wait(TreeWait +random(500));
end else // Don't need that else in there
end;
end;
if(Found = False)then
Exit;
end;
Procedure AntiRandoms; Forward; // Called forward so can be used below
Procedure AntiBan; Forward; // Same
Procedure DropLogs; // By Camo Kyle
begin
if (not (LoggedIn)) then Exit;
if (InvFull) then
begin
for I := 2 to 28 do // Change the first number if needed
begin
DropItem(i)
AntiRandoms;
AntiBan;
Inc(loads);
end;
end;
end;
Procedure AntiRandoms;
var
d : Integer;
Begin
Status('Doing AntiRandoms');
for d := 0 to 3 do
FindNormalRandoms;
FindFightEx;
FindNonInventoryRandoms;
wait(1);
end;
procedure Antiban; // Too many spaces, keep it as minimal as possible
begin
if not(LoggedIn)then Exit;
case Random(68) of
0:
begin
HoverSkill('Attack', False);
Antibans:=Antibans+1;
end;
1:
begin
HoverSkill('Smithing', false);
Antibans:=Antibans+1;
end;
2:
begin
GameTab(1 + Random(12));
wait(800 + random(500));
GameTab(4);
Antibans:=Antibans+1;
end;
3:
begin
BoredHuman;
Antibans:=Antibans+1;
end;
4:
begin
DoEmote(400 + Random(90));
Antibans:=Antibans+1;
end;
end;
end;
Procedure Proggy;
Begin
cleardebug;
Writeln('#%#%#%#%#%#%#% Power Cutter By Mr_Bum #%#%#%#%#%#%#%');
Writeln('#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%');
Writeln('#% Time Running : ' +TimeRunning + '');
Writeln('#% Dropped '+ IntToStr(Drops) + ' loads');
Writeln('#% Gained '+ IntToStr(Gained) + ' Woodcutting levels');
Writeln('#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%');
end;
Procedure Sig;
begin
ClearDebug;
Writeln(' _____ ');
Writeln(' /`\_/`\ /\ _`\ ');
Writeln('/\ \ _ __ \ \ \L\ \ __ __ ___ ___ ____ ');
Writeln('\ \ \__\ \/\``__\ \ \ _ <`/\ \/\ \ /` __` __`\ /`,__\ ');
Writeln(' \ \ \_/\ \ \ \/ \ \ \L\ \ \ \_\ \/\ \/\ \/\ \/\__, `\ ');
Writeln(' \ \_\\ \_\ \_\ \ \____/\ \____/\ \_\ \_\ \_\/\____/ ');
Writeln(' \/_/ \/_/\/_/ _______\/___/ \/___/ \/_/\/_/\/_/\/___/ ');
Writeln(' Power Cutter');
wait(2000);
end;
Begin // Fixed your standards
SetupSRL;
DeclarePlayers;
Sig;
ActivateClient;
LoginPlayer;
SetupWoodcutting;
If not Loggedin then LoginPlayer;
Disguise('Power Cutter - By Mr_Bum');
repeat
begin
FindTree;
if InvFull = true then
begin
FindFightEx;
DropLogs;
end;
AntiBan;
AntiRandoms;
if Loads = DesiredLoads then NextPlayer(true);
end;
Proggy;
until false
end.
~Camo