Results 1 to 24 of 24

Thread: Vial of water retriever from portable well. Currently 1 MILLION GP/HOUR

  1. #1
    Join Date
    Jan 2015
    Location
    Hungary
    Posts
    90
    Mentioned
    0 Post(s)
    Quoted
    34 Post(s)

    Cool Vial of water retriever from portable well. Currently 1 MILLION GP/HOUR

    Vial retriever

    Version: 1.0
    OUTDATED

    Greetings!

    My first published script. I hope you will enjoy this.

    Features:
    - Places well if there isn't one next to you.
    - Retrieves vial of waters.
    - Basic progress report.

    Setup:
    - Interpreter: LAPE
    - You have to be member to use this.
    - Be at Shantay past in front of the bank chest.
    - Chat must be as little as possible
    - MUST set preset 1 and preset 2
    -Preset 1: Make it an empty iventory
    -Preset 2: 1 portable well
    - Put portable well into the first actionbar slot!
    - At the start of your script look for username, password, and current vial of water price.


    Currently, if you lag free, it makes about 1.000.000 gp per hour. I'm sure it will crash pretty soon if you use this.

    CAUTION!
    It doesn't have any antiban, so use it at your own risk.

    I would like to hear some feedback about the programming idea, it's look, what I should and should not do next time.

    Also looking for bug reports.
    When you make a feedback, keep in mind that this is my first script.

    If you want to read the code on the forum, look for it in the next post.

    Progress report from yesterday:

    ================================================== ======
    ================================================== ======
    ================================================== ======
    193648 vial-t szereztem eddig.
    7745920GP hasznot hoztam eddig
    Ennyi ideje fut: 8 Hours, 29 Minutes and 1 Second
    ================================================== ======
    ================================================== ======
    ================================================== ======

    (It's hungarian, but I am pretty sure you will understand, first row is number of vials retrieved, second is the overall value of the stuff and last is the time it ran for.)
    Attached Files Attached Files
    Last edited by loginor; 12-22-2015 at 02:10 AM. Reason: Outdated
    Everything is achievable!

  2. #2
    Join Date
    Jan 2015
    Location
    Hungary
    Posts
    90
    Mentioned
    0 Post(s)
    Quoted
    34 Post(s)

    Default

    //---reserved---//

    Simba Code:
    program scriptTemplate;

    {$DEFINE SMART}
    {$I SRL-6/SRL.simba}
    {$I SPS/lib/SPS-RS3.Simba}
    //-----------------------------------VARIABLES-------------------------------------------
    var
    X, Y, kesz, profitss, vialPrice: Integer;
    bankhely, wellhely: TBox;
    //------------------------------------PROCEDURES-----------------------------------------
    procedure declarePlayers();
    begin
      setLength(players, 1);
      with players[0] do
      begin
        vialPrice := ;      //Vial price for stats
        loginName := '';    //Username
        password := '';     //Password
        isActive := true;
        isMember := true;
      end
      currentPlayer := 0;
    end;
    procedure kezdes();
    begin
    clearDebug();
      smartEnableDrawing := true;
      setupSRL();
      declarePlayers();

      if not isLoggedIn() then
      begin
        players[currentPlayer].login();
        wait(randomRange(20000, 30000));
        exitTreasure();
        wait(randomRange(2000, 5000));
      end;
      minimap.clickCompass();
      mainscreen.setZoom(false);
    end;

    procedure visszalog();
    begin
        players[currentPlayer].login();
        wait(randomRange(20000, 30000));
        exitTreasure();
        wait(randomRange(2000, 5000));
        minimap.clickCompass();
        mainscreen.setZoom(false);
    end;

    procedure wellplace();
    begin
      mouseBox(wellhely, MOUSE_MOVE);
      fastClick(MOUSE_RIGHT);
    end;

    procedure bankplace();
    begin
      mouseBox(bankhely, MOUSE_MOVE);
      fastClick(MOUSE_RIGHT);
    end;

    procedure freshwell();
    begin
      bankplace();
      if (chooseOption.isOpen(2500)) then
      begin
        chooseOption.select(['pen', 'Open', 'pen Sha', 'pen Shantay' ], 2000);
        if bankScreen.isOpen(5000) then
        begin
          typeSend('2', false);
          if tabBackpack.waitWhileLocked(5000) then
          begin
            typeSend('1', false);
            if conversationBox.isOpen(3000) then
            begin
              conversationBox.selectOption(1);
              wait(15000);
            end else
            begin
              typeSend('1');
            end;
          end else
          begin
            typeSend('2', false);
          end;
        end else
        begin
          chooseOption.select(['pen', 'Open', 'pen Sha', 'pen Shantay' ], 2000);
        end;
      end else
      begin
        bankplace();
      end;
    end;

    procedure depositnow();
    begin
      bankplace();
      if (chooseOption.isOpen(2500)) then
      begin
        chooseOption.select(['pen', 'Open', 'pen Sha', 'pen Shantay' ], 2000);
        if bankScreen.isOpen(5000) then
        begin
          typeSend('1', false);
          if tabBackpack.waitWhileLocked(5000) then
          begin
          end else
          begin
            typeSend('1', false);
          end;
        end else
        begin
          chooseOption.select(['pen', 'Open', 'pen Sha', 'pen Shantay' ], 2000);
        end;
      end else
      begin
        bankplace();
      end;
    end;

    procedure stats();
    begin
    kesz := kesz + 28;
    profitss := kesz * vialPrice;
    writeLn('========================================================');
    writeLn('========================================================');
    writeLn('========================================================');
    writeln(IntToStr(kesz) + ' Vial has been retrieved');
    writeln(IntToStr(profitss) + 'GP has been earned!');
    writeln('Time it ran for: '+timeRunning);
    writeLn('========================================================');
    writeLn('========================================================');
    writeLn('========================================================');
    end;

    //----------------------------------------MAIN LOOP---------------------------------------------------
    begin
        wellhely := IntToBox(260, 280, 300, 360);
        bankhely:= IntToBox(401, 191, 446, 257);
        mouseSpeed:= 50;
        kezdes();
        While true do
        begin
          if not isLoggedin() then
          begin
            visszalog();
          end;
          if not (tabBackpack.isOpen()) then
          begin
            tabBackpack.Open();
          end;
          While isLoggedin() do
          begin
            wellplace();
            if (chooseOption.isOpen(2500)) then
            begin
              if chooseOption.select(['ake vials', 'Take', 'ake', 'vials', 'ials', 'vial' ], 2000) then
              begin
                while actionBar.isSlotEmpty(6) and tabBackpack.isEmpty do
                begin
                  wait(200);
                end;
                typeSend('28');
                depositnow();
                stats();
              end else
              begin
                freshwell();
              end;
            end else
            begin
              wellplace();
            end;
          end;
        end;
    end.
    Last edited by loginor; 04-04-2015 at 10:49 PM.
    Everything is achievable!

  3. #3
    Join Date
    Feb 2012
    Posts
    32
    Mentioned
    0 Post(s)
    Quoted
    12 Post(s)

    Default

    Grats on script!

  4. #4
    Join Date
    May 2014
    Posts
    633
    Mentioned
    8 Post(s)
    Quoted
    322 Post(s)

    Default

    Grats on release, I would suggest changing your wait(xxxx) to wait(randomRange(xxxx, yyyy)) everywhere in your script though as static waits are usually a red flag for bots as humans can't do things exactly on the same time every time.

  5. #5
    Join Date
    Jan 2015
    Location
    Hungary
    Posts
    90
    Mentioned
    0 Post(s)
    Quoted
    34 Post(s)

    Default

    In fact, when there is static wait time, it's actually not, because the following procedures always have different finish time, so clicking occurs dinamically randoms.
    Everything is achievable!

  6. #6
    Join Date
    Feb 2015
    Location
    Taguig, Philippines
    Posts
    342
    Mentioned
    15 Post(s)
    Quoted
    137 Post(s)

    Default

    Nice 1st script!

    I actually have this one as a private script.
    Porta-well riot ftw!

  7. #7
    Join Date
    Mar 2015
    Posts
    438
    Mentioned
    21 Post(s)
    Quoted
    211 Post(s)

    Default

    Needs some improvement. You had a 200 (.2 sec) wait time to type in 28 which was causing it to not work and several other bugs. I altered that to this; (starts at line 158)
    Simba Code:
    begin
              if chooseOption.select(['ake vials', 'Take', 'ake', 'vials', 'ials', 'vial' ], 2000) then
               wait(RandomRange(1000,1400));
                typeSend('28', True);
                depositnow();
                stats();
              end else
    Performance is still there and it's much smoother. Still got some kinks that need working out though.
    1. If you run out of wells, it will endlessly spam click, try implementing a timer so that if it spam clicks for x amount of time it'll terminate the script.
    2. It will sometimes spawn 2 wells

  8. #8
    Join Date
    Feb 2015
    Location
    Taguig, Philippines
    Posts
    342
    Mentioned
    15 Post(s)
    Quoted
    137 Post(s)

    Default

    When you get to the part where you can finally use TPA/findObj, you'll be able to make this run smoother than butter on pancakes.

  9. #9
    Join Date
    Mar 2015
    Posts
    42
    Mentioned
    0 Post(s)
    Quoted
    14 Post(s)

    Default

    Add to requirements that you need to set interpreter to Lape.

  10. #10
    Join Date
    May 2014
    Posts
    633
    Mentioned
    8 Post(s)
    Quoted
    322 Post(s)

    Default

    Quote Originally Posted by loginor View Post
    In fact, when there is static wait time, it's actually not, because the following procedures always have different finish time, so clicking occurs dinamically randoms.
    As unintuitive as it sounds, this is absolutely not true. Computers are super fast, all the procedures will actually probably run in a time which is far less than the millisecond range. If I see 1k clicks/patterns separated by the same time +- like a millisecond it's one of the biggest red flags you can see. You'll find that the clicking occurs not dynamically at random, but uniformly at almost the same time with a standard deviation of like 0.

  11. #11
    Join Date
    Jan 2015
    Location
    Hungary
    Posts
    90
    Mentioned
    0 Post(s)
    Quoted
    34 Post(s)

    Default

    As unintuitive as it sounds, this is absolutely not true. Computers are super fast, all the procedures will actually probably run in a time which is far less than the millisecond range. If I see 1k clicks/patterns separated by the same time +- like a millisecond it's one of the biggest red flags you can see. You'll find that the clicking occurs not dynamically at random, but uniformly at almost the same time with a standard deviation of like 0.
    Is this still true if I run several clients on the same cpu?

    Add to requirements that you need to set interpreter to Lape.
    Fixed.

    When you get to the part where you can finally use TPA/findObj, you'll be able to make this run smoother than butter on pancakes.
    I'm pretty sure I will be able to use them pretty soon.

    Needs some improvement. You had a 200 (.2 sec) wait time to type in 28 which was causing it to not work and several other bugs. I altered that to this; (starts at line 158)
    Simba Code:
    begin
    if chooseOption.select(['ake vials', 'Take', 'ake', 'vials', 'ials', 'vial' ], 2000) then
    wait(RandomRange(1000,1400));
    typeSend('28', True);
    depositnow();
    stats();
    end else
    Performance is still there and it's much smoother. Still got some kinks that need working out though.
    1. If you run out of wells, it will endlessly spam click, try implementing a timer so that if it spam clicks for x amount of time it'll terminate the script.
    2. It will sometimes spawn 2 wells

    That random time would decrease the performance by a signifficant amount. This vial method needs as little wait times as possible.

    Nice 1st script!

    I actually have this one as a private script.
    Porta-well riot ftw!
    If I had the money, I would buy a hell lot of PWs, then publish a far better script (If I had the knowledge of course), and boom, PWs will be in the range of 35-40k in a few days. That's how you make money :P





    EVERYONE!
    Thank you for your feedback, still waiting ideas for discussion.
    Everything is achievable!

  12. #12
    Join Date
    May 2014
    Posts
    633
    Mentioned
    8 Post(s)
    Quoted
    322 Post(s)

    Default

    Should be, I'm not super experienced in running like 50 accounts on the same cpu though. I would not depend on trying to run so many things on your CPU that you 'intentionally' turn it into something that is random...that's about as bad design as you could do

    But it's such a simple fix that the benefits of changing wait(200) to like wait(randomrange(175,225)) or 200,250 if 200 is the absolute minimum you can get, the benefits (harder to detect, increasing longevity), at least in my opinion, far outweigh the 'costs' in performance which will probably be negligible

  13. #13
    Join Date
    Jan 2015
    Location
    Hungary
    Posts
    90
    Mentioned
    0 Post(s)
    Quoted
    34 Post(s)

    Default

    Quote Originally Posted by J_R View Post
    Should be, I'm not super experienced in running like 50 accounts on the same cpu though. I would not depend on trying to run so many things on your CPU that you 'intentionally' turn it into something that is random...that's about as bad design as you could do

    But it's such a simple fix that the benefits of changing wait(200) to like wait(randomrange(175,225)) or 200,250 if 200 is the absolute minimum you can get, the benefits (harder to detect, increasing longevity), at least in my opinion, far outweigh the 'costs' in performance which will probably be negligible

    I see your point, the question is how much +- between click would be enough to make their botwatch a little bit softer?
    Everything is achievable!

  14. #14
    Join Date
    May 2012
    Posts
    499
    Mentioned
    23 Post(s)
    Quoted
    228 Post(s)

    Default

    I would recommend looking for colors of the well instead of using a Tbox.
    Here are the colors I got from ACA (CTS 2):

    color: 3031686
    Hue mod: 0,19
    HSL tol: 16
    Sat mod: 1,07

  15. #15
    Join Date
    Jan 2015
    Location
    Hungary
    Posts
    90
    Mentioned
    0 Post(s)
    Quoted
    34 Post(s)

    Default

    Quote Originally Posted by lovebotter View Post
    I would recommend looking for colors of the well instead of using a Tbox.
    Here are the colors I got from ACA (CTS 2):

    color: 3031686
    Hue mod: 0,19
    HSL tol: 16
    Sat mod: 1,07

    Thank you very much, in the next 2 week, I will publish a new version with color recognition, and some kind of antiban.
    Everything is achievable!

  16. #16
    Join Date
    May 2014
    Posts
    633
    Mentioned
    8 Post(s)
    Quoted
    322 Post(s)

    Default

    Quote Originally Posted by loginor View Post
    I see your point, the question is how much +- between click would be enough to make their botwatch a little bit softer?
    I normally try to make it 50ms at least (+-25), for much longer waits you probably want something larger, but you should model it after what a human would do.

  17. #17
    Join Date
    Jan 2015
    Location
    Hungary
    Posts
    90
    Mentioned
    0 Post(s)
    Quoted
    34 Post(s)

    Default

    Quote Originally Posted by J_R View Post
    I normally try to make it 50ms at least (+-25), for much longer waits you probably want something larger, but you should model it after what a human would do.
    A massive test would be needed to compare, would the human-like behavior longer the accounts lifetime that it would worth scripting or not. It's requirement free method, so account replaceable everytime (only the membership, but thats about 10 hour of running only).
    Everything is achievable!

  18. #18
    Join Date
    May 2014
    Posts
    633
    Mentioned
    8 Post(s)
    Quoted
    322 Post(s)

    Default

    I'm just suggesting something that I see almost every good script on the site does. I'd rather not try to risk it as I don't think it's worth 1/20 of a ms faster action on something that takes at least a second to complete. At the end of the day though only jagex truly knows what they ban for, you could be right in that it might not matter for you/jagex but I don't think it's wise to avoid something which can only help you while probably only costing you something like a couple k per hour profit if even that (if you go 175,225 instead of 200 it should in theory even out to be exactly the same). It's generally a good practice to try to not appear bot-like if you are coding for a bot somewhere it isn't exactly sanctioned.

    If you do start getting banned though (which becomes more likely if/when tons of people start using this), do get rid of the static waits and see if that helps.

  19. #19
    Join Date
    Jan 2015
    Location
    Hungary
    Posts
    90
    Mentioned
    0 Post(s)
    Quoted
    34 Post(s)

    Default

    Quote Originally Posted by J_R View Post
    I'm just suggesting something that I see almost every good script on the site does. I'd rather not try to risk it as I don't think it's worth 1/20 of a ms faster action on something that takes at least a second to complete. At the end of the day though only jagex truly knows what they ban for, you could be right in that it might not matter for you/jagex but I don't think it's wise to avoid something which can only help you while probably only costing you something like a couple k per hour profit if even that (if you go 175,225 instead of 200 it should in theory even out to be exactly the same). It's generally a good practice to try to not appear bot-like if you are coding for a bot somewhere it isn't exactly sanctioned.

    If you do start getting banned though (which becomes more likely if/when tons of people start using this), do get rid of the static waits and see if that helps.

    I agree with you, we will see, as I meantioned earlier, I will release an update with some kind of antiban (wil lfix the statics in it) in the upcoming weeks.
    Everything is achievable!

  20. #20
    Join Date
    Nov 2014
    Location
    Estonia
    Posts
    93
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    I have no idea how u managed to run it for 8 hours,it does whatever it wants,doesnt wait for nothing.Get vials,open bank,type 28 send,spawn new well.. horrible.
    Altho nice idea and script,but doesnt work for me.

  21. #21
    Join Date
    May 2012
    Posts
    499
    Mentioned
    23 Post(s)
    Quoted
    228 Post(s)

    Default

    @ckbbe I have a pretty flawless version with minor antiban etc in the junior member section.

  22. #22
    Join Date
    Mar 2012
    Posts
    51
    Mentioned
    0 Post(s)
    Quoted
    23 Post(s)

    Default

    does this still make 1m an hour or did it crash?

  23. #23
    Join Date
    Jan 2015
    Location
    Hungary
    Posts
    90
    Mentioned
    0 Post(s)
    Quoted
    34 Post(s)

    Default

    Quote Originally Posted by iriep12345 View Post
    does this still make 1m an hour or did it crash?
    Sinking quite badly and I'm pretty sure it's sensitive to bans. No longer 1 mill.
    Everything is achievable!

  24. #24
    Join Date
    Mar 2012
    Posts
    51
    Mentioned
    0 Post(s)
    Quoted
    23 Post(s)

    Default

    oh is there a high ban rate ?

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
  •