Что нового

[Удивительный колхоз] Реализация условий If Then

Shootclick

Новичок
Сообщения
6
Репутация
1
Доброго времени суток​

Начал изучение AutoIT и не могу понять как мне сделать условие, при котором он будет выполнять определенное действие.
Сайт игры
Kolhoz.mobi

Вот набросок того что я сделал(все работает, но код большой, последовательность)
Код:
#include <IE.au3>

$oIE = _IEAttach("Грядки")



Local $sMyString = "Посадить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
	 EndIf
  Next 
  sleep (4000)
  


  Local $sMyString = "Посадить"
Local $oLinks = _IELinkGetCollection($oIE)
For  $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
	 EndIf
  Next
  sleep (4000)
  

  Local $sMyString = "Посадить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
	 EndIf
  Next
  sleep (4000)
  
 
 Local $sMyString = "Посадить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
	 EndIf
	 Next
 sleep (4000)

  Local $sMyString = "Обновить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
 Local $sMyString = "Полить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
  Local $sMyString = "Полить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
  Local $sMyString = "Полить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
  Local $sMyString = "Полить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
 Local $sMyString = "Обновить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
  Local $sMyString = "Применить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 

  Local $sMyString = "Применить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 

 Local $sMyString = "Применить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
 
 Local $sMyString = "Применить"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 

 Local $sMyString = "Собрать урожай"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
 Local $sMyString = "Собрать урожай"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
 Local $sMyString = "Собрать урожай"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
 Local $sMyString = "Собрать урожай"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
sleep (4000)

Local $sMyString = "Вскопать"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
 Local $sMyString = "Вскопать"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
 Local $sMyString = "Вскопать"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
 Local $sMyString = "Вскопать"
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
 Next
 sleep (4000)
 
 
 
Run ("Kolhoz.exe")


Буду очень признателен в помощи.
Нужно создать условие(проверка)
Если есть "Посадить Укроп" выполняем нажатие на текстовую кнопку, если нет, то идем дальше...
Желателен небольшой пример.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Задать условие, при котором он будет выполнять определенные действия

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

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

С уважением, ваш Модератор.
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Re: Реализация условий If Then

Упрощаю Ваш код, хотя и это далеко не предел. Просто пример, как можно делать.
Код:
#include <IE.au3>

$oIE = _IEAttach("Грядки")

Link_Click("Посадить")
Link_Click("Посадить")
Link_Click("Посадить")
Link_Click("Посадить")

Link_Click("Обновить")

Link_Click("Полить")
Link_Click("Полить")
Link_Click("Полить")
Link_Click("Полить")

Link_Click("Обновить")

Link_Click("Применить")
Link_Click("Применить")
Link_Click("Применить")
Link_Click("Применить")

Link_Click("Собрать урожай")
Link_Click("Собрать урожай")
Link_Click("Собрать урожай")
Link_Click("Собрать урожай")

Link_Click("Вскопать")
Link_Click("Вскопать")
Link_Click("Вскопать")
Link_Click("Вскопать")

Run ("Kolhoz.exe")

Func Link_Click($sMyString)
	_IELoadWait($oIE)
	Local $oLinks = _IELinkGetCollection($oIE)
	For $oLink In $oLinks
		If StringInStr($oLink.innertext, $sMyString) Then
			_IEAction($oLink, "click")
			ExitLoop
		EndIf
	Next
	Sleep(4000)
EndFunc

P.S. Изучите основы построения алгоритмов, они нужны в любом языке! Узнайте какие конструкции вообще существуют и как их нужно использовать. Есть циклы, условия, куча всего того, что просто необходимо знать для построения наиболее короткого варианта алгоритма



Если есть "Посадить Укроп" выполняем нажатие на текстовую кнопку, если нет, то идем дальше...
Научитесь анализировать исходный код страницы, который можно получить функцией
Код:
_IEBodyReadHTML()

Иногда достаточно проверить текст в
Код:
_IEBodyReadText()
 
Автор
S

Shootclick

Новичок
Сообщения
6
Репутация
1
DarWiM
Спасибо за помощь, продолжу изучать
 
Автор темы Похожие темы Форум Ответы Дата
S Боты для игр 6
Верх