Rare Scripts
2015-04-22 12:35:51
Hello :)
I tried to walk in the wilderness, but when a player is found on the minimap it still continue the path till finished (PascalScript Reflection).
How can i fix it so it stops path, hop world and continues the path??
R_WalkPath([Point(3226, 3217), Point(3232, 3215), Point(3236, 3222), Point(3234, 3229), Point(3226, 3236), Point(3223, 3245), Point(3215, 3251), Point(3206, 3254), Point(3195, 3253), Point(3188, 3257), Point(3184, 3263), Point(3181, 3271), Point(3172, 3275), Point(3162, 3277), Point(3162, 3286), Point(3155, 3293), Point(3145, 3294), Point(3134, 3290), Point(3127, 3295), Point(3117, 3294), Point(3110, 3288), Point(3107, 3280), Point(3106, 3268), Point(3104, 3259), Point(3097, 3249), Point(3092, 3242)]);
Many thanks! :)
Edit:
Quick-fix for the people who need it… (not tested yet)
Add in MapWalk (Reflection include):
and:
Now make a large path like this example:
Will exit the walk once a player is found on the Minimap, will hit the HopWorld procedure and pickup the path again until its on the spot :)
I tried to walk in the wilderness, but when a player is found on the minimap it still continue the path till finished (PascalScript Reflection).
How can i fix it so it stops path, hop world and continues the path??
R_WalkPath([Point(3226, 3217), Point(3232, 3215), Point(3236, 3222), Point(3234, 3229), Point(3226, 3236), Point(3223, 3245), Point(3215, 3251), Point(3206, 3254), Point(3195, 3253), Point(3188, 3257), Point(3184, 3263), Point(3181, 3271), Point(3172, 3275), Point(3162, 3277), Point(3162, 3286), Point(3155, 3293), Point(3145, 3294), Point(3134, 3290), Point(3127, 3295), Point(3117, 3294), Point(3110, 3288), Point(3107, 3280), Point(3106, 3268), Point(3104, 3259), Point(3097, 3249), Point(3092, 3242)]);
Many thanks! :)
Edit:
Quick-fix for the people who need it… (not tested yet)
Add in MapWalk (Reflection include):
function R_WalkPathWildy(Path: TPointArray; Reverse: boolean; DistToMsWalk: integer): boolean;
var
I, K, H, T, Q, Fails, lP: integer;
P, MM, MMF: TPoint;
Temp: TPointArray;
begin
Q := CountDots('white');
Temp := CopyTPA(Path);
ColorToleranceSpeed(1);
T := GetSystemTime + 10000 + Random(2000);
Fails := 0;
lP := 0;
if Reverse then
InvertTpa(Temp);
H := High(Path);
while (not Result) and (GetSystemTime < T) and (Q = 0) and (Fails < 5) and (R_DistanceFromTile(Temp[H]) >= DistToMsWalk) do
begin
if (not LoggedIn()) then
Exit;
if (Q > 0) then Exit;
P := R_GetTileGlobal;
for I := H downto 0 do
begin
if ((I - lP) > 3) then
Continue
else
lP := I;
MM := R_TileToMM(Temp[I]);
if MM = MMF then
Inc(Fails);
if R_TileOnMM(Temp[i]) then
begin
R_WalkToTileMM(Temp[i]);
MarkTime(K);
repeat
if not R_IsWalking then
break;
until((TimeFromMark(K) > 2000) or FFlag(30));
MMF := MM;
if (I = H) then
FFlag(5)
else
FFlag(25);
T := getSystemTime + 7000 + Random(1000);
Break;
end;
end;
Result := (I = H);
end;
if DistToMsWalk > 0 then
Result := R_BlindWalkMS(Temp[H]);
end; and:
function R_WalkWilderness(Path: TPointArray): boolean;
begin
Result := R_WalkPathWildy(Path, False, 0);
end; Now make a large path like this example:
repeat
if not LoggedIn then LoginPlayer;
R_WalkWilderness([Point(2604, 3090), Point(2612, 3092)]);
if find the players ...........
hop world.....
until R_NearTile(point(2612, 3092), Distance); Will exit the walk once a player is found on the Minimap, will hit the HopWorld procedure and pickup the path again until its on the spot :)