Что нового

[Мышь, клавиатура] Клик мыши по координатам

Atavis

Новичок
Сообщения
2
Репутация
0
Добрый вечер.
Решил попробывать сделать Авто асист для игры Archeage, но что то не выходит. Обращаюсь к вам.
Вот сам код:
Код:
; разрешение экрана 1280х800
; F10 запуск / остановка кача

Opt("SendKeyDownDelay", 35) ; Глобальная задержка для удержания клавиши в нажатом состоянии 35мс
Opt("PixelCoordMode", 2)
Func _WinWaitActivate($title,$text,$timeout=0)
    WinWait($title,$text,$timeout)
    If Not WinActive($title,$text) Then WinActivate($title,$text)
    WinWaitActive($title,$text,$timeout)
EndFunc

ToolTip("started, wait aa", 0, 0)
$COUNTER=0
HotKeySet("{F10}","StartOrStop") ; хоткей старта и остановки если надо более одной копии скрипта запустить используйте другие клавиши
HotKeySet("{F11}","Terminate")
Global $STOP = True
Global $AA_TITLE = "- ArcheAge " ; Название ОКНА клиента. Если используете мульти-окна переименовывайте их по-разному и в точности вписывайте название (лучше скопировать)

Global $hp_color = 0x

; В данном варианте скрипт привяжется через HWND к первому найденному окну.
_WinWaitActivate($AA_TITLE ,"")
Global $hWnd = WinActive($AA_TITLE ,"")
sleep(1000)

ToolTip("aa found!", 0, 0)

Global $BUFF1_COUNT = TimerInit()
Global $BUFF2_COUNT = TimerInit()
Global $BUFF3_COUNT = TimerInit()
Global $NeedShield = False
Global $ShieldTryCount = 0

Do
    Sleep(1000)
Until $STOP = False
While (1)
    Main()
WEnd



Func Main()
HotKeySet("{F1}","click")
$pos = MouseGetPos()
MouseClick("primary", 428, 199, 1, 0)
Sleep (1000)
MouseClick("primary", 880, 64, 1, 0)
EndFunc

Func StartOrStop()
    If $STOP = True Then

        ;On START action
        ToolTip("STARTED! Press F10 for stop", 0, 0) ; подсказка о состоянии работы скрипта в левом верхнем углу
        $STOP = False
    Else
        ;On STOP action
        ;ColorCheck()
        ToolTip("STOPPED! Press F10 for start", 0, 0)
        $STOP = True
    EndIf
 EndFunc

Func Terminate()
    Exit 0
EndFunc


Суть в чем, хотелось чтобы при нажатии Определенной клавиши на клавиатур, по заданным координатам производился щелчок ЛКМ. Чтобы заново это произошло, нужно снова нажать на эту клавишу. Если есть такая возможность, хотелось чтобы анимация стрелки мыши не происходила.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Мышь, клавиатура] Помогите решить проблему

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Мышь, клавиатура] Помогите решить проблему" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Глобальный модератор.
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
1. Вы на F1 вешаете функцию "click", но нигде ее не реализуете. Main у вас вообще получается вызывается бесконечно после нажатия F10.
2. Вешаете горячую клавишу в цикле, каждый раз - неправильно. Перенесите туда, где F10 & F11

Вот, как-то так... кликает по F1, по F2 останавливается... Дополните своими таймерами.

Код:
HotKeySet("{F1}","Click")
HotKeySet("{F2}","StartOrStop")
Global $stop = false;

Func Click()
	$pos = MouseGetPos()
	MouseClick("",428,199,1,0)
	MouseClick("",880,64,1,0)
	MouseMove($pos[0],$pos[1],0)
EndFunc

Func StartOrStop()
	$stop = not $stop
EndFunc

While not $stop
    Sleep(300)
WEnd
 
Автор
A

Atavis

Новичок
Сообщения
2
Репутация
0
oesoes сказал(а):
1. Вы на F1 вешаете функцию "click", но нигде ее не реализуете. Main у вас вообще получается вызывается бесконечно после нажатия F10.
2. Вешаете горячую клавишу в цикле, каждый раз - неправильно. Перенесите туда, где F10 & F11

Вот, как-то так... кликает по F1, по F2 останавливается... Дополните своими таймерами.

Код:
HotKeySet("{F1}","Click")
HotKeySet("{F2}","StartOrStop")
Global $stop = false;

Func Click()
	$pos = MouseGetPos()
	MouseClick("",428,199,1,0)
	MouseClick("",880,64,1,0)
	MouseMove($pos[0],$pos[1],0)
EndFunc

Func StartOrStop()
	$stop = not $stop
EndFunc

While not $stop
    Sleep(300)
WEnd

Спасибо. Работает нормально, только в игре слишком быстро происходит анимация мышки и бывает крутится камера, или не корректно выделяет координаты. А можно сделать клик по Координатам без анимации? Не задействовав мышку в игре.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Atavis,
Предупреждение За нарушение общих правил (пункт В.2):
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Глобальный модератор.
 
Верх