Simba Code:
function FindCandle(var X, Y :Integer) :Boolean;
var
aTPA : T2DPointArray;
TPA: TPointArray;
MiddlePoint :TPoint;
TempCTS, Hi, I :Integer;
begin
Result := False;
TempCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.01, 1.18);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1089249, MSX1, MSY1, MSX2, MSY2, 10);
If Length(TPA) = 0 Then Exit;
aTPA := TPAToATPAEx(TPA, 20, 30);
SortATPASize(aTPA, True);
MiddlePoint := MiddleTPA(aTPA[0]);
X := MiddlePoint.X;
Y := MiddlePoint.Y
Result := True;
ColorToleranceSpeed(TempCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;
function OpenDoor() :Boolean;
var
aTPA : T2DPointArray;
TPA: TPointArray;
SDPoint, SortPoint, MiddlePoint :TPoint;
DBox :TBox;
XX, YY, Dist, Count, TempCTS, Hi, I :Integer;
begin
MakeCompass('W');
Result := False;
TempCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.04, 0.91);
If FindCandle(XX, YY) then
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.04, 0.91);
SDPoint := Point(XX + 60, YY + 65);
DBox := IntToBox(SDPoint.X - 20, SDPoint.Y - 20, SDPoint.X + 20, SDPoint.Y + 40);
FindColorsTolerance(TPA, 2773360, DBox.X1, DBox.Y1, DBox.X2, DBox.Y2, 9);
If Length(TPA) < 500 then
begin
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 2773360, MSX1, MSY1, MSX2, MSY2, 9);
aTPA := TPAToATPAEx(TPA, 3, 3);
SortATPAFromFirstPoint(aTPA, Point(MSCX - 10, MSCY));
Hi := Length(aTPA);
for I := 0 to Hi - 1 do
begin
MiddlePoint := MiddleTPA(aTPA[I]);
MMouse(MiddlePoint.X, MiddlePoint.Y, 0, 0);
If WaitUpTextMulti(['Open D', 'pen D'], 250) then
begin
ClickMouse2(False);
WaitOptionMulti(['Open', 'pen'], 250);
Flag;
While IsMoving Do Wait(100);
Break;
end;
end;
end;
end;
If FindCandle(XX, YY) then
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.04, 0.91);
SDPoint := Point(XX - 90, YY);
DBox := IntToBox(SDPoint.X - 20, SDPoint.Y - 20, SDPoint.X + 20, SDPoint.Y + 40);
FindColorsTolerance(TPA, 2773360, DBox.X1, DBox.Y1, DBox.X2, DBox.Y2, 9);
If Length(TPA) > 500 then
begin
MMouse(MiddleBox(DBox).X, MiddleBox(DBox).Y, 0, 0);
If WaitUpTextMulti(['Open D', 'pen D'], 250) then
begin
ClickMouse2(False);
WaitOptionMulti(['Open', 'pen'], 250);
Flag;
While IsMoving Do Wait(100);
end;
end;
end;
ColorToleranceSpeed(TempCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;