ViSiToR
 
  
  Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Z4masko 23:16 14-11-2008  Цитата:|  атоматизировать действия во Flash роликах на Web сайтах  ?   |      Скорее всего что нет.      Inquisition 23:22 14-11-2008  Цитата:|   скрипт идет до конца, то есть выполняет все вплоть до $Middle5  |      Тогда как определяется что функция CombatCheck() не запускается? возможно ради проверки стоит добавить в её начало MsgBox:       Код: Func CombatCheck()        MsgBox(0, "", "Ok, function started")        .....   EndFunc  |          Цитата:|  весь принцип скрипта начинать с начала если произошло некое действие описаное функцией CombatCheck()  |      Любое действие можно повесить на отдельную функцию. В текущем виде это очень не стабильно, вот примерно нужно так (я тут вместо рекурсивного вызова функции, просто завершаю её, она сама запускается по новой в цикле):       Код:    ;Activate window and wait till it's opened (actualy till it's *Active*  ).   WinActivate("Легенда: Наследие Драконов")   WinWaitActive("Легенда: Наследие Драконов")      ;1=absolute, 0=relative, 2=client   Opt("MouseCoordMode", 0)   Opt("PixelCoordMode", 0)      ;Declare variable   Global $Runner      ;Mouse positions for moving to random map   Global $Array[5] = ["", "414,223", "471,233", "528,220", "470,204"]      ;On/Off the Main_Proc() & Exit the script   HotKeySet("{ESC}", "Terminate")   HotKeySet("{F9}", "ShowMe")      ;Главный цикл   While 1       Sleep(100)          Main_Proc()   WEnd      Func ShowMe()       $Runner = Not $Runner   EndFunc      ;If Esc is clicked then Exit the script   Func Terminate()       Exit   EndFunc      Func CombatCheck()       MsgBox(262144+64, @ScriptName, "OK, Func CombatCheck() has started." & @CRLF & @CRLF & "Press <OK> to continue.")          Sleep(3000)          $CombatCheck = PixelSearch(352, 365, 353, 366, 0x7AB800, 1)          If IsArray($CombatCheck) Then           MouseClick("Left", 381, 426)           Sleep(1000)           MouseClick("left", 511, 455)           Sleep(300)           MouseClick("left", 511, 441)           Sleep(300)           MouseClick("left", 511, 408)           Sleep(10000)              ;Main_Proc() ;Not needed, the loop will call the function       EndIf   EndFunc      ;The main bot   Func Main_Proc()       If Not $Runner Then Return ;Return if script is paused          ;Look for monster       $Coord = PixelSearch(129, 261, 858, 490, 0xfa6541)          ;If monster found, click on its coords       If IsArray($Coord) Then MouseClick("Left", $Coord[0], $Coord[1] - 1)          ;If monster not found, move to random map       If Not IsArray($Coord) Then           $Random = Random(1, 4, 1)           $Split = StringSplit($Array[$Random], ",")           MouseClick("Left", $Split[1], $Split[2])              ;Exit the function (look for monster)           Return       EndIf          ;START combat       MouseClick("Left", 289, 230)          Sleep(1000)          ;If combat with that monster already started, leave and restart script       $FightCheck = PixelSearch(309, 250, 310, 251, 0x0054e3, 2)          If IsArray($FightCheck) Then           MouseClick("Left", 525, 520)              ;Exit the function           Return       EndIf          CombatCheck()          ;Combat script | Search for attack button, click it, move on to next attack       Do           Sleep(100)           $Bottom1 = PixelSearch(352, 456, 353, 457, 0x68181b, 3)       Until IsArray($Bottom1)          If IsArray($Bottom1) Then MouseClick("Left", $Bottom1[0], $Bottom1[1] - 1)          CombatCheck()          Do           Sleep(100)           $Upper1 = PixelSearch(328, 377, 329, 378, 0x68181b, 12)       Until IsArray($Upper1)          If IsArray($Upper1) Then MouseClick("Left", $Upper1[0], $Upper1[1] - 1)          CombatCheck()          Do           Sleep(100)           $Upper11 = PixelSearch(328, 377, 329, 378, 0x68181b, 12)       Until IsArray($Upper11)          If IsArray($Upper11) Then MouseClick("Left", $Upper11[0], $Upper11[1] - 1)          CombatCheck()          Do           Sleep(100)           $Middle1 = PixelSearch(357, 429, 358, 430, 0x731111, 15)       Until IsArray($Middle1)          If IsArray($Middle1) Then MouseClick("Left", $Middle1[0], $Middle1[1] - 1)          CombatCheck()   EndFunc  |  
 
 
 ---------- ViSiToR a.k.a CreatoR CreatoR это не ник, CreatoR это стиль жизни! |  
  |   Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено:  00:02 15-11-2008  | Исправлено: ViSiToR,   00:04 15-11-2008    |  
  |