Jump to content

Problem with dialogue series


Recommended Posts

Posted

Hello fellas it's me again,

I'm trying to get my script past a series of dialogues, where there is a continue option or 2 options to choose the script manages to click my chosen option. When the script is at the dialogue which contains 3 options, it somehow fails to choose the option i want it to choose.

Does anybody know why this is / how to fix this?

My code :

	case WALK_BANK_D1:
			if(dialogues.isPendingContinuation()) {
				dialogues.clickContinue();
				sleep(random(200, 600));
			} else if(dialogues.isPendingOption()) {
				dialogues.selectOption("Can I journey on this ship?");
				sleep(random(200, 600));
			} else if(dialogues.isPendingOption()) {
				dialogues.selectOption("Search away, I have nothing to hide.");
				sleep(random(200, 600));
			} else if(dialogues.isPendingOption()) {
				dialogues.selectOption("Ok.");
				sleep(random(200, 600));

This is where the problem occurs :
 

} else if(dialogues.isPendingOption()) {
				dialogues.selectOption("Search away, I have nothing to hide.");
				sleep(random(200, 600));
Posted (edited)

I feel you don't fully understand else statements.

  String[] options = new String[]{"Can I journey on this ship?",
                                  "Search away, I have nothing to hide.",
                                  "Ok." };
                    if(dialogues.isPendingContinuation()){
                        dialogues.clickContinue();
                    }else if (dialogues.isPendingOption()){
                        if(dialogues.selectOption(options)){
                            sleep(random(200, 600));
                        }
                    }
Edited by Isolate
Posted

 

I feel you don't fully understand else statements.

  String[] options = new String[]{"Can I journey on this ship?",
                                  "Search away, I have nothing to hide.",
                                  "Ok." };
                    if(dialogues.isPendingContinuation()){
                        dialogues.clickContinue();
                    }else if (dialogues.isPendingOption()){
                        if(dialogues.selectOption(options)){
                            sleep(random(200, 600));
                        }
                    }

 

Yes, you are right i'm still looking into all of it.

Could you rewrite this code for me with the method you just did?

http://pastebin.com/SEMnP0FX

 

Posted

Yes, you are right i'm still looking into all of it.

Could you rewrite this code for me with the method you just did?

http://pastebin.com/SEMnP0FX

 

  private final String[] SEAMAN_OPTIONS = new String[]{"Can I journey on this ship?",
                                                       "Search away, I have nothing to hide."
      };

    void handleSeaman() throws InterruptedException {
        if(dialogues.inDialogue()){
             if(dialogues.isPendingContinuation()){
                 if(dialogues.clickContinue()){
                     sleep(random(200, 600));
                 }
             }else if(dialogues.isPendingOption()){
                 if(dialogues.selectOption(SEAMAN_OPTIONS)){
                     sleep(random(200, 600));
                 }
             }
        }else{
            NPC seaman = npcs.closest(new Filter<NPC>() {
                @Override
                public boolean match(NPC npc) {
                    return npc != null && npc.getName().contains("Seaman");
                }
            });
            if(seaman != null){
                if(seaman.isVisible()){
                    if(seaman.interact("Pay-fare")){
                        sleep(random(750, 900));
                    }
                }else{
                    camera.toEntity(seaman);
                }
            }
        }
    }
}

Even though i'm pretty sure that's the dialog for the customs officer...

Posted
  private final String[] SEAMAN_OPTIONS = new String[]{"Can I journey on this ship?",
                                                       "Search away, I have nothing to hide."
      };

    void handleSeaman() throws InterruptedException {
        if(dialogues.inDialogue()){
             if(dialogues.isPendingContinuation()){
                 if(dialogues.clickContinue()){
                     sleep(random(200, 600));
                 }
             }else if(dialogues.isPendingOption()){
                 if(dialogues.selectOption(SEAMAN_OPTIONS)){
                     sleep(random(200, 600));
                 }
             }
        }else{
            NPC seaman = npcs.closest(new Filter<NPC>() {
                @Override
                public boolean match(NPC npc) {
                    return npc != null && npc.getName().contains("Seaman");
                }
            });
            if(seaman != null){
                if(seaman.isVisible()){
                    if(seaman.interact("Pay-fare")){
                        sleep(random(750, 900));
                    }
                }else{
                    camera.toEntity(seaman);
                }
            }
        }
    }
}

Even though i'm pretty sure that's the dialog for the customs officer...

 

 

Using that doesn't work for me.

But the other series of dialogues runs fine for me, same method :

 

case WALK_BACK_D1:
			if(dialogues.isPendingContinuation()) {
				dialogues.clickContinue();
				sleep(random(200, 700));
			} else if(dialogues.isPendingOption()) {
				dialogues.selectOption("Yes please.");
				sleep(random(200, 700));
			} else {
				Entity sailor = npcs.closest("Seaman Thresnor", "Seaman Lorris", "Captain Tobias");
				if (sailor!= null) {
					sailor.interact("Pay-fare");
				} else {
					log("Sailor is null");
				}
			}
			sleep(random(200, 600));
			break;

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...