Creare fottutissimi bot in AutoIt: I comandi #2

Luca Cicchinelli/ dicembre 28, 2016/ Developing/ 0 comments

Un bot non previsto dal gioco ma installato a parte può essere usato dal giocatore per imbrogliare; ad esempio nei giochi online multiplayer i bot possono essere sf
ruttati per giocare al posto della persona quando non è al computer, accumulando punti esperienza
 e dando un vantaggio sui giocatori normali. –Wikipedia

Quante volte vi sono andati in cancrena il braccio, la mano e l’indice a forza di aprire ostriche sul vostro retroserver preferito di Metin2? 

Oppure semplicemente non volete più distruggervi i polpastrelli per usare quelle dannatissime pozioni rosse?

Bella pe voi, siete nel posto giusto.

 

Nella prima parte di questo tutorial abbiamo imparato ad utilizzare le strutture di controllo in questa seconda parte analizzeremo i comandi di cui avremo bisogno per programmare al meglio i nostri cazzutissimi e cattivissimi bot.

Vi avevo preceduto nell’altra porzione di tutorial quali comandi avremmo conosciuto e ed utilizzato ma per comodità ve li trascrivo anche qui sotto:

  • MouseClick
  • MouseMove
  • MouseGetPos
  • Send
  • Sleep

MouseGetPos

NB: Il cursore del vostro mouse si trova in un punto determinato da due dati, le coordinate, rispettivamente x ed y, saranno fondamentali per utilizzare i comandi per controllare automaticamente il mouse.

Come posso conoscere le coordinate di un determinato punto? Semplice, utilizzando MouseGetPos, vediamo come:

MsgBox(48, "MouseGetPos", "Posiziona il cursore nel punto di cui vuoi conoscere le coordinate poi premi ENTER!")

$pos = MouseGetPos()

ConsoleWrite("x: " & $pos[0] & " y: " & $pos[1])

La variabile contenente MouseGetPos() avrà due valori di ritorno, rispettivamente x ed y.

  • $pos[0] conterrà x
  • $pos[1] conterrà y

E’ un metodo un po’ lento e stressante ma per trovare le coordinate di un punto sul vostro monitor, in AutoIt, è anche l’unico.

MouseMove

Ora che avete le vostre coordinate andiamo a capire come utilizzarle.

Per spostare semplicemente il cursore verso un determinato punto dovremo utilizzare MouseMove:

$x = InputBox("x", "Inserisci x")
$y = InputBox("y", "Inserisci y")
$speed = InputBox("speed", "Inserisci la velocità con cui vuoi si muova il mouse")

MouseMove($x, $y, $speed)

MouseMove necessita obbligatoriamente soltanto di due valori per funzionare: x ed y.

Il terzo valore, o meglio la velocità con cui si muoverà il mouse, è impostato di default a 10 (più sarà alto più il cursore si muoverà lentamente) perciò richiamando la funzione MouseMove possiamo anche ometterlo.

MouseClick

Il più delle volte nei vostri bot avrete bisogno di cliccare in un punto oltre che a muovere il cursore verso di esso, in questo caso andremo ad utilizzare MouseClick:

$button = InputBox("button", "right, left")
$x = InputBox("x", "Inserisci x")
$y = InputBox("y", "Inserisci y")
$speed = InputBox("speed", "Inserisci la velocità con cui vuoi si muova il mouse")
$clicks = InputBox("clicks", "Inserisci il numero di click che vuoi faccia il bot")

MouseClick($button, $x, $y, $clicks, $speed)

I valori obbligatori in questa funzione sono soltanto i primi tre:

  • Il tasto del mouse (right o left) che il tuo bot utilizzerà durante l’esecuzione di questa funzione.
  • x
  • y

I due valori rimanenti non sono obbligatori per far funzionare correttamente il comando ma potrete comunque impostarli in base alle vostre esigenze:

  • Il numero di click (impostato di default a 1)
  • La velocità con cui si muoverà il mouse (impostato, anche qui, di default a 10) verso il punto precedentemente indicato.

Send

Adesso è giunta l’ora di spammare qualcosa, come fare?

Con il vostro semplicissimo Send che simula comodamente qualunque tasto della vostra tastiera:

Send('xyz')

Per emulare i tasti speciali troverete la lista delle istruzioni che dovrete utilizzare all’interno dell’ help di AutoIt.

Sleep

Cosa fare se tra una spammata e l’altra dovete aspettare un certo lasso di tempo?

Utilizzerete Sleep, che non fa altro che mettere in pausa il vostro script per un certo numero di millisecondi:

 NB: Scrivendo 1000 è come se stessimo scrivendo 1 secondo!

 

Siete pronti a non toccare più il vostro mouse?

 

[Terza parte]

Facci sapere cosa ne pensi con un commento!