Хочу создать бота для браузерной игры: xospital.mobi
может кто поможет?
Есть скрипт игры Удивительный колхоз
игры похожи, но как переделать пока незнаю
Почему то скрипт пытается выполнит именно четвертое условие
может кто поможет?
Есть скрипт игры Удивительный колхоз
Код:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: Gorez
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
; Press Esc to terminate script, Pause/Break to "pause"
Global $Paused
;=============Клавиши управления=============
HotKeySet("{1}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage") ;Shift-Alt-d
;============================================
; Start GUICreate
$Form1 = GUICreate("Бот программа для Удивительного колхоза", 800, 600, 192, 114)
$Obj1 = ObjCreate("Shell.Explorer.2")
$Obj1_ctrl = GUICtrlCreateObj($Obj1, 0, 0, 770, 550)
GUISetState(@SW_SHOW)
_IENavigate($Obj1, "kolhoz.mobi")
_IELoadWait($Obj1)
sleep(300)
;Stop GUICreate
Global $sText = _IEBodyReadText($Obj1)
$sHTML = _IEBodyReadHTML($Obj1)
;Начало рулевого кода!!
While 1
Switch MainNumber()
case 1
Griadky()
case 1.2
Proverka_posad()
case 1.3
Posad_ukr()
case 1.4
Posad_pet()
case 1.5
Posad_raznoe()
case 2
proverka_ukr()
case 3
Proverka_zagon()
EndSwitch
WEnd
;Конец рулевого кода!
func MainNumber()
$sText = _IEBodyReadText($Obj1)
_IEAction($Obj1, "refresh")
sleep(2000)
TrayTip("Загружаю...","Первое условие",5,1)
if StringRegExp($sText, '(?s).*Полить.*', 0) Or StringRegExp($sText, '(?s).*Собрать урожай.*', 0) Or StringRegExp($sText, '(?s).*Удобрить.*', 0) Then ;Если да, выполняем фун-ию
return 1
EndIf
TrayTip("Загружаю...","Второе условие",5,1)
If StringRegExp($sText, '(?s).* готовая к посеву .*', 0) Then
return 1.2
EndIf
TrayTip("Загружаю...","Третье условие",5,1)
if StringRegExp($sText, '(?s).*Погреб.*\(.\).*', 0)Then; Если есть, выполняем проверку в амбаре
return 2
EndIf
TrayTip("Загружаю...","Четвертое условие",5,1)
if StringRegExp($sText, '(?s).*Загоны.*\(.\).*',0)Then
Return 3
EndIf
EndFunc
;Начало всех функций и до конца
;==========================================Действия на грядке==========================================
Func Griadky()
$sText = _IEBodyReadText($Obj1)
while StringRegExp($sText, '(?s).*Собрать урожай.*', 0)
_IELinkClickByText($Obj1, "Собрать урожай")
sleep(1000) ;чтобы сработало
$sText = _IEBodyReadText($Obj1)
wend
$sText = _IEBodyReadText($Obj1)
while StringRegExp($sText, '(?s).*Полить всё.*', 0)
_IELinkClickByText($Obj1, "Полить всё")
sleep(1000) ;чтобы сработало
$sText = _IEBodyReadText($Obj1)
wend
$sText = _IEBodyReadText($Obj1)
while StringRegExp($sText, '(?s).*Вскопать всё.*', 0)
_IELinkClickByText($Obj1, "Вскопать всё")
sleep(1000) ;чтобы сработало
$sText = _IEBodyReadText($Obj1)
wend
$sText = _IEBodyReadText($Obj1)
while StringRegExp($sText, '(?s).*Удобрить всё.*', 0)
_IELinkClickByText($Obj1, "Удобрить всё")
sleep(1000) ;чтобы сработало
$sText = _IEBodyReadText($Obj1)
wend
EndFunc
;==============================================================================================
;==================================Посадить разные семена======================================
Func Posad_raznoe()
If not StringRegExp($sText, '(?s).*Укроп.*', 0)Then
ConsoleWrite(2)
return 1.3
EndIf
if not StringRegExp($sText, '(?s).*Петрушка.*', 0)Then ; Если есть свободная грядка, сожаем Укроп
ConsoleWrite(3)
return 1.4
EndIf
EndFunc
;==============================================================================================
;===================================Дейсвтия в погребе=========================================
Func Pogreb()
$sText = _IEBodyReadText($Obj1)
if StringRegExp($sText, '(?s).*Заготовить всё.*', 0) then
_IELinkClickByText($Obj1, "Заготовить всё")
Sleep(1000)
_IELinkClickByText($Obj1, "Поставить")
endif
If StringRegExp($sText, '(?s).*Прогреб.*',0)Then ; проверяем в погребе мы или нет
sleep(2000)
Else
_IELinkClickByText($Obj1, "Погреб")
EndIf
While StringRegExp($sText, '(?s).*Продать.*', 0)
_IELinkClickByText($Obj1, "Продать")
Sleep(1000)
$sText = _IEBodyReadText($Obj1)
WEnd
_IELinkClickByText($Obj1, "Грядки")
EndFunc
;====================================================================================================
;==========================================Проверка запасов Укропа в амбаре=================================
Func Proverka_ukr()
_IELinkClickByText($Obj1, "Амбар")
$sText = _IEBodyReadText($Obj1)
$kolvo_ukr = StringRegExp($sText, '(?s)(?:Укроп) \((\d+)\)',3)
_IELinkClickByText($Obj1, "Кормить Укропом")
EndIf
if StringRegExp($sText, '(?s).*Загоны.*') and StringRegExp($sText, '(?s).*Продать.*') Then
_IELinkClickByText($Obj1, "Продать")
EndIf
EndFunc
;========================================================================================
;;;;;;;;
Func TogglePause()
$Paused = Not $Paused
While $Paused
Sleep(100)
ToolTip('Script is "Paused"', 0, 0)
WEnd
ToolTip("")
EndFunc ;==>TogglePause
Func Terminate()
Exit 0
EndFunc ;==>Terminate
Func ShowMessage()
MsgBox(4096, "", "This is a message.")
EndFunc ;==>ShowMessage
Func Timer()
$begin = TimerInit()
$off = 7200000
$dif = TimerDiff($begin)
if $off < $dif Then
EndIf
EndFunc
игры похожи, но как переделать пока незнаю
Почему то скрипт пытается выполнит именно четвертое условие