SCAR Code:
program BuyBuckets;
{.include SRL/SRL.scar}
{.include SRL\SRL\Skill\BuySell.SCAR}
var i, x, y, YBankers, Buckets: Integer;
const
StartPlayer = 0;
ClerkColor = 5992070;
BucketsWanted = 27;
BC = 1724005;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := StartPlayer;
Players[0].Name := ''; //Character name
Players[0].Pass := ''; //Character password
Players[0].Nick := ''; //3-4 non-capital letters from character name
Players[0].Active := True; //Use this character?
end;
function RadialToleranceWalk(TheColor: Integer; StartRadial, EndRadial: Integer;
Radius: Integer; Xmod, Ymod, Tol: Integer): Boolean; // By Wizzup? and WT-Fakawi.
var
i, X1, Y1, x, y: Integer;
begin
if (RoadColorChecker) then
if (DebugRadialRoad) then
WriteLn(' THROUGH RADIALROADWALK= ---> ' + IntToStr(RoadColor));
if (StartRadial = EndRadial) then
begin
WriteLn('Using LinearRoadWalk, equal values.')
if LinearRoadWalk(TheColor, StartRadial, Radius, Xmod, Ymod) then
Result := True;
end
else if (StartRadial < EndRadial) then
begin
repeat
for i := StartRadial to EndRadial do
begin
x1 := Round(Radius * Sine(i)) + 646;
y1 := Round(-Radius * Cose(i)) + 84;
if not LoggedIn then Exit;
if (FindColorTolerance(x, y, TheColor, X1, Y1, X1 + 1, Y1 + 1, Tol)) then
begin
MFNF(X, Y, Xmod, Ymod);
Result := True;
CountFlag(10);
Exit;
end;
end;
Radius := Radius - 4;
until (Radius <= 1);
end else
if (StartRadial > EndRadial) then
begin
repeat
for i := StartRadial downto EndRadial do
begin
x1 := Round(Radius * Sine(i)) + 646;
y1 := Round(-Radius * Cose(i)) + 84;
if not LoggedIn then Exit;
if (FindColorTolerance(x, y, TheColor, X1, Y1, X1 + 1, Y1 + 1, Tol)) then
begin
MFNF(X, Y, Xmod, Ymod);
Result := True;
CountFlag(10);
Exit;
end;
end;
Radius := Radius - 4;
until (Radius <= 1);
end
end;
procedure DeclareDTMs;
begin
YBankers := DTMFromString('78DA63B4656460686700036608C5B063FB240' +
'611200D9461F80F048C2E40561F030AF8F387094C3342F98C7644' +
'A83107B226A0AA39738601558D2F90D58DAAE6EB5754350049A41' +
'19B');
Buckets := DTMFromString('78DA635CC7C0C07094010C982114C3DC464F0' +
'61120CD08C4FF8180710590B197010554245B806946289F712B90' +
'3888AA666A951BAA9AF540621BAA9A347F2954356B80C4495435F' +
'39BBD51D56C0112C750D580DC8CAC060015971434');
end;
procedure ScriptSetup;
begin
ClearDebug;
SetupSRL;
DeclareDTMs;
DeclarePlayers;
LoginPlayer;
SetRun(True);
SetAngle(True);
MakeCompass('n');
FindNormalRandoms;
end;
procedure GeneralStoreWalk;
begin
if (not (LoggedIn)) then Exit;
RoadColor := FindFallyRoadColor;
i := 0;
SymbolAccuracy := 0.8;
RadialToleranceWalk(RoadColor, 10, 70, 45, x, y, 10);
Flag;
wait(100);
if FindSymbol(x, y, 'Store') then
begin
Mouse(x, y, 2, 2, true);
i := i + 1;
FindNormalRandoms;
end;
end;
procedure FindClerk;
begin
i := 0;
MouseSpeed := 10;
if (not (LoggedIn)) then Exit;
if (FindObj(x, y, 'hop', ClerkColor, 5)) then
begin
Mouse(x, y, 0, 0, false);
ChooseOption('rade');
end else
if (FindObjCustom(x, y, ['eep', 'ssi'], [2046549, 2900290], 10)) then
begin
Mouse(x, y, 0, 0, false);
ChooseOption('rade');
end else
LogOut;
TerminateScript;
end;
procedure BankWalk;
begin
if (not (LoggedIn)) then Exit;
RoadColor := FindFallyRoadColor;
SymbolAccuracy := 0.8;
RadialToleranceWalk(RoadColor, 220, 180, 65, x, y, 10);
flag;
if FindSymbol(x, y, 'bank') then
begin
Mouse(x, y, 2, 2, true);
flag;
FindNormalRandoms;
begin
if DTMRotated(YBankers, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 1, 1, True);
end;
end;
end;
end;
procedure Bankit;
begin
if (not (LoggedIn)) then Exit;
repeat
if (not (Loggedin)) then break;
OpenBankQuiet('fwb');
until (BankScreen);
if Bankscreen then
begin
Writeln('in bank');
Deposit(2, 28, 2);
CloseBank;
end;
end;
procedure BuyBuckets;
begin
BuyColor(BC, 27);
wait(500);
i := 0 + 27;
if invcount = 28 then
exit;
end;
procedure MainLoop;
begin
repeat
if not LoggedIn then LoginPlayer;
ScriptSetup;
GeneralStoreWalk;
FindClerk;
BuyBuckets;
BankWalk;
Bankit;
until (i = BucketsWanted);
end;
begin
ScriptSetup;
MainLoop;
end.