Results 1 to 22 of 22

Thread: Artisan Smelter - First Script EVAR

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

    Default Artisan Smelter - First Script EVAR

    Finally got tired of waiting for someone to do this, so I gave it a whirl. Great idea for use in conjunction with Mayor's west bank miner and ironmen.

    Okay boys, attached below in Simba code will be my artisan smelter script.
    All I was able to do is thanks to @The Mayor and his excellent beginner guide

    The script is very sketchy in my opinion, and would probably be considered shotty work, I'm looking for ideas to improve it majorly before releasing it outside of this forum.

    Current issues I'm aware of:
    -Is 100% dependent on Tboxes/mouse boxes. Meaning if somehow I get off the path the script will fail.
    -There is a lack of failsafe -Added in ability to close script if it fails a certain number of times to perform an action.
    -No DTM for anvil due to lack of ability to distinguish color in this area ... I'd really love to fix this if you have any ideas.
    -Not able to relog after 6. I purposefully didn't put code in it because the script needs to be started with an empty inventory, odds are it wont be empty upon relog.
    -Lag would potentially very easily break the script due to using wait functions to move on to the next steps.
    -Camera angle needs to remain at the setting the script sets at default. --Adjust on start to ensure it can find bar colors
    -Progress Report to be included eventually

    Obviously this needs quite a lot of love, I'd be more than happy to give anyone credit who is able to help. The script will follow the main loop, I've tested multiple inventories with it.

    Simba Code:
    program ArtisanSmelter;

    {$DEFINE SMART}              // Always have this to load smart
    {$I SRL-6/SRL.simba}         // To load the SRL include files

    procedure declarePlayers();
    begin
      setLength(players, 1);
      with players[0] do
      begin
        loginName := 'Username';
        password  := 'password';
        isActive  := true;
        isMember  := true;
        world     := -0;  //Leave at -0 for random world.
      end
        currentPlayer := 0;
    end;


    //-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~//
    ////////////////////////////////////////////////////////////////////////////////
    ///////////////////Everything below here is Script Settings!////////////////////
    ///////////////////Only Edit if you know what you're doing!!////////////////////
    ////////////////////////////////////////////////////////////////////////////////
    //                                                                            //
    ////Credit to "The Mayor" and for his work in providing a great tutorial!!!!////
    //                                                                            //
    //                                                                            //
    //  Contributers: meep152 for removal of tboxes / adding in color recognition //
    //  Contributers: MasterXehanort - will use his script for future DTM addition//
    //-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~//
    var
    loadsDone: integer; XP, XPH, startingExperience: extended;
    timer: TTimeMarker;

    procedure  withdrawIngots();
    var
      x, y, i: integer;
      count: integer;
    begin
      count = 0;
      if not isLoggedIn() then
          exit;
       writeLn ('Finding "Withdraw-Ingots" Option')
       repeat
          mainscreen.findObject(x, y, 8162405, 11, colorSetting(2, 0.04, 0.23),mainscreen.playerPoint,20,30,7,['ithdraw-ingots'], MOUSE_LEFT);    //Find purple-ish bar to click on to pull up production screen
          wait(randomRange(1300, 2000));
          inc(count);
          if(count > 10) then
            TerminateScript();   //If script fails to find withdraw option 10 times, it will terminate
       until  productionScreen.isOpen;

       if productionScreen.isOpen then
           productionScreen.clickStart();
    end;

    procedure findAnvil();
    var
      x, y, i: integer;
      count: integer;
    begin
      count = 0;
      if not isLoggedIn() then
          exit;
       writeLn ('Searching for Anvil')
       repeat
          mainscreen.findObject(x, y, 4742750, 10, colorSetting(2, 0.39, 0.09),mainscreen.playerPoint,20,30,7,['nvil'], MOUSE_LEFT);    //looks for white outline on the western edge of North Anvil
          wait(randomRange(3000, 4000));
          inc(count);
          if(count > 10) then
            TerminateScript(); //If script fails to find an anvil 10 times, it will terminate
       until  productionScreen.isOpen;

       if productionScreen.isOpen then
       begin
        repeat
           productionScreen.clickStart();
           wait(randomRange(3000, 4000));
        until not (productionScreen.isOpen);
       end;
    end;

    procedure waitToSmith();
    begin
      writeLn('Waiting for progress screen to close!');
      repeat
        wait(7000);
      until (not progressScreen.isOpen()); //Repeats 7 second wait until progress screen closes
    end;

    procedure depositArmour();
    var
      x, y : integer;
      count: integer;
    begin
      count = 0;
      repeat
      mainscreen.findObject(x, y, 1118482, 2, colorSetting(0, 0, 0), mainscreen.playerPoint, 25, 15, 30, ['eposit-armour'], MOUSE_LEFT);
      wait(randomRange(2000,3000));
      until tabBackpack.count() < 10;
      inc(LoadsDone);
      inc(count);
          if(count > 10) then
            TerminateScript();   //Terminates script if fail to find deposit chute 10 times

    end;

    //Ashaman Progress Report - modified from Taric's Cosher Script
    procedure progressReport();
    var
      ingotsSmithed, xp, XPH: integer;
    begin
      ClearDebug;

      ingotsSmithed := (LoadsDone * 28);
       XP := (ChatBox.getXPBar - Round(StartingExperience));
      XPH := Round(XP * (3600.0 / (GetTimeRunning / 1000.0)));

      writeLn('=-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-=');
      writeLn('====        Artisan Smelter Conglomeration ');
      writeLn('===         Time Ran: ' + timeRunning );
      writeLn('==          Ingots Smithed: ' + intToStr(ingotsSmithed));
      writeLn('==          Loads Done: ' + intToStr(loadsDone));
      writeLn('===         Smithing Experience Gained: ' + intToStr(xp));
      writeLn('====        Smithing Experience Per Hour: ' + intToStr(XPH));
      writeLn('=-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-=');
    end;


    begin //main loop
      clearDebug();               // Clear the debug box
      smartEnableDrawing := true; // So we can draw on SMART
      setupSRL();                   // Load the SRL include files
      declarePlayers();             // Set up your username/pass

      repeat
        if not isLoggedIn() then             // If player isn't logged in then
        begin
          players[currentPlayer].login();   // Log them in
          exitTreasure();            // Exit treasure hunter
          minimap.setAngle(MM_DIRECTION_NORTH);  // Make compass north and angle high
          mainScreen.setAngle(MS_ANGLE_HIGH);
        end;

          withdrawIngots();
          findAnvil();
          waitToSmith();
          depositArmour();
          progressReport();
       until(false);
    end



    -I'd really like for you guys to be able to give it a shot if you wish. Currently to start the script you can be either logged in or out, but your inventory needs to be completely empty, ore needs to be predeposited in the smelter and you must stand on the south side of the deposit chute, directly on the west side of the anvil. Check production screen to be on (it uses it for the wait procedure). It is set up only for Iron Ingot i, I have no intentions of making it capable of more at this point in time.

    Let me know what you all think.

    edit: fixing simba code
    edit: don't believe antiban code is working. I will leave it in for now, but I don't think the "randomCameraAngle" movement is good to have because it may break the script.
    Last edited by cbrems; 02-12-2015 at 11:24 PM. Reason: script update

  2. #2
    Join Date
    Jun 2007
    Location
    The land of the long white cloud.
    Posts
    3,702
    Mentioned
    261 Post(s)
    Quoted
    2006 Post(s)

  3. #3
    Join Date
    Nov 2014
    Posts
    33
    Mentioned
    3 Post(s)
    Quoted
    10 Post(s)

    Default

    Nice

    I was thinking about attempting this too but it looks like theres one now xd

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

    Default

    Quote Originally Posted by The Mayor View Post
    We have another pro scripter up in here

    How much XP/h is this? Do you need to put your own ore in there?
    If you do it perfectly then 40k an hour.

    With the script I'd expect around 32-35k maybe. I know there will be room in the future if I'm able to perfect the movements between actions instead of using wait(randomRange) and guessing how long I need to wait until the next action. If I were to make the script even better it would switch which type of armor it's making as the call switches for the 10% bonus xp. However, that would mean taking the text in the top corner then having the bot click the anvil and choosing the appropriate option then smithing that. Probably can be done, I'm not there yet lol

    You do need to put your own ore in. It can hold 4k noted iron, just deposit it beforehand and you'll be set for a long time.
    4000 ore / 28 per inventory = 142.8 inventories.
    1 inventory = 252 seconds.
    143 (rounded up) inventories * 252 secs = 600 minutes worth of actual smithing time before you need to refill.

  5. #5
    Join Date
    Jun 2007
    Location
    The land of the long white cloud.
    Posts
    3,702
    Mentioned
    261 Post(s)
    Quoted
    2006 Post(s)

    Default

    Quote Originally Posted by cbrems View Post
    If you do it perfectly then 40k an hour.

    With the script I'd expect around 32-35k maybe. I know there will be room in the future if I'm able to perfect the movements between actions instead of using wait(randomRange) and guessing how long I need to wait until the next action. If I were to make the script even better it would switch which type of armor it's making as the call switches for the 10% bonus xp. However, that would mean taking the text in the top corner then having the bot click the anvil and choosing the appropriate option then smithing that. Probably can be done, I'm not there yet lol

    You do need to put your own ore in. It can hold 4k noted iron, just deposit it beforehand and you'll be set for a long time.
    4000 ore / 28 per inventory = 142.8 inventories.
    1 inventory = 252 seconds.
    143 (rounded up) inventories * 252 secs = 600 minutes worth of actual smithing time before you need to refill.
    That is actually pretty good. Do you just need iron, or do you have to put other stuff in there too?

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

    Default

    Quote Originally Posted by The Mayor View Post
    That is actually pretty good. Do you just need iron, or do you have to put other stuff in there too?
    You can put three types of ore in it, Iron, Steel and Mithril (?).
    And three types of tiers from the ore one to three, three being the best xp/h.

    I was going to do an Artisian Bot but for the steel tracks, I had same problems as you sometimes it would totally screw up if there was even a tiny bit of lag. Hopefully you get to finish the script.
    Last edited by The Mayor; 02-08-2015 at 08:09 AM. Reason: Language

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

    Default

    Quote Originally Posted by The Mayor View Post
    That is actually pretty good. Do you just need iron, or do you have to put other stuff in there too?
    Only iron =D
    It's really odd actually because the 1 iron bar when mined is around 40 xp? no idea, just tossing a number
    The iron bar is then translated into either 100 or 110 xp based on if you're smithing the one that has the bonus.

    After letting the script run for a few more hours, it has failed and ends up walking me to other spots around Fally.
    The script has had partial done inventories so that tells me it messed up in the waiting period for some reason. I would make sure to keep some what of an eye on it at this point. I erased the antiban() portion of the main loop and deleted the procedure completely from the script I edit, maybe that is messing up my waiting procedure some how.

    TL;DR - Yes, only put in iron. also I need to add fail safes ASAP. Will try my best to tweak it tomorrow.

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

    Default

    Quote Originally Posted by Enigmatic View Post
    You can put three types of ore in it, Iron, Steel and Mithril (?).
    And three types of tiers from the ore one to three, three being the best xp/h.

    I was going to do an Artisian Bot but for the steel tracks, I had same problems as you sometimes it would totally screw up if there was even a tiny bit of lag. Hopefully you get to finish the script.
    I currently made this for iron. But, I'm sure with minimal tweaking you could allow it to do other ores. Artisan's does up to rune, but I'm making this script for the sake of my ironman atm. I think if I get the hang of it I'd like to add it other things so I can learn some more about the scripting, but not currently in the plans.


    He is right in saying it goes up to tier three, it is the best xp per hour but generally it is very expensive, iron i is the most efficient in terms of gp/xp, and the xp is decent for ironmen.

    I will finish the script Probably gunna perfect it and apply with it for members maybe ... lotta learning to do tho

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

    Default

    Quote Originally Posted by cbrems View Post
    I currently made this for iron. But, I'm sure with minimal tweaking you could allow it to do other ores. Artisan's does up to rune, but I'm making this script for the sake of my ironman atm. I think if I get the hang of it I'd like to add it other things so I can learn some more about the scripting, but not currently in the plans.


    He is right in saying it goes up to tier three, it is the best xp per hour but generally it is very expensive, iron i is the most efficient in terms of gp/xp, and the xp is decent for ironmen.

    I will finish the script Probably gunna perfect it and apply with it for members maybe ... lotta learning to do tho
    I would recommend you to read the guide in the quick links tab on how to make a script that is good enough for members application.
    At the moment this script is a bit to simple to make it into members but who knows it might get accepted.

    Try it out and you might find yourself in the members group, good luck to you!

    Also
    @The Mayor Sorry for my language, still getting used to the rules.

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

    Default

    Small update:

    I want to get away from using TBoxes, they seem unreliable to me, I want to be able to add in antiban that would most likely involve rotating the screen.

    Anyways, the only update for this is that I changed the Withdraw() procedure to be based off the color of the purple ingot on the south side.

    I would love ideas to tweak and improve the script.

  11. #11
    Join Date
    Dec 2014
    Posts
    48
    Mentioned
    2 Post(s)
    Quoted
    28 Post(s)

    Default

    So here's a minor proggy before double exp weekend:
    This script ran flawlessly for 2 hours, before I manually stopped it, and I got 63k smithing exp. I did make a few color finding changes, so that the script would no longer have to use TBoxes.

    Simba Code:
    program ArtisanSmelter;

    {$DEFINE SMART}              // Always have this to load smart
    {$I SRL-6/SRL.simba}         // To load the SRL include files

    procedure declarePlayers();
    begin
      setLength(players, 1);
      with players[0] do
      begin
        loginName := 'username';
        password := 'password';
        isActive := true;
        isMember := false;
        world := 8;
      end
      currentPlayer := 0;
    end;
    ////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////
    ///////////////////Everything below here is Script Settings!////////////////////
    ///////////////////Only Edit if you know what you're doing!!////////////////////
    ////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////
    //All credit to "The Mayor" and for his work in providing a great tutorial!!!!//
    ////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////


    procedure  withdrawIngots();
    var
      x, y, i: integer;
    begin
      if not isLoggedIn() then
          exit;
       writeLn ('Finding "Withdraw-Ingots" Option')
       repeat
          mainscreen.findObject(x, y, 6110034, 14, colorSetting(2, 0.06, 0.04),mainscreen.playerPoint,20,30,7,['ithdraw-ingots'], MOUSE_LEFT);    //Find purple-ish bar to click on to pull up production screen
          wait(randomRange(1300, 2000));
          inc(i);
       until  productionScreen.isOpen or (i >= 10);

       if productionScreen.isOpen then
           productionScreen.clickStart();
    end;

    procedure findAnvil();
    var
      x, y, i: integer;
    begin
      if not isLoggedIn() then
          exit;
       writeLn ('Searching for Anvil')
       repeat
          mainscreen.findObject(x, y, 4742750, 10, colorSetting(2, 0.39, 0.09),mainscreen.playerPoint,20,30,7,['nvil'], MOUSE_LEFT);    //looks for white outline on the western edge of North Anvil
          wait(randomRange(3000, 4000));
          inc(i);
       until  productionScreen.isOpen or (i >= 10);

       if productionScreen.isOpen then
       begin
        repeat
           productionScreen.clickStart();
           wait(randomRange(3000, 4000));
        until not (productionScreen.isOpen);
       end;
    end;


    procedure waitToSmith();
    begin
      writeLn('Waiting for progress screen to close!');
      repeat
        wait(7000);
      until (not progressScreen.isOpen()); //Repeats 7 second wait until progress screen closes
    end;

    procedure depositArmour();
    var
      x, y : integer;
    begin
      repeat
      mainscreen.findObject(x, y, 1645344, 2, colorSetting(2, 1.49, 1.52), mainscreen.playerPoint, 25, 15, 30, ['eposit-armour'], MOUSE_LEFT);
      wait(randomRange(2000,3000));
      until tabBackpack.count() < 10;
    end;


    begin //main loop
      clearDebug();               // Clear the debug box
      smartEnableDrawing := true; // So we can draw on SMART
      setupSRL();                   // Load the SRL include files
      declarePlayers();             // Set up your username/pass

      repeat
        if not isLoggedIn() then             // If player isn't logged in then
        begin
          players[currentPlayer].login();   // Log them in
          exitTreasure();            // Exit treasure hunter
          minimap.setAngle(MM_DIRECTION_NORTH);  // Make compass north and angle high
          mainScreen.setAngle(MS_ANGLE_HIGH);
        end;

          withdrawIngots();
          findAnvil();
          waitToSmith();
          depositArmour();
       until(false);
    end.
    Since the colors are kind of sensitive, they may have to be tweaked if you go to a different world.

    Overall, I found your script to be very good; my only concern was that sometimes the script does not recognize the progress screen as being open (causing inventories to only be partially completed), because the "Current Instructions" interface blocks part of the progress screen. However, this may be an issue with simba itself, and a quick fix is to simply move the production screen over the chatbox, where it is better recognized.

    As for other suggestions, maybe some kind of sps failsafe to walk back to the workshop if the player accidentally leaves? Or maybe a few mouse movements while the player is smithing. Just throwing ideas... but great script overall!

  12. #12
    Join Date
    Jan 2015
    Posts
    31
    Mentioned
    0 Post(s)
    Quoted
    6 Post(s)

    Default

    Looks nice would maybe use this if it wasent for the portable furnace things

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

    Default

    Quote Originally Posted by meep152 View Post
    So here's a minor proggy before double exp weekend:
    This script ran flawlessly for 2 hours, before I manually stopped it, and I got 63k smithing exp. I did make a few color finding changes, so that the script would no longer have to use TBoxes.

    Simba Code:
    program ArtisanSmelter;

    {$DEFINE SMART}              // Always have this to load smart
    {$I SRL-6/SRL.simba}         // To load the SRL include files

    procedure declarePlayers();
    begin
      setLength(players, 1);
      with players[0] do
      begin
        loginName := 'username';
        password := 'password';
        isActive := true;
        isMember := false;
        world := 8;
      end
      currentPlayer := 0;
    end;
    ////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////
    ///////////////////Everything below here is Script Settings!////////////////////
    ///////////////////Only Edit if you know what you're doing!!////////////////////
    ////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////
    //All credit to "The Mayor" and for his work in providing a great tutorial!!!!//
    ////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////


    procedure  withdrawIngots();
    var
      x, y, i: integer;
    begin
      if not isLoggedIn() then
          exit;
       writeLn ('Finding "Withdraw-Ingots" Option')
       repeat
          mainscreen.findObject(x, y, 6110034, 14, colorSetting(2, 0.06, 0.04),mainscreen.playerPoint,20,30,7,['ithdraw-ingots'], MOUSE_LEFT);    //Find purple-ish bar to click on to pull up production screen
          wait(randomRange(1300, 2000));
          inc(i);
       until  productionScreen.isOpen or (i >= 10);

       if productionScreen.isOpen then
           productionScreen.clickStart();
    end;

    procedure findAnvil();
    var
      x, y, i: integer;
    begin
      if not isLoggedIn() then
          exit;
       writeLn ('Searching for Anvil')
       repeat
          mainscreen.findObject(x, y, 4742750, 10, colorSetting(2, 0.39, 0.09),mainscreen.playerPoint,20,30,7,['nvil'], MOUSE_LEFT);    //looks for white outline on the western edge of North Anvil
          wait(randomRange(3000, 4000));
          inc(i);
       until  productionScreen.isOpen or (i >= 10);

       if productionScreen.isOpen then
       begin
        repeat
           productionScreen.clickStart();
           wait(randomRange(3000, 4000));
        until not (productionScreen.isOpen);
       end;
    end;


    procedure waitToSmith();
    begin
      writeLn('Waiting for progress screen to close!');
      repeat
        wait(7000);
      until (not progressScreen.isOpen()); //Repeats 7 second wait until progress screen closes
    end;

    procedure depositArmour();
    var
      x, y : integer;
    begin
      repeat
      mainscreen.findObject(x, y, 1645344, 2, colorSetting(2, 1.49, 1.52), mainscreen.playerPoint, 25, 15, 30, ['eposit-armour'], MOUSE_LEFT);
      wait(randomRange(2000,3000));
      until tabBackpack.count() < 10;
    end;


    begin //main loop
      clearDebug();               // Clear the debug box
      smartEnableDrawing := true; // So we can draw on SMART
      setupSRL();                   // Load the SRL include files
      declarePlayers();             // Set up your username/pass

      repeat
        if not isLoggedIn() then             // If player isn't logged in then
        begin
          players[currentPlayer].login();   // Log them in
          exitTreasure();            // Exit treasure hunter
          minimap.setAngle(MM_DIRECTION_NORTH);  // Make compass north and angle high
          mainScreen.setAngle(MS_ANGLE_HIGH);
        end;

          withdrawIngots();
          findAnvil();
          waitToSmith();
          depositArmour();
       until(false);
    end.
    Since the colors are kind of sensitive, they may have to be tweaked if you go to a different world.

    Overall, I found your script to be very good; my only concern was that sometimes the script does not recognize the progress screen as being open (causing inventories to only be partially completed), because the "Current Instructions" interface blocks part of the progress screen. However, this may be an issue with simba itself, and a quick fix is to simply move the production screen over the chatbox, where it is better recognized.

    As for other suggestions, maybe some kind of sps failsafe to walk back to the workshop if the player accidentally leaves? Or maybe a few mouse movements while the player is smithing. Just throwing ideas... but great script overall!
    Thank you so much for your feedback and the time you took to edit the script!!!
    Today is my birthday and so I'm going out with my friends at a different college so I wont be able to test the script or look into the ideas you put forth. I think they are great ideas and I will try to implement them. I will also give you the appropriate credit in the script of course

    Again, thank you so much!

  14. #14
    Join Date
    Apr 2012
    Location
    Gielinor
    Posts
    231
    Mentioned
    4 Post(s)
    Quoted
    33 Post(s)

    Default

    Quote Originally Posted by cbrems View Post
    Small update:

    I want to get away from using TBoxes, they seem unreliable to me, I want to be able to add in antiban that would most likely involve rotating the screen.

    Anyways, the only update for this is that I changed the Withdraw() procedure to be based off the color of the purple ingot on the south side.

    I would love ideas to tweak and improve the script.
    Did a quick 30 minute build of my own artisan script. Still used mouse boxes as it was a fast draft, but I think you would like the procedures I used to find out what item will give us 10% extra xp. Also, the fixed wait time and included antiban.
    Also, I shifted the main in-game production box down a little to be able to see the instructions while the production box is up.

    E: Fixed up the script a little. Incorporates DTM's to find the anvil, withdraw box, deposit chute. Mousebox contained to only clicking on the production selection screen and clicking away from the anvil to exit the smithing animation when a new instruction is called out. The attached image is how my production selection screen looks after I moved it. It has to be here to use the mousebox procedures of choosing what we're making. I placed it here so the "Current Instructions" are still visible for Simba to read the text. You can move it down however far you want, so as long as the entire blue box containing the instructions is visible. Before running the script, I suggest assuring the mousebox procedures for selecting the item we're making align with the actual boxes we are meant to click.

    Short Proggy:

    Simba Code:
    ========================================================
    Master Xehanorts Artisan Smithy
    Time Ran: 5 Minutes and 2 Seconds
    Ingots Smithed: 28
    Loads Done: 1
    Smithing Experience Gainzzzz: 3108
    Smithing Experience Per Hour: 37011
    ========================================================
    Attached Images Attached Images
    Attached Files Attached Files

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

    Default

    Quote Originally Posted by MasterXehanort View Post
    Did a quick 30 minute build of my own artisan script. Still used mouse boxes as it was a fast draft, but I think you would like the procedures I used to find out what item will give us 10% extra xp. Also, the fixed wait time and included antiban.
    Also, I shifted the main in-game production box down a little to be able to see the instructions while the production box is up.

    E: Fixed up the script a little. Incorporates DTM's to find the anvil, withdraw box, deposit chute. Mousebox contained to only clicking on the production selection screen and clicking away from the anvil to exit the smithing animation when a new instruction is called out. The attached image is how my production selection screen looks after I moved it. It has to be here to use the mousebox procedures of choosing what we're making. I placed it here so the "Current Instructions" are still visible for Simba to read the text. You can move it down however far you want, so as long as the entire blue box containing the instructions is visible. Before running the script, I suggest assuring the mousebox procedures for selecting the item we're making align with the actual boxes we are meant to click.

    Short Proggy:

    Simba Code:
    ========================================================
    Master Xehanorts Artisan Smithy
    Time Ran: 5 Minutes and 2 Seconds
    Ingots Smithed: 28
    Loads Done: 1
    Smithing Experience Gainzzzz: 3108
    Smithing Experience Per Hour: 37011
    ========================================================

    Very nice, I'm pretty new to the scripting thing and I've been so busy (senior year nursing student) so I haven't been able to put much time into researching all of this!
    It sounds like you were able to fix most the issues I haven't gotten around to. If you were to release this I'd probably go ahead and start a new script :P Nice work!

  16. #16
    Join Date
    Apr 2012
    Location
    Gielinor
    Posts
    231
    Mentioned
    4 Post(s)
    Quoted
    33 Post(s)

    Default

    Quote Originally Posted by cbrems View Post
    Very nice, I'm pretty new to the scripting thing and I've been so busy (senior year nursing student) so I haven't been able to put much time into researching all of this!
    It sounds like you were able to fix most the issues I haven't gotten around to. If you were to release this I'd probably go ahead and start a new script :P Nice work!
    Mine still has A LOT of little kinks that can be fixed. Failsafes to add, better DTM's to use etc. No releases though, it was just so you had some ideas to add to yours. If anything i may leave mine as is for 99 smithing for ironman. Also, goodluck finishing out nursing.

  17. #17
    Join Date
    Jan 2012
    Posts
    246
    Mentioned
    3 Post(s)
    Quoted
    91 Post(s)

    Default

    Quote Originally Posted by MasterXehanort View Post
    Mine still has A LOT of little kinks that can be fixed. Failsafes to add, better DTM's to use etc. No releases though, it was just so you had some ideas to add to yours. If anything i may leave mine as is for 99 smithing for ironman. Also, goodluck finishing out nursing.
    your version is stable? I'm looking for a good way to get 99 smithing on my ironman lmao

  18. #18
    Join Date
    Dec 2010
    Posts
    483
    Mentioned
    30 Post(s)
    Quoted
    328 Post(s)

    Default

    Glad to see you made it, I've been insanely busy as of late and couldn't justify making it, especially since I'm already 99 smith.

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

    Default

    I'm leaving the current script code here in case anyone wants to contribute more, for now it will be released to the public.

    @meep152, @MasterXehanort - If you feel you deserve more credit in the script, I will do so. I will simply be the one to release the script with no single person's name because I feel the three of us contributed quite a bit. I will be putting Master's code in to change the type of smithing in the future to allow slightly better xp/hour (not a priority). Not currently using DTM's, as I feel the color is working for now, will look into changing if issues arrive.

    If I feel too many people are downloading the script without contributing (proggies / change ideas / code changes) I will remove the script and allow only to Jr. Mem+ because the idea of the site is for people to contribute as a community.

    Thanks to any contributors / testers, it is greatly appreciated.

  20. #20
    Join Date
    Apr 2012
    Location
    Gielinor
    Posts
    231
    Mentioned
    4 Post(s)
    Quoted
    33 Post(s)

    Default

    Quote Originally Posted by Theron View Post
    your version is stable? I'm looking for a good way to get 99 smithing on my ironman lmao
    Was stable when I was running it DTM's might need to be fixed though running it again. Was a quick build.

    EDIT:

    Simba Code:
    ========================================================
    Master Xehanorts Artisan Smithy
    Time Ran: 3 Hours, 42 Minutes and 53 Seconds
    Ingots Smithed: 1260
    Loads Done: 45
    Smithing Experience Gainzzzz: 139860
    Smithing Experience Per Hour: 37650
    ========================================================

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

    Default

    Quote Originally Posted by MasterXehanort View Post
    Was stable when I was running it DTM's might need to be fixed though running it again. Was a quick build.
    I was just finishing the final touches on what the script is right now that I have released when I was looking back at the script you provided for me and it was right then I found out why the DTM didn't work for me. I never put the code in to initialize it or whatever the terminology was. So I was like screw it, I'll do it this weekend or something

  22. #22
    Join Date
    Apr 2012
    Location
    Gielinor
    Posts
    231
    Mentioned
    4 Post(s)
    Quoted
    33 Post(s)

    Default

    Quote Originally Posted by cbrems View Post
    I was just finishing the final touches on what the script is right now that I have released when I was looking back at the script you provided for me and it was right then I found out why the DTM didn't work for me. I never put the code in to initialize it or whatever the terminology was. So I was like screw it, I'll do it this weekend or something
    The procedure initializeDTM is just to setup the DTM's being used (letting simba know what the actual DTM looks like); without it, you'll just get compile errors. The DTM's are represented as variable integers in simba. Because it is a variable, we must assign it a value. This is where the initialize/setup comes in. You're defining what the DTM is.

    I always put it at the top of my scripts in case the script doesn't work, I can easily modify DTM's to see if those are the reason errors are caused. Also, this prevents unnecessary memory takeup on your computer. Each time you assign a value to a DTM, it is stored as data on your computer. If a certain procedure you're using is in the main loop (that gets repeated) contains the coding that defines a DTM variable, that's a lot of storage on your computer that will be eaten up. However, by initializing/setting them up only once, a very minute amount of data is used. If you look at my main loop (not the mainLoop() procedure, but the actual repeated loop. I only call initializeDTM once outside of the repeat.

    Alternatively, you can just use freeDTM(your_DTM_Name) if you want to have the DTM's in separate procedures.

    Do be careful when creating DTM's the spacing between points and tolerance of the points make or break the DTM's usefulness.

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
  •