Некоторое время назад начал играть в  ботву. Постоянно сидеть и тыкать кнопочки нет ни времени ни желания. По этой причине решил написать бота.
За бодалку большое спасибо автору http://autoit-script.ru/index.php/topic,6847.0.html
MISSION COMPLETED
Копатель Lite:
	
	
	
	
  
    
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Умеет копать, умеет закупать инструмент.
Все остальное можно найти...
Full версия гоняет летунов в БП, бодается, бодается по списку, открывает поляны, следит за зверем(выпускает/прячет) и много чего еще.
			
			За бодалку большое спасибо автору http://autoit-script.ru/index.php/topic,6847.0.html
MISSION COMPLETED
Копатель Lite:
			
				Код:
			
		
		
		; Лайт версия копателя, после обновлений игры
#include <IE.au3>
HotKeySet("{`}", "Terminate") ;хот кей для остановки бота - "Ё"
Global $oIE = _IEAttach("Битва за") ;подключаемся к окну ИЕ
Global $Dig='mine.php?a=open&m=dig&k=' ;Добыть кри
Global $Reset='mine.php?a=open&m=reset&k=' ;Продолжить поиск
Global $Open='mine.php?a=open' ;Смотреть в карьер
$sHTML=_IEBodyReadHTML($oIE)
Global $lvl=StringRegExp($sHTML,'safe:\|(.*?)\|;safe4',1) ;запоминаем лвл при старте бота
	If $lvl=0 Then
		$oIEt = _IEAttach("[CLASS:IEFrame]", 'Instance')
		_IENavigate($oIEt,'http://g1.botva.ru/index.php')
		Sleep(500)
		Send('{SPACE}')
	EndIf
While 1
	Switch MainTimers() ; рулевой :)
		Case 1
			If Karer()=1 Then
				_IELinkClickByText($oIE, 'Шахта')
				LinkClick($Open)
			Else
				ButtonPres($oIE,'РАБОТАТЬ')
			EndIf
		Case 2
			DigOrRes() ; to be, or not to be
		Case 3
			LinkClick($Open) ; если таймер в карьере 0 и я не в карьере
		Case 4
			Sleep(15000)
		Case Else
			Sleep(1000)
;~ 			MsgBox(0,0,'Swith error',3)
			$oIEbc = _IEAttach("[CLASS:IEFrame]", 'Instance')
			$sUrlNew = 'http://g1.botva.ru/post.php'
			_IENavigate($oIEbc, $sUrlNew)
			Sleep(1000)
	EndSwitch
WEnd
Func MainTimers() ;определение действий по игровому таймеру
	_MyLoadWait()
	RandomSleep()
	$oTimers=_IETagNameGetCollection($oIE,'DIV')
	For $oTimer in $oTimers
	If $oTimer.id=='rmenu1' and $oTimer.classname=='extend1' Then
		If StringInStr($oTimer.innertext,'Я свободен!') Then
			Return 1
		EndIf
		If StringInStr($oTimer.innertext,'Работа в карьере') Then
			$wt=WorkTime()
			$kt=Karer()
			If $wt=0 And $kt=0 Then
				Return 2
			EndIf
			If $wt=0 And $kt=1 Then
				Return 3
			EndIf
			If $wt=1 Then
				Return 4
			EndIf
		EndIf
		ExitLoop
	EndIf
Next
EndFunc
Func WorkTime() ;функция проверки таймера копки
	_MyLoadWait()
	$wDIVs=_IETagNameGetCollection($oIE,'DIV')
	For $wDIV in $wDIVs
		If $wDIV.id=='rmenu1' and $wDIV.classname=='extend1' Then
			$wTimes=_IETagNameGetCollection($wDIV,'A')
			If @extended < 10 Then
				Return 1
			EndIf
			For $wTime in $wTimes
				If $wTime.classname='timer link' Then
					$wMin=StringRegExp($wTime.innertext,'\d{2}:(.*?):\d{2}',1)
					$wSec=StringRegExp($wTime.innertext,'\d{2}:\d{2}:(\d{2})',1)
					If $wMin<>0 And $wSec<>0 And $wMin[0]=0 And $wSec[0]=0 Then
						Return 0
					Else
						Return 1
					EndIf
					ExitLoop
				EndIf
			Next
			ExitLoop
		EndIf
	Next
EndFunc
Func Karer() ;функция проверки в карьери ли я?
	_MyLoadWait()
	$oPlaces=_IETagNameGetCollection($oIE,'DIV')
	For $oPlace in $oPlaces
		If $oPlace.id=='crumbs' Then
			If StringInStr($oPlace.innertext,'Шахта') Then
				If StringInStr($oPlace.innertext,'Карьер') Then
					Return 0
				Else
					Return 1
				EndIf
			Else
				Return 1
			EndIf
			ExitLoop
		EndIf
	Next
EndFunc
Func DigOrRes() ;смотрим шанс выкопать кри добываем/продолжаем
	_MyLoadWait()
	RandomSleep()
	$oProcs=_IETagNameGetCollection($oIE,'P')
	For $oProc in $oProcs
		If $oProc.classname=='red_line_mine' Then
			$proc=StringRegExp($oProc.innertext,'Вероятность успеха - (.*?) \%',1)
			If $proc<>0 Then
				If $proc[0]>42 Then
					LinkClick($Dig)
					ChargeCheck()
				Else
					LinkClick($Reset)
				EndIf
			EndIf
			ExitLoop
		EndIf
	Next
EndFunc
Func RandomSleep() ;Случайное ожидание от 200 до 600 мс
	$r=Random(2,6,1)
	Sleep($r*100)
EndFunc
Func Terminate() ;функция остановки бота
	MsgBox(64,'','Exit Script',3)
    Exit 0
EndFunc
Func LinkClick($FocusLink) ;Клик по кнопкам с уникальными ссылками
	_MyLoadWait()
	RandomSleep()
	$oLinks=_IELinkGetCollection($oIE)
	For $oLink in $oLinks
		if StringInStr($oLink.href,$FocusLink) Then
			_IEAction($oLink,'click')
			_IELoadWait($oIE)
			ExitLoop
		EndIf
	Next
EndFunc
Func ButtonPres($TagCollect, $TagValue) ;Функция нажатия на кнопку c $TagVaule
	_MyLoadWait()
    $oInputs = _IETagNameGetCollection($TagCollect, 'input')
    For $oInput In $oInputs
        If $oInput.type == 'submit' And $oInput.value == $TagValue Then ;тогда нападаем :)
			_IEAction($oInput, 'click')
			_IELoadWait ($oIE)
			ExitLoop
        EndIf
    Next
EndFunc
Func InvSet() ;функция заполнения ползунков в купильне
	RandomSleep()
	$oSlider1 = _IEGetObjById($oIE,'slider_v_4')
	$oSlider2 = _IEGetObjById($oIE,'slider_v_5')
	$oSlider3 = _IEGetObjById($oIE,'slider_v_6')
	_IEFormElementSetValue($oSlider1, $lvl[0]) ;  $lvl это лвл перса и кол во инструментов
	_IEFormElementSetValue($oSlider2, $lvl[0])
	_IEFormElementSetValue($oSlider3, $lvl[0])
	_IEFormSubmit($oIE)
EndFunc
Func ChargeCheck() ;функция проверки зарядов КИРКИ(кол-во инстр. одинаково)
	_MyLoadWait()
	$oTables = _IETableGetCollection ($oIE)
	For $oTable in $oTables
		If $oTable.classname=='default padding5' Then
			$aTableData = _IETableWriteToArray ($oTable)
			$charge=StringRegExp($aTableData[0][1],'Зарядов (\d{2}) раз',1)
			If $charge<>0 And $charge[0]<$lvl[0]*2 Then ; если зарядов меньше лвл*2
				_IELinkClickByText($oIE, 'Шахта') ; жмем кнопку шахта
				RandomSleep()
				_IELinkClickByText($oIE, 'Смотреть') ; жмем кнопку Смотреть, попадаем в купильню
				InvSet()
				ButtonPres($oIE,'КУПИТЬ')
			EndIf
			ExitLoop
		EndIf
	Next
EndFunc
Func _MyLoadWait()
	While Not (String($oIE.readyState) = "complete" Or $oIE.readyState = 4)
		Sleep(100)
	WEnd
EndFunc
	Умеет копать, умеет закупать инструмент.
Все остальное можно найти...
Full версия гоняет летунов в БП, бодается, бодается по списку, открывает поляны, следит за зверем(выпускает/прячет) и много чего еще.
	            