SCAR Code:
program SimpleReflectionWalkerEx;
{.Include SRL\SRL\Misc\Smart.Scar}
{.Include SRL\SRL.Scar}
{.Include SRL\SRL\Reflection\Reflection.Scar}
Procedure SetupSmart;
Begin
SmartSetup('world161', True, True, False);
Wait(1000);
SetTargetDC(SmartGetDC);
end;
Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=True;
end;
Function PathWalk(Path : array of TPoint; Tol, FlagD : integer): Boolean;
var
Count : integer;
begin
Count := 0;
repeat
Result := WalkToTile(Path[Count], Tol, FlagD);
if not(Result) then
begin
WriteLn('Path walk failed');
Exit;
end;
Count := Count + 1;
until (not(Result)) or (Count = GetArrayLength(Path))
end;
function LoadPath: TPointArray;
begin
SetLength(Result, 106);
Result[0] := Point(3302, 3169);
Result[1] := Point(3293, 3169);
Result[2] := Point(3294, 3185);
Result[3] := Point(3301, 3198);
Result[4] := Point(3300, 3207);
Result[5] := Point(3297, 3223);
Result[6] := Point(3297, 3239);
Result[7] := Point(3296, 3256);
Result[8] := Point(3281, 3258);
Result[9] := Point(3282, 3245);
Result[10] := Point(3294, 3246);
Result[11] := Point(3294, 3239);
Result[12] := Point(3283, 3239);
Result[13] := Point(3284, 3234);
Result[14] := Point(3293, 3234);
Result[15] := Point(3306, 3234);
Result[16] := Point(3299, 3246);
Result[17] := Point(3301, 3262);
Result[18] := Point(3300, 3278);
Result[19] := Point(3289, 3284);
Result[20] := Point(3287, 3299);
Result[21] := Point(3286, 3312);
Result[22] := Point(3287, 3320);
Result[23] := Point(3283, 3330);
Result[24] := Point(3298, 3333);
Result[25] := Point(3301, 3349);
Result[26] := Point(3295, 3364);
Result[27] := Point(3296, 3371);
Result[28] := Point(3292, 3387);
Result[29] := Point(3292, 3404);
Result[30] := Point(3288, 3420);
Result[31] := Point(3275, 3428);
Result[32] := Point(3259, 3428);
Result[33] := Point(3253, 3428);
Result[34] := Point(3237, 3429);
Result[35] := Point(3221, 3429);
Result[36] := Point(3209, 3430);
Result[37] := Point(3212, 3442);
Result[38] := Point(3201, 3454);
Result[39] := Point(3195, 3470);
Result[40] := Point(3195, 3486);
Result[41] := Point(3194, 3488);
Result[42] := Point(3178, 3488);
Result[43] := Point(3165, 3486);
Result[44] := Point(3165, 3476);
Result[45] := Point(3165, 3462);
Result[46] := Point(3172, 3452);
Result[47] := Point(3178, 3447);
Result[48] := Point(3175, 3441);
Result[49] := Point(3171, 3436);
Result[50] := Point(3171, 3429);
Result[51] := Point(3159, 3419);
Result[52] := Point(3144, 3416);
Result[53] := Point(3130, 3415);
Result[54] := Point(3121, 3415);
Result[55] := Point(3116, 3420);
Result[56] := Point(3107, 3420);
Result[57] := Point(3099, 3419);
Result[58] := Point(3092, 3420);
Result[59] := Point(3087, 3420);
Result[60] := Point(3082, 3415);
Result[61] := Point(3077, 3417);
Result[62] := Point(3065, 3417);
Result[63] := Point(3055, 3410);
Result[64] := Point(3045, 3412);
Result[65] := Point(3042, 3417);
Result[66] := Point(3040, 3421);
Result[67] := Point(3033, 3427);
Result[68] := Point(3020, 3424);
Result[69] := Point(3012, 3430);
Result[70] := Point(3000, 3432);
Result[71] := Point(2995, 3432);
Result[72] := Point(2990, 3429);
Result[73] := Point(2987, 3427);
Result[74] := Point(2987, 3421);
Result[75] := Point(2984, 3419);
Result[76] := Point(2974, 3414);
Result[77] := Point(2965, 3404);
Result[78] := Point(2966, 3395);
Result[79] := Point(2965, 3385);
Result[80] := Point(2966, 3381);
Result[81] := Point(2967, 3379);
Result[82] := Point(2974, 3379);
Result[83] := Point(2979, 3378);
Result[84] := Point(2992, 3370);
Result[85] := Point(3001, 3362);
Result[86] := Point(3006, 3362);
Result[87] := Point(3006, 3348);
Result[88] := Point(3007, 3332);
Result[89] := Point(3005, 3325);
Result[90] := Point(3005, 3309);
Result[91] := Point(3007, 3297);
Result[92] := Point(3007, 3290);
Result[93] := Point(3010, 3277);
Result[94] := Point(3024, 3275);
Result[95] := Point(3036, 3274);
Result[96] := Point(3041, 3274);
Result[97] := Point(3058, 3275);
Result[98] := Point(3069, 3276);
Result[99] := Point(3074, 3277);
Result[100] := Point(3089, 3280);
Result[101] := Point(3102, 3284);
Result[102] := Point(3111, 3293);
Result[103] := Point(3135, 3294);
Result[104] := Point(3122, 3294);
Result[105] := Point(3111, 3293);
end;
Procedure WalkThePath;
Var
I: Integer;
Path: TPointArray;
Begin
Path := LoadPath;
for i := 0 to High(Path) do
Begin
WalkToTile(Path[i], 3, 0);
end;
Wait(500+Random(300));
end;
Begin
SetupSRL;
SetupSmart;
DeclarePlayers;//Calls the DeclarePlayers procedure
LoginPlayer;// This will log your player in.
WalkThePath;
Logout; //This will log your player out!
end.
(I copied most of it from a tutorial, and I made the points using PathMaker)