Что нового

[Автоматизация] Как запустить два .exe скрипта одновременно

vindizel

Новичок
Сообщения
15
Репутация
0
Имеются два скрипта(Бот1.ехе,Бот2.ехе), первый(Бот1.ехе) выполняется сразу, а второй(Бот2.ехе) ждет если в первом возникнет ошибка, то нажимает на "ок" в окне ошибки запускает вторую копию себя, а сам начинает выполняться. Как такое осуществить? Если я запускаю два скрипта одновременно, то первый выполняется нормально, а второй который должен ждать, ожидает бесконечно независимо от того выдал ли первый бот ошибку или нет. Пробовал запускать любые два бота, всегда один работает, а второй зависает и не выполняется в чем причина подскажите.
Бот2.ехе
Код:
#include <ImageSearch2.au3>

$x = 0
$y = 0

HotKeySet("{ESC}", "Close")
HotKeySet("{F2}", "Pause")
HotKeySet("{F4}", "Startu")
HotKeySet("{F6}", "Runapp")
Startu()


Func Runapp()
		Run("C:\ГМ\Бот.exe")
EndFunc

Func _Startup()
   ToolTip("Скрипт запущен",0,0)
   While 1
	  Sleep(100)
   WEnd
EndFunc

Func Startu()
	ToolTip("Ошибка переполнение стека",0,0)
	While 1
		$ok = _ImageSearch("ok.png",1,$x,$y,0)
	  If $ok = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
                 Run("C:\ГМ\Бот.exe")
		 Mobil()
		 Else
			Sleep(100)
		 EndIf
	WEnd
EndFunc

Func Close()
   Exit
EndFunc
;..............................продолжение бота.
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Пытался проследить за ходом вашей мысли по тексту, но тщетно. Для чего вот например второй бот в окне ошибки жмет `ОК` и запускает копию себя ещё раз? То есть потом два одинаковых бота будут жать на кнопку? Два экземпляра второго бота, как я понял. А сам он, как вы написали начинает выполняться (он же и так уже выполнялся). И вот это к чему у вас:
Код:
ToolTip("Ошибка переполнение стека",0,0)
? Не постесняюсь спросить...
 
Автор
V

vindizel

Новичок
Сообщения
15
Репутация
0
Постараюсь написать по понятнее. Первый бот выполняется.Так как он написан мной не очень правильно(а как правильно написать я не знаю), то после 2-3 часов он выдает ошибку (в виде окна с кнопкой ок), о том что много рекурсий и во избежании переполнения стека работа скрипта будет завершена. Второй ждет когда он даст эту самую ошибку нажимает на ок, открывает копию себя, которая снова будет ждать ошибку, а сам продолжает выполняться вместо первого пока не даст такую же ошибку о переполнении стека,когда появляется ошибка тогда копия нажимает на кнопку ок и запускает еще одну копию себя, а сама выполняется вместо первого и так до бесконечности.
Код:
ToolTip("Ошибка переполнение стека",0,0)

Вот это выдает мне всплывающую подсказку о том на какой стадии выполнения находится бот.
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Сдается мне, что если два бота будут искать одну и ту же кнопку, и будут пытаться ее жать, то ничего хорошего не получится, придется какие-то костылинские задержки стряпать (ну я бы так не делал, но это IMHO). По моему лучше твоего бота поправить, чтобы он в бесконечную рекурсию не уходил или сделать так: пусть первый работает, второй за ним следит, если первый глюканул, то второй его перезапустил (первого) и тот заново работает. Как-то так чтоль...
 
Автор
V

vindizel

Новичок
Сообщения
15
Репутация
0
oesoes сказал(а):
Пусть первый работает, второй за ним следит, если первый глюканул, то второй его перезапустил (первого) и тот заново работает. Как-то так чтоль...
Я и так тоже пробовал не получается. Суть проблемы не в том какой бот какого будет запускать, а суть в том что когда у меня запущены два любых скрипта работает только один, а второй на фоне просто так висит. Запустил бота1 он работает, когда рядом запустил бота2 первый перестал выполняться и просто завис. Даже если я закрою второго первый к жизни уже не возвращается приходится закрывать через трей.
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
А там в скрипте ничего такого нет, что монопольный доступ для работы требует? Файл например открытый или памяти кусок?
 
Автор
V

vindizel

Новичок
Сообщения
15
Репутация
0
Вроде нет.
Вот весь бот1:
Код:
#include <ImageSearch2.au3>

$x = 0
$y = 0

;$xd = @DesktopHeight
;$yd = @DesktopWidth

;MsgBox(1,"", $xd & "@" & $yd)

HotKeySet("{ESC}", "Close")
HotKeySet("{F1}", "Mobil")
HotKeySet("{F2}", "Pause")
HotKeySet("{F3}", "Citadel")
Mobil()

Func _Startup()
   ToolTip("Скрипт запущен",0,0)
   While 1
	  Sleep(100)
   WEnd
EndFunc

Func Close()
   Exit
EndFunc

Func Pause()
   ToolTip("Пауза",0,0)
   While 1
	  Sleep(100)
   WEnd
EndFunc

Func Start()
   ToolTip("Запуск",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $mobila = _ImageSearch("mobil.png",1,$x,$y,0)
	  If $mobila = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Knkad()
	  Else
			$prolistat = _ImageSearch("prolistat.png",1,$x,$y,0)
			If $prolistat = 1 Then
			   MouseClick("left",$x,$y,2,10)
			   MouseMove(260, 120, 10)
			   Sleep(100)
			EndIf
		 EndIf
		 WEnd
	  ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
	 WEnd
EndFunc
;=======Кнопка кадавры в смартфоне=======
Func Knkad()
   ToolTip("Кнопка Кадавры",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $knkad = _ImageSearch("knkad.png",1,$x,$y,0)
	  If $knkad = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Vkad()
		 EndIf
	  WEnd
	  MsgBox(4096,"Условие","Сработало",10)
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
   EndFunc
;=======Выбор кадавра и клик по нему======
Func Vkad()
   ToolTip("Поиск кадавра",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $vkad = _ImageSearch("vkad.png",1,$x,$y,0)
	  If $vkad = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Napast()
	  Else
		 $sled = _ImageSearch("sled.png",1,$x,$y,0)
		 If $sled = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(1000)
		 Vkad2()
		 EndIf
	  EndIf
	   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc

Func Vkad2()
   ToolTip("Поиск кадавра",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $vkad = _ImageSearch("vkad.png",1,$x,$y,0)
	  If $vkad = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Napast()
	  Else
		 $sled = _ImageSearch("sled.png",1,$x,$y,0)
		 If $sled = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(1000)
		 Vkad()
		 EndIf
	  EndIf
	   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;======Кнопка напасть=========
Func Napast()
   ToolTip("Напасть",0,0)
While 1
   $i=0
   While $i < 1500
	  $i = $i+1
   $napast = _ImageSearch("napast.png",1,$x,$y,0)
	  If $napast = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Noviboi()
	  EndIf
	   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;========Кнопка Новый бой========
Func Noviboi()
   ToolTip("Новый бой",0,0)
While 1
   $i=0
   While $i < 1500
	  $i = $i+1
   $noviboi = _ImageSearch("noviboi.png",1,$x,$y,0)
	  If $noviboi = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Avakad()
	  EndIf
   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
	  WEnd
EndFunc
;========Аватарка кадавра=========
Func Avakad()
   ToolTip("Бой с кадавром",0,0)
While 1
    $i=0
   While $i < 5000
	  $i = $i+1
	  $mertv1 = _ImageSearch("mertv1.png",1,$x,$y,0)
	  $mertv = _ImageSearch("mertv.png",1,$x,$y,0)
	  If $mertv = 1 or $mertv1 = 1 Then
		 Sleep(100)
		 Krpob()
	  Else
		 $avakad2 = _ImageSearch("avakad2.png",1,$x,$y,0)
		 If $avakad2 = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove($x,$y, 10)
			Sleep(1500)
			Avakad2()
		 EndIf
	  EndIf
	  WEnd
	  ;==============
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc

Func Avakad2()
   ToolTip("Бой с кадавром",0,0)
While 1
    $i=0
   While $i < 5000
	  $i = $i+1
	  $mertv1 = _ImageSearch("mertv1.png",1,$x,$y,0)
	  $mertv = _ImageSearch("mertv.png",1,$x,$y,0)
	  If $mertv = 1 or $mertv1 = 1 Then
		 Sleep(100)
		 Krpob()
	  Else
		 $avakad = _ImageSearch("avakad.png",1,$x,$y,0)
		 $avakad2 = _ImageSearch("avakad2.png",1,$x,$y,0)
		 If $avakad2 = 1 or $avakad = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove($x,$y, 10)
			Sleep(500)
			Avakad()
		 EndIf
	  EndIf
	  WEnd
	  ;==============
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;=======Крестик окна победы над кадавром======
Func Krpob()
   ToolTip("Окно победы",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
 	  $krpob = _ImageSearch("krpob.png",1,$x,$y,0)
	  $krpob1 = _ImageSearch("krpob1.png",1,$x,$y,0)
	  If $krpob = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Mobil()
	  Else
		 $krpob1 = _ImageSearch("krpob1.png",1,$x,$y,0)
		 If $krpob1 = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove(260, 120, 10)
			Sleep(100)
			Mobil()
		 EndIf
	  EndIf
	  WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
   EndIf
  WEnd
EndFunc
;======Поиск и нажатие по мобильнику=====
Func Mobil()
ToolTip("Открытие мобильника",0,0)
While 1
$i=0
   While $i < 1500
	  $i = $i+1
	  $mobila = _ImageSearch("mobil.png",1,$x,$y,0)
	  If $mobila = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Knkad()
	  Else
		 $krmob = _ImageSearch("krmob.png",1,$x,$y,0)
		 If $krmob = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove(260, 120, 10)
			Sleep(100)
			Mobil2()
			EndIf
	  EndIf
   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
   EndIf
WEnd
EndFunc

Func Mobil2()
ToolTip("Открытие мобильника",0,0)
While 1
$i=0
   While $i < 1500
	  $i = $i+1
	  $mobila = _ImageSearch("mobil.png",1,$x,$y,0)
	  If $mobila = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Knkad()
	  Else
		 $krmob = _ImageSearch("krmob.png",1,$x,$y,0)
		 If $krmob = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove(260, 120, 10)
			Sleep(100)
			Mobil()
			EndIf
	  EndIf
   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
   EndIf
WEnd
EndFunc
;=====Если нету надписи ускорение загрузки ждать=====
Func Yskor()
   ToolTip("Ускорение загрузки",0,0)
   While 1
	  $i = 0
	  While $i < 1500
		 $i = $i+1
	  $yskor = _ImageSearch("yskor.png",1,$x,$y,0)
	  If $yskor = 1 Then
		 Sleep(100)
		 Yskorz()
	  Else
		 Sleep(100)
	  EndIf
   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor2()
	  EndIf
   WEnd
EndFunc

Func Yskor2()
   ToolTip("Ускорение загрузки",0,0)
   While 1
	  $i = 0
	  While $i < 1500
		 $i = $i+1
	  $yskor = _ImageSearch("yskor.png",1,$x,$y,0)
	  If $yskor = 1 Then
		 Sleep(100)
		 Yskorz()
	  Else
		 Sleep(100)
	  EndIf
   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;======Если есть надпись ускорение ждать пока не пропадет=====
Func Yskorz()
   ToolTip("Ускорение загрузки 2",0,0)
   While 1
	  $i = 0
	  While $i < 1500
		 $i = $i+1
	  $yskor = _ImageSearch("yskor.png",1,$x,$y,0)
	  If $yskor = 1 Then
		 Sleep(100)
		 Mobil()
	  Else
		 Sleep(100)
	  EndIf
	   ;==============
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
		 EndIf
   WEnd
   WEnd
EndFunc
;==============================================================================================
Func Citadel()
    ToolTip("Бой с кадавром",0,0)
While 1
    $i=0
   While $i < 5000
	  $i = $i+1
	  $mertv1 = _ImageSearch("mertv1.png",1,$x,$y,0)
	  $mertv = _ImageSearch("mertv.png",1,$x,$y,0)
	  If $mertv = 1 or $mertv1 = 1 Then
		 Sleep(100)
		 Krpob()
	  Else
		 $zevs = _ImageSearch("zevs.png",1,$x,$y,0)
		 If $zevs = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove($x,$y, 10)
			Sleep(500)
			Citadel()
		 EndIf
	  EndIf
	  WEnd
	  ;==============
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc

А вот весь Бот2:
Код:
#include <ImageSearch2.au3>

$x = 0
$y = 0

;$xd = @DesktopHeight
;$yd = @DesktopWidth

;MsgBox(1,"", $xd & "@" & $yd)

HotKeySet("{ESC}", "Close")
HotKeySet("{F1}", "Mobil")
HotKeySet("{F2}", "Pause")
HotKeySet("{F3}", "Citadel")
HotKeySet("{F4}", "Startu")
HotKeySet("{F6}", "Runapp")
Startu()


Func Runapp()
		Run("C:\ГМ\Бот.exe")
EndFunc


Func _Startup()
   ToolTip("Скрипт запущен",0,0)
   While 1
	  Sleep(100)
   WEnd
EndFunc

Func Startu()
	ToolTip("Ошибка рекурсии",0,0)
	While 1
		$ok = _ImageSearch("ok.png",1,$x,$y,0)
	  If $ok = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Mobil()
		 Else
			Sleep(100)
		 EndIf
	WEnd
EndFunc

Func Close()
   Exit
EndFunc

Func Pause()
   ToolTip("Пауза",0,0)
   While 1
	  Sleep(100)
   WEnd
EndFunc

Func Start()
   ToolTip("Запуск",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $mobila = _ImageSearch("mobil.png",1,$x,$y,0)
	  If $mobila = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Knkad()
	  Else
			$prolistat = _ImageSearch("prolistat.png",1,$x,$y,0)
			If $prolistat = 1 Then
			   MouseClick("left",$x,$y,2,10)
			   MouseMove(260, 120, 10)
			   Sleep(100)
			EndIf
		 EndIf
		 WEnd
	  ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
	 WEnd
EndFunc
;=======Кнопка кадавры в смартфоне=======
Func Knkad()
   ToolTip("Кнопка Кадавры",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $knkad = _ImageSearch("knkad.png",1,$x,$y,0)
	  If $knkad = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Vkad()
		 EndIf
	  WEnd
	  MsgBox(4096,"Условие","Сработало",10)
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
   EndFunc
;=======Выбор кадавра и клик по нему======
Func Vkad()
   ToolTip("Поиск кадавра",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $vkad = _ImageSearch("vkad.png",1,$x,$y,0)
	  If $vkad = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Napast()
	  Else
		 $sled = _ImageSearch("sled.png",1,$x,$y,0)
		 If $sled = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(1000)
		 Vkad2()
		 EndIf
	  EndIf
	   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc

Func Vkad2()
   ToolTip("Поиск кадавра",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $vkad = _ImageSearch("vkad.png",1,$x,$y,0)
	  If $vkad = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Napast()
	  Else
		 $sled = _ImageSearch("sled.png",1,$x,$y,0)
		 If $sled = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(1000)
		 Vkad()
		 EndIf
	  EndIf
	   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;======Кнопка напасть=========
Func Napast()
   ToolTip("Напасть",0,0)
While 1
   $i=0
   While $i < 1500
	  $i = $i+1
   $napast = _ImageSearch("napast.png",1,$x,$y,0)
	  If $napast = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Noviboi()
	  EndIf
	   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;========Кнопка Новый бой========
Func Noviboi()
   ToolTip("Новый бой",0,0)
While 1
   $i=0
   While $i < 1500
	  $i = $i+1
   $noviboi = _ImageSearch("noviboi.png",1,$x,$y,0)
	  If $noviboi = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Avakad()
	  EndIf
   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
	  WEnd
EndFunc
;========Аватарка кадавра=========
Func Avakad()
   ToolTip("Бой с кадавром",0,0)
While 1
    $i=0
   While $i < 5000
	  $i = $i+1
	  $mertv1 = _ImageSearch("mertv1.png",1,$x,$y,0)
	  $mertv = _ImageSearch("mertv.png",1,$x,$y,0)
	  If $mertv = 1 or $mertv1 = 1 Then
		 Sleep(100)
		 Krpob()
	  Else
		 $avakad2 = _ImageSearch("avakad2.png",1,$x,$y,0)
		 If $avakad2 = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove($x,$y, 10)
			Sleep(1500)
			Avakad2()
		 EndIf
	  EndIf
	  WEnd
	  ;==============
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc

Func Avakad2()
   ToolTip("Бой с кадавром",0,0)
While 1
    $i=0
   While $i < 5000
	  $i = $i+1
	  $mertv1 = _ImageSearch("mertv1.png",1,$x,$y,0)
	  $mertv = _ImageSearch("mertv.png",1,$x,$y,0)
	  If $mertv = 1 or $mertv1 = 1 Then
		 Sleep(100)
		 Krpob()
	  Else
		 $avakad = _ImageSearch("avakad.png",1,$x,$y,0)
		 $avakad2 = _ImageSearch("avakad2.png",1,$x,$y,0)
		 If $avakad2 = 1 or $avakad = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove($x,$y, 10)
			Sleep(500)
			Avakad()
		 EndIf
	  EndIf
	  WEnd
	  ;==============
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;=======Крестик окна победы над кадавром======
Func Krpob()
   ToolTip("Окно победы",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
 	  $krpob = _ImageSearch("krpob.png",1,$x,$y,0)
	  $krpob1 = _ImageSearch("krpob1.png",1,$x,$y,0)
	  If $krpob = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Mobil()
	  Else
		 $krpob1 = _ImageSearch("krpob1.png",1,$x,$y,0)
		 If $krpob1 = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove(260, 120, 10)
			Sleep(100)
			Mobil()
		 EndIf
	  EndIf
	  WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
   EndIf
  WEnd
EndFunc
;======Поиск и нажатие по мобильнику=====
Func Mobil()
ToolTip("Открытие мобильника",0,0)
While 1
$i=0
   While $i < 1500
	  $i = $i+1
	  $mobila = _ImageSearch("mobil.png",1,$x,$y,0)
	  If $mobila = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Knkad()
	  Else
		 $krmob = _ImageSearch("krmob.png",1,$x,$y,0)
		 If $krmob = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove(260, 120, 10)
			Sleep(100)
			Mobil2()
			EndIf
	  EndIf
   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
   EndIf
WEnd
EndFunc

Func Mobil2()
ToolTip("Открытие мобильника",0,0)
While 1
$i=0
   While $i < 1500
	  $i = $i+1
	  $mobila = _ImageSearch("mobil.png",1,$x,$y,0)
	  If $mobila = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Knkad()
	  Else
		 $krmob = _ImageSearch("krmob.png",1,$x,$y,0)
		 If $krmob = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove(260, 120, 10)
			Sleep(100)
			Mobil()
			EndIf
	  EndIf
   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
   EndIf
WEnd
EndFunc
;=====Если нету надписи ускорение загрузки ждать=====
Func Yskor()
   ToolTip("Ускорение загрузки",0,0)
   While 1
	  $i = 0
	  While $i < 1500
		 $i = $i+1
	  $yskor = _ImageSearch("yskor.png",1,$x,$y,0)
	  If $yskor = 1 Then
		 Sleep(100)
		 Yskorz()
	  Else
		 Sleep(100)
	  EndIf
   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor2()
	  EndIf
   WEnd
EndFunc

Func Yskor2()
   ToolTip("Ускорение загрузки",0,0)
   While 1
	  $i = 0
	  While $i < 1500
		 $i = $i+1
	  $yskor = _ImageSearch("yskor.png",1,$x,$y,0)
	  If $yskor = 1 Then
		 Sleep(100)
		 Yskorz()
	  Else
		 Sleep(100)
	  EndIf
   WEnd
   ;==============
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;======Если есть надпись ускорение ждать пока не пропадет=====
Func Yskorz()
   ToolTip("Ускорение загрузки 2",0,0)
   While 1
	  $i = 0
	  While $i < 1500
		 $i = $i+1
	  $yskor = _ImageSearch("yskor.png",1,$x,$y,0)
	  If $yskor = 1 Then
		 Sleep(100)
		 Mobil()
	  Else
		 Sleep(100)
	  EndIf
	   ;==============
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
		 EndIf
   WEnd
   WEnd
EndFunc
;==============================================================================================
Func Citadel()
    ToolTip("Бой с кадавром",0,0)
While 1
    $i=0
   While $i < 5000
	  $i = $i+1
	  $mertv1 = _ImageSearch("mertv1.png",1,$x,$y,0)
	  $mertv = _ImageSearch("mertv.png",1,$x,$y,0)
	  If $mertv = 1 or $mertv1 = 1 Then
		 Sleep(100)
		 Krpob()
	  Else
		 $zevs = _ImageSearch("zevs.png",1,$x,$y,0)
		 If $zevs = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove($x,$y, 10)
			Sleep(500)
			Citadel()
		 EndIf
	  EndIf
	  WEnd
	  ;==============
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
 

fortages

Новичок
Сообщения
81
Репутация
3
vindizel сказал(а):
если в первом возникнет ошибка, то нажимает на "ок" в окне ошибки
Почему бы к
Код:
MsgBox(flag, "title", "text")
не добавить просто timeout, который по истечении 10 секунд сам нажмет на "ок"? И условие, если ошибка, то... делаем "что-то", что должен по-вашему делать Бот2.ехе

https://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm
 
Автор
V

vindizel

Новичок
Сообщения
15
Репутация
0
Извините а к чему я не пойму?
Код:
MsgBox(flag, "title", "text")
К какому Боту я должен прописать msg с таймаут? Ошибка которую выдает Бот1 (Recursion level has been exceeded - AutoIt will quit to prevent stack overflow.) я не могу контролировать из самого бота1 поэтому я и написал Бот2 идентичным боту1 только с ожиданием окна ошибки перед выполнением. Мне по сути даже не важно закроет Бот2 ошибку или нет. Самое главное Глюкнул первый бот второй либо открыл первый заново либо начал работать вместо него, а у меня получается так запустил бот2 который ждет ошибку, запустил бот1 который выполняется, бот1 выдал ошибку а бот2 так ничего и не делает.
Извините если не понятно объясняю, просто с программированием знаком косвенно и Autoit изучаю недавно.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Код:
Local $hError = WinWait("AutoIt Error", "Line", 1)
If Not $hError = -1 Then
	ControlClick($hError, "", "Button1", "main", 1)
EndIf


fortages, вы наверное не так поняли и немного не то написали...
Тот код, который вы привели откроет окно с сообщением и через 10 секунд оно закроется.
А нужно закрыть уже существующее сообщение об ошибке (у этого сообщения нет таймаута) и по этому нужно кликнуть на кнопку ОК того окошка (а это и сделает ControlClick)...
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
так или иначе это все костыльные варианты. если оба бота пишутся одним человеком, то можно легко учесть все ошибки. можно учесть и зависания программы (на форуме года два назад я задавал вопрос, как отловить зависание приложения). если бот сам выдает "ошибку" через месадж, то это к категории обмена данными между процессами.
Автор, старайтесь быстрее отказаться от костылей и заметите как приятно ходить на двух ногах :smile:
 
Верх