SCAR Code:
Program New;
{.include SRL/SRL.scar}
function FindDraynorRoadColor: Integer;
var
R,G,B,TestColor : Integer;
H,S,L : Extended;
X,Y,Z : Extended;
MyColor : Integer;
ColorsTPA : TPointArray;
C1 : TIntegerArray;
i,C2: Integer;
begin
MyColor := 6975343;
FindColorsSpiralTolerance(MMCX, MMCY, ColorsTPA, MyColor, MMX1, MMY1, MMX2, MMY2, 60);
C1 := GetColors(ColorsTPA);
C2 := High(C1);
for i := 0 to C2 do
begin
if RS_OnMinimap(ColorsTPA[i].X, ColorsTPA[i].Y) then
begin
TestColor := GetColor(ColorsTPA[i].X, ColorsTPA[i].Y);
if SimilarColors(TestColor, 6975343 , 40) then
begin
ColorToRGB(TestColor, R, G, B);
ColorToHSL(TestColor, H, S, L);
ColorToXYZ(TestColor, X, Y, Z);
if InRange(R - G, -20, 20) then
if InRange(R - B, -15, 25) then
if InRange(G - B, -15, 25) then
if InRange(Round(S) - Round(H), -30, 0) then
if InRange(Round(L) - Round(H), 11, 41) then
if InRange(Round(S) - Round(L), -56, -26) then
if InRange(Round(X) - Round(Y), -8, 6) then
if InRange(Round(Y) - Round(Z), -7, 7) then
if (SimilarColors(MyColor, GetColor(ColorsTPA[i].X + 1, ColorsTPA[i].Y + 1), 8)) then
if (SimilarColors(MyColor, GetColor(ColorsTPA[i].X - 1, ColorsTPA[i].Y - 1), 8)) then
begin
Result := TestColor;
Writeln('Draynor Road Color = '+inttostr(testcolor)+'');
Exit;
end;
end;
end;
end;
Writeln('Couldnt find Draynor Road Color!');
Result := 0;
end;
function FindFallyRoadColor: Integer;
var
R,G,B,TestColor : Integer;
H,S,L : Extended;
X,Y,Z : Extended;
MyColor : Integer;
ColorsTPA : TPointArray;
C1 : TIntegerArray;
i,C2: Integer;
begin
MyColor := 7766665 ;
FindColorsSpiralTolerance(MMCX, MMCY, ColorsTPA, MyColor, MMX1, MMY1, MMX2, MMY2, 60);
C1 := GetColors(ColorsTPA);
C2 := High(C1);
for i := 0 to C2 do
begin
if RS_OnMinimap(ColorsTPA[i].X, ColorsTPA[i].Y) then
begin
TestColor := GetColor(ColorsTPA[i].X, ColorsTPA[i].Y);
if SimilarColors(TestColor, 7766665 , 40) then
begin
ColorToRGB(TestColor, R, G, B);
ColorToHSL(TestColor, H, S, L);
ColorToXYZ(TestColor, X, Y, Z);
if InRange(R - G, -13, 27) then
if InRange(R - B, -1, 39) then
if InRange(G - B, -8, 32) then
if InRange(Round(S) - Round(H), -19, 11) then
if InRange(Round(L) - Round(H), 24, 54) then
if InRange(Round(S) - Round(L), -58, -28) then
if InRange(Round(X) - Round(Y), -8, 6) then
if InRange(Round(Y) - Round(Z), -4, 10) then
if (SimilarColors(MyColor, GetColor(ColorsTPA[i].X + 1, ColorsTPA[i].Y + 1), 6)) then
if (SimilarColors(MyColor, GetColor(ColorsTPA[i].X - 1, ColorsTPA[i].Y - 1), 6)) then
begin
Result := TestColor;
Writeln('Fally Road Color = '+inttostr(testcolor)+'');
Exit;
end;
end;
end;
end;
Writeln('Couldnt find Fally Road Color!');
Result := 0;
end;
function FindBarbarianRoadColor: Integer;
var
R,G,B,TestColor : Integer;
H,S,L : Extended;
X,Y,Z : Extended;
MyColor : Integer;
ColorsTPA : TPointArray;
C1 : TIntegerArray;
i,C2: Integer;
begin
MyColor := 4284271;
FindColorsSpiralTolerance(MMCX, MMCY, ColorsTPA, MyColor, MMX1, MMY1, MMX2, MMY2, 60);
C1 := GetColors(ColorsTPA);
C2 := High(C1);
for i := 0 to C2 do
begin
if RS_OnMinimap(ColorsTPA[i].X, ColorsTPA[i].Y) then
begin
TestColor := GetColor(ColorsTPA[i].X, ColorsTPA[i].Y);
if SimilarColors(TestColor, 4284271, 40) then
begin
ColorToRGB(TestColor, R, G, B);
ColorToHSL(TestColor, H, S, L);
ColorToXYZ(TestColor, X, Y, Z);
if InRange(R - G, -4, 36) then
if InRange(R - B, 26, 66) then
if InRange(G - B, 10, 50) then
if InRange(Round(S) - Round(H), 0, 30) then
if InRange(Round(L) - Round(H), 9, 39) then
if InRange(Round(S) - Round(L), -24, 6) then
if InRange(Round(X) - Round(Y), -7, 7) then
if InRange(Round(Y) - Round(Z), -2, 12) then
if (SimilarColors(MyColor, GetColor(ColorsTPA[i].X + 1, ColorsTPA[i].Y + 1), 5)) then
if (SimilarColors(MyColor, GetColor(ColorsTPA[i].X - 1, ColorsTPA[i].Y - 1), 5)) then
begin
Result := TestColor;
Writeln('Barbarian Road Color = '+inttostr(testcolor)+'');
Exit;
end;
end;
end;
end;
Writeln('Couldnt find Barbarian Road Color!');
Result := 0;
end;
function FindVarrockRoadColor: Integer;
var
R,G,B,TestColor : Integer;
H,S,L : Extended;
X,Y,Z : Extended;
MyColor : Integer;
ColorsTPA : TPointArray;
C1 : TIntegerArray;
i,C2: Integer;
begin
MyColor := 9078929;
FindColorsSpiralTolerance(MMCX, MMCY, ColorsTPA, MyColor, MMX1, MMY1, MMX2, MMY2, 60);
C1 := GetColors(ColorsTPA);
C2 := High(C1);
for i := 0 to C2 do
begin
if RS_OnMinimap(ColorsTPA[i].X, ColorsTPA[i].Y) then
begin
TestColor := GetColor(ColorsTPA[i].X, ColorsTPA[i].Y);
if SimilarColors(TestColor, 9078929, 40) then
begin
ColorToRGB(TestColor, R, G, B);
ColorToHSL(TestColor, H, S, L);
ColorToXYZ(TestColor, X, Y, Z);
if InRange(R - G, -11, 29) then
if InRange(R - B, -13, 27) then
if InRange(G - B, -22, 18) then
if InRange(Round(S) - Round(H), -107, -77) then
if InRange(Round(L) - Round(H), -56, -26) then
if InRange(Round(S) - Round(L), -66, -36) then
if InRange(Round(X) - Round(Y), -7, 7) then
if InRange(Round(Y) - Round(Z), -10, 4) then
if (SimilarColors(MyColor, GetColor(ColorsTPA[i].X + 1, ColorsTPA[i].Y + 1), 7)) then
if (SimilarColors(MyColor, GetColor(ColorsTPA[i].X - 1, ColorsTPA[i].Y - 1), 7)) then
begin
Result := TestColor;
Writeln('Varrock Road Col = '+inttostr(testcolor)+'');
Exit;
end;
end;
end;
end;
Writeln('Couldnt find Varrock Road Color!');
Result := 0;
end;
begin
SetUpSRL;
end.