Simba Code:
program new;
var
mmBox: tbox;
function tpaFromMinimap: TPointArray;
var
BMP_MM: integer;
KMTarget, ITarget, W, H, t: Integer;
begin
KMTarget := GetKeyMouseTarget;
ITarget := GetImageTarget;
BMP_MM := BitmapFromString(147, 153, 'meJztlUF2wjAQxbj/pemORUsD' +
'dgiyEunpAOOvhW+3iBW4bxog22n2GEdwXK8KHsE3e1VwP2yvCo6CB' +
'6rgEHiOCo6C71++UfDNyzcBPnXtRsEXLt8o+KrlGwVfsnwT4APWbg' +
'J8Olwd+GJLaQEfakHXB59oWVcGH2dxFwTfROQ64FPoXAF8BKlV81o' +
'1r1XzWjWvhZNaNa9V81o1r1XzWjipVfNaNa9V81o4qVXzWjipVfNa' +
'OKlV81o1r4WTWjWvhZNaNa+Fk1o4qVXzWjiphZNaNa+Fk1o4qYWTW' +
'jWvhZNaOKlVk1o4qYUz2gcntXBSCye1cFILJ7VwUgsntXBSCye1cF' +
'ILJ7VwUgsn9VY7obfCOS2c1MJJLZzUwkktnNS/4CflS5+CX5UvLZz' +
'UwkktnNTCSS2c1P/AD8sNN8Bvyw0LJ3Ub/Lx86kvwC/OphZP6DviR' +
'+cs3we/MXxZO6vvgp+bDIfBr8+Eo+MF5H69WuEWcAz/74k6DX35x9' +
'4Aff1n3gz/hgn4K/CGX8oPgb7mUnwV/zkU8AvxRp/c48Ked2C+Av/' +
'FkfhP8safx++BPPoEg+NulrgA+gs7VwAdZ3MXB91lQC/hQS6kDXwz' +
'XCz5d1faAb1iyafAxq7YHfNWS7QFfuGTT4FNXbQ/45iWbBh+/anvA' +
'K5RsGjxH1abBo1RtGjxN1abBA1VtGjxT1abBY1VtGjxZ1aapmpeqe' +
'amalMJJKZyXqkkpnJTCeamal6qpKZmXqkkpnJqSeanaaShWLM0P+b' +
'5EFg==');
setTargetBitmap(BMP_MM);
getBitmapSize(BMP_MM, W, H);
findcolors(result, 255, 1, 1, w-1, h-1);
offsettpa(result, point(569, 8));
t := GetImageTarget;
SetKeyMouseTarget(KMTarget);
SetImageTarget(ITarget);
FreeTarget(t);
try
FreeBitmap(bmp_mm);
except
writeln('**** tpaFromMinimap: Unable to free bitmap!')
end;
end;
procedure filterpointsMM(var tpa: tpointarray);
var
tpa2: tpointarray;
mmtpa: tpointarray;
mmbtpa: tpointarray;
begin
returnpointsnotintpawrap(tpaFromMinimap, mmbox, tpa2);
cleartpafromtpawrap(tpa, tpa2, tpa);
end;
function getBlackBackground: Integer;
var
CTS, I, H, C, Count, MaxC: Integer;
TPA: TPointArray;
Cols: TIntegerArray;
begin
Result := -1;
CTS := GetToleranceSpeed;
setColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(100, 100);
FindColorsTolerance(TPA, clBlack, mmbox.X1, mmbox.Y1, mmbox.X2, mmbox.Y2, 3);
SetToleranceSpeed2Modifiers(0.2, 0.2);
setColorToleranceSpeed(CTS);
if (Length(TPA) < 1) then Exit;
Cols := GetColors(TPA);
ClearSameIntegers(Cols);
H := High(Cols);
for I := 0 to H do
begin
C := Cols[I];
Count := CountColor(C, mmbox.X1, mmbox.Y1, mmbox.X2, mmbox.Y2);
if (CountColor(C, mmbox.X1, mmbox.Y1, mmbox.X2, mmbox.Y2) > MaxC) then
begin
Result := C;
MaxC := Count;
end;
end;
end;
function removeNonWalkablePoints: tpointarray;
var
data: t2dintegerarray;
atpa: t2dpointarray;
i: integer;
tpa: tpointarray;
bmp: integer;
begin
data := [TIntegerArray([getBlackBackground, 0]), TIntegerArray([12227199, 40])];
setlength(atpa, length(data));
for i := 0 to high(data) do
findColorsTolerance(atpa[i], data[i][0], mmbox.X1, mmbox.Y1, mmbox.X2, mmbox.Y2, data[i][1]);
mergeatpawrap(atpa, tpa);
filterpointsmm(tpa);
bmp := bitmapfromclient(1, 1, 763, 502);
drawtpabitmap(bmp, tpa, clRed);
drawbitmapdebugimg(bmp);
displaydebugimgwindow(766, 503);
end;
begin
mmBox := intToBox(568, 8, 715, 160);
removeNonWalkablePoints
end.