Results 1 to 18 of 18

Thread: [RS3]Dragon Leather AIO Crafter

  1. #1
    Join Date
    Feb 2007
    Location
    PA, USA
    Posts
    5,240
    Mentioned
    36 Post(s)
    Quoted
    496 Post(s)

    Default [RS3]Dragon Leather AIO Crafter

    AIO Dragon Leather Crafter

    Follow this guide to setup RuneScape for botting

    Instructions:
    1. Set the const for bank slot of leather
    2. setup the declarePlayers procedure
    3. start the script logged in at Soul Wars bank chest
    4. Camera angle should be up and face north!




    Script Features:
    Crafts green-royal dragon leather
    Crafts vambraces, chaps, bodies and shields


    Notes:
    • Script is designed for speed, don't abuse it
    • There is no login functionality, start logged in
    • There is not 6hr fix, don't bot that long
    • Script is barebones but fast and accurate, report bugs


    Simba Code:
    program leather_crafter;
    {$DEFINE SMART}
    {$I SRL-6/SRL.simba}
    var
      _inv_slot: integer;
      whiteCount: TPointArray;
      _bank_box, _inv_box, _pack_box: TBox;

    const
      leather_slot = 10;//1-10

    procedure declarePlayers;
    begin
      setLength(players, 1);
      with players[0] do
      begin
        bankPin    := '1234';
        strings[0] := 'red';//green,blue,red,black,royal
        strings[1] := 'body';//vam,chap,shield,body
        isActive   := true;
        isMember   := true;
        world      := -1;
      end;
      currentPlayer := 0;
    end;

    function FindBank: T2DPointArray;
    var
      searchArea: TBox;
      bankChest: TPointArray;
    begin
      if findColorsTolerance(bankChest, 1053721, mainscreen.getBounds, 10) then
      begin
        result := bankChest.toATPA(31, 15);
        result.sortBySize;
      end;
    end;

    function OpenBank: boolean;
    var
      timely, i: integer;
      boothSpots: T2DPointArray;
    begin
      if bankScreen.isOpen then exit(true);
      timely := getSystemTime + randomRange(11000, 15000);
      while (timely > getSystemTime) do
      begin
        wait(randomRange(50, 200));
        if bankScreen.isOpen then exit(true);
        boothSpots := FindBank;
        if length(boothSpots) < 1 then continue;
        boothSpots.sortFromMidPoint(mainscreen.playerPoint);
        for i := 0 to high(boothSpots) do
        begin
          if not(inRange(length(boothSpots[i]), 200, 350)) then continue;
          mouse(boothSpots[i].getMiddle, Mouse_Right);
          if chooseOption.select(['Use Bank'], randomRange(2500,3500)) then
          begin
            wait(randomRange(1, 20));
            if random(10)>0 then mouseBox(_pack_box,  MOUSE_MOVE, MOUSE_HUMAN);
            result := bankScreen.isOpen(randomRange(2500,3500));
            if not(players[CurrentPlayer].bankPin = '') and not result then
              if pinscreen.isOpen(randomRange(2500,3500)) then
              begin
                if not pinScreen.enter(players[CurrentPlayer].bankPin) then
                  exit else wait(randomRange(100,500));
              end;
          end;
        end;
      end;
    end;

    function doneButton: boolean;
    var
      bluePoints: TPointArray;
      blueArea: TBox;
    begin
      blueArea := [244,197, 335, 223];
      findColorsTolerance(bluePoints, 13278759, blueArea, 44);
      result := length(bluePoints) > 145;
      status('Done button: ' + toStr(result));
    end;

    procedure wait_crafting;
    var
      count, threshold: integer;
    begin
      wait(randomRange(1, 20));
      if random(10)>0 then mouseBox(_bank_box,  MOUSE_MOVE, MOUSE_HUMAN);
      threshold := getSystemTime + randomRange(70000, 90000);
      repeat
        wait(randomRange(255, 555));
        if doneButton then
        begin
          threshold := getSystemTime + randomRange(5000, 10000);
          repeat
            wait(randomRange(100, 200));
            if not(doneButton) then exit;
          until (getSystemTime > threshold);
          exit;
        end;
      until (getSystemTime > threshold);
    end;

    function craft_option: boolean;
    const
      BORDER_COLOR = 1356525;
    var
      searchArea, choiceBox: TBox;
      borderPoints: TPointArray;
      t: integer;
    begin
      if not productionScreen.isOpen then exit;
      searchArea := [51, 104, 242, 145];
      choiceBox := intToBox(52, 105, 91, 144);
      case players[currentPlayer].strings[1] of
        'chap', 'chaps': choiceBox.edit(50, 0, 50, 0);
        'body': choiceBox.edit(100, 0, 100, 0);
        'shield': choiceBox.edit(150, 0, 150, 0);
      end

      t := getSystemTime + randomRange(5000, 1000);
      while t > getSystemTime do
      begin
        if not findColors(borderPoints, BORDER_COLOR, searchArea) then
        begin
          writeln('Unable to select a produce. I think we''re out of thread.');
          writeln('Terminating');
          terminateScript;
        end;
        if choiceBox.equals(borderPoints.getBounds) then exit(true);
        mouseBox(choiceBox, MOUSE_LEFT, MOUSE_HUMAN);
        wait(randomRange(125, 300));
      end;
    end;

    function craft_inventory: boolean;
    var
      threshold: integer;
    begin
      wait(randomRange(1, 20));
      if random(10)>0 then mouseBox(_inv_box,  MOUSE_MOVE, MOUSE_HUMAN);
      tabBackpack.waitWhileLocked;
      wait(randomRange(1, 100));
      if not(inRange(_inv_slot, 15, 28)) then _inv_slot := randomRange(15, 28);
      if tabBackpack.mouseSlot(_inv_slot, MOUSE_LEFT) then
      begin
        _inv_slot := randomRange(15, 28);
        _inv_box := tabBackpack.getSlotBox(_inv_slot);
        threshold := getSystemTime + randomRange(5000, 10000);
        repeat
          wait(randomRange(25, 100));
          if getSystemTime > threshold then exit;
          status(toStr(toolscreen.isopen));
          if toolscreen.isOpen then toolscreen.select('Needle');
        until productionscreen.isOpen;
        if craft_option then if productionScreen.clickStart then result := true;
      end;
    end;

    procedure mainLoop;
    begin
      if OpenBank then
      begin
        wait(randomRange(1, 100));
        if bankscreen.deposit([2..28]) then
          bankscreen.withdraw(leather_slot, WITHDRAW_AMOUNT_ALL_BUT_ONE, ['']);
        bankscreen.close;
        if craft_inventory then wait_crafting;
      end;
    end;

    begin
      smartEnableDrawing := true;
      setupsrl;
      declarePlayers;
      _inv_slot := randomRange(15, 28);
      _inv_box := tabBackpack.getSlotBox(_inv_slot);
      _bank_box := [265, 155, 310, 184];
      _pack_box := [604, 96, 639, 127];
      while isLoggedIn do mainLoop;
    end.
    Last edited by footballjds; 12-30-2013 at 04:48 PM.

  2. #2
    Join Date
    Mar 2006
    Location
    Belgium
    Posts
    3,564
    Mentioned
    111 Post(s)
    Quoted
    1475 Post(s)

    Default

    Nice release

    Creds to DannyRS for this wonderful sig!

  3. #3
    Join Date
    Feb 2007
    Location
    PA, USA
    Posts
    5,240
    Mentioned
    36 Post(s)
    Quoted
    496 Post(s)

    Default

    Quote Originally Posted by Sjoe View Post
    Nice release
    thanks, you'll need toolscreen.simba which will hopefully get added to SRL.

    toolscreen.simba can be found here: http://villavu.com/forum/issue.php?issueid=167#note726

  4. #4
    Join Date
    Jun 2012
    Location
    Canada
    Posts
    39
    Mentioned
    0 Post(s)
    Quoted
    25 Post(s)

    Default

    I got the script to work up until it finishes crafting the bodies, then it just hovers over the chest without clicking it. Not sure what I did wrong.

    EDIT: Zoomed all the way in and it seems to work now, I think it was the armour I was wearing.

    Great script!
    Last edited by NineteenNinetyNine; 12-29-2013 at 10:23 PM.

  5. #5
    Join Date
    Jan 2012
    Posts
    550
    Mentioned
    2 Post(s)
    Quoted
    177 Post(s)

    Default

    I was just about to put a request in for a script like this when I noticed yours. Thank you so much! It's about time I trained my crafting...or your script did at least

  6. #6
    Join Date
    Feb 2012
    Location
    Canada
    Posts
    1,164
    Mentioned
    26 Post(s)
    Quoted
    433 Post(s)

    Default

    Hey man! Thanks for the script! I used it to get me some extra crafting levels for some quests!! Didnt fail me once!

  7. #7
    Join Date
    Feb 2012
    Location
    Atlanta, GA
    Posts
    1
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Great script! Worked for all leather types and was very efficient. Thanks!

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

    Default

    Hangs at the select armor-piece screen for me...

  9. #9
    Join Date
    Mar 2014
    Posts
    74
    Mentioned
    1 Post(s)
    Quoted
    41 Post(s)

    Default

    the script do not click in the chest.I have to manually click and then its correctly get the leathes and make the body.

  10. #10
    Join Date
    Feb 2007
    Location
    PA, USA
    Posts
    5,240
    Mentioned
    36 Post(s)
    Quoted
    496 Post(s)

    Default

    Quote Originally Posted by lendaz View Post
    the script do not click in the chest.I have to manually click and then its correctly get the leathes and make the body.
    script is outdated and needs a rewrite, antiban could be added as well :P

  11. #11
    Join Date
    Feb 2014
    Posts
    26
    Mentioned
    0 Post(s)
    Quoted
    9 Post(s)

    Default

    you goin update it?

  12. #12
    Join Date
    Sep 2014
    Posts
    112
    Mentioned
    5 Post(s)
    Quoted
    55 Post(s)

    Default

    is this working yet??

  13. #13
    Join Date
    Jun 2013
    Posts
    48
    Mentioned
    0 Post(s)
    Quoted
    30 Post(s)

    Default

    doesn't seem like this script is supported anymore.
    I've got these cheese burgers man!

  14. #14
    Join Date
    Feb 2012
    Location
    Where the money is
    Posts
    10
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Can someone make a working one?

  15. #15
    Join Date
    Dec 2011
    Posts
    40
    Mentioned
    0 Post(s)
    Quoted
    14 Post(s)

    Default

    i dont think he will update this would of liked to use it for 75 crafting

  16. #16
    Join Date
    Jan 2015
    Posts
    98
    Mentioned
    1 Post(s)
    Quoted
    41 Post(s)

    Default

    Quote Originally Posted by Sajon View Post
    i dont think he will update this would of liked to use it for 75 crafting
    Here fixed it for you
    Code:
    program leather_crafter;
    {$DEFINE SMART}
    {$I SRL-6/SRL.simba}
    var
      _inv_slot: integer;
      whiteCount: TPointArray;
      _bank_box, _inv_box, _pack_box: TBox;
    
    const
      leather_slot = 1;//1-10
    
    procedure declarePlayers;
    begin
      setLength(players, 1);
      with players[0] do
      begin
        bankPin    := '';
        strings[0] := 'blue';//green,blue,red,black,royal
        strings[1] := 'body';//vam,chap,shield,body
        isActive   := true;
        isMember   := true;
        world      := -119;
      end;
      currentPlayer := 0;
    end;
    
    function FindBank: T2DPointArray;
    var
      searchArea: TBox;
      bankChest: TPointArray;
    begin
      if findColorsTolerance(bankChest, 5723999, mainscreen.getBounds, 10) then
      begin
        result := bankChest.toATPA(31, 15);
        result.sortBySize;
      end;
    end;
    
    function OpenBank: boolean;
    var
      timely, i: integer;
      boothSpots: T2DPointArray;
    begin
      if bankScreen.isOpen then exit(true);
      timely := getSystemTime + randomRange(11000, 15000);
      while (timely > getSystemTime) do
      begin
        wait(randomRange(50, 200));
        if bankScreen.isOpen then exit(true);
        boothSpots := FindBank;
        if length(boothSpots) < 1 then continue;
        boothSpots.sortFromMidPoint(mainscreen.playerPoint);
        for i := 0 to high(boothSpots) do
        begin
          if not(inRange(length(boothSpots[i]), 200, 350)) then continue;
          mouse(boothSpots[i].getMiddle, Mouse_Right);
          if chooseOption.select(['Use Bank'], randomRange(2500,3500)) then
          begin
            wait(randomRange(1, 20));
            if random(10)>0 then mouseBox(_pack_box,  MOUSE_MOVE, MOUSE_HUMAN);
            result := bankScreen.isOpen(randomRange(2500,3500));
            if not(players[CurrentPlayer].bankPin = '') and not result then
              if pinscreen.isOpen(randomRange(2500,3500)) then
              begin
                if not pinScreen.enter(players[CurrentPlayer].bankPin) then
                  exit else wait(randomRange(100,500));
              end;
          end;
        end;
      end;
    end;
    
    function doneButton: boolean;
    var
      bluePoints: TPointArray;
      blueArea: TBox;
    begin
      blueArea := [244,197, 335, 223];
      findColorsTolerance(bluePoints, 13278759, blueArea, 44);
      result := length(bluePoints) > 145;
      status('Done button: ' + toStr(result));
    end;
    
    procedure wait_crafting;
    var
      count, threshold: integer;
    begin
      wait(randomRange(1, 20));
      if random(10)>0 then mouseBox(_bank_box,  MOUSE_MOVE, MOUSE_HUMAN);
      threshold := getSystemTime + randomRange(70000, 90000);
      repeat
        wait(randomRange(255, 555));
        if doneButton then
        begin
          threshold := getSystemTime + randomRange(5000, 10000);
          repeat
            wait(randomRange(100, 200));
            if not(doneButton) then exit;
          until (getSystemTime > threshold);
          exit;
        end;
      until (getSystemTime > threshold);
    end;
    
    function craft_option: boolean;
    const
      BORDER_COLOR = 1356525;
    var
      searchArea, choiceBox: TBox;
      borderPoints: TPointArray;
      t: integer;
    begin
      if not productionScreen.isOpen then exit;
      searchArea := [51, 104, 242, 145];
      choiceBox := intToBox(52, 105, 91, 144);
      case players[currentPlayer].strings[1] of
        'chap', 'chaps': choiceBox.edit(50, 0, 50, 0);
        'body': choiceBox.edit(100, 0, 100, 0);
        'shield': choiceBox.edit(150, 0, 150, 0);
      end
    
      t := getSystemTime + randomRange(5000, 1000);
      while t > getSystemTime do
      begin
        if not findColors(borderPoints, BORDER_COLOR, searchArea) then
        begin
          writeln('Unable to select a produce. I think we''re out of thread.');
          writeln('Terminating');
          terminateScript;
        end;
        if choiceBox.equals(borderPoints.getBounds) then exit(true);
        mouseBox(choiceBox, MOUSE_LEFT, MOUSE_HUMAN);
        wait(randomRange(125, 300));
      end;
    end;
    
    function craft_inventory: boolean;
    var
      threshold: integer;
    begin
      wait(randomRange(1, 20));
      if random(10)>0 then mouseBox(_inv_box,  MOUSE_MOVE, MOUSE_HUMAN);
      tabBackpack.waitWhileLocked;
      wait(randomRange(1, 100));
      if not(inRange(_inv_slot, 15, 28)) then _inv_slot := randomRange(15, 28);
      if tabBackpack.mouseSlot(_inv_slot, MOUSE_LEFT) then
      begin
        _inv_slot := randomRange(15, 28);
        _inv_box := tabBackpack.getSlotBox(_inv_slot);
        threshold := getSystemTime + randomRange(5000, 10000);
        repeat
          wait(randomRange(25, 100));
          if getSystemTime > threshold then exit;
          status(toStr(toolscreen.isopen));
          if toolscreen.isOpen then toolscreen.select('Needle');
        until productionscreen.isOpen;
        if craft_option then if productionScreen.clickStart then result := true;
      end;
    end;
    
    procedure mainLoop;
    begin
      if OpenBank then
      begin
        wait(randomRange(1, 100));
        if bankscreen.deposit([2..28]) then
          bankscreen.withdraw(leather_slot, WITHDRAW_AMOUNT_ALL_BUT_ONE, ['']);
        bankscreen.close;
        if craft_inventory then wait_crafting;
      end;
    end;
    
    begin
      smartEnableDrawing := true;
      setupsrl;
      declarePlayers;
      _inv_slot := randomRange(15, 28);
      _inv_box := tabBackpack.getSlotBox(_inv_slot);
      _bank_box := [265, 155, 310, 184];
      _pack_box := [604, 96, 639, 127];
      while isLoggedIn do mainLoop;
    end.
    Setup:
    Soul Wars Bank
    Compass: North
    Hides: First Bank Slot
    Craft: Put the hide on hotkey 1 in actionbar
    > F9 / Run

  17. #17
    Join Date
    Feb 2011
    Posts
    20
    Mentioned
    0 Post(s)
    Quoted
    7 Post(s)

    Default

    Nice script Still working

  18. #18
    Join Date
    Dec 2015
    Posts
    35
    Mentioned
    0 Post(s)
    Quoted
    7 Post(s)

    Default

    woks great just got 75 crafting for prif. 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
  •