Здравствуйте. Какое-то время пользовался данным скриптом, но спустя время он перестал работать, хотя в коде ничего не менял.
Вот сам код:
Спустя время он перестал работать, выдавая такую ошибку:
Ошибка появляется при выполнении функции ragexeWait.
Вот сам код:
Код:
global $state = 1
global $aPos
;1 - Начало работы скрипта
;2 - Запускаем клиент из GG
;3 - Выбираем чара в чарселекте
While $state > 0
If not WinExists("Ragnarok") Then
TrayTip("", "Не найдено окно 'Ragnarok', запускаем GG", 1, 3)
start()
elseif WinExists("Ragnarok") Then
if $state = 1 Or $state = 2 then
TrayTip("", "Найдено окно 'Ragnarok', ищем окно 'Выбор сервера'", 1, 2)
$state = 2
sleep(2000)
ragexeWait ()
elseif $state = 3 then
TrayTip("", "Найдено окно 'Ragnarok', ищем окно с дисконнектом", 1, 3)
SearchDisconnect()
endif
endif
TrayTip("Статус: "&$state, "Ничего не найдено, ждём 5 секунд", 1, 3)
sleep (5000)
WEnd
Func start()
$c = IniRead ( "!GameGate.ini", "Raggame", "GameGate", 0)
if not $c then
MsgBox(0, "Func start", "Не найден файл !GameGate.ini. Скрипт будет закрыт.")
exit
endif
Run ($c&'GameGate.exe', $c)
WinWait("Ingamba GG")
Sleep(5000)
$hWnd = WinGetHandle("Ingamba GG")
$aPos = WinGetPos("Ingamba GG")
$b = PixelChecksum ($aPos[0]+625, $aPos[1]+435, $aPos[0]+795, $aPos[1]+465, $hWnd)
while ($b <> 25362625)
TrayTip ("", "Пытаюсь найти кнопку 'Начать играть'", 1, 1)
sleep (5000)
$aPos = WinGetPos("Ingamba GG")
$b = PixelChecksum ($aPos[0]+625, $aPos[1]+435, $aPos[0]+795, $aPos[1]+465, $hWnd)
WEnd
TrayTip ("Func start", "Кнопка найдена, нажимаю..", 1, 1)
MouseMove($aPos[0]+700, $aPos[1]+450);Нажимаем "Начать играть"
sleep(1000)
MouseClick("left")
$state = 2
ragexeWait ()
EndFunc
Func ragexeWait ()
WinWait("Ragnarok")
; TrayTip ("Func ragexeWait", "Ждём 20 секунд", 5, 1)
; Sleep(20000)
while ($state = 2)
sleep (5000)
WinActivate("Ragnarok")
WinMove("Ragnarok","",0,0)
$aPos = WinGetPos("Ragnarok")
$hWnd = WinGetHandle("Ragnarok")
$a = PixelChecksum ($aPos[0]+375, $aPos[1]+425, $aPos[0]+460, $aPos[1]+440, "Ragnarok")
$b = PixelChecksum ($aPos[0]+200, $aPos[1]+230, $aPos[0]+440, $aPos[1]+300, "Ragnarok")
If ($a = 985042166 or $a = 3404893879) Then
TrayTip ("Func ragexeWait", "Найдено окно 'Выбор сервера', нажимаем Enter, Enter", 3, 1)
MouseMove($aPos[0]+400, $aPos[1]+430);Нажимаем "ОК"
sleep(2000)
MouseClick("left")
MouseClick("left")
;Send("{ENTER}")
$state = 3
Sleep(3000)
CharSelect()
ExitLoop
elseif ($b = 3522986379) then
TrayTip ("Func ragexeWait", "Найдено окно 'Сервер еще обрабатывает Вашу ошибку...', нажимаем ОК и перезапускаем клиент", 3, 1)
$state = 1
start()
Else
TrayTip("Func ragexeWait", "Не найдено окно 'Выбор сервера'. $a="&$a&" $b="&$b, 3, 1)
Endif
wend
EndFunc
Func CharSelect()
;поумолчанию выбирается активный чар
; WinActivate("Ragnarok")
MouseMove($aPos[0]+540, $aPos[1]+435);Нажимаем "ОК"
sleep(2000)
MouseClick("left")
MouseClick("left")
;Send("{ENTER}")
EndFunc
Func SearchDisconnect()
$hWnd = WinGetHandle("Ragnarok")
$aPos = WinGetPos("Ragnarok")
;MsgBox(4096, "", $hWnd)
$b = PixelChecksum ($aPos[0]+190, $aPos[1]+210, $aPos[0]+460, $aPos[1]+320, $hWnd)
while ($b <> 77267562 and $b <> 77398635)
sleep (5000)
$aPos = WinGetPos("Ragnarok")
$b = PixelChecksum ($aPos[0]+190, $aPos[1]+210, $aPos[0]+460, $aPos[1]+320, $hWnd)
; MsgBox(4096, "", $a&" HEX:"&Hex($a, 6)&" md5:"&$b)
;100467454
;77267562
WEnd
MsgBox(0, "", "Найдено окно 'Потеряно соединение с сервером'", 3)
sleep(2000)
MouseMove($aPos[0]+440, $aPos[1]+310);Нажимаем "ОК"
MouseClick("left")
$state = 1
sleep(2000)
EndFunc
Спустя время он перестал работать, выдавая такую ошибку:
Ошибка появляется при выполнении функции ragexeWait.