BorderGame

Versione completa: Come creare un job bot per NosTale
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
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.
İmage
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").
İmage
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)
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.

Codice:
$finestra = "NosTale"
$handle = Wingethandle($finestra)
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.

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
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:
Codice:
ControlSend($finestra, "", "", "{x}")

Codice:
Func Esci()
Exit
EndFunc
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.
İmage
Sono bannabile?
No, ma se molto probabilmente un GM ti contatta tu devi rispondere.
İmage
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.
Ciao, bella guida, molto semplice da capire e da attuare. Uno di questi giorni proverò a crearlo per vedere e funzionano codici!Tongue
Ti ringrazio.
Per quanto ho sempre saputo io questa sezione è idonea unicamente a release di hack e bot già pronti, se devi scrivere una guida c'è un'altra sezione apposita..
Spostata nell'apposita sezione.
Ottima guida Rivaille Wink
Bravo, ottima guida +2
Diciamo che hai utilizzato un sistema molto "friendly user" Smile comunque bravo Wink
asd, si dice user-friendly per la cronaca
comunque bravo per aver postato, aggiungi qualche funzioncina che di bot così se ne trovano a bizzeffe!
Direi che il prossimo passo per renderlo più "avvincente" è quello di usare i pointer per il controllo HP/MP o ecc...
PS: Spero in una continuazione di tale guida Wink
Innanzitutto ringrazio tutti quelli che hanno apprezzato la guida.


@Gafra96 Non so farlo, ma anche se lo avessi saputo fare non lo avrei comunque aggiunto perché questa vuole essere una guida semplice e basilare, qualcuno ha scritto che ce ne sono già tante ma sinceramente non trovo molte guide che spiegano come creare un job bot, bensì bot già pronti all'uso data la facilità con cui vengono scritti.
Rivaille anche aggiungendo quelle funzioni, e postando sempre il codice e le dovute spiegazioni che hai fornito fin'ora la guida risulterebbe ugualmente semplice da seguire; ti consiglio di studiare il funzionamento e l'uso di CE (Cheat Engine), e come modificare/leggere la memoria sfruttando i pointer con l'autoit, riusciresti a fare dei semplici e carini hack in questo modo, poiché la maggior parte delle persone ha iniziato così.
(19-11-2014 05:40 PM)~Giorigo1~ Ha scritto: [ -> ]@Rivaille sfruttando i pointer con l'autoit, riusciresti a fare dei semplici e carini hack in questo modo, poiché la maggior parte delle persone ha iniziato così.

Dal momento che il mio obbiettivo non è quello di diventare Elite Coder bensì quello di creare un tutorial intuitivo, semplice e DIRETTO come già ribadito precedentemente non modificherò nulla e terrò invariata la guida.
Nonostante ciò nessuno vi vieta di creare guide altrettanto utili, anzi ben venga!
Beh, il non voler diventare Elite Coder non implica obbligatoriamente il non dar spazio anche un minimo alla curiosità di vedere come funziona o è strutturata una cosa, ma essendo tua la guida fa' come preferisci ovviamente.
URL di riferimento