Well. I know, I know. I've tried too many times..
But. I'm trying to get this down.
I keep getting the uber idea of creating a willow chopper/banker for Draynor..I have all of the script except for the chopping..
Here it is:
SCAR Code:
program New;
{.include SRL\SRL.scar}
const
TreeColor = 0;
procedure DeclarePlayers;
begin
CurrentPlayer := 0;
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
end;
function canChop: boolean;
begin
if FindBlackChatMessage('You do not') then
Result := False
end;
function findTrees: T2DPointArray;
var tX, tY: integer;
TreePointArray: TPointArray;
ResBef: T2DPointArray;
begin
if not LoggedIn then Exit;
tX := MSCX;
tY := MSCY;
FindColorsSpiralTolerance(tX, tY, TreePointArray, TreeColor, MSX1, MSY1, MSX2, MSY2, 0);
if Length(TreePointArray)=0 then
FindColorsSpiralTolerance(tX, tY, TreePointArray, TreeColor, MSX1, MSY1, MSX2, MSY2, 15);
ResBef := SplitTPA(TreePointArray, 3);
Result := ResBef;
end;
function findTree: boolean;
var i, z: integer;
TreeT2D: T2DPointArray;
TreePoint: TPoint;
begin
if not LoggedIn then Exit;
if z>=5 then
begin
WriteLn('Failed too many times..');
TerminateScript;
end;
TreeT2D := findTrees;
for i := 0 to High(TreeT2D) do
begin
TreePoint := MiddleTPA(TreeT2D[i]);
Mouse(TreePoint.x, TreePoint.y, 1, 1, False);
Wait(250 + Random(250));
if ChooseOption('Chop') then
begin
if canChop then
begin
Result := True;
Exit;
end
else
WriteLn('No pickaxe..Logging out..');
Logout;
TerminateScript;
end
else
Inc(z);
end;
end;
procedure dropLogs;
begin
if not LoggedIn then Exit;
ClickAllItems(srl_GetBitmap(bmp_Log_Willow), 'bmp', 'rop', 120, [0]);
end;
procedure mainLoop;
var Timer: integer;
begin
DeclarePlayers;
LoginPlayer;
repeat
dropLogs;
repeat
MarkTime(Timer);
findTree;
until((not findTree) or (TimeFromMark(Timer)>=120000));
if not findTree then
Logout;
until((InvFull) or (not LoggedIn));
end;
begin
SetupSRL;
mainLoop;
end.
Can I do anything to make it better?