Войти

Показать полную графическую версию : как правильно: if not @error или if isArray????


Antoschka2
08-04-2010, 22:10
добрыи день у меня какая-то неполатка в скрипте в @error как то нереагирует хотя всё работает скрипт просто выключается. Может кто подскажет что исправить чтобы заработал @error??? Или для этои ситуации if isArray неподходит????







WinWaitActive("www.--- - Windows Internet Explorer")
sleep(3000)
Call("generate")

Func generate ()

TrayTip("", "Работаем", 3, 16)
Sleep(4500)
$random = Random(0, 1, 1)
If $random = 0 Then
TrayTip("", "Работает функция odin", 3, 16)
odin()
TrayTip("", "", 0)
Else
TrayTip("", "Работает функция dva", 3, 16)
dva()
TrayTip("", "", 0, 16)
EndIf

EndFunc





Func odin ()
$Pos = PixelSearch(329, 352, 380, 444, 0x689CFE)
if IsArray($Pos) Then
MouseClick("left", $Pos[0], $Pos[1])
call ("generate")
EndIf
If @error then
sleep(1000)
Call("check1")
endIf
EndFunc

Func dva ()
$Pos = PixelSearch(870, 352, 901, 444, 0x689CFE)
if IsArray($Pos) Then
MouseClick("left", $Pos[0], $Pos[1])
sleep(100)
call ("generate")
EndIf
If @error then
sleep(1000)
Call("check1")
endIf
EndFunc


Func check1 ()
$Pos = PixelSearch(329, 352, 380, 444, 0x689CFE)
if IsArray($Pos) Then
MouseClick("left", $Pos[0], $Pos[1])
call ("generate")
EndIf
If @error then
sleep(1000)
Call("check2")
endIf
EndFunc

Func check2 ()
$Pos = PixelSearch(870, 352, 901, 444, 0x689CFE)
if IsArray($Pos) Then
MouseClick("left", $Pos[0], $Pos[1])
sleep(100)
call ("generate")
EndIf
If @error then
sleep(1000)
Call("check3")
endIf
EndFunc

Func check3 ()
$Pos = PixelSearch(329, 352, 380, 444, 0x689CFE)
if IsArray($Pos) Then
MouseClick("left", $Pos[0], $Pos[1])
call ("generate")
EndIf
If @error then
sleep(1000)
Call("reset")
endIf
EndFunc


Func reset()
MouseClick("left",194, 424, 1)
sleep(7500)
MouseClick("left", 780, 897, 1)
sleep(700)
$random = Random(0, 1, 1)
If $random = 0 Then
TrayTip("Бинго", "Бикини", 3, 16)
babi3()
TrayTip("Бинго", "Бикини", 0, 16)
Else
TrayTip("Бинго", "Минирок", 3, 16)
babi2()
TrayTip("Бинго", "Минирок", 0, 16)
EndIf
EndFunc


Func babi2()
MouseClick("left", 746, 937, 1)
sleep(3000)
call ("generate")
EndFunc

Func babi3()
MouseClick("left", 747, 951, 1)
sleep(3000)
call ("generate")
EndFunc

266903582
08-04-2010, 23:53
Antoschka2, если так за каждым вопросом прыгать на форум, то написание скриптов будет значительно растягиваться во времени.
Предлагаю более простой вариант: расставляй отметки о ходе работы программы в виде месседжбоксов или записей в консоль.
Я, например, предпочитаю вариант с консолью: ConsoleWrite("Выполняется строка N"&@CR)
Расставляешь такие пометки в проблемных участках и запускаешь...
Так ты сможешь отследить ход работы программы и понять в каком месте происходит ошибка.

Antoschka2
11-04-2010, 00:37
266903582, хорошая идея. только я не знаю как CONSOLE пользоватся :(

266903582
11-04-2010, 15:49
Antoschka2, в редакторе пишешь "ConsoleWrite", жмешь F1, получаешь всю необходимую информацию...




© OSzone.net 2001-2012