Wanted
2007-05-12 23:11:39
I spent a lot of time studying everything from the oldest Map Walkers like MapWalker to the Newest more powerful map walkers like RadialRoadWalk to bring every one here these.
I have permission from Starblaster to edit AWalk2.
Please post *any* advice.
The Stuff!
Most Powerful in Package.
BlindRadialDirectionWalk -> Walks according the to current compass angle.
BlindRadialDirectionWalkSymbolIn -> Could easily walk you long distances across the map with 1 line of code.
BlindRadialDirectionWalkSymbolIn can be used to walk tremendous distances with only 2 lines of code!
this just an example!
Possible Rune Myseteries Quest Runner?!!!
I have permission from Starblaster to edit AWalk2.
Please post *any* advice.
The Stuff!
// * function BlindWalk(mmx, mmy, Xmod, ymod: Integer): Boolean; // * by Icefire908
// * function BlindRadialWalk(Radial, Radius, Xmod, Ymod : Integer): Boolean; // * by Icefire908
// * function BlindRadialDirectionWalk(Radial, Radius, Xmod, Ymod : Integer): Boolean; // * by Icefire908
// * procedure BlindWalkColor(mmx, mmy, Xmod, Ymod, Color, Tolerance, MaxClicks : Integer); // * by Icefire908
// * procedure BlindWalkDTM(mmx, mmy, Xmod, Ymod, DTM, MaxClicks : Integer); // * by Icefire908
// * procedure BlindWalkBitMap(mmx, mmy, Xmod, Ymod, Bitmap, Tolerance, MaxClicks : Integer); // * by Icefire908
// * procedure BlindWalkSymbolIn(mmx, mmy, Xmod, Ymod: Integer; Symbol: String; TempSymbolAccuracy: Extended; SX1, SY1, SX2, SY2, MaxClicks: Integer); // * by Icefire908
// * procedure BlindRadailWalkColor(Radial, Radius, Xmod, Ymod, Color, Tolerance, MaxClicks : Integer); // * by Icefire908
// * procedure BlindRadailWalkDTM(Radial, Radius, Xmod, Ymod, DTM, MaxClicks : Integer); // * by Icefire908
// * procedure BlindRadailWalkBitMap(Radial, Radius, Xmod, Ymod, Bitmap, Tolerance, MaxClicks : Integer); // * by Icefire908
// * procedure BlindRadialWalkSymbolIn(Radial, Radius, Xmod, Ymod: Integer; Symbol: String; TempSymbolAccuracy: Extended; SX1, SY1, SX2, SY2, MaxClicks: Integer); // * by Icefire908
// * procedure BlindRadailDirectionWalkColor(Radial, Radius, Xmod, Ymod, Color, Tolerance, MaxClicks : Integer); // * by Icefire908
// * procedure BlindRadailDirectionWalkDTM(Radial, Radius, Xmod, Ymod, DTM, MaxClicks : Integer); // * by Icefire908
// * procedure BlindRadailDirectionWalkBitMap(Radial, Radius, Xmod, Ymod, Bitmap, Tolerance, MaxClicks : Integer); // * by Icefire908
// * procedure BlindRadialDirectionWalkSymbolIn(Radial, Radius, Xmod, Ymod: Integer; Symbol: String; TempSymbolAccuracy: Extended; SX1, SY1, SX2, SY2, MaxClicks: Integer); // * by Icefire908
{*******************************************************************************
function BlindWalk(mmx, mmy, Xmod, Ymod: Integer): Boolean;
By: Icefire908
Description: Clicks on a coordinate on the Mini-Map then waits until flag is
gone. True if found flag.
*******************************************************************************}
function BlindWalk(mmx, mmy, Xmod, Ymod: Integer): Boolean;
var
FailSafe, OldMouseSpeed: Integer;
begin
OldMouseSpeed := MouseSpeed;
MouseSpeed := 1;
MouseFindNoFlag(mmx, mmy, Xmod, Ymod);
if not FlagPresent then
begin
while (not FlagPresent) or (FailSafe < 30) do
begin
Wait(100);
FailSafe := FailSafe + 1;
Result := True;
end;
if not (FailSafe >= 30) then
Result := True;
if (FailSafe >= 30) then WriteLn('ERROR: Could not find flag!');
end;
Flag;
MouseSpeed := OldMouseSpeed;
end;
{*******************************************************************************
function BlindRadialWalk(Radial, Radius, Xmod, Ymod : Integer): Boolean;
By: Icefire908, based from the idea's of Avaphi's AWalk3.
Description: Clicks on the Mini-Map According to an Angle and Radius then waits
until flag is gone. True if found flag.
*******************************************************************************}
function BlindRadialWalk(Radial, Radius, Xmod, Ymod : Integer): Boolean;
var
mmx, mmy : Integer;
begin
if (Radius > 57) or (Radius = 0) then
begin
Radius := 57;
WriteLn('ERROR: Please enter between 1-57 for radius!');
end;
mmx := Round ( Radius * Sin (Radial * Pi / 180)) + MMCX;
mmy := Round (- Radius * Cos (Radial * Pi / 180)) + MMCY;
Result := BlindWalk(mmx, mmy, Xmod, Ymod);
end;
{*******************************************************************************
function BlindRadialDirectionWalk(Radial, Radius, Xmod, Ymod : Integer): Boolean;
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindRadialWalk, but will always walk the same direction
even if compass moves.
*******************************************************************************}
function BlindRadialDirectionWalk(Radial, Radius, Xmod, Ymod : Integer): Boolean;
var
mmx, mmy: Integer;
begin
if (Radius > 57) or (Radius = 0) then
begin
Radius := 57;
WriteLn('Radius := 57, Please enter between 1-57 for radius!');
end;
mmx := Round(Radius * Sin((Pi/180)* FixD(rs_GetCompassAngleDegrees + Radial)) + MMCX);
mmy := Round(-Radius * Cos((Pi/180)* FixD(rs_GetCompassAngleDegrees + Radial)) + MMCY);
Result := BlindWalk(mmx, mmy, Xmod, Ymod);
end;
{*******************************************************************************
procedure BlindWalkColor(mmx, mmy, Xmod, Ymod, Color, Tolerance, MaxClicks : Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindWalk, but will walk until a MiniMap Color is found.
*******************************************************************************}
procedure BlindWalkColor(mmx, mmy, Xmod, Ymod, Color, Tolerance, MaxClicks : Integer);
var
Clicks: Integer;
begin
Clicks := 0;
repeat
BlindWalk(mmx, mmy, Xmod, Ymod);
Clicks := Clicks +1;
until (FindMMColorTol(x, y, Color, Tolerance)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map Color!');
end;
{*******************************************************************************
procedure BlindWalkDTM(mmx, mmy, Xmod, Ymod, DTM, MaxClicks : Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindWalk, but will walk until a MiniMap DTM is found.
*******************************************************************************}
procedure BlindWalkDTM(mmx, mmy, Xmod, Ymod, DTM, MaxClicks : Integer);
var
Clicks: Integer;
begin
Clicks := 0;
repeat
BlindWalk(mmx, mmy, Xmod, Ymod);
Clicks := Clicks +1;
until (FindDTM(DTM, x, y, MMX1, MMY1, MMX2, MMY2)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map DTM!');
end;
{*******************************************************************************
procedure BlindWalkBitMap(mmx, mmy, Xmod, Ymod, Bitmap, Tolerance, MaxClicks : Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindWalk, but will walk until a MiniMap Bitmap is found.
*******************************************************************************}
procedure BlindWalkBitMap(mmx, mmy, Xmod, Ymod, Bitmap, Tolerance, MaxClicks : Integer);
var
Clicks: Integer;
begin
Clicks := 0;
repeat
BlindWalk(mmx, mmy, Xmod, Ymod);
Clicks := Clicks +1;
until (FindBitMapToleranceIn(Bitmap, x, y, MMX1, MMY1, MMX2, MMY2, Tolerance)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map Bitmap!');
end;
{*******************************************************************************
procedure BlindWalkSymbolIn(mmx, mmy, Xmod, Ymod: Integer; Symbol: String; TempSymbolAccuracy: Extended; SX1, SY1, SX2, SY2, MaxClicks: Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindWalk, but will walk until a MiniMap Symbol is found.
*******************************************************************************}
procedure BlindWalkSymbolIn(mmx, mmy, Xmod, Ymod: Integer; Symbol: String; TempSymbolAccuracy: Extended; SX1, SY1, SX2, SY2, MaxClicks: Integer);
var
Clicks: Integer;
OldSymbolAccuracy: Extended;
begin
Clicks := 0;
OldSymbolAccuracy := SymbolAccuracy;
SymbolAccuracy := TempSymbolAccuracy;
repeat
BlindWalk(mmx, mmy, Xmod, Ymod);
Clicks := Clicks +1;
until (FindSymbolIn(x, y, Symbol, SX1, SY1, SX2, SY2)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map Symbol!');
SymbolAccuracy := OldSymbolAccuracy;
end;
{*******************************************************************************
procedure BlindRadailWalkColor(Radial, Radius, Xmod, Ymod, Color, Tolerance, MaxClicks : Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindRadialWalk, but will walk until a MiniMap Color is found.
*******************************************************************************}
procedure BlindRadailWalkColor(Radial, Radius, Xmod, Ymod, Color, Tolerance, MaxClicks : Integer);
var
Clicks: Integer;
begin
Clicks := 0;
repeat
BlindRadialWalk(Radial, Radius, Xmod, Ymod);
Clicks := Clicks +1;
until (FindMMColorTol(x, y, Color, Tolerance)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map Color!');
end;
{*******************************************************************************
procedure BlindRadailWalkDTM(Radial, Radius, Xmod, Ymod, DTM, MaxClicks : Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindRadialWalk, but will walk until a MiniMap DTM is found.
*******************************************************************************}
procedure BlindRadailWalkDTM(Radial, Radius, Xmod, Ymod, DTM, MaxClicks : Integer);
var
Clicks: Integer;
begin
Clicks := 0;
repeat
BlindRadialWalk(Radial, Radius, Xmod, Ymod);
Clicks := Clicks +1;
until (FindDTM(DTM, x, y, MMX1, MMY1, MMX2, MMY2)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map DTM!');
end;
{*******************************************************************************
procedure BlindRadailWalkBitMap(Radial, Radius, Xmod, Ymod, Bitmap, Tolerance, MaxClicks : Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindRadialWalk, but will walk until a MiniMap Bitmap is found.
*******************************************************************************}
procedure BlindRadailWalkBitMap(Radial, Radius, Xmod, Ymod, Bitmap, Tolerance, MaxClicks : Integer);
var
Clicks: Integer;
begin
Clicks := 0;
repeat
BlindRadialWalk(Radial, Radius, Xmod, Ymod);
Clicks := Clicks +1;
until (FindBitMapToleranceIn(Bitmap, x, y, MMX1, MMY1, MMX2, MMY2, Tolerance)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map Bitmap!');
end;
{*******************************************************************************
procedure BlindRadialWalkSymbolIn(Radial, Radius, Xmod, Ymod: Integer; Symbol: String; TempSymbolAccuracy: Extended; SX1, SY1, SX2, SY2, MaxClicks: Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindRadialWalk, but will walk until a MiniMap Symbol is found.
*******************************************************************************}
procedure BlindRadialWalkSymbolIn(Radial, Radius, Xmod, Ymod: Integer; Symbol: String; TempSymbolAccuracy: Extended; SX1, SY1, SX2, SY2, MaxClicks: Integer);
var
Clicks: Integer;
OldSymbolAccuracy: Extended;
begin
Clicks := 0;
OldSymbolAccuracy := SymbolAccuracy;
SymbolAccuracy := TempSymbolAccuracy;
repeat
BlindRadialWalk(Radial, Radius, Xmod, Ymod);
Clicks := Clicks +1;
until (FindSymbolIn(x, y, Symbol, SX1, SY1, SX2, SY2)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map Symbol!');
SymbolAccuracy := OldSymbolAccuracy;
end;
{*******************************************************************************
procedure BlindRadailDirectionWalkColor(Radial, Radius, Xmod, Ymod, Color, Tolerance, MaxClicks : Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindRadialDirectionWalk, but will walk until a MiniMap Color is found.
*******************************************************************************}
procedure BlindRadailDirectionWalkColor(Radial, Radius, Xmod, Ymod, Color, Tolerance, MaxClicks : Integer);
var
Clicks: Integer;
begin
Clicks := 0;
repeat
BlindRadialDirectionWalk(Radial, Radius, Xmod, Ymod);
Clicks := Clicks +1;
until (FindMMColorTol(x, y, Color, Tolerance)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map Color!');
end;
{*******************************************************************************
procedure BlindRadailDirectionWalkDTM(Radial, Radius, Xmod, Ymod, DTM, MaxClicks : Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindRadialDirectionWalk, but will walk until a MiniMap DTM is found.
*******************************************************************************}
procedure BlindRadailDirectionWalkDTM(Radial, Radius, Xmod, Ymod, DTM, MaxClicks : Integer);
var
Clicks: Integer;
begin
Clicks := 0;
repeat
BlindRadialDirectionWalk(Radial, Radius, Xmod, Ymod);
Clicks := Clicks +1;
until (FindDTM(DTM, x, y, MMX1, MMY1, MMX2, MMY2)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map DTM!');
end;
{*******************************************************************************
procedure BlindRadailDirectionWalkBitMap(Radial, Radius, Xmod, Ymod, Bitmap, Tolerance, MaxClicks : Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindRadialDirectionWalk, but will walk until a MiniMap Bitmap is found.
*******************************************************************************}
procedure BlindRadailDirectionWalkBitMap(Radial, Radius, Xmod, Ymod, Bitmap, Tolerance, MaxClicks : Integer);
var
Clicks: Integer;
begin
Clicks := 0;
repeat
BlindRadialDirectionWalk(Radial, Radius, Xmod, Ymod);
Clicks := Clicks +1;
until (FindBitMapToleranceIn(Bitmap, x, y, MMX1, MMY1, MMX2, MMY2, Tolerance)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map Bitmap!');
end;
{*******************************************************************************
procedure BlindRadialDirectionWalkSymbolIn(Radial, Radius, Xmod, Ymod: Integer; Symbol: String; TempSymbolAccuracy: Extended; SX1, SY1, SX2, SY2, MaxClicks: Integer);
By: Icefire908, based from the idea's of Starblaster100's AWalk2.
Description: Same as BlindRadialWalk, but will walk until a MiniMap Symbol is found.
*******************************************************************************}
procedure BlindRadialDirectionWalkSymbolIn(Radial, Radius, Xmod, Ymod: Integer; Symbol: String; TempSymbolAccuracy: Extended; SX1, SY1, SX2, SY2, MaxClicks: Integer);
var
Clicks: Integer;
OldSymbolAccuracy: Extended;
begin
Clicks := 0;
OldSymbolAccuracy := SymbolAccuracy;
SymbolAccuracy := TempSymbolAccuracy;
repeat
BlindRadialDirectionWalk(Radial, Radius, Xmod, Ymod);
Clicks := Clicks +1;
until (FindSymbolIn(x, y, Symbol, SX1, SY1, SX2, SY2)) or (Clicks >= MaxClicks);
if (Clicks >= MaxClicks) then WriteLn('ERROR: Did not find Mini Map Symbol!');
SymbolAccuracy := OldSymbolAccuracy;
end;
Most Powerful in Package.
BlindRadialDirectionWalk -> Walks according the to current compass angle.
BlindRadialDirectionWalkSymbolIn -> Could easily walk you long distances across the map with 1 line of code.
BlindRadialDirectionWalkSymbolIn can be used to walk tremendous distances with only 2 lines of code!
this just an example!procedure WalkFromDraynorToVarrock;
BlindRadialDirectionWalkSymbolIn ({Stuff to Pottery Place Symbol North});
BlindRadialDirectionWalkSymbolIn ({Stuff to Bank Symbol West});
end;Possible Rune Myseteries Quest Runner?!!!