Автоматика фармит бабло, все идет отлично. Но вот когда дело доходит до "заточки" шмота, возникает вопрос: да сколько уже можно?. Собственно процесс происходит на пвп сервере, только там руки стачиваешь быстрее чем шмот на персе.
Стало быть надо чтоб это все еще и точилось само
.
Скрипт точит пачку закупленных вещей. 12 вещей, по 6 штук в ряд. До +4.
расположение что где находится смотреть в скриншоте.
Собсно сам скрипт:
Не пинать меня. Сделано давно, и до сих пор работает. Как часы, тупо и беспощадно
Стало быть надо чтоб это все еще и точилось само

Скрипт точит пачку закупленных вещей. 12 вещей, по 6 штук в ряд. До +4.
расположение что где находится смотреть в скриншоте.
Собсно сам скрипт:
Код:
Opt("PixelCoordMode", 0) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 0) ;Отсчет координат мыши от левого верхнего угла клиентской части окна
Global $Paused
Global $sWinDo = "" ;хендл окна
;матрица слотов. точу 12 вещей одну за другой. по 6 в ряду.
Dim Const $LineX[2] = [370, 406]
Dim Const $LineY[6] = [1068, 1103, 1138, 1175, 1214, 1241]
;Конец блока
;MouseMove(727,528) Координаты сброса шмотки на точку
;MouseUp("left") Бросаем
;MouseClick ("left",645,639,1) жмем "Точить"
HotKeySet("{NUMPAD1}", "Enchant") ; команда к действию
HotKeySet("{NUMPAD2}", "TogglePause") ; пауза
HotKeySet("{NUMPAD3}", "Terminate") ; завершение скрипта
HotKeySet ( "{F1}", "_GetWinHandle1") ; по нажатию Ф1 скрипт подхватывает активное окно игры
While 1
Sleep(100)
WEnd
Func Enchant()
WinMove($sWinDo, "", 0, 0)
WinActivate ($sWinDo)
;Sleep (10000)
$A = 0 ; горизонталь 0, первая линия
$C = 0 ; счетчик итераций. с нуля идем
While $C <1 ; итерации. сколько раз надо проходить по всему списку из 12 вещей.
While $A < 2 ; цикл переключает горизонталь. с верхней на нижнюю
$B = 0 ; Вертикаль 0, первый слот значит
While $B < 6 ; В этом цикле вещи перебираются по горизонтали.
Send("{F12}")
Sleep (200)
MouseMove($LineY[$B], $LineX[$A])
Sleep (200)
MouseDown("left")
Sleep (500)
MouseMove(736,560) ; Координаты сброса шмотки на точку
Sleep (500)
MouseUp("left") ; Бросаем
Sleep (200)
MouseClick ("left",653,672,1) ; жмем "Точить"
Sleep (2000)
$B = $B +1
WEnd
$A = $A +1
WEnd
$C = $C +1
$A = 0 ; горизонталь 0, первая линия
WEnd
TrayTip ( "Заточка закончена", "Конец!", 3)
EndFunc
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc
Func Terminate()
Exit 0
EndFunc
Func _GetWinHandle1 () ; функция определения хэндла первого окна
$aAllWindows = WinList (); собираем все окна в массив
For $i = 1 to $aAllWindows[0][0]; перебираем все окна в цикле и проверяем активно ли оно
If _IsActive($aAllWindows[$i][1]) Then ; если окно активно, то это наше окно
$sWinDo = $aAllWindows[$i][1] ; помещаем его хэндл в заранее приготовленную переменную
TrayTip ( "Опознание окон", "1 Окно опознано!", 3)
HotKeySet ( "{F1}")
EndIf
Next
EndFunc
Func _IsActive($handle); функция проверки активно ли окно
If BitAnd( WinGetState($handle), 8 ) Then
Return 1
Else
Return 0
EndIf
EndFunc
Не пинать меня. Сделано давно, и до сих пор работает. Как часы, тупо и беспощадно
