Что нового

[Мышь, клавиатура] Бот для игры xospital.mobi

den23rus

Новичок
Сообщения
27
Репутация
0
Хочу создать бота для браузерной игры: 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

игры похожи, но как переделать пока незнаю :scratch:
Почему то скрипт пытается выполнит именно четвертое условие
 

Belfigor

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


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

"[Мышь, клавиатура] Бот для игры xospital.mobi" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

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