I used something similiar
Simba Code:
{*******************************************************************************
procedure TalkToMolly;
by: J J
Description: Talks to Molly at start
*******************************************************************************}
procedure TalkToMolly;
var
FloorColors, MollyColors: TPointArray;
SearchBox: TBox;
MollySplit: T2DPointArray;
P: TPoint;
begin
SearchBox := IntToBox(60, 215, 125, 265);
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.17, 0.54);
if FindColorsSpiralTolerance(260, 200, FloorColors, 4215386, SearchBox.X1, SearchBox.Y1, SearchBox.X2, SearchBox.Y2, 8) then
begin
MollyColors := TPAFromBox(SearchBox);
MollyColors := ClearTPAFromTPA(MollyColors, FloorColors);
SplitTPAExWrap(MollyColors, 1, 1, MollySplit);
SortATPASize(MollySplit, True);
if Length(MollySplit[0]) > 20 then
begin
P := MiddleTPA(MollySplit[0]);
if Debug then
begin
SMART_DrawBoxes(False, [Searchbox], clYellow);
SMART_DrawBoxes(False, [GetTPABounds(MollySplit[0])], clRed);
SMART_DrawCircle(False, P, 5, False, clAqua);
end;
MMouse(P.X, P.Y, RandomRange(-2, 2), RandomRange(-2, 2));
Wait(50 + Random(100));
ClickMouse2(1);
end;
end;
end;
But in your case MMToMS will most likely be the way to go.