Results 1 to 19 of 19

Thread: Dr.Newheart's Nat THiever

  1. #1
    Join Date
    Jun 2007
    Location
    In my computer room
    Posts
    148
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Dr.Newheart's Nat THiever

    Howdy Y'all, Im Dr.NEwheart And I Have Created A Script That Thieves Nature Runes From The Western Chest In East Ardougne. Thanks Post Bugs\Errors And Progress Reports Would Be Nice!

    Please Give Me Rep If You Like This Script.


    By the way,
    It has Anti-Randoms,
    Anti-Ban,
    And Failsafes.

    Added Version 1.2
    Better Anti-Ban and Multi-Player added.
    Working On Gas Random.

    Added Version 1.3
    Gas Random Complete
    Added Little Updates To Make It Run Smoother.

    Added Version 1.35
    Fixed A Few Bugs
    Added SRL Stats Registry.

  2. #2
    Join Date
    Aug 2007
    Posts
    282
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    ok, this is a good script for your first.. i do have a few tips for you though
    (also i cant test it because im not a member)

    1. your login procedure, just use the SRL login
    SCAR Code:
    {*******************************************************************************
    procedure LoginPlayer;
    By: WT-Fakawi and modified by Ron
    Description: Logs Player[CurrentPlayer] in. Is usually preceeded by NextPlayer.
    *******************************************************************************}

    // * Still to implement, but have never encountered any of these:

    // * Login limit exceeded.
    // * Too many connections from your address."
    // * Bad session id.
    // * Could not complete login.
    // * Please try using a different world.
    // * Invalid login server requested
    // * Malformed login packet.
    // * Unexpected server response

    procedure LoginPlayer;
    var
      ClickHereToPlay, tx, ty, CHx, CHy, c, tmpMask, LastPlayer: Integer;
    begin
      ClickHereToPlay := BitmapFromString(33, 1, 'z78DA758E510E80300843' +
        'AF54C0E2F6E94CB8FF9134123392693FFA41FA4A23A6F0888443D' +
        '26DC000A7DCE7F458F23EE444E721444B6A0F53D58FE44F4365B7' +
        '067D37AC3D95AADF2F50962C79');
      if (not (LoggedIn)) then
      begin
        // Beginning player not active...
        if (not (Players[CurrentPlayer].Active)) then
        begin
          WriteLn('Current player is not Active...');
          LastPlayer := CurrentPlayer;
          repeat
            CurrentPlayer := Random(HowManyPlayers);
            Wait(100);
          until (Players[CurrentPlayer].Active);
          LoginPlayer;
          FreeBitmap(ClickHereToPlay);
          Exit;
        end;
        x := 150;
        y := 173;
        if (FindClient) then
          FindWindowBySize(766, 504);
        ActivateClient;
        Wait(1000);
        ClickOption('Cancel', 1);
        ClickOption('Exist', 1);
        tmpMask := CreateBitmapMaskFromText('Username', upchars);
        if (FindBitmapMaskTolerance(tmpMask, x, y, 0, 0, 520, 340, 10, 50)) then
        begin
          Wait(25 + Random(50));
          Mouse(x + 24, y + 3, 3, 0, True);
          Wait(25 + Random(50));
          //SendKeysSilent(Players[CurrentPlayer].Name + chr(13) + Players[CurrentPlayer].Pass)
          WriteLn(Players[CurrentPlayer].Name);
          TypeSend(Players[CurrentPlayer].Name);
          Wait(100 + Random(100));
          Mouse(327, 272, 0, 0, True);
          TypeSend(Players[CurrentPlayer].Pass);
          Wait(100 + Random(100));
        end;
        ClickOption('Login', 1);
        // Waiting for Connecting to Server...
        MarkTime(Mark);
        while FindText(tx, ty, '...', upchars, 240, 180, 530, 240) do
        begin
          Wait(100);
          if TimeFromMark(Mark) > 20000 then Break;
        end;
        MarkTime(Mark);
        repeat
          Wait(1000);
          // Enter your username and password. If all failed...
          if FindText(tx, ty, 'nter you', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Enter your username and Password');
            LoginPlayer;
            FreeBitmap(tmpMask);
            FreeBitmap(ClickHereToPlay);
            Exit;
          end else
          // Your account is already logged in.
          if FindText(tx, ty, 'lready', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Your account is already logged in');
            LastPlayer := CurrentPlayer;
            repeat
              CurrentPlayer := Random(HowManyPlayers);
              Wait(100);
            until (Players[CurrentPlayer].Active) and (CurrentPlayer <> LastPlayer);
            LoginPlayer;
            FreeBitmap(tmpMask);
            FreeBitmap(ClickHereToPlay);
            Exit;
          end else
          // Invalid Username. 3 attempts. If fails, you haven't set your username/pass correct
            if FindText(tx, ty, 'nvalid', upchars, 240, 180, 530, 240) then
            begin
              WriteLn('Invalid Username.');
              SRL_Attempts := SRL_Attempts + 1;
              if SRL_Attempts > 3 then
              begin
                Players[CurrentPlayer].loc := 'L/P ERROR';
                NextPlayer(False);
              end;
              LoginPlayer;
              FreeBitmap(tmpMask);
              FreeBitmap(ClickHereToPlay);
              Exit;
            end else
          // Login attempts exceeded. Please wait 1 minute and try again.
              if FindText(tx, ty, 'excee', upchars, 240, 180, 530, 240) then
              begin
                WriteLn('Login attempts exceeded. Please wait 1 minute and try again.');
                Wait(60000);
                LoginPlayer;
                FreeBitmap(tmpMask);
                FreeBitmap(ClickHereToPlay);
                Exit;
              end else
          // World is full.
                if FindText(tx, ty, 'full', upchars, 240, 180, 530, 240) then
                begin
                  WriteLn('World is full.');
                  Wait(3000);
                  LoginPlayer;
                  FreeBitmap(tmpMask);
                  FreeBitmap(ClickHereToPlay);
                  Exit;
                end else
          // Unable to connect. Login Server offline.
                  if FindText(tx, ty, 'offl', upchars, 240, 180, 530, 240) then
                  begin
                    WriteLn('Unable to connect Login Server offline.');
                    Wait((6000) + Random(6000));
                    LoginPlayer;
                    FreeBitmap(tmpMask);
                    FreeBitmap(ClickHereToPlay);
                    Exit;
                  end else
          // Error Connecting.
                    if FindText(tx, ty, 'rror', upchars, 240, 180, 530, 240) then
                    begin
                      WriteLn('Error Connecting.');
                      Wait(10000);
                      LoginPlayer;
                      FreeBitmap(tmpMask);
                      FreeBitmap(ClickHereToPlay);
                      Exit;
                    end else
          // Error loading your profile. Will attempt to re-login 5 more times.)
                      if FindText(tx, ty, 'ontact', upchars, 240, 180, 530, 240) then
                      begin
                        WriteLn('Error loading your profile.');
                        Wait(2000);
                        LoginPlayer;
                        FreeBitmap(tmpMask);
                        FreeBitmap(ClickHereToPlay);
                        Exit;
                      end else
          // Login server rejected session.
                        if FindText(tx, ty, 'reject', upchars, 240, 180, 530, 240) then
                        begin
                          WriteLn('Login server rejected session.');
                          Wait(1000);
                          LoginPlayer;
                          FreeBitmap(tmpMask);
                          FreeBitmap(ClickHereToPlay);
                          Exit;
                        end else
          // Runescape has been updated.
                          if FindText(tx, ty, 'reload', upchars, 240, 180, 530, 240) then
                          begin
                            WriteLn('ERROR. RuneScape has been updated. Script Terminated.');
                            FreeBitmap(tmpMask);
                            FreeBitmap(ClickHereToPlay);
                            TerminateScript;
                          end;
          // The Server is being updated. Please wait 1 minute.
          if FindText(tx, ty, 'updat', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('The Server is being updated.');
            Wait(60000);
            LoginPlayer;
            FreeBitmap(tmpMask);
            FreeBitmap(ClickHereToPlay);
            Exit;
          end else
          // Your account has been disabled.
            if FindText(tx, ty, 'disabled', upchars, 420, 180, 500, 220) then
            begin
              WriteLn('Your account has been disabled');
              Players[CurrentPlayer].loc := 'DISABLED';
              NextPlayer(False);
              FreeBitmap(tmpMask);
              FreeBitmap(ClickHereToPlay);
              Exit;
            end else
          // Waiting for Profile to be Transferred
              if FindText(tx, ty, 'trans', upchars, 240, 180, 530, 240) then
              begin
                WriteLn('Waiting for your Profile to be Transferred');
                Wait(2500);
              end else
          // You need a Members account...
                if FindText(tx, ty, 'member', upchars, 240, 180, 530, 240) then
                begin
                  WriteLn('You need a Members account...');
                  Players[CurrentPlayer].loc := 'Non-Member';
                  NextPlayer(False);
                  FreeBitmap(tmpMask);
                  FreeBitmap(ClickHereToPlay);
                end else
          // Welcome to RuneScape. If all failed...
                  if FindText(tx, ty, 'elcom', upchars, 240, 180, 530, 240) then
                  begin
                    WriteLn('Welcome.');
                    LoginPlayer;
                    FreeBitmap(tmpMask);
                    FreeBitmap(ClickHereToPlay);
                    Exit;
                  end;

          if TimeFromMark(Mark) > 180000 then
          begin
            WriteLn('three minutes have passed');
            WriteFileString(TheFile, Chr(13) + 'THREE MINUTES HAVE PASSED!!!' +
              Chr(13));
            if (FindClient) then
              FindWindowBySize(766, 504);
            ActivateClient;
            ClickOption('Cancel', 1);
            ClickOption('Exist', 1);
          end;
        until (FindBitmapToleranceIn(ClickHereToPlay, CHx, CHy, 250, 270, 530, 390,
          5)) or FindColor(CHx, CHy, 723587, 555, 10, 575, 30);
        Wait(1000 + Random(500));
        if (FindBitmapToleranceIn(ClickHereToPlay, CHx, CHy, 250, 270, 530, 390, 5)) then
          Mouse(CHx, CHy, 50, 20, True) else Writeln('Found Compass'); // Clicks randomly on the button
        repeat
          Wait(1000);
          c := c + 1;
        until (LoggedIn) or (c >= 600);
      end;
      FreeBitmap(tmpMask);
      FreeBitmap(ClickHereToPlay);
      if LoggedIn then
      begin
        PlayerStartTime := (GetSystemTime div 1000); // PlayerStartTime
        if NickNameBMP <> 0 then
          FreeBitmap(NickNameBMP);
        NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick,
          upchars); // Screenname
        WriteFileString(TheFile, Chr(13) + UpperCase(Players[CurrentPlayer].Name) +
          Chr(13)); //* Save NAME to file
      end;
    end;
    it will probably work better in the long run

    2. always explain what your constants mean... use somthing like this
    SCAR Code:
    Const
    user='';  //your username
    pass='';  //your password
    TimesToSteal=5;  //how many times you want to steal from the chest
    AntiBanAmount=30; //the lower the number the more times it will do an antiban procedure

    3. your antiiban.. for how your script is set up now, it works great. but, once you get into leting in run for long periods of time.. (1 hour plus) you need to add some things
    after this i think you want to add a gametab(4);
    SCAR Code:
    0: begin
             HoverSkill('Random', false);
             wait(500+Random(75));
           end;

    your talking will need some more things to say.. because if it runs for a long time it will eventually say the same thing twise.. which will do the opposit of what it is supposed to. of coarse you could do somthing like this:
    SCAR Code:
    4: begin
             case random(10) of
               0: if (ty0 = 0) then
                    begin
                      TypeSend('This is boring');
                      ty0 := ty0+1
                    end;

               1: if (ty1 = 0) then
                    begin
                      TypeSend('I wish people came here');
                      ty1 := ty1+1
                    end;

               2: if (ty2 = 0) then
                    begin
                      TypeSend('lalalalala');
                      ty2 := ty2+1
                    end;

               3: if (ty3 = 0) then
                    begin
                      TypeSend('burp');
                      ty3 := ty3+1
                    end;

               4: if (ty4 = 0) then
                    begin
                      TypeSend('i gotta pee');
                      ty4 := ty4+1
                    end;

               5: if (ty5 = 0) then
                    begin
                      TypeSend('wonder why no one ever comes here');
                      ty5 := ty5+1
                    end;

               6: if (ty6 = 0) then
                    begin
                    TypeSend('Doh re me fa sol la ti doh!');
                    ty6 := ty6+1
                    end;

               7: if (ty7 = 0) then
                    begin
                    TypeSend('Doh ti la sol fa me re doh!');
                    ty7 := ty7+1
                    end;

               8: if (ty8 = 0) then
                    begin
                    TypeSend('soooooo bored!');
                    ty8 := ty8+1
                    end;

               9: if (ty9 = 0) then
                    begin
                    TypeSend('why would anyone waste their time theiving!');
                    ty9 := ty9+1
                    end;
             end;
           end;
    it will make sure that if it uses that particular sentence, it wont again. but you should still add more.. oh and make sure you have this somewhere
    SCAR Code:
    var
     ty0,ty1,ty2,ty3,ty4,ty5,ty6,ty7,ty8,ty9: integer;

    if you are going to use the changing compass in your antiban, you need to have one for each direction... or even better a procedure that holds one of the arrows down for a random amount of time, then re-alines(sp?) it to north

    4. in your FindTheChest; procedure.. in stead of using istextup use istextupmulti because it is more reliable.
    SCAR Code:
    {*******************************************************************************
    function IsUpTextMulti(UT1, UT2, UT3: String): Boolean;
    By: WT-Fakawi
    Description: Returns any of three UpText that might be to the right
    Usefull when text is partially masked.
    Use: IsUpTextMulti('Attack','tta','ack')
    *******************************************************************************}


    function IsUpTextMulti(UT1, UT2, UT3: string): Boolean;
    var
      tempx, tempy, I: Integer;
    var
      TheText: string;
    begin
      for I := 1 to 3 do
      begin
        case I of
          1: TheText := UT1;
          2: TheText := UT2;
          3: TheText := UT3;
        end;
        if IsTextInAreaEx(7, 7, 334, 20, tempx, tempy, TheText, 100, upchars, True,
          True, 0, 2, -1) then
          Result := True;
      end;
    end;

    your script was good though, these are just some things to change to improve it. also, you could later convert it to use multiple players

  3. #3
    Join Date
    Mar 2006
    Location
    United States, -7:00 GMT
    Posts
    1,790
    Mentioned
    2 Post(s)
    Quoted
    2 Post(s)

    Default

    kudos to you crayola

    hakuna matata ;)

  4. #4
    Join Date
    Aug 2007
    Posts
    282
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    thanks! i hope it helps, now i need to make MY first script... =]

  5. #5
    Join Date
    Jun 2007
    Location
    In my computer room
    Posts
    148
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Thanks For The Help DvdCrayola I Finished Version 1.2 And did everything you said.

    Anyone Have Any Proggies or Errors Or Suggestions? Im willing to update it in ANY way possible....... Does it need better AntiRandoms? or anything?

  6. #6
    Join Date
    Aug 2007
    Posts
    282
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    ill take a look at it again!

    EDIT: ok so far this is what i see

    "Very Simple Script Although It Does The"

    you need to add the word job haha.

    hahahahaha
    SCAR Code:
    TypeSend('I hate immigrants...');

    in:
    Procedure SetupToStealFromChest;
    Procedure FindTheChest;

    you need to add
    SCAR Code:
    If(not(LoggedIn))Then Exit;

    oh and, what is Procedure FindGas; for? i think it might have been an accident? becasue its just blank.

    and does anything else come out of the nature chest?

    -DVD

  7. #7
    Join Date
    Jun 2007
    Location
    In my computer room
    Posts
    148
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    in:
    Procedure SetupToStealFromChest;
    Procedure FindTheChest;

    you need to add
    SCAR Code:
    If(not(LoggedIn))Then Exit;

    (oh and, what is Procedure FindGas; for? i think it might have been an accident? becasue its just blank.)

    Something That Im Working On Right Now. It Finds The Poison Gas Random.

    (and does anything else come out of the nature chest?)

    3 Coins Come Out Of The Chest

  8. #8
    Join Date
    Aug 2007
    Posts
    282
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    you could add into the progress report how many coins were earned too.

    just an idea...

  9. #9
    Join Date
    Feb 2007
    Location
    SparklesProd.com
    Posts
    2,406
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)

    Default

    Very nice script for your first. It's a real shame your login procedure was useless, it's very nice

  10. #10
    Join Date
    Jun 2007
    Location
    In my computer room
    Posts
    148
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Sp0rk-eh View Post
    Very nice script for your first. It's a real shaem your login procedure was useless, it's very nice
    Check the new version it uses SRL's login Procedure. And Thanks

  11. #11
    Join Date
    Jun 2007
    Location
    In my computer room
    Posts
    148
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by dvdcrayola View Post
    you could add into the progress report how many coins were earned too.

    just an idea...

    Ya I took the idea and added it thanks!

  12. #12
    Join Date
    Jan 2007
    Posts
    180
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    i will try and post a proggie

  13. #13
    Join Date
    Jun 2007
    Location
    In my computer room
    Posts
    148
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by jeffreytuner View Post
    i will try and post a proggie
    Thanks All Help Is Appreciated.

  14. #14
    Join Date
    Aug 2007
    Posts
    282
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    have you gotten any proggies drnewheart?

    just curious to see how it preforms

  15. #15
    Join Date
    Jun 2007
    Location
    In my computer room
    Posts
    148
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by dvdcrayola View Post
    have you gotten any proggies drnewheart?

    just curious to see how it preforms

    Only A couple but I didnt keep them.

    It avoided 5 gas,
    Stole 168 nats,
    and worked for about 45 minutes.

  16. #16
    Join Date
    Jun 2007
    Location
    In my computer room
    Posts
    148
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I will Now Be Moving this Script to the Thieving Section.

  17. #17
    Join Date
    Oct 2007
    Location
    australia
    Posts
    58
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    it keep saying error in script what whent rong?

  18. #18
    Join Date
    Sep 2007
    Location
    Michigan
    Posts
    3,862
    Mentioned
    2 Post(s)
    Quoted
    1 Post(s)

    Default

    Quote Originally Posted by drnewheart View Post
    08-07-2007 11:27 AM
    I will Now Be Moving this Script to the Thieving Section.
    His last post was near 3 months ago, thats whats wrong.
    And he said he moved it.
    (Scripts outdated until I update for new SRL changes)
    AK Smelter & Crafter [SRL-Stats] - Fast Fighter [TUT] [SRL-Stats]
    If you PM me with a stupid question or one listed in FAQ I will NOT respond. -Narcle
    Summer = me busy, won't be around much.

  19. #19
    Join Date
    Oct 2007
    Location
    Germany (not getman >.>)
    Posts
    15
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Looks good try it out as soon as I get on
    http://www.fenjer.com/adnan/SRLStats/3382.png

    If I see you autoing with level 3/default clothes/crap name I WILL report you. [h]Auto Correctly[/h]. - put this in your sig

    (\_/) Sex is like Pringles: once you pop, you can't stop.
    (o.O)
    (>< )

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Thiever!
    By jkmaster in forum RS3 Outdated / Broken Scripts
    Replies: 7
    Last Post: 01-04-2008, 10:02 PM
  2. Auto Thiever!!!
    By chocolatemints in forum RS3 Outdated / Broken Scripts
    Replies: 3
    Last Post: 09-03-2007, 02:52 PM
  3. Dr.Newhearts Nat Thiever
    By drnewheart in forum RS3 Outdated / Broken Scripts
    Replies: 3
    Last Post: 08-08-2007, 08:49 PM

Posting Permissions

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