Results 1 to 21 of 21

Thread: Divination

  1. #1
    Join Date
    May 2007
    Posts
    527
    Mentioned
    12 Post(s)
    Quoted
    109 Post(s)

    Default Divination

    What a crappy skill. Xp-rates seems to be extremely low. Super boring to train, like runespan. Even the rewards are not so good..

  2. #2
    Join Date
    Dec 2011
    Location
    Hyrule
    Posts
    8,662
    Mentioned
    179 Post(s)
    Quoted
    1870 Post(s)

  3. #3
    Join Date
    Dec 2011
    Location
    Toronto, Ontario
    Posts
    6,424
    Mentioned
    84 Post(s)
    Quoted
    863 Post(s)

    Default

    Quote Originally Posted by Ashaman88 View Post
    But the key question - is it easy to bot?
    Extremely.

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

    Default

    Quote Originally Posted by Ashaman88 View Post
    But the key question - is it easy to bot?
    from what i have seen its really easy

  5. #5
    Join Date
    Mar 2012
    Location
    127.0.0.1
    Posts
    1,199
    Mentioned
    0 Post(s)
    Quoted
    26 Post(s)

    Default

    It should be very easy to bot.

  6. #6
    Join Date
    Sep 2010
    Posts
    5,762
    Mentioned
    136 Post(s)
    Quoted
    2739 Post(s)

    Default

    Quote Originally Posted by Hazzah View Post
    It should be very easy to bot.
    Woot Woot well add a new skill catagory to the Runescape scripts then

    What do you guys mean by slow? Because dungeoneering was thought to be slow when it was first released

  7. #7
    Join Date
    Jan 2012
    Location
    In A Farm
    Posts
    3,301
    Mentioned
    30 Post(s)
    Quoted
    444 Post(s)

    Default

    Quote Originally Posted by Ashaman88 View Post
    But the key question - is it easy to bot?
    Easy to bot?? yes! ppl are already botting...

  8. #8
    Join Date
    Nov 2011
    Location
    United States
    Posts
    815
    Mentioned
    6 Post(s)
    Quoted
    284 Post(s)

    Default

    You have to remember, this is a gathering skill, its not meant to be a stand alone thing, Its to compliment the new skill that comes out early next year, that will use resources and items from dividation to make things

  9. #9
    Join Date
    Mar 2013
    Location
    Shaolin
    Posts
    863
    Mentioned
    24 Post(s)
    Quoted
    519 Post(s)

    Default

    I already made a script for it... and for the most part I got it working past what I posted earlier. Its not too bad to bot.
    You have permission to steal anything I've ever made...

  10. #10
    Join Date
    Feb 2011
    Location
    The Future.
    Posts
    5,600
    Mentioned
    396 Post(s)
    Quoted
    1598 Post(s)

    Default

    Me too.. It's not great but it works okay.. Just needs a bit of fixing up. Mixing it with colour would definitely own..
    Just started and it got me lvl 21 so far :l
    Anyway.. gotta go..

    EDIT.. Updated. Added Walking to the Energy converter..
    Simba Code:
    {$DEFINE SMARTOLD}
    {$include_once GLX/Setup.Simba}

    const
      MyID              = 2997907707;  //ID of my player.
      Exchange          = 3;           //1 = To-Energy, 2 = To-XP, 3 = To-Higher-Xp.
      UseStaticInv      = False;       //Use hard-coded Inventory coordinates.

      MemoryID          = 77010;
      PaleEnergy        = 52275;
      ChronicleFragment = 79305;

      MemoryConverter   = 1891595728;

    var
      T: TSmart;
      Me: TPlayer;
      Inv: Tbox = [1035, 375, 1342, 596];

    Procedure SetupPlayer;            //Login Information.
    Begin
      Me.Name := 'Username';
      Me.Pass := '********';
    End;

    Function InvBox: TBox;
    Begin
      If UseStaticInv Then
        Result := Inv
      Else
        Result := GL_InvBounds;
    End;

    Function InvCount: Integer;
    Begin
      Result := GL_InvCount;
    End;

    Function InvFull: Boolean;
    Begin
      Result := InvCount >= 28;
    End;

    function WaitFindModel(ID: Cardinal; WaitPerLoop, MaxTime: Integer): Boolean;
    var
      T: Integer;
    begin
      T := GetSystemTime + MaxTime;
      while (GetSystemTime < T) do
      begin
        if (Length(glGetModels(ID)) < 1) then
        begin
          Result := True;
          Exit;
        end;
        Wait(WaitPerLoop);
      end;
    end;

    function WaitFindTexture(ID: Integer; WaitPerLoop, MaxTime: Integer): Boolean;
    var
      T: Integer;
    begin
      T := GetSystemTime + MaxTime;
      while (GetSystemTime < T) do
      begin
        if (Length(glGetTextures(ID)) < 1) then
        begin
          Result := True;
          Exit;
        end;
        Wait(WaitPerLoop);
      end;
    end;

    Function FindMemoryConverter: Boolean;
    Begin
      Result := Length(glGetTextures(2244000)) > 0;
    End;

    Function FindMemoriesToEnergy: TPoint;
    var
      T: glTextureArray;
    Begin
      T := glGetTextures(251797, 4794974, 10);
      if (Length(T) > 0) then
        Result := Point(T[0].X, T[0].Y)
      else
        Result := Point(-1, -1);
    End;

    Function FindMemoriesToXP: TPoint;
    var
      T: glTextureArray;
    Begin
      T := glGetTextures(339290, 2237487, 10);
      if (Length(T) > 0) then
        Result := Point(T[0].X, T[0].Y)
      else
        Result := Point(-1, -1);
    End;

    Function FindMemoriesToHigherXP: TPoint;
    var
      T: glTextureArray;
    Begin
      T := glGetTextures(339290, 2433571, 10);
      if (Length(T) > 0) then
        Result := Point(T[0].X, T[0].Y)
      else
        Result := Point(-1, -1);
    End;

    Function CountItem(ID: Integer): Integer;
    Begin
      Result := Length(glGetTextures(ID, InvBox));
    End;

    Function HasItem(ID: Integer): Boolean;
    Begin
      Result := CountItem(ID) <> 0;
    End;

    Function HasNoMemories: Boolean;
    Begin
      Result := Not HasItem(MemoryID);
    End;

    Function HasNoEnergy: Boolean;
    Begin
      Result := Not HasItem(PaleEnergy);
    End;

    function ModelsToTPA(var Models: glModelArray): TPointArray;
    var
      I: Integer;
      TPA: TPointArray;
    Begin
      SetLength(Result, Length(Models));
      For I := 0 To High(Models) Do
      Begin
        Result[I] := Point(Models[I].X, Models[I].Y);
      End;
    End;

    function FindNearestWisp: TPoint;
    var
      TPA: TPointArray;
      X1, Y1, X2, Y2: Integer;
      IDs: Array Of Cardinal;
      Models: glModelArray;
    Begin
      Result := Point(-1, -1);
      IDs := [1001876126, 3736315319{, 3382154561}];
      Models := glGetModels(IDs);
      If (Length(Models) > 0) Then
      Begin
        TPA := ModelsToTPA(Models);
        GLXViewPort(X1, Y1, X2, Y2);
        SortTPAFrom(TPA, Point((X2 - X1) div 2, (Y2 - Y1) div 2));
        Result := TPA[0];
      End;
    End;

    function WalkToConverter: Boolean;
    var
      T: Timer;
      MMC: TPoint;
      MMIcon: glTextureArray;
    Begin
      If (Not GL_LoggedIn) Then Exit;
      MMIcon := glGetTextures(6375, 3288885, 7);
      MMC := MiddleBox(GL_GetMinimapBounds);
      if (Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) > 10) Then
        Mouse(MMIcon[0].X, MMIcon[0].Y, 5, 5, MOUSE_LEFT);

      T.Start;
      while (Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) > 10) do
      begin
        MMIcon := glGetTextures(6375, 3288885, 7);
        Wait(100);
        If (T.TimeElapsed > 10000) Then
          Exit;

        If (Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) <= 10) Then
        Begin
          Result := True;
          Exit;
        End;
      end;

      Result := Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) <= 10;
    End;

    function ExchangeWisps: Boolean;
    var
      P: TPoint;
      Models: glModelArray;
    Begin
      Models := glGetModels(MemoryConverter);
      If (Length(Models) > 0) Then
      Begin
        Mouse(Models[0].X, Models[0].Y, 5, 5);
        If (GL_IsMouseUpText(['Convert', 'Convert memories', 'memories Energy'])) Then
        Begin
          ClickMouse(MOUSE_LEFT);
          If WaitFunc(@FindMemoryConverter, 200, 5000) Then
            Case Exchange Of
              1: Begin
                  P := FindMemoriesToEnergy;
                  if ((P.X <> -1) and (P.Y <> -1)) then
                  begin
                    Mouse(P, 5, 5, MOUSE_LEFT);
                    WaitFunc(@HasNoMemories, 200, 35000);
                  end;
                 End;

              2: Begin
                  P := FindMemoriesToXP;
                  if ((P.X <> -1) and (P.Y <> -1)) then
                  begin
                    Mouse(P, 5, 5, MOUSE_LEFT);
                    WaitFunc(@HasNoMemories, 200, 35000);
                  end;
                 End;

              3: Begin
                  P := FindMemoriesToHigherXP;
                  if ((P.X <> -1) and (P.Y <> -1)) then
                  begin
                    Mouse(P, 5, 5, MOUSE_LEFT);
                    WaitFunc(@HasNoMemories, 200, 35000);
                  end;
                 End;
            End Else
              Begin
                Writeln('Invalid Exchange Option');
                TerminateScript;
              End;
        End;
      End;
    End;

    Procedure MainLoop;
    var
      Prev, Next: TPoint;
      T: Timer;
    Begin
      SetupPlayer;
      Repeat
        If (Not GL_LoggedIn) Then
          GL_LoginPlayer(Me);

        While(Not InvFull) Do
        Begin
          Wait(RandomRange(100, 200));
          Next := FindNearestWisp;

          while (Distance(Next.X, Next.Y, Prev.X, Prev.Y) < 10) Do
          begin
            Wait(100);
            ClearDebug;
            writeln('Harvesting Wisp');
            Next := FindNearestWisp;
            If (InvFull) Then
              Break;
          end;

          Mouse(Next, 1, 1);
          if (GL_WaitMouseUptext(['Harvest', 'Catch'], 700)) Then
          Begin
            Mouse(Next, 2, 2, MOUSE_RIGHT);
            Wait(300);
            GL_WaitOption(['Harvest', 'Catch'], MOUSE_LEFT, 500);
          End;
          Wait(2000);
          Prev := Next;
        End;
        Wait(100);
        ClearDebug;
        WalkToConverter;
        ExchangeWisps;
        writeln('Exchanging Wisps');
      Until(False);
    End;

    var
      Smart: TSmart;
    begin
      ClearDebug;
      SetupGLX(Smart, 1350, 670);
      MainLoop;
      TerminateScript;
    end.
    Last edited by Brandon; 08-21-2013 at 01:59 AM.
    I am Ggzz..
    Hackintosher

  11. #11
    Join Date
    Apr 2012
    Location
    Seattle
    Posts
    791
    Mentioned
    1 Post(s)
    Quoted
    159 Post(s)

    Default

    PB has 3 scripts up and running for it AFAIK Very easy to bot. I wonder if botwatch is watching it though.

  12. #12
    Join Date
    Dec 2011
    Location
    Hyrule
    Posts
    8,662
    Mentioned
    179 Post(s)
    Quoted
    1870 Post(s)

    Default

    Quote Originally Posted by Brandon View Post
    Me too.. It's not great but it works okay.. Just needs a bit of fixing up. Mixing it with colour would definitely own..
    Just started and it got me lvl 21 so far :l
    Anyway.. gotta go..

    EDIT.. Updated. Added Walking to the Energy converter..
    Simba Code:
    {$DEFINE SMARTOLD}
    {$include_once GLX/Setup.Simba}

    const
      MyID              = 2997907707;  //ID of my player.
      Exchange          = 3;           //1 = To-Energy, 2 = To-XP, 3 = To-Higher-Xp.
      UseStaticInv      = False;       //Use hard-coded Inventory coordinates.

      MemoryID          = 77010;
      PaleEnergy        = 52275;
      ChronicleFragment = 79305;

      MemoryConverter   = 1891595728;

    var
      T: TSmart;
      Me: TPlayer;
      Inv: Tbox = [1035, 375, 1342, 596];

    Procedure SetupPlayer;            //Login Information.
    Begin
      Me.Name := 'Username';
      Me.Pass := '********';
    End;

    Function InvBox: TBox;
    Begin
      If UseStaticInv Then
        Result := Inv
      Else
        Result := GL_InvBounds;
    End;

    Function InvCount: Integer;
    Begin
      Result := GL_InvCount;
    End;

    Function InvFull: Boolean;
    Begin
      Result := InvCount >= 28;
    End;

    function WaitFindModel(ID: Cardinal; WaitPerLoop, MaxTime: Integer): Boolean;
    var
      T: Integer;
    begin
      T := GetSystemTime + MaxTime;
      while (GetSystemTime < T) do
      begin
        if (Length(glGetModels(ID)) < 1) then
        begin
          Result := True;
          Exit;
        end;
        Wait(WaitPerLoop);
      end;
    end;

    function WaitFindTexture(ID: Integer; WaitPerLoop, MaxTime: Integer): Boolean;
    var
      T: Integer;
    begin
      T := GetSystemTime + MaxTime;
      while (GetSystemTime < T) do
      begin
        if (Length(glGetTextures(ID)) < 1) then
        begin
          Result := True;
          Exit;
        end;
        Wait(WaitPerLoop);
      end;
    end;

    Function FindMemoryConverter: Boolean;
    Begin
      Result := Length(glGetTextures(2244000)) > 0;
    End;

    Function FindMemoriesToEnergy: TPoint;
    var
      T: glTextureArray;
    Begin
      T := glGetTextures(251797, 4794974, 10);
      if (Length(T) > 0) then
        Result := Point(T[0].X, T[0].Y)
      else
        Result := Point(-1, -1);
    End;

    Function FindMemoriesToXP: TPoint;
    var
      T: glTextureArray;
    Begin
      T := glGetTextures(339290, 2237487, 10);
      if (Length(T) > 0) then
        Result := Point(T[0].X, T[0].Y)
      else
        Result := Point(-1, -1);
    End;

    Function FindMemoriesToHigherXP: TPoint;
    var
      T: glTextureArray;
    Begin
      T := glGetTextures(339290, 2433571, 10);
      if (Length(T) > 0) then
        Result := Point(T[0].X, T[0].Y)
      else
        Result := Point(-1, -1);
    End;

    Function CountItem(ID: Integer): Integer;
    Begin
      Result := Length(glGetTextures(ID, InvBox));
    End;

    Function HasItem(ID: Integer): Boolean;
    Begin
      Result := CountItem(ID) <> 0;
    End;

    Function HasNoMemories: Boolean;
    Begin
      Result := Not HasItem(MemoryID);
    End;

    Function HasNoEnergy: Boolean;
    Begin
      Result := Not HasItem(PaleEnergy);
    End;

    function ModelsToTPA(var Models: glModelArray): TPointArray;
    var
      I: Integer;
      TPA: TPointArray;
    Begin
      SetLength(Result, Length(Models));
      For I := 0 To High(Models) Do
      Begin
        Result[I] := Point(Models[I].X, Models[I].Y);
      End;
    End;

    function FindNearestWisp: TPoint;
    var
      TPA: TPointArray;
      X1, Y1, X2, Y2: Integer;
      IDs: Array Of Cardinal;
      Models: glModelArray;
    Begin
      Result := Point(-1, -1);
      IDs := [1001876126, 3736315319{, 3382154561}];
      Models := glGetModels(IDs);
      If (Length(Models) > 0) Then
      Begin
        TPA := ModelsToTPA(Models);
        GLXViewPort(X1, Y1, X2, Y2);
        SortTPAFrom(TPA, Point((X2 - X1) div 2, (Y2 - Y1) div 2));
        Result := TPA[0];
      End;
    End;

    function WalkToConverter: Boolean;
    var
      T: Timer;
      MMC: TPoint;
      MMIcon: glTextureArray;
    Begin
      If (Not GL_LoggedIn) Then Exit;
      MMIcon := glGetTextures(6375, 3288885, 7);
      MMC := MiddleBox(GL_GetMinimapBounds);
      if (Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) > 10) Then
        Mouse(MMIcon[0].X, MMIcon[0].Y, 5, 5, MOUSE_LEFT);

      T.Start;
      while (Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) > 10) do
      begin
        MMIcon := glGetTextures(6375, 3288885, 7);
        Wait(100);
        If (T.TimeElapsed > 10000) Then
          Exit;

        If (Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) <= 10) Then
        Begin
          Result := True;
          Exit;
        End;
      end;

      Result := Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) <= 10;
    End;

    function ExchangeWisps: Boolean;
    var
      P: TPoint;
      Models: glModelArray;
    Begin
      Models := glGetModels(MemoryConverter);
      If (Length(Models) > 0) Then
      Begin
        Mouse(Models[0].X, Models[0].Y, 5, 5);
        If (GL_IsMouseUpText(['Convert', 'Convert memories', 'memories Energy'])) Then
        Begin
          ClickMouse(MOUSE_LEFT);
          If WaitFunc(@FindMemoryConverter, 200, 5000) Then
            Case Exchange Of
              1: Begin
                  P := FindMemoriesToEnergy;
                  if ((P.X <> -1) and (P.Y <> -1)) then
                  begin
                    Mouse(P, 5, 5, MOUSE_LEFT);
                    WaitFunc(@HasNoMemories, 200, 35000);
                  end;
                 End;

              2: Begin
                  P := FindMemoriesToXP;
                  if ((P.X <> -1) and (P.Y <> -1)) then
                  begin
                    Mouse(P, 5, 5, MOUSE_LEFT);
                    WaitFunc(@HasNoMemories, 200, 35000);
                  end;
                 End;

              3: Begin
                  P := FindMemoriesToHigherXP;
                  if ((P.X <> -1) and (P.Y <> -1)) then
                  begin
                    Mouse(P, 5, 5, MOUSE_LEFT);
                    WaitFunc(@HasNoMemories, 200, 35000);
                  end;
                 End;
            End Else
              Begin
                Writeln('Invalid Exchange Option');
                TerminateScript;
              End;
        End;
      End;
    End;

    Procedure MainLoop;
    var
      Prev, Next: TPoint;
      T: Timer;
    Begin
      SetupPlayer;
      Repeat
        If (Not GL_LoggedIn) Then
          GL_LoginPlayer(Me);

        While(Not InvFull) Do
        Begin
          Wait(RandomRange(100, 200));
          Next := FindNearestWisp;

          while (Distance(Next.X, Next.Y, Prev.X, Prev.Y) < 10) Do
          begin
            Wait(100);
            ClearDebug;
            writeln('Harvesting Wisp');
            Next := FindNearestWisp;
            If (InvFull) Then
              Break;
          end;

          Mouse(Next, 1, 1);
          if (GL_WaitMouseUptext(['Harvest', 'Catch'], 700)) Then
          Begin
            Mouse(Next, 2, 2, MOUSE_RIGHT);
            Wait(300);
            GL_WaitOption(['Harvest', 'Catch'], MOUSE_LEFT, 500);
          End;
          Wait(2000);
          Prev := Next;
        End;
        Wait(100);
        ClearDebug;
        WalkToConverter;
        ExchangeWisps;
        writeln('Exchanging Wisps');
      Until(False);
    End;

    var
      Smart: TSmart;
    begin
      ClearDebug;
      SetupGLX(Smart, 1350, 670);
      MainLoop;
      TerminateScript;
    end.
    Hit me up on Skype tonight Brandon!

  13. #13
    Join Date
    Apr 2012
    Location
    Vancouver, BC
    Posts
    291
    Mentioned
    1 Post(s)
    Quoted
    84 Post(s)

    Default

    Epic release! I was wondering about the botwatch as well ... seems like some of those wisps move pretty fast ... especially the chronicle ones (which are useless div exp but good hunter exp). With all the bans recently (could be just my perception but it feels like they have gotten faster at banning) the anti-bans should be super important and human mouse movements as well.

  14. #14
    Join Date
    Apr 2012
    Location
    Vancouver, BC
    Posts
    291
    Mentioned
    1 Post(s)
    Quoted
    84 Post(s)

    Default

    Quote Originally Posted by Rincewind View Post
    PB has 3 scripts up and running for it AFAIK Very easy to bot. I wonder if botwatch is watching it though.
    Anyone try these yet?? I am over level 40 and want to gouge my eyes out with this skill.

  15. #15
    Join Date
    Apr 2012
    Location
    Seattle
    Posts
    791
    Mentioned
    1 Post(s)
    Quoted
    159 Post(s)

    Default

    Quote Originally Posted by digitalninja View Post
    Anyone try these yet?? I am over level 40 and want to gouge my eyes out with this skill.
    So many bans at PB though. I don't know if its safe to bot Divination using their scripts.

  16. #16
    Join Date
    Mar 2013
    Posts
    67
    Mentioned
    0 Post(s)
    Quoted
    41 Post(s)

    Default

    Quote Originally Posted by Brandon View Post
    Me too.. It's not great but it works okay.. Just needs a bit of fixing up. Mixing it with colour would definitely own..
    Just started and it got me lvl 21 so far :l
    Anyway.. gotta go..

    EDIT.. Updated. Added Walking to the Energy converter..
    Simba Code:
    {$DEFINE SMARTOLD}
    {$include_once GLX/Setup.Simba}

    const
      MyID              = 2997907707;  //ID of my player.
      Exchange          = 3;           //1 = To-Energy, 2 = To-XP, 3 = To-Higher-Xp.
      UseStaticInv      = False;       //Use hard-coded Inventory coordinates.

      MemoryID          = 77010;
      PaleEnergy        = 52275;
      ChronicleFragment = 79305;

      MemoryConverter   = 1891595728;

    var
      T: TSmart;
      Me: TPlayer;
      Inv: Tbox = [1035, 375, 1342, 596];

    Procedure SetupPlayer;            //Login Information.
    Begin
      Me.Name := 'Username';
      Me.Pass := '********';
    End;

    Function InvBox: TBox;
    Begin
      If UseStaticInv Then
        Result := Inv
      Else
        Result := GL_InvBounds;
    End;

    Function InvCount: Integer;
    Begin
      Result := GL_InvCount;
    End;

    Function InvFull: Boolean;
    Begin
      Result := InvCount >= 28;
    End;

    function WaitFindModel(ID: Cardinal; WaitPerLoop, MaxTime: Integer): Boolean;
    var
      T: Integer;
    begin
      T := GetSystemTime + MaxTime;
      while (GetSystemTime < T) do
      begin
        if (Length(glGetModels(ID)) < 1) then
        begin
          Result := True;
          Exit;
        end;
        Wait(WaitPerLoop);
      end;
    end;

    function WaitFindTexture(ID: Integer; WaitPerLoop, MaxTime: Integer): Boolean;
    var
      T: Integer;
    begin
      T := GetSystemTime + MaxTime;
      while (GetSystemTime < T) do
      begin
        if (Length(glGetTextures(ID)) < 1) then
        begin
          Result := True;
          Exit;
        end;
        Wait(WaitPerLoop);
      end;
    end;

    Function FindMemoryConverter: Boolean;
    Begin
      Result := Length(glGetTextures(2244000)) > 0;
    End;

    Function FindMemoriesToEnergy: TPoint;
    var
      T: glTextureArray;
    Begin
      T := glGetTextures(251797, 4794974, 10);
      if (Length(T) > 0) then
        Result := Point(T[0].X, T[0].Y)
      else
        Result := Point(-1, -1);
    End;

    Function FindMemoriesToXP: TPoint;
    var
      T: glTextureArray;
    Begin
      T := glGetTextures(339290, 2237487, 10);
      if (Length(T) > 0) then
        Result := Point(T[0].X, T[0].Y)
      else
        Result := Point(-1, -1);
    End;

    Function FindMemoriesToHigherXP: TPoint;
    var
      T: glTextureArray;
    Begin
      T := glGetTextures(339290, 2433571, 10);
      if (Length(T) > 0) then
        Result := Point(T[0].X, T[0].Y)
      else
        Result := Point(-1, -1);
    End;

    Function CountItem(ID: Integer): Integer;
    Begin
      Result := Length(glGetTextures(ID, InvBox));
    End;

    Function HasItem(ID: Integer): Boolean;
    Begin
      Result := CountItem(ID) <> 0;
    End;

    Function HasNoMemories: Boolean;
    Begin
      Result := Not HasItem(MemoryID);
    End;

    Function HasNoEnergy: Boolean;
    Begin
      Result := Not HasItem(PaleEnergy);
    End;

    function ModelsToTPA(var Models: glModelArray): TPointArray;
    var
      I: Integer;
      TPA: TPointArray;
    Begin
      SetLength(Result, Length(Models));
      For I := 0 To High(Models) Do
      Begin
        Result[I] := Point(Models[I].X, Models[I].Y);
      End;
    End;

    function FindNearestWisp: TPoint;
    var
      TPA: TPointArray;
      X1, Y1, X2, Y2: Integer;
      IDs: Array Of Cardinal;
      Models: glModelArray;
    Begin
      Result := Point(-1, -1);
      IDs := [1001876126, 3736315319{, 3382154561}];
      Models := glGetModels(IDs);
      If (Length(Models) > 0) Then
      Begin
        TPA := ModelsToTPA(Models);
        GLXViewPort(X1, Y1, X2, Y2);
        SortTPAFrom(TPA, Point((X2 - X1) div 2, (Y2 - Y1) div 2));
        Result := TPA[0];
      End;
    End;

    function WalkToConverter: Boolean;
    var
      T: Timer;
      MMC: TPoint;
      MMIcon: glTextureArray;
    Begin
      If (Not GL_LoggedIn) Then Exit;
      MMIcon := glGetTextures(6375, 3288885, 7);
      MMC := MiddleBox(GL_GetMinimapBounds);
      if (Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) > 10) Then
        Mouse(MMIcon[0].X, MMIcon[0].Y, 5, 5, MOUSE_LEFT);

      T.Start;
      while (Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) > 10) do
      begin
        MMIcon := glGetTextures(6375, 3288885, 7);
        Wait(100);
        If (T.TimeElapsed > 10000) Then
          Exit;

        If (Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) <= 10) Then
        Begin
          Result := True;
          Exit;
        End;
      end;

      Result := Distance(MMC.X, MMC.Y, MMIcon[0].X, MMIcon[0].Y) <= 10;
    End;

    function ExchangeWisps: Boolean;
    var
      P: TPoint;
      Models: glModelArray;
    Begin
      Models := glGetModels(MemoryConverter);
      If (Length(Models) > 0) Then
      Begin
        Mouse(Models[0].X, Models[0].Y, 5, 5);
        If (GL_IsMouseUpText(['Convert', 'Convert memories', 'memories Energy'])) Then
        Begin
          ClickMouse(MOUSE_LEFT);
          If WaitFunc(@FindMemoryConverter, 200, 5000) Then
            Case Exchange Of
              1: Begin
                  P := FindMemoriesToEnergy;
                  if ((P.X <> -1) and (P.Y <> -1)) then
                  begin
                    Mouse(P, 5, 5, MOUSE_LEFT);
                    WaitFunc(@HasNoMemories, 200, 35000);
                  end;
                 End;

              2: Begin
                  P := FindMemoriesToXP;
                  if ((P.X <> -1) and (P.Y <> -1)) then
                  begin
                    Mouse(P, 5, 5, MOUSE_LEFT);
                    WaitFunc(@HasNoMemories, 200, 35000);
                  end;
                 End;

              3: Begin
                  P := FindMemoriesToHigherXP;
                  if ((P.X <> -1) and (P.Y <> -1)) then
                  begin
                    Mouse(P, 5, 5, MOUSE_LEFT);
                    WaitFunc(@HasNoMemories, 200, 35000);
                  end;
                 End;
            End Else
              Begin
                Writeln('Invalid Exchange Option');
                TerminateScript;
              End;
        End;
      End;
    End;

    Procedure MainLoop;
    var
      Prev, Next: TPoint;
      T: Timer;
    Begin
      SetupPlayer;
      Repeat
        If (Not GL_LoggedIn) Then
          GL_LoginPlayer(Me);

        While(Not InvFull) Do
        Begin
          Wait(RandomRange(100, 200));
          Next := FindNearestWisp;

          while (Distance(Next.X, Next.Y, Prev.X, Prev.Y) < 10) Do
          begin
            Wait(100);
            ClearDebug;
            writeln('Harvesting Wisp');
            Next := FindNearestWisp;
            If (InvFull) Then
              Break;
          end;

          Mouse(Next, 1, 1);
          if (GL_WaitMouseUptext(['Harvest', 'Catch'], 700)) Then
          Begin
            Mouse(Next, 2, 2, MOUSE_RIGHT);
            Wait(300);
            GL_WaitOption(['Harvest', 'Catch'], MOUSE_LEFT, 500);
          End;
          Wait(2000);
          Prev := Next;
        End;
        Wait(100);
        ClearDebug;
        WalkToConverter;
        ExchangeWisps;
        writeln('Exchanging Wisps');
      Until(False);
    End;

    var
      Smart: TSmart;
    begin
      ClearDebug;
      SetupGLX(Smart, 1350, 670);
      MainLoop;
      TerminateScript;
    end.
    sweet, but i thought simba was still not working from rs3...?

  17. #17
    Join Date
    Oct 2011
    Location
    Chicago
    Posts
    3,352
    Mentioned
    21 Post(s)
    Quoted
    437 Post(s)

    Default

    It isn't you need to download the unofficial updates etc. Just wait for SRL-6




    Anti-Leech Movement Prevent Leeching Spread the word
    Insanity 60 Days (Killer workout)
    XoL Blog (Workouts/RS/Misc)

  18. #18
    Join Date
    Mar 2013
    Posts
    67
    Mentioned
    0 Post(s)
    Quoted
    41 Post(s)

    Default

    Quote Originally Posted by [XoL] View Post
    It isn't you need to download the unofficial updates etc. Just wait for SRL-6
    ah ok

    is there an eta on simba 6? cos atm i got about 10m in bones...

  19. #19
    Join Date
    Mar 2013
    Location
    Shaolin
    Posts
    863
    Mentioned
    24 Post(s)
    Quoted
    519 Post(s)

    Default

    Quote Originally Posted by luxrath View Post
    ah ok

    is there an eta on simba 6? cos atm i got about 10m in bones...
    Last I heard sometime in September (Hope I helped )


    And about getting unofficial updates, I think it would be best if everyone interested in these do them by themselves as custom interfaces can be a problem with LoggedIn and other functions such as: Globals, Inventory, Chat, Players.
    If you need any help please PM me
    You have permission to steal anything I've ever made...

  20. #20
    Join Date
    Aug 2013
    Posts
    8
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Looks like a good thing to bot for the GE but I think the prices will still be high at first and until a good money making product from it is made, it will go down.

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

    Default

    Got on a friends account to play RS3 and see the new skill, I agree, it is useless at this point. However very easy to bot. I'd stay away as I've heard of many people being banned lately..

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
  •