#cs http://autoit-script.ru/index.php?topic=17652.0
Если одна из функций (_Monahi(), _Razvedka(), _Ataka()) выполняют условие и отправляют
сообщение то она больше не должна отправлять сообщение в течении 30 мин.
#ce
#RequireAdmin
#include <ScreenCapture.au3>
Global $iPause[3]
HotKeySet('{ESC}', '_Exit')
WinActivate("Stronghold Kingdoms - Europe 1")
$hWnd = WinGetHandle("Stronghold Kingdoms - Europe 1") ; Это для скрина только окна игры
$sFileName_1 = @DesktopDir&'\Monahi.bmp' ; Путь\Имя для Монахов
$sFileName_2 = @DesktopDir&'\Ataka.bmp' ; Путь\Имя для aтаки
Sleep (1000)
Opt ( "MouseClickDelay", 1000)
AdlibRegister("_Check", 1000)
While 1
_Monahi()
_Razvedka()
_Ataka()
Sleep(250)
WEnd
Func _Monahi()
Local $hBmp
MouseClick('Left', 1244,90, 1) ; Переход по основной вкладке
MouseClick('Left', 1089, 136, 1) ; Переход по второстепенно вкладке
$coord = PixelSearch(1047, 465, 1107, 475, 0x312836) ; Если поле найдено
If Not @error Then
$hBmp = _ScreenCapture_CaptureWnd('', $hWnd)
_ScreenCapture_SaveImage($sFileName_1, $hBmp)
If Not $iPause[0] Then _Send_Email_Monahi ('На деревню идет монах', 'Монах')
EndIf
EndFunc;==>_Monahi
Func _Razvedka()
$coord = PixelSearch(1250, 80, 1262, 92, 0xFFFFF0) ; Если появились два меча
If Not @error Then
MouseClick('Left', 1244,90, 1) ; Переход по основной вкладке
MouseClick('Left', 895, 134, 1) ; Переход по второстепенно вкладке
$coord = PixelSearch(1047, 465, 1107, 475, 0x312836) ; Если есть поле отправка
If Not @error Then
If Not $iPause[1] Then
_Send_Email_Razvedka ('Разведка вашей деревни', 'Разведка')
_Ataka()
EndIf
EndIf
EndIf
EndFunc;==>_Razvedka
Func _Ataka()
;$coord = PixelSearch(1250, 80, 1262, 92, 0xFFFFF0); Если появились два меча
;If Not @error Then
Local $hBmp1
MouseClick('Left', 1244,90, 1) ; Переход по основной вкладке
MouseClick('Left', 830, 137, 1) ; Переход по второстепенно вкладке
$coord = PixelSearch(1047, 465, 1107, 475, 0x312836) ; Если есть поле отправка
If Not @error Then
$hBmp1 = _ScreenCapture_CaptureWnd('', $hWnd)
_ScreenCapture_SaveImage($sFileName_2, $hBmp1)
If Not $iPause[2] Then _Send_Email_Ataka('Ваша деревня атакована', 'Атака')
EndIf
EndFunc;==>_Ataka
Func _Send_Email_Monahi($Body, $Subject)
$FromAddress = '[email protected]' ; Адрес отправителя
$ToAddress = '[email protected]' ; Адрес получателя
$Username = '[email protected]' ; Логин отправителя
$Password = "1234" ; Пароль почты отправителя
$SMTPServer = 'smtp.gmail.com' ; SMTP-сервер
$Port = 465 ; Порт сервера
$SSL = 1 ; SSL
$AddAttachment = ('C:\Users\Администратор\Desktop\Monahi.bmp');отправляем файл
$conf = "http://schemas.microsoft.com/cdo/configuration/"
$hMAIL = ObjCreate ("CDO.Message")
With $hMAIL
.From = $FromAddress
.To = $ToAddress
.Subject = $Subject
.TextBody = $Body
.AddAttachment ('C:\Users\Администратор\Desktop\Monahi.bmp')
EndWith
With $hMAIL.Configuration.Fields
.Item ($conf & "sendusing") = 2
.Item ($conf & "smtpauthenticate") = 1
.Item ($conf & "sendusername") = $Username
.Item ($conf & "sendpassword") = $Password
.Item ($conf & "smtpserver") = $SMTPServer
.Item ($conf & "smtpserverport") = $Port
.Item ($conf & "smtpusessl") = $SSL
.Update
EndWith
$hMAIL.Send
$iPause[0] = 30
;MsgBox(64, 'На деревню идет монах', 'Монах', 1)
EndFunc;==>_Send_Email_Monahi
Func _Send_Email_Razvedka($Body, $Subject)
$FromAddress = '[email protected]' ; Адрес отправителя
$ToAddress = '[email protected]' ; Адрес получателя
$Username = '[email protected]' ; Логин отправителя
$Password = "1234" ; Пароль почты отправителя
$SMTPServer = 'smtp.gmail.com' ; SMTP-сервер
$Port = 465 ; Порт сервера
$SSL = 1 ; SSL
$conf = "http://schemas.microsoft.com/cdo/configuration/"
$hMAIL = ObjCreate ("CDO.Message")
With $hMAIL
.From = $FromAddress
.To = $ToAddress
.Subject = $Subject
.TextBody = $Body
EndWith
With $hMAIL.Configuration.Fields
.Item ($conf & "sendusing") = 2
.Item ($conf & "smtpauthenticate") = 1
.Item ($conf & "sendusername") = $Username
.Item ($conf & "sendpassword") = $Password
.Item ($conf & "smtpserver") = $SMTPServer
.Item ($conf & "smtpserverport") = $Port
.Item ($conf & "smtpusessl") = $SSL
.Update
EndWith
$hMAIL.Send
$iPause[1] = 30
;MsgBox(64, 'Разведка вашей деревни', 'Разведка', 1)
EndFunc;==>_Send_Email_Razvedka
Func _Send_Email_Ataka($Body, $Subject)
$FromAddress = '[email protected]' ; Адрес отправителя
$ToAddress = '[email protected]' ; Адрес получателя
$Username = '[email protected]' ; Логин отправителя
$Password = "1234" ; Пароль почты отправителя
$SMTPServer = 'smtp.gmail.com' ; SMTP-сервер
$Port = 465 ; Порт сервера
$SSL = 1 ; SSL
$AddAttachment = ('C:\Users\Администратор\Desktop\Ataka.bmp');отправляем файл
$conf = "http://schemas.microsoft.com/cdo/configuration/"
$hMAIL = ObjCreate ("CDO.Message")
With $hMAIL
.From = $FromAddress
.To = $ToAddress
.Subject = $Subject
.TextBody = $Body
.AddAttachment ('C:\Users\Администратор\Desktop\Ataka.bmp')
EndWith
With $hMAIL.Configuration.Fields
.Item ($conf & "sendusing") = 2
.Item ($conf & "smtpauthenticate") = 1
.Item ($conf & "sendusername") = $Username
.Item ($conf & "sendpassword") = $Password
.Item ($conf & "smtpserver") = $SMTPServer
.Item ($conf & "smtpserverport") = $Port
.Item ($conf & "smtpusessl") = $SSL
.Update
EndWith
$hMAIL.Send
$iPause[2] = 30
;MsgBox(64, 'Ваша деревня атакована', 'Атака', 1)
EndFunc;==>_Send_Email_Ataka
Func _Check()
If $iPause[0] Then $iPause[0] -= 1
If $iPause[1] Then $iPause[1] -= 1
If $iPause[2] Then $iPause[2] -= 1
;ConsoleWrite(StringFormat('_Monahi pause %d\r\n_Razvedka pause %d\r\n_Ataka pause %d\r\n\n', $iPause[0], $iPause[1], $iPause[2]))
EndFunc;==>_Check
Func _Exit()
AdlibUnRegister("_Check")
Exit
EndFunc;==>_Exit