Results 1 to 3 of 3

Thread: Walking in Wilderness?

  1. #1
    Join Date
    Aug 2014
    Posts
    93
    Mentioned
    2 Post(s)
    Quoted
    36 Post(s)

    Default Walking in Wilderness?

    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):

    Code:
    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:

    Code:
    function R_WalkWilderness(Path: TPointArray): boolean;
    begin
      Result := R_WalkPathWildy(Path, False, 0);
    end;
    Now make a large path like this example:

    Code:
    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

  2. #2
    Join Date
    Sep 2012
    Location
    Netherlands
    Posts
    2,752
    Mentioned
    193 Post(s)
    Quoted
    1468 Post(s)

    Default

    do a check for players inside the "R_WalkPathWildy" function

  3. #3
    Join Date
    Aug 2014
    Posts
    93
    Mentioned
    2 Post(s)
    Quoted
    36 Post(s)

    Default

    Quote Originally Posted by hoodz View Post
    do a check for players inside the "R_WalkPathWildy" function
    Got it thanks

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •