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 |
|