ok so ive got a problem, im having trouble consistently walking to the centre of this point.

for some reason, i get it working, but only for about a day or so, ive added a large tolerance, and its not working, so sadly, im resorting for help.
here`s what i have, and tell me how i can fix it to make it work consistently (and by me saying its not consistent, means that it wont find the ddtm all the time).
SCAR Code:
function TreeAC: Integer;
var
TPA: TPointArray;
B: TIntegerArray;
CTS, i, L: Integer;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MMCX, MMCY, TPA, 2249277, MMX1, MMY1, MMX2, MMY2, 45);
B := GetColors(TPA);
ClearSameIntegers(B);
L := High(B);
for i := 0 to L do
begin
Result := B[i];
Break;
end;
ColorToleranceSpeed(CTS);
end;
function Altar: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [1..5] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 592;
dtmMainPoint.y := 47;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 0;
dtmMainPoint.Tolerance := 255;
dtmSubPoints[1].x := 604;
dtmSubPoints[1].y := 24;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := TreeAC;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 616;
dtmSubPoints[2].y := 54;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := TreeAC;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 566;
dtmSubPoints[3].y := 55;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := TreeAC;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 598;
dtmSubPoints[4].y := 62;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := TreeAC;
dtmSubPoints[4].Tolerance := 15;
dtmSubPoints[5].x := 573;
dtmSubPoints[5].y := 36;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := TreeAC;
dtmSubPoints[5].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure Walk(var PathWalk: Integer);
var
I, X, Y: integer;
begin
RoadColor := FindFallyRoadColor;
try
Case PathWalk of
0:
begin
if not WalkPath(0) then
if not RadialWalk(FindWaterColor, 157, 218, 63, 5, 5) then
begin
LogOut;
NextPlayer(False);
WriteLn('Walking P.1 Failed');
end;
end;
1:
begin
if not WalkPath(0) then
if not RadialWalk(FindFallyRoadColor, 169, 212, 61, 5, 5) then
begin
LogOut;
NextPlayer(False);
WriteLn('Walking P.2 Failed');
end;
end;
2:
begin
RoadColor := FindRoadColor;
repeat
RadialPath(False, FindRoadColor);
Inc(I)
until (I = 3);
end;
3: RadialWalk(FindRoadColor, 220, 290, 60, 5, 5);
4:
begin
if not DTMRotated(Altar, X, Y, MMX1, MMY1, MMX2, MMY2) then //this is where it searches for the ddtm (duh)
begin
NextPlayer(False);
WriteLn('Walking P.5 Failed');
end else
Mouse(X, Y, 5, 5, True);
WriteLn('Walked To Altar');
end;
end;
except end;
end;
help is appreciated, spam is not. and dont tell me obvious shit like "maybe try making the tolerance higher".
and thanks to anyone who helps