Alguém poderia me ajudar com o projeto abaixo, meu código tem duas foções, a primeira é para se logar no meu jogo e a segunda é um antrecoil, os dois separados funcionam bem mais quando uni os dois ficou bugado.
Ex. Gostaria de que quando eu pressionasse F3 o macro ativasse e executasse o login e depois ficasse inativo até que a tecla fosse pressionada novamente e desse modo não sofrendo interferência das outras teclas de ativação da segunda parte do macro para o antrecoil.
Tentei e ele logou perfeito, porem depois quando pressiono 1, 2, G, 3 e etc que são da segunda parte do macro meu mouse fica se mexendo sozinho tentando se logar novamente mesmo eu não apertando F3 é como se qualquer tecla fica ativando a primeira parate do macro.
Infomação adicional, a primeira parte do macro eu criei usando o Pulover's Macro Creator pois sempre que tentava escrever o código direto, até funcionava mas as coordenadas ficavam bugadas e dependendo de onde eu deixava o mouse parado o macro ia para lugares diferentes do que eu queria.
Code: Select all
#NoEnv
SetWorkingDir %A_ScriptDir%
CoordMode, Mouse, Window
SendMode Input
#SingleInstance Force
SetTitleMatchMode 2
#WinActivateForce
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1
F3::
Macro1:
WinActivate, Pulover's Macro Creator ahk_class AutoHotkeyGUI
Click, 872, 478, 0
Sleep, 344
WinActivate, ahk_class Shell_TrayWnd
Click, 1363, 15 Left, Down
Sleep, 15
Click, 551, 740, 0
Sleep, 63
Click, 551, 740 Left, Down
Sleep, 78
Click, 551, 740 Left, Up
Sleep, 750
Click, 68, 690, 0
Sleep, 4844
Click, 59, 266, 0
Sleep, 47
WinActivate, Launcher ahk_class HwndWrapper[Launcher.exe;;fc9faf81-7522-4886-a50e-352bda490e80]
Click, 59, 266 Left, Down
Sleep, 109
Click, 59, 266 Left, Up
Sleep, 219
Send, {Numpad0} ; Terminou a senha
Sleep, 2703
Click, 60, 267, 0
Sleep, 32
Click, 121, 373, 0
Sleep, 1234
Click, 121, 373 Left, Down ; click para logar
Sleep, 94
Click, 121, 373 Left, Up
Sleep, 828
Click, 561, 438, 0
Sleep, 109
Click, 561, 437, 0
Sleep, 3703
Click, 560, 437, 0
Sleep, 16
Click, 558, 438, 0
Click, 557, 440, 0
Sleep, 16
Click, 549, 450, 0
Click, 547, 452, 0
Click, 547, 453, 0
Sleep, 15
Click, 542, 460, 0
Click, 540, 462, 0
Click, 540, 463, 0
Click, 539, 464, 0
Click, 538, 465, 0
Sleep, 16
Click, 522, 487, 0
Click, 520, 489, 0
Click, 519, 490, 0
Sleep, 15
Click, 511, 501, 0
Click, 508, 503, 0
Sleep, 16
Click, 496, 516, 0
Click, 495, 516, 0
Sleep, 16
Click, 471, 538, 0
Click, 468, 541, 0
Click, 467, 542, 0
Click, 466, 543, 0
Click, 464, 544, 0
Click, 463, 546, 0
Sleep, 15
Click, 457, 550, 0
Click, 456, 551, 0
Sleep, 16
Click, 438, 565, 0
Click, 436, 566, 0
Sleep, 16
Click, 418, 579, 0
Click, 416, 580, 0
Click, 415, 581, 0
Sleep, 15
Click, 390, 598, 0
Click, 389, 598, 0
Click, 387, 600, 0
Click, 386, 600, 0
Sleep, 16
Click, 376, 606, 0
Click, 375, 607, 0
Sleep, 15
Click, 358, 618, 0
Click, 357, 618, 0
Click, 356, 619, 0
Click, 355, 619, 0
Sleep, 16
Click, 349, 623, 0
Sleep, 16
Click, 340, 627, 0
Click, 340, 628, 0
Click, 339, 628, 0
Sleep, 15
Click, 338, 628, 0
Click, 337, 628, 0
Click, 337, 629, 0
Sleep, 16
Click, 332, 631, 0
Sleep, 16
Click, 330, 632, 0
Sleep, 15
Click, 326, 634, 0
Sleep, 16
Click, 316, 638, 0
Click, 315, 639, 0
Click, 314, 639, 0
Click, 313, 640, 0
Sleep, 15
Click, 310, 641, 0
Click, 310, 642, 0
Click, 309, 642, 0
Click, 308, 642, 0
Sleep, 16
Click, 301, 645, 0
Click, 300, 645, 0
Sleep, 16
Click, 297, 647, 0
Sleep, 15
Click, 295, 648, 0
Click, 295, 649, 0
Sleep, 110
Click, 295, 649 Left, Down
Sleep, 93
Click, 295, 649 Left, Up
Sleep, 469
Return
; Segunda Parte do MAcro
_auto := true ; Ative ou desative o anti-recuo. o padrão está ativado
~LButton::autofire() ; Quando o botão é pressionado, execute a função de disparo automático ()
!LButton::_auto := ! _auto ;Alt + F2 used to toggle the anti-recoil on and off
~1 Up::
~!1 Up::
~3 Up::
~!3 Up::
Suspend, Permit
Suspend, OFF
SoundPlay, C:\Macro Beta 2\activated.wav
Return
~2 Up::
~!2 Up::
~5 Up::
~!5 Up::
~G Up::
~T Up::
~X UP::
Suspend, Permit
Suspend, ON
SoundPlay, C:\Macro Beta 2\disabled.wav
; autofire() function, name is misleading could easily be antiRecoil()
autofire()
{
global _auto
if _auto ; if _auto == true. i.e. is anti-recoil on?
{ ; anti-recoil on? If yes do this
Loop ; Continuously loop until a 'break' command
{
if GetKeyState("LButton", "P") ; If LButton is pressed
{ ; LButton pressed? If yes do this
Sleep 75 ; sleep for 85 milliseconds
mouseXY(0,14) ;Call the mouseXY() function which moves the mouse the specified distance. mouseXY( X, Y,)
Sleep 5 ; sleep for 45milliseconds
}
else ;LButton pressed? If no do this, i.e. exit the loop
break ;will stop the loop
} ;; loop
} ;; if
} ;; autofire() ; anti-recoil on? If no do nothing
mouseXY(x,y)
{
DllCall("mouse_event",uint,1,int,x,int,y,uint,0,int,0) ; moves the mouse could easily be the built in autohotkey MouseMove, X, Y
}