Что нового

Клик в несколько координат, от одной указаной точки.

kolosov

Новичок
Сообщения
137
Репутация
0
Здравствуйте.
Возник токой вопрос.
Как сделать настройку бота от одной точки. Небольшой скрипт :
Код:
#include <GUIConstants.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
Global $Turnir1 [2]= [0,0]
Global $Kach [2] = [$Turnir1 [0], $Turnir1 [1] - 72]



GUICreate("Качок",300,250)
AutoItSetOption('GUIOnEventMode',1)
HotKeySet("{F10}","ExitApp")
GUISetState()
Global $Start = GUICtrlCreateButton("Старт",10,10)
Global $Setting = GUICtrlCreateButton("настройка",10,40)
Global $turnir = GUICtrlCreateCheckbox ("Сходить на турнир",10,70)
Global $SportZal = GUICtrlCreateCheckbox ("Сходить в тренажёрный зал",10,88)
Global $Time = GUICtrlCreateInput ("",10,210,50)
GUICtrlCreateLabel (" Сколько времини ждать после всех кликов?",70,217)
GUICtrlSetOnEvent($Start,'_Start')
GUICtrlSetOnEvent($Setting,'_Setting')


read()
Func _Setting ()
   MsgBox(0,"Настройка","Наведите мышку на Турнир.")
   Sleep(2000)
   $Turnir1 = MouseGetPos()
   MsgBox(0,"Настройка","Выполнено",1)
   IniWrite('Setting.ini','Setting','Turnir1X',$Turnir1  [0])
   IniWrite('Setting.ini','Setting','Turnir1Y',$Turnir1  [1])
EndFunc
Func read()
 $Turnir1[0] = IniRead('Setting.ini','Setting','Turnir1X','0')
 $Turnir1[1] = IniRead('Setting.ini','Setting','Turnir1Y','0')
 $kach[0] = IniRead('Setting.ini','Setting','kachX','0')
 $kach[1] = IniRead('Setting.ini','Setting','kachY','0')
   EndFunc
Func _Start()
   while 1
   If GUICtrlRead ($turnir) = 1 Then  _turnir ()
	  Sleep(100)
	  If GUICtrlRead ($SportZal) = 1 Then  _SportZal ()
	  Sleep(100)
	  
   Sleep( Int(GUICtrlRead($time)) *60*1000)
   WEnd
   EndFunc
Func ExitApp()
   Exit
EndFunc
While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend

Func _turnir()
   
   MouseClick('left',$turnir1[0],$turnir1[1])
   Sleep(13000)
   
   EndFunc
Func _SportZal()
   MouseClick('left',$Kach[0],$Kach[1])
   Sleep(13000)
   
   EndFunc


Пробовал вот так. Но чтото не работает. Кликает по 0.0
 

_ToBe_

Осваивающий
Сообщения
142
Репутация
35
Ну, наверно потому, что у тебя там написано вот:
Код:
Global $Turnir1 [2]= [0,0]
Global $Kach [2] = [$Turnir1 [0], $Turnir1 [1] - 72]

Func _SportZal()
   MouseClick('left',$Kach[0],$Kach[1])
   Sleep(13000)
   
 EndFunc


и в этой ф-ции ты просишь тыкнуть мышькой в координаты [0, -72] ... кажется он не кликает в отрицательные координаты.... посему кликает в [0, 0]
 
Автор
K

kolosov

Новичок
Сообщения
137
Репутация
0
Код:
Global $Turnir1 [2]= [0,0] ; Эти коорденаты запомнины.
Global $Kach [2] = [$Turnir1 [0], $Turnir1 [1] - 72]

И должно было быть так, что раз бот знает коорденаты стртовой точки, то вторая переменноя деложна была кликать тудаже куда и первоя только с Y-72. Тоисть от первой переменой от Y отнемаем 72 и клик идёт туда. Тоисть если первоя равна (Х=1000,У=572)
То вторая (Х=1000,У=500)
 

beliy

Продвинутый
Сообщения
372
Репутация
72
2 kolosov

Вы везде в условиях пропустили
Код:
EndIf
 
Автор
K

kolosov

Новичок
Сообщения
137
Репутация
0
Ну скрипт из без них работает. Ну всё рабно спасибо изменю. Хотя это не относится к вапросу :(
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
В массиве $Kach храните относительный координаты, например, -5,-10, а когда понадобится по ним нажимать, берете координаты из массива $Turnir1 и прибавляете в ним, то что храниться в $Kach
 
Автор
K

kolosov

Новичок
Сообщения
137
Репутация
0
Я Вас не понял. Не могли бы Вы небольшой примерик намутить?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
Global $Turnir1[2] = [0,0]
Global $Kach[2] = [0,-72]
;Дальше вы выполняете код и заполняете кооридаты $Turnir1
;я сделаю это вручную
$Turnir1[0] = 1000
$Turnir1[1] = 572
;Теперь нужно получить координаты из $Kach и кликнуть
$X = $Turnir1[0] + $Kach[0]
$Y = $Turnir1[1] + $Kach[1]
;X Y содержат координаты для кликов
MouseClick('left',$X,$Y)
 
Автор
K

kolosov

Новичок
Сообщения
137
Репутация
0
Я Вас понял . Спасибо большое за пример.


Добавлено:
Сообщение автоматически объединено:

Простите. Я тут посматрел.
Получилось что так клик то делоет. Но только если указывать в переменой камому корденаты первой переменной.
Скажите я что чтото не так сделал в IniRead что он не использует корденаты от туда?


Добавлено:
Сообщение автоматически объединено:

Переменые написал так:
Код:
Global $Turnir1 [2]= [0,0]
Global $Kach [2] = [0,-72]
Global $x = $Turnir1 [0] +  $kach [0]
Global $y = $Turnir1 [1] +  $kach [1]

+ Вот клик:
Код:
MouseClick('left',$x,$y)
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
не понятно что вы пишите если честно, вы не русский? Вычисляйте координаты в самой функции mouseclick, как то так:
Код:
MouseClick('left',$Turnir1 [0] +  $kach [0],$Turnir1 [1] +  $kach [1])
 
Автор
K

kolosov

Новичок
Сообщения
137
Репутация
0
Спасибо большое. Теперь всё работает.
 
Верх