1

Тема: Выбор правильного ответа диалога

Всем привет, ситуация следующая:
Имеем диалог с дверями

Дверь закрыта на ключ. Замок выглядит устрашающе. 
 
• Попытаться взломать.
• Выбить дверь.
• Постучать.
• Оставить в покое.
 
Дверь закрыта на ключ. Замок выглядит устрашающе
 
• Попытаться взломать.
• Выбить дверь.
• Оставить в покое.

В плагине у меня прописано так

if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Дверь закрыта на ключ./))
external.ClickLink("Постучать",2);
else
if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Замок выглядит устрашающе/))
external.ClickLink("Оставить в покое",2);

Подскажите как правильно прописать в плагине что бы он не стопорился на втором диалоге.
Пробовал писать в плагине

if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Оставить в покое/))
external.ClickLink("Оставить в покое",2);

Тоже не помогает.

2

Re: Выбор правильного ответа диалога

Один из вариантов - комбинировать условия:

if (1 != 1) {}
else if ((get_mainframe().document.all[0].innerHTML.indexOf("Дверь закрыта на ключ") > -1) && (get_mainframe().document.all[0].innerHTML.indexOf("Постучать") > -1))
  external.ClickLink("Постучать",2);
else if (get_mainframe().document.all[0].innerHTML.indexOf("Дверь закрыта на ключ") > -1) && (get_mainframe().document.all[0].innerHTML.indexOf("Оставить в покое") > -1))
  external.ClickLink("Постучать",2);

В твоём варианте плагин каждый раз идет по первой ветке, так как дверь-на-ключ есть в обоих случаях и пытается там нажимать Постучать не глядя есть оно там или нет

(Please log in or register to see this URL)

3

Re: Выбор правильного ответа диалога

otherway пишет:

В твоём варианте плагин каждый раз идет по первой ветке, так как дверь-на-ключ есть в обоих случаях и пытается там нажимать Постучать не глядя есть оно там или нет

Ну да, это я понимаю!
Спасибо, попробую

4

Re: Выбор правильного ответа диалога

otherway пишет:

Один из вариантов - комбинировать условия:

if (1 != 1) {}
else if ((get_mainframe().document.all[0].innerHTML.indexOf("Дверь закрыта на ключ") > -1) && (get_mainframe().document.all[0].innerHTML.indexOf("Постучать") > -1))
  external.ClickLink("Постучать",2);
else if (get_mainframe().document.all[0].innerHTML.indexOf("Дверь закрыта на ключ") > -1) && (get_mainframe().document.all[0].innerHTML.indexOf("Оставить в покое") > -1))
  external.ClickLink("Постучать",2);

А можно расшифровать по русски) не все понял

Если в диалоге есть фраза "Дверь закрыта на ключ" и "Постучать" то жмем "Постучать"
Если в диалоге есть фраза "Дверь закрыта на ключ" и "Оставить в покое" то жмем "Постучать" или же нужно в последнем поменять на "Оставить в покое"

5

Re: Выбор правильного ответа диалога

semenspb пишет:
otherway пишет:

Один из вариантов - комбинировать условия:

if (1 != 1) {}
else if ((get_mainframe().document.all[0].innerHTML.indexOf("Дверь закрыта на ключ") > -1) && (get_mainframe().document.all[0].innerHTML.indexOf("Постучать") > -1))
  external.ClickLink("Постучать",2);
else if (get_mainframe().document.all[0].innerHTML.indexOf("Дверь закрыта на ключ") > -1) && (get_mainframe().document.all[0].innerHTML.indexOf("Оставить в покое") > -1))
  external.ClickLink("Постучать",2);

А можно расшифровать по русски) не все понял

Если в диалоге есть фраза "Дверь закрыта на ключ" и "Постучать" то жмем "Постучать"
Если в диалоге есть фраза "Дверь закрыта на ключ" и "Оставить в покое" то жмем "Постучать" или же нужно в последнем поменять на "Оставить в покое"

Семен, конечно же там просто описка - выбирай одно из двух доступных условий.
оставить в покое.

Не стоит ездить быстрей, чем летает твой ангел-хранитель

6

Re: Выбор правильного ответа диалога

что за сложности? зачем так, если можно так:

if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Постучать/))
external.ClickLink("Постучать",2);
else
if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Оставить в покое/))
external.ClickLink("Оставить в покое",2

если есть опция постучать - постучит, если нет, оставит в покое

Отредактировано qwerty (2015-08-13 12:44:51)

Вы обладаете Благодатью Алхимика  до 05.04.16

7

Re: Выбор правильного ответа диалога

спасибо ребят!