RadialWalk is a High Level Map Walker. It finds a color in any given direction, plants the flag and waits until the flag is within a fixed distance of the minimapcenter, in other words, it walks towards the flag.
RadialWalk combines three low level routines: color-finding, mapwalking and flag waiting.
RadialWalk uses simple geometry to scan for TheColor. It works with arcs, slices of a circle. It scans the MiniMap both
clockwise and
counterclockwise. While this may seem futile, it is yet the most powerful feature of
RadialWalk. With the clockwise/counterclockwise setting, you can give the function "direction tendencies".
See Picture 1.

RadialWalk examples
1.RadialWalk(TheColor,0,90,70,xmod,ymod)
This will scan TheColor from
North to
East, starting at 70 distance and ending at the MiniMap Center (MMCX and MMCY)
2.RadialWalk(TheColor,0,90,40,xmod,ymod)
This will scan from
North to
East, starting at 40 distance and ending at the MiniMap Center.
3.RadialWalk(TheColor,90,0,70,xmod,ymod)
This will scan from
East to
North, starting at 70 distance and ending at the MiniMap Center.
4.RadialWalk(TheColor,90,0,40,xmod,ymod)
This will scan from
East to
North, starting at 40 distance and ending at the MiniMap Center.
5.RadialWalk(TheColor,320,400,40,xmod,ymod)
This will scan from
NorthEast to
NorthWest, starting at 70 distance and ending at the MiniMap Center.
6.RadialWalk(TheColor,320,400,40,xmod,ymod)
This will scan from
NorthEast to
NorthWest, starting at 40 distance and ending at the MiniMap Center.
7.RadialWalk(TheColor,320,400,40,xmod,ymod)
This will scan from
NorthEast to
NorthWest, starting at 20 distance and ending at the MiniMap Center.
8,9 and 10. Scan from
NorthWest to
NortEast
.
11.RadialWalk(TheColor,160,200,70,xmod,ymod)
This will scan from
SouthSouthEastto
SouthSouthWest, starting at 70 distance and ending at the MiniMap Center.
12.RadialWalk(TheColor,200,160,70,xmod,ymod)
This will scan from
SSWto
SSE, starting at 70 distance and ending at the MiniMap Center.
13.RadialWalk(TheColor,10,200,70,xmod,ymod)
This will scan from
NNEto
SSW, starting at 70 distance and ending at the MiniMap Center.
13 and 14.. Here you can clearly see the difference in behaviour. While 13 will move you player in an
Upwards direction, 14 does the exact opposite; it move you Player
Downwards, since it starts scanning at the bottom halve of the Minimap.
to complete the Picture:
16. Scans from
WNW to
E, 17 from
E to
WNW. 18 and 19 from
WSW to
N with different Radius. 20 and 21 from
SW to
NW and reverse
This is how it is described inside the Manual:
function RadialWalk(TheColor: Integer; StartRadial, EndRadial: Integer; Radius: Integer; Xmod, Ymod: integer): Boolean;
By: WT-Fakawi & Wizzup?
Description: Walks TheColor from StartRadial to EndRadial for Radius Distance
Valid Arguments:
TheColor:= Any Color, but Road- or WaterColor will do fine 
StartRadial/EndRadial := Any number between -360 to 1440. 0=N,90=E,180=S,270=W. DO NOT USE NUMBERS UNDER -360 or ABOVE 1440
Radius:= Distance from the centre of minimap, i.e. how far away the mouse clicks. Use numbers 20-72
XMod, YMod := deviation from MouseFindFlag. -2 to 2.
TheColor
This argument is pretty self-explanatory. It is the color we are looking for. No furhter explanation is needed, I hope.
StartRadial/EndRadial
I guess by now you know what they do...
Radius
Distance from Minimap Center where the scanning
BEGINS. RadialWalk works inwards: it starts at
radius and scans towards the center.
Xmod/Ymod
The deviation from
MouseFindFlag. RadialWalk uses
MouseFindFlag to place the flag on the minimap.
MouseFindFlag will click as long as it takes on the minimap
until the flag appears. It will add
Xmod and
Ymod to each click. Fill in 1,1 for Xmod and Ymod, and the mouse will gradually move to the lower right corner of the minimap one pixel each click. See the table below.
MouseFindFlag deviations.
To end, here is a working example of a Special Version
RadialWalk inside a small script. Use it with Paint. Set Paint a target window, select the pen, and run the script! It will demonstrate the use of RadialWalk.
I have also enclosed some working examples of Special Version
LinearWalk, the "WindScreen" scanner.
Code:
program RadialWalk;
var x, y:integer;
//----------------------------------------------------------------------------//
function RadialWalk(TheColor:Integer; StartRadial, EndRadial:Integer; Radius:Integer; Xmod, Ymod:integer): Boolean;// By Wizzup? and WT-Fakawi.
var i: Integer;
var X1, Y1: integer;
begin
if StartRadial < EndRadial then
begin
repeat
for i:=StartRadial to EndRadial do
begin
X1:=Round ( Radius * Sin (i * Pi / 180)) + 646;
Y1:=Round (- Radius * Cos (i * Pi / 180)) + 84;
MoveMouse(X1, Y1);
HoldMouse(X1, Y1, True);
ReleaseMouse(X1, Y1, True);
end
Radius:= Radius - 4;
until Radius <= 1 ;
end
if StartRadial > EndRadial then
begin
repeat
for i:=StartRadial Downto EndRadial do
begin
X1:=Round ( Radius * Sin (i * Pi / 180)) + 646;
Y1:=Round (- Radius * Cos (i * Pi / 180)) + 84;
MoveMouse(X1, Y1);
HoldMouse(X1, Y1, True);
ReleaseMouse(X1, Y1, True);
end
Radius := Radius - 4;
until Radius <= 1;
end
end;
//----------------------------------------------------------------------------//
function LinearWalk(TheColor : Integer; Direction : Integer; Radius : Integer; Xmod, Ymod : Integer) : Boolean;// By Wizzup? and WT-Fakawi.
var
i, j, StartRadial, EndRadial, InitRadius : Integer;
var
X1, Y1, Count : Integer;
begin
InitRadius := Radius;
repeat
StartRadial := 360 + Direction - Count;
EndRadial := 360 + Direction + Count;
repeat
for i := StartRadial to EndRadial do
begin
X1:=Round ( Radius * Sin (i * Pi / 180)) + 646;
Y1:=Round (- Radius * Cos (i * Pi / 180)) + 84;
MoveMouse(X1, Y1);
HoldMouse(x1, y1, True);
ReleaseMouse(x1, y1, True);
end;
for i := EndRadial downto StartRadial do
begin
X1:=Round ( Radius * Sin (i * Pi / 180)) + 646;
Y1:=Round (- Radius * Cos (i * Pi / 180)) + 84;
MoveMouse(X1,Y1);
HoldMouse(X1, Y1, True);
ReleaseMouse(X1, Y1, True);
end;
Radius := Radius - 4;
until Radius <= 10;
Radius := InitRadius;
Count := Count + 2;
until ((StartRadial < 2) or (EndRadial > 720));
end;
//----------------------------------------------------------------------------//
begin
RadialWalk(0, 0, 80, 40, -1, -1);
RadialWalk(0, 40, 50, 70, -1, 0);
RadialWalk(0, 90, 120, 70, -1, 0);
RadialWalk(0,200, 130, 70, -1, -1);
RadialWalk(0, 260, 140, 40, -1, -1);
RadialWalk(0, 420, 300, 70, -1, -1);
LinearWalk(0, 320, 70, 1, 1);
end.
More on this subject:
- function FindColorRadius(var x, y: Integer; Color, CenterX, CenterY, sAngle, eAngle, minRadius, maxRadius, Tolerance: Integer): Boolean;
By: masquerader
- procedure AWalk2(Angle, Radius, Color: Integer);
By: Starblaster100
- procedure MapWalk(var x, y: Integer; WalkAng, WalkDist: Integer);
- procedure AngleWalker(gAngle: Extended; gDistance: Integer);
By: based on Sythes AWalk/Liquid
- procedure RoadWalk(RColor: Integer; Dir: String);
By: Stupid3ooo