Results 1 to 23 of 23

Thread: Plank Making Script? Fast Mage XP (~120k+/hr)

  1. #1
    Join Date
    May 2012
    Posts
    22
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Talking Plank Making Script? Fast Mage XP (~120k+/hr)

    Name - What would the script be called?
    (insert scripter's name) Plank Making

    What does the script do? and Where does it do it?
    Uses the lunar spell "Plank Make" to turn logs into planks for 70% of the normal cost at the lumberyard. Gets ~120k-160k xp/hr depending on speed, and has the potential to make a profit. Needs to be at a bank since the spell will require restocking logs.

    What does the script achieve?
    Fast magic experience without much, if any, loss (possibility of profit depending on planks made).

    f2p/p2p? any other level / skill / quest requirements?
    P2P; Requires Lunar Diplomacy and Dream Mentor quests (85 CB), as well as 86 Magic. The script would also require a good bit of start-up money, as you would have to pay for the runes, logs and the fee to make them into planks.

    Do you have an account with these requirements you could lend to a dev?
    I have an account I can test with or allow a dev to test via TV.

    Difficulty... (Easy/Medium/Hard):

    Easy-ish difficulty. It's similar to superheat in that it requires banking, and that it's click intensive (xp/click not xp/set like fletching or crafting). But apart from banking and using the spell on logs, there's not much to it.

    I'd love to write this code myself (have a few years of java and C under my belt) but I haven't even begun learning Simba, and right now it's exam time for me. If no one wants to do this, I'll try to start learning Simba in the next few weeks and take a stab at it myself (please don't let that stop you from making it if you're interested
    Last edited by Death Iz Pro; 05-01-2016 at 04:26 PM.

  2. #2
    Join Date
    Apr 2016
    Posts
    31
    Mentioned
    0 Post(s)
    Quoted
    18 Post(s)

    Default

    I think I might make this. No promises. I still have to do Lunar Diplomacy and I hate questing.

  3. #3
    Join Date
    Mar 2015
    Posts
    5
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    i would love this

  4. #4
    Join Date
    Sep 2016
    Posts
    3
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    bump?

  5. #5
    Join Date
    May 2012
    Posts
    108
    Mentioned
    3 Post(s)
    Quoted
    45 Post(s)

    Default

    Check out this old script AeroMagicPro https://villavu.com/forum/showthread.php?t=112977

    It can superheat; if you have any programming experience under your belt I bet you can modify this to work with plank make in 15 minutes. Also, it may be a bit outdated so try just doing superheat with it to make sure it works okay, then update it to plank make once you got that working,

  6. #6
    Join Date
    Oct 2016
    Posts
    19
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    This would be a great script.

  7. #7
    Join Date
    Dec 2015
    Location
    Toronto, Ontario
    Posts
    85
    Mentioned
    2 Post(s)
    Quoted
    21 Post(s)

    Default

    If I get around to doing lunar diplomacy I will get on it. Seems easy enough to do.

  8. #8
    Join Date
    May 2013
    Posts
    69
    Mentioned
    0 Post(s)
    Quoted
    19 Post(s)

    Default

    I pretty much have it done I just need the dtm for the spell and add support for coins. ill probably just use a dtm for a coin stack greater than 10k so its simple.

  9. #9
    Join Date
    Jan 2012
    Location
    Sydney, Australia
    Posts
    877
    Mentioned
    12 Post(s)
    Quoted
    368 Post(s)

    Default

    Quote Originally Posted by superfonz View Post
    I pretty much have it done I just need the dtm for the spell and add support for coins. ill probably just use a dtm for a coin stack greater than 10k so its simple.
    Would also search for color if you wanted to simplify it to target various coin stacks
    I mean, it would be a unique color inside of the inventory wouldn't it?

  10. #10
    Join Date
    May 2013
    Posts
    69
    Mentioned
    0 Post(s)
    Quoted
    19 Post(s)

    Default

    Quote Originally Posted by Dan the man View Post
    Would also search for color if you wanted to simplify it to target various coin stacks
    I mean, it would be a unique color inside of the inventory wouldn't it?
    I made DTM specifically for the 10k+ coinstack haven't tested it for a lower coins stack. I mean if you plan on having an inv worth of them made at once, you should have that anyways. I made the outline of the code, It works but has to be on standard and I only put in the dtm for mahogany, the proggy for it doesn't work cause i didnt put in the dtm for the planks. I was struggling to make them at first but after putting in some time i figured it out but was to lazy to make the rest lol. There is a bug in that if you don't have enough supplies for the cast it will still try to cast anf click the log repeatedly.
    Attached Files Attached Files

  11. #11
    Join Date
    Jan 2012
    Location
    Sydney, Australia
    Posts
    877
    Mentioned
    12 Post(s)
    Quoted
    368 Post(s)

    Default

    Quote Originally Posted by superfonz View Post
    I made DTM specifically for the 10k+ coinstack haven't tested it for a lower coins stack. I mean if you plan on having an inv worth of them made at once, you should have that anyways. I made the outline of the code, It works but has to be on standard and I only put in the dtm for mahogany, the proggy for it doesn't work cause i didnt put in the dtm for the planks. I was struggling to make them at first but after putting in some time i figured it out but was to lazy to make the rest lol. There is a bug in that if you don't have enough supplies for the cast it will still try to cast anf click the log repeatedly.
    You could do a few fail safe checks for the cast requirements. Check the quantity of runes in the inventory (getItemAmount(Pnt: TPoint)) and check to make sure the spell is illuminated (DTM) in the spell page. Another fail safe you could possibly implement would be to read the chat box and see if any casting errors appear.

  12. #12
    Join Date
    Jun 2013
    Location
    Scranton
    Posts
    496
    Mentioned
    5 Post(s)
    Quoted
    220 Post(s)

    Default

    Just finished dream mentor today, got a very simple one working in color. ATM looking for a good failsafe to stop the script when it runs out of runes, that doesn't involve reading in game chat or checking if the items are in inv... Getting ~150k xp p/h, let me know how it runs if anyone decides to use it. Supports mahogany logs at the lumby cellar bank

    Simba Code:
    program lunar_planker;
    {$DEFINE SMART}
    {$i AeroLib/AeroLib.Simba}

    const
      User = '';
      Pass = '';
      Pin  = '';

      Anti_Ban  = true;
      Sm_Break  = true;  { Small Breaks }
      Sm_Break_Time : TIntegerArray
                    := [4, 50]; //in Seconds

    var
      firstTime: boolean;
      log, plank: TItem;
      lastSlot, fails, planks: Integer;
      spellBox: Tbox:= toBox(557, 359, 575, 377);

    procedure Terminate(reason : string);
    begin
      writeln('Terminating: ', Reason);
      terminateScript;
    end;

    { Moves the mouse, simulating human imperfectness/hand shakyness }

    procedure shiftMouse(Radius : Integer);
    var
      TPA : TPointArray;
    begin
      TPA := TPAFromCircle(getMousePnt().x, getMousePnt().y, Radius);
      FillEllipse(TPA);
      HumanMMouse(TPA[random(length(TPA))], 3, 3);
    end;

    Procedure mouseBox(B: TBox; ClickType: Integer); override;
    var
      Pnt : TPoint;
    begin
      if (not (mouseInBox(B))) then
      begin
        gaussBox(Pnt.x, Pnt.y, B.X1, B.Y1, B.X2, B.Y2);
          case RandomRange(0, 15) of
          0..4: brakeMMouse(Pnt, 0, 0, True);
          5..9: brakeMMouse(Pnt, 0, 0, false);
          10..14: humanMMouse(Pnt, 0, 0);
          15: missMouse(Pnt, 0,0);
        end;
      end;
      wait(randomRange(25,150));
      fastClick(ClickType);
    end;

    procedure SmallBreak();
    var
      I : Integer;
    begin
      if (random(5) > 2) then MMouseOffClient('random');
      I := (randomRange(Sm_Break_Time[0] * 1000, Sm_Break_Time[1] * 1000));
      writeln('Taking a small break for ' + msToTime64(I));
      sleep(I);
    end;

    procedure Antiban();
    begin
      firstTime := true;
      case random(0, 150) of
        0..20: begin sleep(randomrange(3000, 6000)); hoverSkill(SKILL_MAGIC, False); end;
        21..30: pickUpMouse();
        31..55: SleepAndMoveMouse(200 + random(2000));
        56..64: if (Sm_Break = true) then smallBreak();
        65..150: shiftMouse(1 + random(12));
      end;
      if (random(500) = 1) and (Sm_Break = true) then smallBreak();
    end;

    procedure Login();
    begin
      Sleep(RandomRange(2000, 15000));
      LoginPlayer(false);
    end;

    procedure Planking();
    var
      X, Y, I: integer;
      TIA: TIntegerArray;
      bool: boolean;
    begin
      bool := false;
      if (isInterfaceOpen()) then
        closeInterface();
      if (firstTime = false) and (random(40) > 1) then
        mouseBox((spellBox), mouse_move);
      firstTime := false;
      if (not (WaitTab(tab_Magic, 2 + random(100), 2000 + random(500)))) then
        gametab(tab_Magic);
      if (not (pointInBox(getMousePnt(), spellBox))) then
        mouseBox(spellBox, Mouse_left)
      else
        fastClick(mouse_left);
      if WaitTab(tab_inv, 2 + random(15), 2000 + random(500)) then
      begin
        TIA := log.getSlots();
        if length(TIA) < 1 then exit;
        for I := 0 to high(TIA) do
          if (TIA[I] = lastSlot) then
          begin
            writeln('last slot = log slot... waiting for plank to appear...');
            if random(20) > 1 then
            try
              writeln('Hovering over next log');
              if interactSlot(TIA[I + 1], mouse_move) then
                bool := true;
            except
              writeln('Array index does not exist');
            end
            if waitFindDTM(plank.DTM, X, Y, invBox(lastSlot), 5 + random(70), 1000 + random(2000)) then
              TIA := log.getSlots();
          end;
        if ((bool = false) and (random(40) < 2)) then
        begin
          I := random(length(TIA));
          if interactSlot(TIA[I], mouse_left) then
          begin
            lastSlot := I;
            inc(planks);
          end;
        end else
        begin
          if interactSlot(TIA[0], mouse_left) then
          begin
            lastSlot := TIA[0];
            inc(planks)
          end;
        end
      end;
    end;

    procedure Banking();
    var
      TPA: TPointArray;
      ATPA: T2DPointArray;
      I, X, Y: Integer;
      T: Timer;
      tCol : TColEx;
      TIA: TIntegerArray;
    label
      doPin, doRestock;
    begin
      sleep(randomRange(200, 400));
      if (Interfaces[PINSCREEN].isVisible()) then
        goto doPin;
      if (isBankOpen()) then
        goto doRestock;
      if (waitupText('->', 75 + random(175))) then
        fastClick(MOUSE_LEFT);
      tCol.create(332121, 7, 0.17, 1.71);
      if (not tCol.findAllIn(AREA_MS, TPA)) then
        exit;
      ATPA := FloodFillTPA(TPA);
      if (length(ATPA) < 1) then
        exit;
      sortATPASize(ATPA, true);
      humanMMouse(middleTPA(ATPA[0]), 0, 0);
      if (waitUptextMulti(['ank', 'est'], 150 + random(175))) then
        fastClick(MOUSE_LEFT)
      else
      begin
        fastClick(MOUSE_RIGHT);
        if (not (waitOption('ank', 250))) then exit;
      end;
      T.start();
      while ((not isBankOpen()) and (not Interfaces[PINSCREEN].isVisible())) and (T.TimeElapsed() < 3000) do
        sleep(random(150, 250));
      if (Interfaces[PINSCREEN].isVisible()) then
        goto doPin;
      if (not isBankOpen()) then
        exit;
      doRestock:
      begin
        TIA := plank.getSlots();
        if length(TIA) < 2 then
        begin
          plank.interact(Mouse_left);
          sleep(random(75, 300));
        end
        else
          begin
            interactSlot(TIA[random(length(TIA))], mouse_right);
            waitOption('eposit-All', 250);
            sleep(random(76, 300));
          end;
        if (findDTM(log.DTM, x, y, MSX1, MSY1, MSX2, MSY2)) then
        begin
          HumanMMouse(point(x, y), 0, 0);
          sleep(random(20, 100));
          fastClick(MOUSE_RIGHT);
          if (random(0, 5) = 1) then
            waitOption('ithdraw-All ', 250)
          else
            waitOption('ithdraw-All-but-1', 250);
        end else
          inc(fails);
        sleep(randomrange(200, 500));
        firstTime := true;
        lastSlot := -1;
        closeInterface();
        planking();
        exit;
      end
      doPin:
      begin
        inPin(Me.Pin);
        goTo doRestock;
      end;
    end;

    procedure free;
    begin
      freeDTM(log.DTM);
      freeDTM(plank.DTM);
    end;

    function PerHour(Thing: extended): int64;
    begin
      result := Round(Thing * (3600.0 / (GetTimeRunning / 1000.0)));
    end;

    function GetState(): Procedure;
    begin
      if (not (isLoggedIn())) then exit(@login);
      if (Random(0, 500) = 1) and (Anti_Ban = true) then exit(@Antiban);
      if (Random(0, 1500) = 1) and (Sm_Break = true) then exit(@SmallBreak);
      case (log.inInventory()) of
        true: exit(@planking);
        false: exit(@banking);
      end;
    end;

    procedure Execute();
    var
      CurrentState : procedure;
    begin
      if (fails > 5) then terminate('too many fails');
      sleep(RandomRange(10, 75));
      CurrentState := GetState();
      writeln(MsToTime(getTimeRunning, 3) + ' | ' + 'State: ' + Between('"', '"', ToStr(@CurrentState)) + ' > Planks Made: ', planks , ' (',PerHour(planks), ') > Experience: ', planks * 90, ' (', perhour(planks * 90), ')');
      CurrentState();
    end;

    begin
      InitAL();
      MouseSpeed := RandomRange(20, 25);
      Me.Name    := User;
      Me.Pass    := Pass;
      Me.Pin     := Pin;
      Me.Active  := True;
      Me.Member  := True;
      log.DTM    := DTMFromString('mbQAAAHicY2VgYKhkYWDIB+JaIC4A4nog3srIwLARivcC8S4g3j0/iyHTnpNh55xMMH1wSR4DK1A/OmbEgsEAAHvrDNY=');
      plank.DTM  := DTMFromString('mbQAAAHicY2VgYChjYWAoBOISIK4C4jogzmcE8oG4EohTgTgFiKNdTRhSfC0ZQhz0wGwfKy0GVqB+dMyIBYMBAHl3CLk=');
      firstTime  := true;
      addonterminate('free');
      while (Me.Active) do
        Execute();
    end.
    Last edited by jstemper; 01-08-2017 at 05:46 PM. Reason: got rid of attachments

  13. #13
    Join Date
    Mar 2013
    Posts
    1,010
    Mentioned
    35 Post(s)
    Quoted
    620 Post(s)

    Default

    Quote Originally Posted by jstemper View Post
    Just finished dream mentor today, got a very simple one working in color. ATM looking for a good failsafe to stop the script when it runs out of runes, that doesn't involve reading in game chat or checking if the items are in inv... Getting ~120k xp p/h, let me know how it runs if anyone decides to use it. Supports mahogany logs at the lumby cellar bank
    Just check the colour of the spell or count the runes.
    #slack4admin2016
    <slacky> I will build a wall
    <slacky> I will ban reflection and OGL hooking until we know what the hell is going on

  14. #14
    Join Date
    Jun 2013
    Location
    Scranton
    Posts
    496
    Mentioned
    5 Post(s)
    Quoted
    220 Post(s)

    Default

    Quote Originally Posted by Harrier View Post
    Just check the colour of the spell or count the runes.
    Probably will go with checking the spell color, thanks

  15. #15
    Join Date
    May 2013
    Posts
    69
    Mentioned
    0 Post(s)
    Quoted
    19 Post(s)

    Default

    honestly you lose money doing this, i got a better one for you, tanning or superglass make, i have one all done but imma just make a few changes for anti leech and then you can use it.

  16. #16
    Join Date
    May 2013
    Posts
    69
    Mentioned
    0 Post(s)
    Quoted
    19 Post(s)

    Default

    SuperFonzLunarTannedGlasspublic.simba if you can code alittle you can figure out whats wrong (hint: look at the DTM's), i haven't tested imbuing with superglass make so the timing will be off and it needs to be setup with astrals in first slot for superglassmake and if your tanning put natures in the second and in the third put a random item thats not the hide because you want only 25 hides in your inv, if you dont have a steam staff and want to tan and do imbue put water runes in the random spot also the bank is at edge and for the thing to not mess up put zoom all the way in so the bank is huge in front of it. the proggy for tan doesnt work, i was to lazy to get he DTM's for the leather lol. cheers guys

  17. #17
    Join Date
    Jun 2007
    Posts
    106
    Mentioned
    1 Post(s)
    Quoted
    33 Post(s)

    Default

    Quote Originally Posted by superfonz View Post
    SuperFonzLunarTannedGlasspublic.simba if you can code alittle you can figure out whats wrong (hint: look at the DTM's), i haven't tested imbuing with superglass make so the timing will be off and it needs to be setup with astrals in first slot for superglassmake and if your tanning put natures in the second and in the third put a random item thats not the hide because you want only 25 hides in your inv, if you dont have a steam staff and want to tan and do imbue put water runes in the random spot also the bank is at edge and for the thing to not mess up put zoom all the way in so the bank is huge in front of it. the proggy for tan doesnt work, i was to lazy to get he DTM's for the leather lol. cheers guys
    I just got my fremmy hards done today and was going to make a tanner but you beat me to it. Good script, works well, nicely done!

  18. #18
    Join Date
    May 2013
    Posts
    69
    Mentioned
    0 Post(s)
    Quoted
    19 Post(s)

    Default

    Quote Originally Posted by anoobis View Post
    I just got my fremmy hards done today and was going to make a tanner but you beat me to it. Good script, works well, nicely done!
    Yeah it's pretty good I'm still working on it though

  19. #19
    Join Date
    Apr 2013
    Posts
    680
    Mentioned
    13 Post(s)
    Quoted
    341 Post(s)

    Default

    Thumbs up! i have been in active but i may have a look into this.

    <------------------>



  20. #20
    Join Date
    May 2012
    Posts
    22
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    I actually started scripting on another site and wrote it in Java, haha. But thanks for making it.

  21. #21
    Join Date
    Nov 2016
    Posts
    2
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by superfonz View Post
    SuperFonzLunarTannedGlasspublic.simba if you can code alittle you can figure out whats wrong (hint: look at the DTM's), i haven't tested imbuing with superglass make so the timing will be off and it needs to be setup with astrals in first slot for superglassmake and if your tanning put natures in the second and in the third put a random item thats not the hide because you want only 25 hides in your inv, if you dont have a steam staff and want to tan and do imbue put water runes in the random spot also the bank is at edge and for the thing to not mess up put zoom all the way in so the bank is huge in front of it. the proggy for tan doesnt work, i was to lazy to get he DTM's for the leather lol. cheers guys
    couldn't find bank
    Successfully executed.
    The following DTMs were not freed: [0, 2, 7]

    IDK which bank I should to use

  22. #22
    Join Date
    Apr 2013
    Posts
    680
    Mentioned
    13 Post(s)
    Quoted
    341 Post(s)

    Default

    Try modify the banking procedure out of one of the other aerolib script;

    from memory; flight's script bank sufficiently... plank making requires too many quests for me to make such a script.

    https://villavu.com/forum/showthread.php?t=112977

    <------------------>



  23. #23
    Join Date
    May 2013
    Posts
    69
    Mentioned
    0 Post(s)
    Quoted
    19 Post(s)

    Default

    Sorry lol i havent been on, its edgeUntitled.png the brightness high and its best if its facing north

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
  •