Ajuda com um Script

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

kjaty
Posts: 36
Joined: 10 Dec 2019, 22:02

Ajuda com um Script

Post by kjaty » 02 Feb 2020, 22:24

Boa noite,
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
}

User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Ajuda com um Script

Post by Gio » 04 Feb 2020, 10:37

Bom dia Kjaty.

O código da função Autofire() não faz nada a menos que a variável _auto esteja com o valor positivo.

É por isso que existe a linha abaixo, mas por lógica ela nunca será executada se estiver após um return incondicionado (como de fato acabou ficando quando você colou embaixo do script de login).

:arrow: Coloque a linha abaixo na seção de auto-execução do seu script (logo após o SetBatchLines, -1):

Code: Select all

_auto := true ; Ative ou desative o anti-recuo. o padrão está ativado
Isso deve resolver uma parte. Agora quanto ao:

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.

Não consegui reproduzir esse efeito no código postado, mas recomendo verificar se o comando Send (que deve estar sendo usado na hora que você escreve a senha) não está ativando as hotkeys up. Utilize o modificador $ no nome da hotkey para impedir que um comando Send a ative.

kjaty
Posts: 36
Joined: 10 Dec 2019, 22:02

Re: Ajuda com um Script

Post by kjaty » 04 Feb 2020, 14:30

@Gio

Fiz alteração da linha apos o

Code: Select all

 SetBatchLines, -1
e o recoil funcionou, mais como vc deve ter reparado no codigo na parte do F3:: ele inicia movimentos automaticos do mouse de um local para outro iniciando o programa e digitando a senha, a minha dificuladade é eu queria que a unica tecla que ativa essa parte do macro fosse a F3:: e só ele mesmo, pois tenho outras teclas que desativa ou ativa o antrecoil mais queria que não interferissem no F3:: do login o que não esta acontecendo.

gelder

Re: Ajuda com um Script

Post by gelder » 25 Jun 2022, 09:29

Boa tarde! será que alguém pode me ajudar a criar um script usando AUTOHOTkey para o jogo diablo immortal?
queria uma script para andar sozinho e usar algumas habilidade
eu já uso um, mas muito simples que venho adaptando, já tentei mudar colocando alguns comandos para andar, porém nunca funciona.
eu reverti ele e coloquei só o básico pra usar habilidades, mas a movimentação não consigo de jeito nenhum funciona
atualmente estou usando somente esse, pra usar habilidades.
alguém pode ajudar pro personagem andar sozinho, tipo em círculos ou ir de um canto ao outro?

Code: Select all

MButton::

7

Send {E}
Send {F}  
Send {Q} 
Send {7}  

Sleep, 2000

}

Return
[Mod edit: [code][/code] tags added.]

Post Reply

Return to “Ajuda e Suporte Geral”