The Undefeated Posted March 26, 2017 Share Posted March 26, 2017 I am trying to use "Smelt X" on a bronze bar but can't get it working. Using containingtext method doesn't work, the mouse just hovers on the bronze bar. The same when using the ID (311,14). When debugging, the "Smelt X" option has a seperate widget ID (311,13), but without rightclicking 311,14 the "Smelt X" widget won't be visible. People in chatbox told me to use some sort of color code but I can't figure it out at all. 1 Quote Link to comment Share on other sites More sharing options...
towelman Posted March 26, 2017 Share Posted March 26, 2017 @Juggles Quote Link to comment Share on other sites More sharing options...
naaiz Posted March 26, 2017 Share Posted March 26, 2017 There's 3 boxes when you use the widget debugger. White, red and green. There will be 3 corresponding widget Root / child ID's. Look at the boxes and check what makes sense, or feel free to post a screenie. you basically want the box that's both surrounding the bar and text (I think). Quote Link to comment Share on other sites More sharing options...
The Undefeated Posted March 26, 2017 Author Share Posted March 26, 2017 3 minutes ago, naaiz said: There's 3 boxes when you use the widget debugger. White, red and green. There will be 3 corresponding widget Root / child ID's. Look at the boxes and check what makes sense, or feel free to post a screenie. you basically want the box that's both surrounding the bar and text (I think). Checked all widgets close to the widget of the bronze bar. 100% sure the widget for bronze bar is 311,14. Quote Link to comment Share on other sites More sharing options...
naaiz Posted March 26, 2017 Share Posted March 26, 2017 (edited) Try 311,16 and 311,15 see if one of those works, looks like the boxes are stacked so you can only see 1 (not sure). If that doesn't work, try only root ID which would be 311. Edited March 26, 2017 by naaiz Quote Link to comment Share on other sites More sharing options...
whipz Posted March 26, 2017 Share Posted March 26, 2017 widgets.interact(309, 2, "Make All"); change to your widget from the above it should be 311, 14 and if there isnt a make all use whatever it is you need to; add another check for when the typing widget comes up and then have it type the number you want you can pm if you need more help Quote Link to comment Share on other sites More sharing options...
The Undefeated Posted March 26, 2017 Author Share Posted March 26, 2017 4 minutes ago, naaiz said: Try 311,16 and 311,15 see if one of those works, looks like the boxes are stacked so you can only see 1 (not sure). If that doesn't work, try only root ID which would be 311. You can't interact with only the root ID, and both 15 and 16 don't work. 4 minutes ago, whipz said: widgets.interact(309, 2, "Make All"); change to your widget from the above it should be 311, 14 and if there isnt a make all use whatever it is you need to; add another check for when the typing widget comes up and then have it type the number you want you can pm if you need more help Does the same thing as described in my first post. Quote Link to comment Share on other sites More sharing options...
naaiz Posted March 26, 2017 Share Posted March 26, 2017 (edited) I can't check your code, but try adding a conditional sleep before your interact if you haven't yet. Something like //Use bar on furnace new ConditionalSleep(5000) { @Override public boolean condition() { return getWidgets().getWidgetContainingText("Smelt X").isVisible(); } }.sleep(); getWidgets().getWidgetContainingText("Smelt X").interact("Smelt X"); Edited March 26, 2017 by naaiz Quote Link to comment Share on other sites More sharing options...
The Undefeated Posted March 26, 2017 Author Share Posted March 26, 2017 4 minutes ago, Juggles said: Widgets working fine for me getObjects().closest(16469).interact("Smelt"); new ConditionalSleep(5000) { @Override public boolean condition() { return getWidgets().getWidgets().isVisible(162,546); } }.sleep(); getWidgets().interact(311,14,"Smelt X"); new ConditionalSleep(5000) { @Override public boolean condition() { return getWidgets().isVisible(162, 32); } }.sleep(); getKeyboard().typeString("" + random(33, 95)); This is the code I'm using. In a fresh script with only this running it does not work. Quote Link to comment Share on other sites More sharing options...
Explv Posted March 26, 2017 Share Posted March 26, 2017 (edited) 10 minutes ago, The Undefeated said: getObjects().closest(16469).interact("Smelt"); new ConditionalSleep(5000) { @Override public boolean condition() { return getWidgets().getWidgets().isVisible(162,546); } }.sleep(); getWidgets().interact(311,14,"Smelt X"); new ConditionalSleep(5000) { @Override public boolean condition() { return getWidgets().isVisible(162, 32); } }.sleep(); getKeyboard().typeString("" + random(33, 95)); This is the code I'm using. In a fresh script with only this running it does not work. Shouldn't it be (sorry on phone): getWidgets().getWidgetContainingText("Bronze").Interact("Smelt X Bronze"); I think the interaction is "Smelt X Bronze" rather than "Smelt X" Edited March 26, 2017 by Explv 1 Quote Link to comment Share on other sites More sharing options...
The Undefeated Posted March 26, 2017 Author Share Posted March 26, 2017 3 minutes ago, Explv said: Shouldn't it be (sorry on phone): getWidgets().getWidgetContainingText("Bronze").Interact("Smelt X Bronze"); Mind blown. Quote Link to comment Share on other sites More sharing options...
Polymorphism Posted March 26, 2017 Share Posted March 26, 2017 RS2Object furnace = s.objects.closest("Furnace"); if (furnace != null && furnace.exists()) { if (s.inventory.getItem("Gold bar").interact("Use")) { if (furnace.interact("Use")) { new ConditionalSleep(5500, 500) { @Override public boolean condition() throws InterruptedException { return s.widgets .getWidgetContainingText("would you like to make") != null; } }.sleep(); } RS2Widget goldAmmy = s.widgets.get(446, 34); if (goldAmmy != null && goldAmmy.isVisible()) { goldAmmy.interact("Make-X"); Script.sleep(Script.random(1000, 2000)); if (isAmountPromptVisible()) { if (s.getKeyboard().typeString("" + Script.random(27, 99), true)) { new ConditionalSleep(60000, 1000) { @Override public boolean condition() throws InterruptedException { return !s.inventory.contains("Gold bar") || mustContinue(); } }.sleep(); } } } } } Quote Link to comment Share on other sites More sharing options...