Page 3 of 3 FirstFirst 123
Results 51 to 64 of 64

Thread: Abyss Runecrafting - An ultimate joy to have

  1. #51
    Join Date
    Dec 2011
    Posts
    496
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default

    Anyone know when the new SPS is out? was just wondering cause maybe it'd work better there

  2. #52
    Join Date
    Nov 2011
    Posts
    2
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Id pay for an abyss runecrafting bot. This would be an amazing script.

  3. #53
    Join Date
    Nov 2011
    Location
    Puerto Rico
    Posts
    905
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    So would i to bad no selling or buying scripts i wish you could buy SRL for like $50 USD lol

  4. #54
    Join Date
    Dec 2011
    Posts
    28
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by belbn View Post
    No, and I don't imagine they will.

    Please stop leeching and begging. If you have something to contribute, please do. I'll even answer any questions you have.

    Why not try your hand at programming it yourself? There are ton of resources here and at scar-divi.com. I picked up Pascal in a very short time.
    I'm neither leeching nor begging. I'm asking for a hand. This is a community, so one doesn't have to make the whole script, many can work together. I'm looking for someone to work with and help them with this script.

  5. #55
    Join Date
    Oct 2008
    Posts
    196
    Mentioned
    1 Post(s)
    Quoted
    20 Post(s)

    Default

    Attempting this over the summer holidays. Wish me luck! (Sorry for the grave dig)

  6. #56
    Join Date
    Feb 2012
    Location
    Denver, CO
    Posts
    863
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by HT BaaFly View Post
    Attempting this over the summer holidays. Wish me luck! (Sorry for the grave dig)
    I totally came here to call you on the gravedig (expecting it to be some new user).

    I'm pleasantly surprised to see it's someone actually attempting the script! Best of luck!

  7. #57
    Join Date
    Nov 2011
    Posts
    1,589
    Mentioned
    9 Post(s)
    Quoted
    17 Post(s)

    Default

    I have a working one, on my desktop, just need to add a death walk, then debating to sell for members it.



    ^^

  8. #58
    Join Date
    Jun 2012
    Location
    Howell, Michigan
    Posts
    1,585
    Mentioned
    34 Post(s)
    Quoted
    553 Post(s)

    Default

    Im working on one right now, not as hard as I thought :P

  9. #59
    Join Date
    Aug 2007
    Location
    Colorado
    Posts
    7,421
    Mentioned
    268 Post(s)
    Quoted
    1442 Post(s)

    Default

    Now that I have the OGLInterception successfully running, something like this will be quite possible. The hardest part of this script would be getting from the outer ring to the inner ring, yes? The problem lies with the obstacles always being at random locations, along with our player's own random teleported location.

    Luckily with OGL or DirectX we can find these obstacles on-screen by a certain ID, like previous reflection & injection techniques.



    There's an example of different model IDs between common trees in RS.

    Current projects:
    [ AeroGuardians (GotR minigame), Motherlode Miner, Blast furnace ]

    "I won't fall in your gravity. Open your eyes,
    you're the Earth and I'm the sky..."


  10. #60
    Join Date
    Nov 2011
    Posts
    1,589
    Mentioned
    9 Post(s)
    Quoted
    17 Post(s)

    Default

    With OpenGL, if it could be made to work on simba, with a good API behind it'll be good, Tribot is OpenGL but no API and its near impossible to do anything.



    ^^

  11. #61
    Join Date
    Aug 2007
    Location
    Colorado
    Posts
    7,421
    Mentioned
    268 Post(s)
    Quoted
    1442 Post(s)

    Default

    Quote Originally Posted by Mat View Post
    With OpenGL, if it could be made to work on simba, with a good API behind it'll be good, Tribot is OpenGL but no API and its near impossible to do anything.
    That image is Simba & the RS loader, not Tribot. Apologies for the off-topic posts.

    Current projects:
    [ AeroGuardians (GotR minigame), Motherlode Miner, Blast furnace ]

    "I won't fall in your gravity. Open your eyes,
    you're the Earth and I'm the sky..."


  12. #62
    Join Date
    Nov 2011
    Posts
    1,589
    Mentioned
    9 Post(s)
    Quoted
    17 Post(s)

    Default

    What I meant by that was how simba has many useful functions, and it extremely good.
    But if we had OGL and DirectX it'll make it a lot better for things like abyss .



    ^^

  13. #63
    Join Date
    Nov 2011
    Location
    England
    Posts
    3,072
    Mentioned
    296 Post(s)
    Quoted
    1094 Post(s)

    Default

    You plan on making a Simba plugin Flight? :P

  14. #64
    Join Date
    Oct 2008
    Posts
    196
    Mentioned
    1 Post(s)
    Quoted
    20 Post(s)

    Default

    Determining the layer the player is in is not that hard, to be honest. I used SPS along with Mat's image of the abyss to calculate the magic coords, as I like to call them. They are basically the coords of the area around the center. From the the outer layer, a certain part of the abyss center (with the mage of zamorak) is always invisible, meaning no matter where you are in the outer layer, it is impossible to see it. However, in the inner layer, this portion of the minimap is always visible in every corner (tested and confirmed).

    As for obstacles, I'm only using the mine and theiving blockades as they have distinct colours that can be easily be recognised by pure colour methods. My player just runs around the abyss until he detects those colours

    Code so far if anyone is interested:

    Simba Code:
    program RCAbyss;
    //{$DEFINE SMART}
    {$i srl/srl.simba}
    {$i sps/sps.simba}

    var
      Wall, FailAtMage: integer;
      aFound: Extended;

    procedure DeclarePlayers;
    begin
      HowManyPlayers := 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;
      Players[0].Name := '';
      Players[0].Pass := '';
      Players[0].Active := True;
    end;

    procedure StartUp;
    begin
      ClearDebug;
      SetupSRL;
      DeclarePlayers;
      If not Loggedin then
        begin
          LoginPlayer;
          Wait(4000 + Random(1000));
        end;
      SetAngle(0);
      MakeCompass(0);
    end;

    procedure SetDTMs;
    begin
      Wall := DTMFromString('mlwAAAHicY2eAgFVArAzEmWiYF4i1gFgYiLmgalmBmA+IVZVkGISEhBjkpMXBGMSHsSWB8rgwIx4MBQBIogXS');
    end;

    procedure FreeLoadedDTMs;
    begin
      FreeDTM(Wall);
    end;

    function InInnerRing: boolean;
    begin
      SPS_Debug := true;
      SPS_Setup(runescape_other, ['0_2']);
      result := (SPS_PosOnMM(Point(235, 1051))) or (SPS_PosOnMM(Point(251, 1051)))
    end;

    procedure WalkToDitch;
    begin
      SPS_Setup(runescape_surface, ['10_6']);
      If SPS_PosOnMM(point(4243, 2563)) then SPS_WalkToPos(point(4243, 2563)) else SPS_BlindWalk(point(4243, 2563));
      while ismoving do wait(100);
    end;

    procedure CrossDitch;
    var
      x, y: integer;
    begin
      SetDTMs;
      SPS_Setup(runescape_surface, ['10_6']);
      while SPS_PosOnMM(point(4243, 2623)) do
        begin
          if FindDTMRotated(Wall, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
            begin
              writeln('Found the wall. Clicking on it.');
              Mouse(x, y, 20, 5, true);
              Wait(3250 + random(500));
              Mouse(643, 26, 10, 5, true);
              wait(randomrange(1000, 1300));
            end;
        end;
    end;

    procedure WalkToMage;
    begin
      SPS_Setup(runescape_surface, ['10_6']);
      If SPS_PosOnMM(point(4258, 2418)) then SPS_WalkToPos(point(4258, 2418)) else SPS_BlindWalk(point(4258, 2418));
    end;

    procedure TeleportToAbyss; //2698882, 5042406   Talk-to Mage of Zamorak
    label label1;
    var
      x, y, c: Integer;
    begin
      MarkTime(c);
      repeat;
        label1:
        If (FindColorSpiralTolerance(x, y, 1318281, MSX1, MSY1, MSX2, MSY2, 10)) or  (FindColorSpiralTolerance(x, y, 5042406, MSX1, MSY1, MSX2, MSY2, 10)) then
          begin
            SPS_Setup(runescape_other, ['0_2']);
            If not (SPS_GetMyPos = point(-1, -1)) then exit;
            MMouse(x, y, 5, 5);
            Wait(100 + random(200));
            if (IsUpTextMultiCustom(['Mage', 'Talk', '-to', 'Zamorak', 'of Zam', 'age of'])) then
              begin
                FailAtMage := 0
                GetMousePos(x, y);
                Mouse(x, y, 0, 0, false);
                wait(400 + random(200));
                Mouse(x, (y + 61), 20, 3, true);
                Wait(4100+random(1000));
              end;
          end else
              begin
                MakeCompass(randomrange(0, 360));
                FailAtMage := FailAtMage + 1
                If FailAtMage >= 5 then
                  begin
                    writeln('Failed to find mage colour 5 times in a row');
                    Terminatescript;
                  end;
                GoTo Label1;
              end;
        until((not (SPS_GetMyPos = point(-1, -1))) or (TimeFromMark(c) >= 30000))
    end;

    procedure FindBlockade; //1548449 for Distract Eyes 4414328 for Mine Rock
    var
      MyTPA: TPointArray;
      MyPoint: TPoint;
      x, y, i, c: Integer;
    begin
      x := MSCx;
      y := MSCy;
      FindColorsSpiralTolerance(x, y, MyTPA, 4414328, MSX1, MSY1, MSX2, MSY2, 3);
      if Length(MyTPA) = 0 then FindColorsSpiralTolerance(x, y, MyTPA, 2389603, MSX1, MSY1, MSX2, MSY2, 3);
      MarkTime(c);
      for i := 0 to High(MyTPA) do
        begin
          If InInnerRing then exit;
          MyPoint := MyTPA[i]
          MMouse(MyPoint.x, MyPoint.y, 5, 5);
          Wait(100 + random(200));
          if (IsUpTextMultiCustom(['Mine', 'Rock', 'ine', 'ock', 'ine R', 'Distract', 'Eyes', 'istract', 'yes', 'tract Ey'])) then
            begin
              GetMousePos(x, y);
              Mouse(x, y, 0, 0, True);
              Wait(500+random(250));
              If InInnerRing then exit;
            end;
        end;
    end;


    procedure NavigateOutterRing;
    var
      T: integer;
    begin
      MarkTime(T);
      SPS_Setup(runescape_other, ['0_2']);
      If InInnerRing then
        begin
          writeln('In inner ring');
          exit;
        end;
      repeat
        If SPS_PosOnMM(Point(291, 1139)) then               //01
          begin
            SPS_WalkToPos(point(291, 1139));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
        If SPS_PosOnMM(Point(327, 1095)) then               //02
          begin
            SPS_WalkToPos(point(327, 1095));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
        If SPS_PosOnMM(Point(339, 1055)) then               //03
          begin
            SPS_WalkToPos(point(339, 1055));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
        If SPS_PosOnMM(Point(331, 1019)) then               //04
          begin
            SPS_WalkToPos(point(331, 1019));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
        If SPS_PosOnMM(Point(295, 975)) then               //05
          begin
            SPS_WalkToPos(point(295, 975));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
        If SPS_PosOnMM(Point(243, 959)) then               //06
          begin
            SPS_WalkToPos(point(243, 959));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
        If SPS_PosOnMM(Point(199, 975)) then               //07
          begin
            SPS_WalkToPos(point(199, 975));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
        If SPS_PosOnMM(Point(163, 1007)) then               //08
          begin
            SPS_WalkToPos(point(163, 1007));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
        If SPS_PosOnMM(Point(151, 1043)) then               //09
          begin
            SPS_WalkToPos(point(151, 1043));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
        If SPS_PosOnMM(Point(151, 1095)) then               //10
          begin
            SPS_WalkToPos(point(151, 1095));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
        If SPS_PosOnMM(Point(195, 1139)) then               //11
          begin
            SPS_WalkToPos(point(195, 1139));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
        If SPS_PosOnMM(Point(255, 1147)) then               //12
          begin
            SPS_WalkToPos(point(255, 1147));
            While isMoving do wait(100);
            FindBlockade;
            If InInnerRing then exit;
          end;
      until((InInnerRing) or (not LoggedIn) or (TimeFromMark(T) > 40000))
    end;

    procedure WalkToEntrance;
    begin
      SPS_Setup(runescape_other, ['0_2']);
      If InInnerRing then
        begin
          If SPS_PosOnMM(point(195, 1047)) then SPS_WalkToPos(point(195, 1047)) else SPS_BlindWalk(point(195, 1047));
        end;
    end;

    procedure EnterPortal;
    var
      MyTPA: TPointArray;
      MyPoint: TPoint;
      x, y, i, c: Integer;
    begin
      MakeCompass (90 + random(45));
      x := MSCx;
      y := MSCy;
      repeat
        FindColorsSpiralTolerance(x, y, MyTPA, 1774950, MSX1, MSY1, MSX2, MSY2, 3);
        if Length(MyTPA) = 0 then FindColorsSpiralTolerance(x, y, MyTPA, 1578115, MSX1, MSY1, MSX2, MSY2, 3);
        MarkTime(c);
        for i := 0 to High(MyTPA) do
          begin
            MyPoint := MyTPA[i]
            MMouse(MyPoint.x, MyPoint.y, 5, 5);
            Wait(100 + random(200));
            if (IsUpTextMultiCustom(['Blood', 'od ri', 'Blood rift', 'Exit-through Blood rift'])) then
              begin
                GetMousePos(x, y);
                Mouse(x, y, 0, 0, True);
                Wait(500+random(250));
              end;
          end;
      until(not ininnerring);
    end;

    begin
      StartUp;
      WalkToDitch;
      CrossDitch;
      WalkToMage;
      TeleportToAbyss;
      NavigateOutterRing;
      WalkToEntrance;
      {SPS_Debug := true;
      SPS_Setup(runescape_surface, ['10_6']);
      sps_getmypos; }

    end.

    This is nowhere near completion. This is a very basic outline of the script. Most likely everything will be rewritten to a higher standard along with a better failsafe system.

    Just finished interacting with the mage but haven't tested it completely. Gonna take a break for a while

Page 3 of 3 FirstFirst 123

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
  •