SCAR Code:
function SetForWalking(WhatOne: string): Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
case Lowercase(WhatOne) of
'tobalance':
begin
dtmMainPoint.x := 750;
dtmMainPoint.y := 222;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 5464680;
dtmMainPoint.Tolerance := 255;
dtmSubPoints[0].x := 750;
dtmSubPoints[0].y := 222;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 5464680;
dtmSubPoints[0].Tolerance := 255;
dtmSubPoints[1].x := 753;
dtmSubPoints[1].y := 226;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 16115188;
dtmSubPoints[1].Tolerance := 255;
dtmSubPoints[2].x := 743;
dtmSubPoints[2].y := 227;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 16115188;
dtmSubPoints[2].Tolerance := 255;
dtmSubPoints[3].x := 743;
dtmSubPoints[3].y := 233;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 16115188;
dtmSubPoints[3].Tolerance := 255;
dtmSubPoints[4].x := 753;
dtmSubPoints[4].y := 234;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16115188;
dtmSubPoints[4].Tolerance := 255;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
'tored':
begin
dtmMainPoint.x := 719;
dtmMainPoint.y := 259;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 5464680;
dtmMainPoint.Tolerance := 255;
dtmSubPoints[0].x := 719;
dtmSubPoints[0].y := 259;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 5464680;
dtmSubPoints[0].Tolerance := 255;
dtmSubPoints[1].x := 709;
dtmSubPoints[1].y := 259;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 233;
dtmSubPoints[1].Tolerance := 255;
dtmSubPoints[2].x := 709;
dtmSubPoints[2].y := 257;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 233;
dtmSubPoints[2].Tolerance := 255;
dtmSubPoints[3].x := 711;
dtmSubPoints[3].y := 269;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 1682371;
dtmSubPoints[3].Tolerance := 255;
dtmSubPoints[4].x := 713;
dtmSubPoints[4].y := 244;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 1682371;
dtmSubPoints[4].Tolerance := 255;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
'toblue':
begin
dtmMainPoint.x := 788;
dtmMainPoint.y := 269;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 5464680;
dtmMainPoint.Tolerance := 255;
dtmSubPoints[0].x := 788;
dtmSubPoints[0].y := 269;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 5464680;
dtmSubPoints[0].Tolerance := 255;
dtmSubPoints[1].x := 792;
dtmSubPoints[1].y := 254;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 10324605;
dtmSubPoints[1].Tolerance := 255;
dtmSubPoints[2].x := 791;
dtmSubPoints[2].y := 288;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 10324605;
dtmSubPoints[2].Tolerance := 255;
dtmSubPoints[3].x := 796;
dtmSubPoints[3].y := 262;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 15855345;
dtmSubPoints[3].Tolerance := 255;
dtmSubPoints[4].x := 793;
dtmSubPoints[4].y := 281;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 15855345;
dtmSubPoints[4].Tolerance := 255;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
end;
end;
function WalkToPortalFailsafe(Which: string): boolean;
begin
case Lowercase(Which) of
'red':
begin
if DTMRotated((SetForWalking('tobalance')), x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 2, 2, true);
FFlag(0);
end;
if DTMRotated((SetForWalking('tored')), x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 2, 2, true);
FFlag(0);
end;
Result := True;
end;
'blue':
begin
if DTMRotated((SetForWalking('tobalance')), x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 2, 2, true);
FFlag(0);
end;
if DTMRotated((SetForWalking('toblue')), x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 2, 2, true);
FFlag(0);
end;
Result := True;
end;
'balance':
begin
if DTMRotated((SetForWalking('tobalance')), x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 2, 2, true);
FFlag(0);
end;
end;
end;
FreeDTM(SetForWalking('tobalance'));
FreeDTM(SetForWalking('tored'));
FreeDTM(SetForWalking('toblue'));
end;
function WalkToPortal(WhatOne: string): boolean;
begin
RoadColor := FindRoadColor;
case Lowercase(WhatOne) of
'red':
begin
if not RadialWalk(RoadColor, 335, 340, 69, 2, 0) then
begin
Writeln('Backup Walking');
WalkToPortalFailsafe('red');
if not WalkToPortalFailsafe('red') then
begin
Writeln('Failed walking..');
TerminateScript;
end;
end else
if RadialWalk(RoadColor, 335, 340, 69, 2, 0) then
Flag;
Writeln('Walked to Red Portal..');
Result := True;
end;
'blue':
begin
if not RadialWalk(RoadColor , 22, 26, 67, 2, 0) then
begin
Writeln('Backup Walking');
WalkToPortalFailsafe('blue');
if not WalkToPortalFailsafe('blue') then
begin
Writeln('Failed walking..');
TerminateScript;
end;
end else
if RadialWalk(RoadColor , 22, 26, 67, 2, 0) then
Flag;
Writeln('Walked to Red Portal..');
Result := True;
end;
'balance':
begin
if not RadialWalk(RoadColor, 358, 2, 55, 2, 0) then
begin
Writeln('Backup Walking');
WalkToPortalFailsafe('balance');
if not WalkToPortalFailsafe('balance') then
begin
Writeln('Failed walking..');
TerminateScript;
end;
end else
if RadialWalk(RoadColor, 358, 2, 55, 2, 0) then
Flag;
Writeln('Walked to Red Portal..');
Result := True;
end;
end;
end;