09-11-2014, 05:34 PM
Premessa
In questa guida tenterò di spiegarvi in modo molto "user friendly" come creare un BOT per jobbare o expare con AutoIT anche in background così che non dobbiate andare sempre alla ricerca di una discussione (e se siete fortunati trovare quella i cui link di download sono ancora online).
Il codice per creare un bot per jobbare non è complicato. Non darò la pappa pronta. Consiglio quindi di leggere anche le piccolissime spiegazioni dei vari comandi che lascerò in questa discussione e di non limitarvi a copia-incollare, è utile comprendere il codice che scriverete, riuscireste poi a personalizzare maggiormente il vostro bot oppure a crearne di diversi. Tuttavia potreste trovarvi in difficoltà nel comprendere al meglio, per cui è necessario conoscere almeno le basi di questo linguaggio.
Requisiti
Prima di cominciare a scrivere è necessario scaricare ed installare il pacchetto AutoIT che comprende l'editor SciTE Script Editor nel quale andremo appunto a scrivere il codice del nostro bot.
E' possibile scaricare tale pacchetto cercando su Google "autoit download" ed aprendo il primo risultato "AutoIt Downloads - AutoIt". A questo punto si preme sul bottone "Download AutoIT" nella tabella sotto "Current Versions".
In alternativa o se vi siete persi basta cliccare qui.
Stiamo scaricando il pacchetto di installazione di AutoIT che pesa circa 11,3 MB.
Aprite tale file ed eseguitelo.
Partirà il Setup Wizard, se la procedura d'installazione non è già cambiata al momento che state leggendo questa guida procedete in questo modo:
Next > I Agree > [*]Use x86 tools > Next > Edit the script > Next > Next > Install > togliete il tick da "Show release notes" > Finish.
[*]Se avete un sistema operativo a x64 è consigliato scegliere tale opzione durante l'installazione. Tuttavia se non lo sapete o non siete sicuri della scelta mettete x86.
Se volete sapere il tipo di sistema che avete ed avete Windows 7:
Premete START > Click Tasto destro su Computer > Proprietà. Leggete il vostro "Tipo di sistema" nella scheda "Sistema".
I sistemi a 32 bit sono x86.
AutoIT è stato installato.
Cercate sul vostro computer il file "SciTE Script Editor" oppure recatevi nella cartella d'installazione del programma (di default è "C:\Program Files (x86)\AutoIt3\SciTE\SciTE.exe").
Spiegazione alla creazione di un bot in background
Cominciamo col salvare subito il progetto con nome premendo l'icona del floppy oppure usando la combinazione di tasti CTRL + S e iniziamo a scrivere la prima parte del codice.
La prima cosa che scriveremo è una funzione che ci permetterà di evitare problemi di funzionamento ed equivale ad avviare il bot come amministratore.
Premiamo INVIO e scriviamo quest'altro codice, responsabile dell' avvio e dell'arresto del bot alla pressione di un tasto a vostra scelta.
In questo caso ho scelto F1 e F2, per vedere la lista dei codici di tutti i tasti premete qui e scrollate verso il basso.
Premete INVIO e passiamo al prossimo codice che questa volta ci aiuterà ad utilizzare il bot in background.
La variabile $finestra contiene il nome della finestra di gioco che solitamente è "NosTale".
La variabile $handle contiene una funzione che serve per ottenere l'handle della finestra di NosTale, questo ci permetterà di operare esclusivamente nella finestra di gioco.
Di nuovo INVIO e scriviamo ciò che deve fare il bot quando non è ancora partito cioè aspettare che noi premiamo il tasto F1.
Premiamo nuovamente INVIO e scriviamo due funzione: una contenente il ciclo while e l'altra che ci permetterà di uscire dal bot, quindi:
Se volete che il vostro personaggio raccolga automaticamente anche gli item droppati (auto-raccolta)dai mob inserite il seguente codice dopo il ControlSend e prima dello Sleep:
Le funzioni cominciano da Func Nome() e finiscono in EndFunc.
Nella funzione Inizia abbiamo scritto un ciclo while. Esso comincia da "While CONDIZIONE(nel nostro caso 1)" e finisce in "Wend". Tutto ciò che abbiamo scritto tra questo codice verrà ripetuto all'infinito.
Il comando ControlSend serve a simulare la pressione di un tasto in una determinata finestra. Se invece avemmo voluto simulare semplicemente la pressione di un tasto avremmo usato il comando Send.
Il comando Sleep serve per creare una pausa, il tempo è espresso in millisecondi (1000 ms = 1 sec). In questo caso serve ad evitare che il nostro processore ""si sforzi"" nell'eseguire il ciclo.
Nella seconda funzione Esci abbiamo inserito il comando Exit che serve per arrestare lo script.
Salvate ancora una volta il progetto con CTRL + S e siamo pronti per testarlo.
Per eseguire il codice da noi scritto basta premere F5, a quel punto passate alla finestra di NosTale, posizionatevi accanto ai pii o i mob che volete e premete F1 per startare il bot, quando volete smettere o vedete un GM basta premere F2 e lo script si arresterà.
E' possibile creare l'eseguibile del vostro bot, per farlo vi basterà cliccare sul menù "Tools > Build", troverai il file nella stessa cartella in cui è stato salvato il progetto.
Sono bannabile?
No, ma se molto probabilmente un GM ti contatta tu devi rispondere.
Conclusioni
Ho scritto questa guida senza testare il codice su NosTale a causa di problemi, tuttavia non dovrebbe contenere errori. Nel caso trovaste problemi non esitate a chiedere aiuto qui sotto.
In questa guida tenterò di spiegarvi in modo molto "user friendly" come creare un BOT per jobbare o expare con AutoIT anche in background così che non dobbiate andare sempre alla ricerca di una discussione (e se siete fortunati trovare quella i cui link di download sono ancora online).
Il codice per creare un bot per jobbare non è complicato. Non darò la pappa pronta. Consiglio quindi di leggere anche le piccolissime spiegazioni dei vari comandi che lascerò in questa discussione e di non limitarvi a copia-incollare, è utile comprendere il codice che scriverete, riuscireste poi a personalizzare maggiormente il vostro bot oppure a crearne di diversi. Tuttavia potreste trovarvi in difficoltà nel comprendere al meglio, per cui è necessario conoscere almeno le basi di questo linguaggio.
Requisiti
Prima di cominciare a scrivere è necessario scaricare ed installare il pacchetto AutoIT che comprende l'editor SciTE Script Editor nel quale andremo appunto a scrivere il codice del nostro bot.
E' possibile scaricare tale pacchetto cercando su Google "autoit download" ed aprendo il primo risultato "AutoIt Downloads - AutoIt". A questo punto si preme sul bottone "Download AutoIT" nella tabella sotto "Current Versions".
In alternativa o se vi siete persi basta cliccare qui.
Stiamo scaricando il pacchetto di installazione di AutoIT che pesa circa 11,3 MB.
Aprite tale file ed eseguitelo.
Partirà il Setup Wizard, se la procedura d'installazione non è già cambiata al momento che state leggendo questa guida procedete in questo modo:
Next > I Agree > [*]Use x86 tools > Next > Edit the script > Next > Next > Install > togliete il tick da "Show release notes" > Finish.
[*]Se avete un sistema operativo a x64 è consigliato scegliere tale opzione durante l'installazione. Tuttavia se non lo sapete o non siete sicuri della scelta mettete x86.
Se volete sapere il tipo di sistema che avete ed avete Windows 7:
Premete START > Click Tasto destro su Computer > Proprietà. Leggete il vostro "Tipo di sistema" nella scheda "Sistema".
I sistemi a 32 bit sono x86.
AutoIT è stato installato.
Cercate sul vostro computer il file "SciTE Script Editor" oppure recatevi nella cartella d'installazione del programma (di default è "C:\Program Files (x86)\AutoIt3\SciTE\SciTE.exe").
Spiegazione alla creazione di un bot in background
Cominciamo col salvare subito il progetto con nome premendo l'icona del floppy oppure usando la combinazione di tasti CTRL + S e iniziamo a scrivere la prima parte del codice.
La prima cosa che scriveremo è una funzione che ci permetterà di evitare problemi di funzionamento ed equivale ad avviare il bot come amministratore.
Codice:
#RequireAdmin
Premiamo INVIO e scriviamo quest'altro codice, responsabile dell' avvio e dell'arresto del bot alla pressione di un tasto a vostra scelta.
Codice:
HotKeySet("{F1}",Inizia)
HotKeySet("{F2}",Esci)
Premete INVIO e passiamo al prossimo codice che questa volta ci aiuterà ad utilizzare il bot in background.
Codice:
$finestra = "NosTale"
$handle = Wingethandle($finestra)
La variabile $handle contiene una funzione che serve per ottenere l'handle della finestra di NosTale, questo ci permetterà di operare esclusivamente nella finestra di gioco.
Di nuovo INVIO e scriviamo ciò che deve fare il bot quando non è ancora partito cioè aspettare che noi premiamo il tasto F1.
Codice:
while 1
sleep(300)
wend
Premiamo nuovamente INVIO e scriviamo due funzione: una contenente il ciclo while e l'altra che ci permetterà di uscire dal bot, quindi:
Codice:
Func Inizia()
While 1
ControlSend($finestra, "", "", "{SPACE}")
sleep(300)
Wend
EndFunc
Codice:
ControlSend($finestra, "", "", "{x}")
Codice:
Func Esci()
Exit
EndFunc
Nella funzione Inizia abbiamo scritto un ciclo while. Esso comincia da "While CONDIZIONE(nel nostro caso 1)" e finisce in "Wend". Tutto ciò che abbiamo scritto tra questo codice verrà ripetuto all'infinito.
Il comando ControlSend serve a simulare la pressione di un tasto in una determinata finestra. Se invece avemmo voluto simulare semplicemente la pressione di un tasto avremmo usato il comando Send.
Il comando Sleep serve per creare una pausa, il tempo è espresso in millisecondi (1000 ms = 1 sec). In questo caso serve ad evitare che il nostro processore ""si sforzi"" nell'eseguire il ciclo.
Nella seconda funzione Esci abbiamo inserito il comando Exit che serve per arrestare lo script.
Salvate ancora una volta il progetto con CTRL + S e siamo pronti per testarlo.
Per eseguire il codice da noi scritto basta premere F5, a quel punto passate alla finestra di NosTale, posizionatevi accanto ai pii o i mob che volete e premete F1 per startare il bot, quando volete smettere o vedete un GM basta premere F2 e lo script si arresterà.
E' possibile creare l'eseguibile del vostro bot, per farlo vi basterà cliccare sul menù "Tools > Build", troverai il file nella stessa cartella in cui è stato salvato il progetto.
Sono bannabile?
No, ma se molto probabilmente un GM ti contatta tu devi rispondere.
Conclusioni
Ho scritto questa guida senza testare il codice su NosTale a causa di problemi, tuttavia non dovrebbe contenere errori. Nel caso trovaste problemi non esitate a chiedere aiuto qui sotto.