Simba Code:
function FindObject(Which: String): Boolean;
var
TPA1, TPA2, RTPA: TPointArray;
Color, Tol: TIntegerArray;
Dist, nCTS, cts, i: Integer;
ATPA: T2DPointArray;
Option, Uptext: String;
begin
case Lowercase(Which) of
'rock':
begin
nCTS := 3;
Color := [3162221, 3764098];
Tol := [5, 5];
Dist := 10;
Uptext := 'ron ore';
Option := 'ine';
end;
'dooratbank':
begin
nCTS := 3;
Color := [9541015, 13160145];
Tol := [10, 10];
Dist := 10;
Uptext := 'yster';
Option := 'xit';
end;
'dooratmine':
begin
nCTS := 3;
Color := [2109405, 6383205];
Tol := [10, 5];
Dist := 10;
Uptext := 'yster';
Option := 'nter';
end;
'dbox':
begin
nCTS := 3;
Color := [6521749, 6647669];
Tol := [3, 3];
Dist := 20;
Uptext := 'box';
Option := 't B';
end;
end;
Result := False;
cts := GetColorToleranceSpeed;
ColorToleranceSpeed(nCTS);
FindColorsTolerance(TPA1, Color[0], MSX1, MSY1, MSX2, MSY2, Tol[0]);
RAaSTPAEx(TPA1,3,3);
FindColorsTolerance(TPA2, Color[1], MSX1, MSY1, MSX2, MSY2, Tol[1]);
RAaSTPAEx(TPA2,3,3);
RTPA := AND_TPA(TPA1,TPA2,0,Dist);
if Length(RTPA) = 0 then
begin
writeln('Didn''t find '+Which+' colors.');
ColorToleranceSpeed(cts);
Inc(F); //F for Failure
if F >= 10 then
begin
Writeln('We failed too many times, logging out and back in to change the colors.');
Disguise('Reset in progess');
ExitToLobby;
Wait(15000 + Random(5000));
F := 0;
LoginPlayer;
end;
Exit;
end;
ColorToleranceSpeed(cts);
ATPA := SplitTPAEx(RTPA, 15, 15);
if (Length(ATPA) > 0) then
begin
// SortATPASize(ATPA, true); /
SortATPAFrom(ATPA, Point(MSCX, MSCY));
end else
Exit;
SMART_ClearCanvas;
Proggy;
for i:= 0 to high(ATPA) do
begin
Antirandoms;
SMART_DebugTPA(False, ATPA[i]);
MMouse(MiddleTPA(ATPA[i]).x, MiddleTPA(ATPA[i]).y, 5, 5);
if (WaitUptext(Uptext, 300 + Random(100))) then
begin
ClickMouse2(mouse_right);
if WaitOption(Option, 600) then
begin
Result := True;
Exit;
end;
end;
end;
end;