What about something like this? Obviously it's an easy fix, but all I had to work with was an image. I broke it down to use that image, and it found the colors, but obviously they'll change since they're most likely dynamic.
It's a start, feel free to tear it apart.
function ClickContinue(Click, Wait: Boolean): Boolean;
var
bTxt, wTxt, SearchTPA{, TextTPA, Matches} : TPointArray;
Search2D : T2DPointArray;
b : TBox;
{Height, }i, x, y : Integer;
colors : TIntegerArray;
begin
Result := false;
colors := [607259, 1800267];
FindColors(bTxt, colors[0], MCX1, MCY1, MCX2, MCY2);
FindColors(wTxt, colors[1], MCX1, MCY1, MCX2, MCY2);
SearchTPA := CombineTPA(bTxt, wTxt);
if Length(SearchTPA) < 1 then
Exit;
Search2D := SplitTPAEx(SearchTPA, 20, 2);
//TextTPA := LoadTextTPA('here to conti', NPCChars, Height);
for i := 0 to High(Search2D) do
begin
//Result := FindTextTPAinTPA(Height, TextTPA, Search2D[i], Matches);
Result := FindColor(x, y, colors[i], MCX1, MCY1, MCX2, MCY2);
if Result and Click then
begin
b := GetTPABounds(Search2D[i]);
GetMousePos(x, y);
if PointInBox(Point(x, y), b) then
Mouse(x, y, 2, 1, True)
else
with b do
Mouse(RandomRange(x1, x2), RandomRange(y1 + 2, y2 - 2), 2, 1, True);
if Wait then
ChatWait
end;
if Result then
Break;
end;
end;