January 22, 201610 yr if (script.getDialogues().inDialogue()) { if (script.getDialogues().isPendingContinuation()) { script.getDialogues().clickContinue(); break; } } When I log the code, It says that I'm in a dialogue, but not that there's pending continuation. With other words, I'm stuck as it doesn't continue the dialogue. Am I missing something? Edited January 22, 201610 yr by lisabe96
January 22, 201610 yr Sounds like a bug with the continuation method; perhaps the dialogues are different on tutorial island try something like this instead List<RS2Widget> diag = getWidgets().containingText("Click here to continue"); if(!diag.isEmpty()) { diag.get(0).interact(); }
January 22, 201610 yr Author Sounds like a bug with the continuation method; perhaps the dialogues are different on tutorial island try something like this instead List<RS2Widget> diag = getWidgets().containingText("Click here to continue"); if(!diag.isEmpty()) { diag.get(0).interact(); } It's weird, it sometimes works and sometimes not. Ill try your solution. Edit: Seems to be working this way, thanks! Edited January 22, 201610 yr by lisabe96
January 22, 201610 yr IsPendingContinuation() returns true iff it finds "to continue" or "please wait..." so your logic is flawed here.
January 22, 201610 yr Author IsPendingContinuation() returns true iff it finds "to continue" or "please wait..." so your logic is flawed here. What do you mean exactly?
January 22, 201610 yr What do you mean exactly? public boolean isPendingContinuation() { if (this.inDialogue()) { int IIiiiiIiii = this.IIiiiiIiii(IIiiIiIIII); if (IIiiiiIiii > 0) { if(this.widgets.getWidgetContainingText(IIiiiiIiii, new String[]{"to continue", "please wait..."}) != null) { return true; } return false; } List<RS2Widget> matching = this.widgets.containingText(new String[]{"to continue", "please wait..."}); if (matching != null && !matching.isEmpty()) { IIiiIiIIII.add(Integer.valueOf((matching.get(0)).getRootId())); return true; } } return false; }
January 22, 201610 yr Author public boolean isPendingContinuation() { if (this.inDialogue()) { int IIiiiiIiii = this.IIiiiiIiii(IIiiIiIIII); if (IIiiiiIiii > 0) { if(this.widgets.getWidgetContainingText(IIiiiiIiii, new String[]{"to continue", "please wait..."}) != null) { return true; } return false; } List<RS2Widget> matching = this.widgets.containingText(new String[]{"to continue", "please wait..."}); if (matching != null && !matching.isEmpty()) { IIiiIiIIII.add(Integer.valueOf((matching.get(0)).getRootId())); return true; } } return false; } Apparently osbot's logic is flawing then because it doesn't work half of the time, while frostbug's solution does all the time
January 23, 201610 yr Apparently osbot's logic is flawing then because it doesn't work half of the time, while frostbug's solution does all the time No, you're is checking if "please wait" has already been clicked, and if so try to click continue... You're using the wrong method. Edited January 23, 201610 yr by matt123337
January 23, 201610 yr Author No, you're is checking if "please wait" has already been clicked, and if so try to click continue... You're using the wrong method. Then what's the right one?
Create an account or sign in to comment