PDA

View Full Version : Richiesta Bot Scritto Con Il Codice Di Ac Tool


MJ83®
20-08-2009, 14:29
Salve, mi servirebbe un bot piuttosto semplice fatto con AC Tool (anche con un altro programma se preferite), purtroppo però non mi riesce bene, quindi se qualcuno conosce il codice e me lo può scrivere mi farebbe un gran favore.

Il bot come ho detto è abbastanza semplice, deve effettuare un controllo continuo e quando il pixel di coordinate x,y diventa di tot. colore, deve essere premuto 20 volte CTRL di sinistra (e deve essere assolutamente quello di sinistra). Tutto qui, e anche dopo che la condizione viene soddisfatta il ciclo si deve ripetere.

Coordinate e colore li inserisco io dopo, mi basta avere il codice.

Grazie.

Y3PP4
20-08-2009, 15:06
Salve, mi servirebbe un bot piuttosto semplice fatto con AC Tool (anche con un altro programma se preferite), purtroppo però non mi riesce bene, quindi se qualcuno conosce il codice e me lo può scrivere mi farebbe un gran favore.

Il bot come ho detto è abbastanza semplice, deve effettuare un controllo continuo e quando il pixel di coordinate x,y diventa di tot. colore, deve essere premuto 20 volte CTRL di sinistra (e deve essere assolutamente quello di sinistra). Tutto qui, e anche dopo che la condizione viene soddisfatta il ciclo si deve ripetere.

Coordinate e colore li inserisco io dopo, mi basta avere il codice.

Grazie.

Ciao,
sinceramente dubito che riuscirai a trovare qualcuno che voglia farti da zero - e da solo, per altro senza alcun interesse - un lavoro simile e completo. Tutt'al più, ti consiglio di chiedere consigli e iniziare a mostrare qualche stralcio (pur sbagliato) di codice.

Anche perchè te non hai chiesto un mockup su cui lavorare, hai proprio chiesto il lavoro finito.
Non ho alcun interesse a mettere in cattiva luce la tua richiesta (e non lo stò facendo), voglio solo darti qualche consiglio per evitare che il tuo topic rimanga senza ulteriori risposte.

Sicuramente sul sito ufficiale trovi della documentazione, inizia a googlare e cercare qualche stralcio di codice che potrebbe servirti, se dici che non deve fare nulla di complesso, meglio per te :).

Buona giornata.

PS. Parla uno ignorante in materia AC tool, ma che ha scritto qualche bot - anche se non per fare quello che hai detto tu -

Y3PP4
20-08-2009, 15:14
Per darti, comunque, un reale contributo, di seguito ti linko due guide che ho trovato subito su google con le keywords "tutorial ac tool" - ne ho sbirciate alcune e ti linko quelle che mi sembrano più ordinate -

http://www.mpcforum.com/showthread.php?t=170636
http://italiancheats.com/Thread-TUTORIAL-AcTool--8935

Byz!

MJ83®
20-08-2009, 15:34
Ciao, intanto ti ringrazio per la risposta.

Hai ragione sul fatto che ho chisto il lavoro già terminato, ma solo perché dovrebbe essere una cosa rapida di 5-6 righe (almeno credo) e perché onestamente non ho mai programmato in AC Tool, gli unici bot che ho fatto erano proprio cose minimali, della serie premere un tasto ogni tot intervallo di tempo :stordita:

Comunque darò sicuramente un'occhiata ai link che mi hai segnato, provo a combinare qualcosa e poi lo posto :fiufiu:

MJ83®
20-08-2009, 17:03
Con ACTool non mi trovavo bene e googolando un po' ho visto che la funzione che mi serve sta in AutoIt, quindi ora uso quello.

Ho buttato giù due righe di codice:

Dim $i
If PixelGetColor(596, 416) = b02728 Then
For $i = 1 To 20
send ("{LCTRL}")
next
EndIf

Allora il primo problema è che la funzione PixelGetColor richiede il codice del colore in decimale mentre io lo so ottenere solo in esadicamale (infatti per ora l'ho inserito così). Ho provato a cercare su Google ma non ho trovato niente che mi aiutasse a convertirlo, qualcuno sa farlo?

Il resto credo che vada bene ma ovviamente non ne sono affatto sicuro.

Ah e questo controllo deve essere ripetuto all'infinito, su ACTool basta settare su 0 la casella in basso a destra, con AutoIt non ho idea di come fare.

EDIT: risolto quasi tutto, mi rimane solo da capire come fare il loop infinito.

MJ83®
20-08-2009, 20:09
Finalmente sono riuscito a fare il bot come voglio io, perfettamente funzionante.

O meglio quasi perfettamente: il bot funziona bene nel senso che fa quello che voglio, il problema però è che funziona solamente due volte e basta :doh: Qualcuno saprebbe spiegarmi perchè?

Ecco il codice
$var = 1
Dim $i

While $var = 1
sleep (10)
If PixelGetColor (598,412) = 930135 Then
send ("{LCTRL 20}")
Endif
Wend

Y3PP4
20-08-2009, 21:09
Finalmente sono riuscito a fare il bot come voglio io, perfettamente funzionante.

O meglio quasi perfettamente: il bot funziona bene nel senso che fa quello che voglio, il problema però è che funziona solamente due volte e basta :doh: Qualcuno saprebbe spiegarmi perchè?

Ecco il codice
$var = 1
Dim $i

While $var = 1
sleep (10)
If PixelGetColor (598,412) = 930135 Then
send ("{LCTRL 20}")
Endif
Wend

Può dipendere dal fatto che te usi un operatore di assegnazione anzichè di eguaglianza nel while?

Ho cercato nella documentazione gli operatori e infatti = è solo assegnazione.

$var = 1
Dim $i

While $var == 1
sleep (10)
If PixelGetColor (598,412) = 930135 Then
send ("{LCTRL 20}")
Endif
Wend

Prova così se funziona. Non posso essere più preciso non conoscendolo :)
Fammi sapere, ciao.

[edit]
Confrontando gli statements con la documentazione sembrerebbero essere giusti, ma non non ho cercato per le funzioni :) (PixelGetColor, send)
[re:edit]
Ho controllato anche nella lista delle funzioni e in effetti esistono e credo facciano proprio al caso tuo - leggendo ciò che fanno -.

MJ83®
20-08-2009, 22:48
Stesso problema :(

Ah ho notato che quando lo fermo mi da questo errore

>Process failed to respond; forcing abrupt termination...
>Exit code: 1 Time: 3.070

Y3PP4
20-08-2009, 23:39
Stesso problema :(

Ah ho notato che quando lo fermo mi da questo errore

>Process failed to respond; forcing abrupt termination...
>Exit code: 1 Time: 3.070

Uhm. Proverò a cercare per aiutarti a risolvere il problema, non ho molto tempo, quindi se cerchi anche tu e posti eventuali cose interessanti magari esce fuori la soluzione.
Bada, ti dò una mano (per quanto mi è possibile) non ti faccio il lavoro, quindi stà a te impegnarti in merito :p

Peccato che non spunta nessun tuttologo :s

Riguardo l'errore, non ne sono certo ma potrebbe essere un messaggio del sistema operativo?
Praticamente ti dice che il processo (il programma in esecuzione) non risponde e quindi ne forza l'uscita la terminazione brusca.
Poi ti dice che esce col codice 1 (non essendo zero significa errore) e ti dà il tempo di esecuzione del process.

Ciao.

MJ83®
20-08-2009, 23:45
No no, non è del SO, me lo da nella finestra del programma riservata al check degli errori e warning nel codice ecc.

Grazie comunque per l'aiuto e la disponibilità:cincin:

Y3PP4
21-08-2009, 00:10
No no, non è del SO, me lo da nella finestra del programma riservata al check degli errori e warning nel codice ecc.

Grazie comunque per l'aiuto e la disponibilità:cincin:

A moment!

Se nell'if
If PixelGetColor (598,412) = 930135 Then


Vuoi paragonare il risultato di PixelGetColor alla cifra, cambia (nuovamente) = con == (comparazione).

Adesso che mi son messo a leggere lo statement mi è sorto il dubbio.

Prova e fammi sapere :)

[edit]

Ultima cosa che devi verificare per debug - qualora con la soluzione sopra non risolva è togliere (per ora) il 20 dall'istruzione
send ("{LCTRL 20}")


rendendola quindi un semplice send ("{LCTRL}")

Se dovesse funzionare cosi vuol dire che il problema è che non dichiari bene che l'operazione deve essere eseguita 20 volte... se è una keyword non la puoi storpiare cosi... nel caso proviamo con l'operatore aritmetico di moltiplicazione.

Y3PP4
21-08-2009, 00:17
Grazie comunque per l'aiuto e la disponibilità:cincin:

In cambio prometti fedeltà al forum, non fare come gli altri che si iscrivono risolvono e poi scappano...








:D

stò scherzando (non su quei tipi, ma sul fatto che in cambio devi promettere fedeltà al forum... basta solo la fedeltà a me :D)

MJ83®
21-08-2009, 00:30
Hehehe beh ad essere onesto c'ero già capitato qui ma senza mai iscrivermi perché in genere trovavo sempre le soluzioni già discusse da altri a quello che cercavo :p

Ho messo il doppio = anche nell'If, ora lo provo.

Il debug l'ho fatto diverse volte e non mi da errori con questo codice, inoltre ho usato quel comando leggendolo su una guida, quindi penso vada bene (infatti quando lo provo preme CTRL più volte, il problema è che ripete il ciclo due volte e poi non fa più niente).
E inoltre possibile dare particolari istruzioni a send:

CODICE
Send ("{A 4}")


invierà A 4 volte.

Ah a questo punto mi sembra doveroso (anche per essere più chiari) a cosa serve il bot.
http://img194.imageshack.us/img194/8100/fishing03.jpg
La Moving Bar si muove continuamente a sinistra e destra, io devo fare in modo che quando raggiunge la Perfect Zone venga premuto il CTRL di sinistra tot volte. Se viene fatto rapidamente a mano, la barra rimane ferma lì fino a che si continuano a fare "perfect", ma quando lo fa il pc che dovrebbe essere 100000 volte più veloce di me, molte volte "manca il bersaglio" e tante altre volte non lo centra proprio e non capisco il perché dato che la barra non si muove molto velocemente e che le coordinate e il colore sono precisi.

Y3PP4
21-08-2009, 00:41
Hehehe beh ad essere onesto c'ero già capitato qui ma senza mai iscrivermi perché in genere trovavo sempre le soluzioni già discusse da altri a quello che cercavo :p

Ho messo il doppio = anche nell'If, ora lo provo.

Il debug l'ho fatto diverse volte e non mi da errori con questo codice, inoltre ho usato quel comando leggendolo su una guida, quindi penso vada bene (infatti quando lo provo preme CTRL più volte, il problema è che ripete il ciclo due volte e poi non fa più niente).


Ah a questo punto mi sembra doveroso (anche per essere più chiari) a cosa serve il bot.
http://img194.imageshack.us/img194/8100/fishing03.jpg
La Moving Bar si muove continuamente a sinistra e destra, io devo fare in modo che quando raggiunge la Perfect Zone venga premuto il CTRL di sinistra tot volte. Se viene fatto rapidamente a mano, la barra rimane ferma lì fino a che si continuano a fare "perfect", ma quando lo fa il pc che dovrebbe essere 100000 volte più veloce di me, molte volte "manca il bersaglio" e tante altre volte non lo centra proprio e non capisco il perché dato che la barra non si muove molto velocemente e che le coordinate e il colore sono precisi.

Che esegua il ciclo solo due volte mi sembra strano...
Una cosa non capisco... perchè avvii il while e poi ci metti 10 secondi di pausa?
Anche la barra rimane ferma quei 10 secondi?

Comunque se sei sicuro (al 1000% - non mille x mille... mille x cento) che le coordinate sono giuste e il colore in hex dichiarato pure... il problema è nello script.
Le coordinate come le hai trovate?

Ti informo che la return value della PixelGetColor è un colore espresso in decimale non in hex. Se vuoi confrontarlo in hex devi usare l'apposita funzione Hex( colore )... che converte.
Ma per non mettere carne al fuoco assicurati di valutare correttamente il colore esprimendolo in decimale. (a sei cifre mi verrebbe da dire che lo dichiari hex, ma senza lettere di conferma non azzardo... non sono una cima nell'espressione dei colori in decimali)

guarda gli esempi per capire cosa intendo e leggi la return value .... decimal color
http://www.autoitscript.com/autoit3/docs/functions/PixelGetColor.htm

MJ83®
21-08-2009, 00:52
Il tempo è espresso in millessimi di secondi quindi 10 equivale a 0.01 secondi (cioè un centesimo di secondo)
L'ho fatto perché (lo so probabilmente è una cosa stupida) mi è venuto in mente che mettere un loop infinito che fa un controllo ogni millesimo di secondo (se non ancora più rapido, non so quanto sia la frequenza se non si pongono pausee) potesse far intrippare windows e bloccare il programma. Probabilmente è una cosa inutile ma dubito dipenda da quello il problema.

Delle coordinate sono sicuro al 1000%, la barra (intendo quella intera non quella che si muove ovviamente) rimane sempre nella stessa posizione dello schermo, quindi ho fatto uno screenshot (il gioco in cui è presente la barra è full screen) e con Photoshop ho preso le coordinate (segna i pixel esatti in cui si trova il cursore e in più ho verificato usando anche le linee guida e i righelli). Per il colore ho usato sempre Photoshop, ho preso il campione con il Contagocce, ho guardato il valore esadecimare e poi con un convertitore online l'ho convertito in decimale, infatti il valore di quel colore contiene lettere quando lo prendo da Photoshop. E sull'utilizzo di quest'ultimo vado sul sicuro dato che c'ho lavorato 8 ore al giorno per un anno e mezzo :)

EDIT: riguardo il ciclo che dopo un po' non viene più eseguito l'unica cosa che mi viene in mente è che appunto il programma si blocca (vedi l'errore che mi segna quando stoppo il bot). Però ho fatto una prova togliendo la condizione IF e facendogli scrivere su un file di testo "A" quattro volte ripetuto all'infinito e funziona.

Y3PP4
21-08-2009, 01:06
Il tempo è espresso in millessimi di secondi quindi 10 equivale a 0.01 secondi (cioè un centesimo di secondo)
L'ho fatto perché (lo so probabilmente è una cosa stupida) mi è venuto in mente che mettere un loop infinito che fa un controllo ogni millesimo di secondo (se non ancora più rapido, non so quanto sia la frequenza se non si pongono pausee) potesse far intrippare windows e bloccare il programma. Probabilmente è una cosa inutile ma dubito dipenda da quello il problema.

Delle coordinate sono sicuro al 1000%, la barra (intendo quella intera non quella che si muove ovviamente) rimane sempre nella stessa posizione dello schermo, quindi ho fatto uno screenshot (il gioco in cui è presente la barra è full screen) e con Photoshop ho preso le coordinate (segna i pixel esatti in cui si trova il cursore e in più ho verificato usando anche le linee guida e i righelli). Per il colore ho usato sempre Photoshop, ho preso il campione con il Contagocce, ho guardato il valore esadecimare e poi con un convertitore online l'ho convertito in decimale, infatti il valore di quel colore contiene lettere quando lo prendo da Photoshop. E sull'utilizzo di quest'ultimo vado sul sicuro dato che c'ho lavorato 8 ore al giorno per un anno e mezzo :)

Riguardo la pausa, beh probabile che sia inutile (dato che difficilmente il pc si "intrippa" per un semplice while, non è iterativa la gestione ma concorrenziale (esegue un processo alla volta contemporaneamente - secondo le specifiche dell'OS). Ma qui andiamo nel basso livello. Certamente un ciclo di clock della cpu (da cui dipende la velocità con cui vengono portati a termine i compiti - e quindi la velocità di esecuzione di un dato programma in certe condizioni -)è molto più rapido di un centesimo di secondo (tieni presente che oggigiorno la frequenza si indica in GHz (un miliardo di cicli al secondo).
Io non lo lascerei (proprio perchè non ha un nesso logico - non causerà l'errore, ma non ha senso lasciarlo lì - è come se ti mettessi a fare continuamente 120 * 9 per perdere tempo... non ha senso, inoltre i programmi devono essere efficienti - per tempo e risorse -).

Riguardo agli altri miei quesiti, non metto in dubbio la tua esperienza con Photoshop :) era solo che non sapevo come l'avevi calcolato.
Un unico consiglio, fai la prova del nove con l'hex -> dec converter utilizzandone un'altro e comparandone i risultati (non mi fido mai).
Comunque se due volte il ciclo viene eseguito e poi no... non è quello.
Uhm... a sto punto se non si trovano soluzioni non resta che provare... io ti consiglio intanto di rivolgere un quesito al loro forum (http://www.autoitscript.com/forum/index.php) Almeno avrai una risposta sicura (spero) sul problema, intanto noi proviamo, ma se non dovessimo risolvere avranno già iniziato a leggere il quesito e ci saranno maggiori probabilità - e minor tempo di attesa - per una risposta.

:)
[edit]
letto ora il tuo edit....
allora prova a salvare il risultato della funzione del pixel in una variabile, poi usi la variabile per la comparazione.

Inoltre se vuoi potresti provare a usare questa volta (sfruttando il valore della variabile) la funzione Hex( $variabile_con_colore) e confrontarlo (==) con il valore in ESADECIMALE (non più decimale).

$var = PixelGetColor( xx, yy )

Nota che Hex vuole come primo parametro il valore ( nel nostro caso la var) come secondo parametro - opzionale - la lunghezza. Dato che l'hex è 6 cifre mettici 6 - se no lascia perdere il valore opzionale -.
http://http://www.autoitscript.com/autoit3/docs/functions/Hex.htm
Ps. io ora andrei a nanna... tu posta pure e giuro che domattina leggo - se non vado ora sarà dura alzarsi alle 7.30 :) -

Ciao ciao e buona notte.

MJ83®
21-08-2009, 01:29
Riguardo la pausa, beh probabile che sia inutile (dato che difficilmente il pc si "intrippa" per un semplice while, non è iterativa la gestione ma concorrenziale (esegue un processo alla volta contemporaneamente - secondo le specifiche dell'OS). Ma qui andiamo nel basso livello. Certamente un ciclo di clock della cpu (da cui dipende la velocità con cui vengono portati a termine i compiti - e quindi la velocità di esecuzione di un dato programma in certe condizioni -)è molto più rapido di un centesimo di secondo (tieni presente che oggigiorno la frequenza si indica in GHz (un miliardo di cicli al secondo).
Io non lo lascerei (proprio perchè non ha un nesso logico - non causerà l'errore, ma non ha senso lasciarlo lì - è come se ti mettessi a fare continuamente 120 * 9 per perdere tempo... non ha senso, inoltre i programmi devono essere efficienti - per tempo e risorse -).
In realtà la pausa non appesantisce il bot anzi lo alleggerisce, è proprio per quello che l'ho inserita. Un centesimo di pausa per un umano è insignificante ma per un pc fa la sua differenza.
Infatti ho appena provato togliendo la pausa e si produce un lag grafico notevole, quindi è meglio lasciarla mi sa.
Riguardo agli altri miei quesiti, non metto in dubbio la tua esperienza con Photoshop :) era solo che non sapevo come l'avevi calcolato.
Sì sì tranquillo, era solo per dire che almeno su quelle due cose vado sul sicuro e non ho dubbi.
Un unico consiglio, fai la prova del nove con l'hex -> dec converter utilizzandone un'altro e comparandone i risultati (non mi fido mai).
Ho provato con altri due convertitori e il risultato è lo stesso.
Uhm... a sto punto se non si trovano soluzioni non resta che provare... io ti consiglio intanto di rivolgere un quesito al loro forum (http://www.autoitscript.com/forum/index.php) Almeno avrai una risposta sicura (spero) sul problema, intanto noi proviamo, ma se non dovessimo risolvere avranno già iniziato a leggere il quesito e ci saranno maggiori probabilità - e minor tempo di attesa - per una risposta.
Buona idea, vedrò di esporre il problema anche là.

EDIT: uhm il forum è in inglese quindi penso lo farò domai data l'ora... per me è già complicato discutere e capire queste cose in iitaliano, figurati se devo andarle a spiegare in inglese :-p
letto ora il tuo edit....
allora prova a salvare il risultato della funzione del pixel in una variabile, poi usi la variabile per la comparazione.

Inoltre se vuoi potresti provare a usare questa volta (sfruttando il valore della variabile) la funzione Hex( $variabile_con_colore) e confrontarlo (==) con il valore in ESADECIMALE (non più decimale).

$var = PixelGetColor( xx, yy )

Nota che Hex vuole come primo parametro il valore ( nel nostro caso la var) come secondo parametro - opzionale - la lunghezza. Dato che l'hex è 6 cifre mettici 6 - se no lascia perdere il valore opzionale -.
http://http://www.autoitscript.com/autoit3/docs/functions/Hex.htm
Ps. io ora andrei a nanna... tu posta pure e giuro che domattina leggo - se non vado ora sarà dura alzarsi alle 7.30 :) -

Ciao ciao e buona notte.
Mmhhh ho capito cosa vuoi dire anche se non sono sicuro di riuscirci, vedrò di trovare qualche guida per le funzioni... è la prima volta che uso questo programma (e si vede direi :D ) oltre al fatto che le mie uniche (e scarse) conoscenze di programmazioni risalgono a 6-7 anni fa quando usavo VB alle superiori :D

Y3PP4
21-08-2009, 08:41
Come promesso eccomi.
In realtà la pausa non appesantisce il bot anzi lo alleggerisce, è proprio per quello che l'ho inserita. Un centesimo di pausa per un umano è insignificante ma per un pc fa la sua differenza.

Parlando di risorse non è che si alleggerisce, semplicemente per quella frazione di secondo il sistema evita di richiamare il programma, lasciandolo lì in attesa. Di solito nei programmi non si mettono funzioni inutili, ma se vuoi lasciala :).

Infatti ho appena provato togliendo la pausa e si produce un lag grafico notevole, quindi è meglio lasciarla mi sa.

Sì sì tranquillo, era solo per dire che almeno su quelle due cose vado sul sicuro e non ho dubbi.

Ho provato con altri due convertitori e il risultato è lo stesso.

Chiaro.

Buona idea, vedrò di esporre il problema anche là.

EDIT: uhm il forum è in inglese quindi penso lo farò domai data l'ora... per me è già complicato discutere e capire queste cose in iitaliano, figurati se devo andarle a spiegare in inglese :-p

Mmhhh ho capito cosa vuoi dire anche se non sono sicuro di riuscirci, vedrò di trovare qualche guida per le funzioni... è la prima volta che uso questo programma (e si vede direi :D ) oltre al fatto che le mie uniche (e scarse) conoscenze di programmazioni risalgono a 6-7 anni fa quando usavo VB alle superiori :D
La guida sulle funzioni la trovi nella -completa- documentazione online del loro sito... c'è tutto lì.

link (http://www.autoitscript.com/autoit3/docs/functions.htm)

Ciao ciao!

MJ83®
21-08-2009, 13:51
Ho provato così
$x = 1

While $x == 1
sleep (10)
$col = PixelGetColor (598,412)
IF $col == 930135 then
send ("{LCTRL 20}")
Endif
Wend
ma non è cambiato nulla.

Riguardo l'utilizzo della funzione hex c'ho pensato ma non credo di aver capito come mi hai suggerito di usarla.
Ad ogni modo ho scritto nel forum di Autoit (ho cercato quello italiano però:D ) e ora attendo risposta.

Y3PP4
21-08-2009, 14:19
Ho provato così
$x = 1

While $x == 1
sleep (10)
$col = PixelGetColor (598,412)
IF $col == 930135 then
send ("{LCTRL 20}")
Endif
Wend
ma non è cambiato nulla.

Riguardo l'utilizzo della funzione hex c'ho pensato ma non credo di aver capito come mi hai suggerito di usarla.
Ad ogni modo ho scritto nel forum di Autoit (ho cercato quello italiano però:D ) e ora attendo risposta.

Riguardo il forum, se non dovessi trovare aiuto in quello in italiano, me lo dici e ti aiuto a scrivere in inglese la richiesta di aiuto - cosi magari proprio gli sviluppatori noteranno la tua richiesta, e comunque hai maggiore visibilità -.

Riguardo alla tua funzione hai l'If dichiarato tutto maiuscolo, ma da documentazione è capitalizzato: If ( quindi IF if sarebbero scorretti - dico sarebbero perchè non sò come è stato progettato il linguaggio, ma se non ti dà errori, o fà schifo (in senso buono) l'interprete o lo accetta. La hex ti consigliavo di usarla come nell'esempio di seguito:


; al posto di dichiarare una variabile, prova ad usare un loop infinito sulla condizione "vero"
While 1
; sleep(10) ora è commentato
$color = PixelGetColor( 590, 412 ) ; (x, y)
$hexc = Hex( $color, 5 ) ; 5 perchè il nostro hex è di 5 cifre
If hexc == E3157 Then ; l'ho convertito online con un hex->dec
Send( "{LCTRL 20}" )
EndIf
WEnd


Spero sia tutto giusto, come vedi ho capitalizzato tutti gli statement e le keywords esattamente come da documentazione, spesso potrebbe succedere che se l'interprete non è ultimato o non prevede certe condizioni fallisce ma non allerta correttamente l'utente (magari perchè danno per scontato che uno si legga tutta la documentazione, prevedendo l'eccezione).

Fammi sapere,
se poi _vuoi_ prova semplicemente a riscrivere la tua funzione capitalizzando tutti gli elementi del linguaggio.

Ciao!

MJ83®
21-08-2009, 15:32
Ho aggiunto il $ davanti a hexc che ti eri scordato e ho dovuto mettere tra " " il codice esadecimale, per il resto tutto ok.
Il BOT funziona (anche se fa più miss che perfect ma questo è un problema a cui penserò dopo), però rimane sempre il fatto che dopo poco si "blocca" quindi siam sempre lì. :muro:

Y3PP4
21-08-2009, 19:31
Ho aggiunto il $ davanti a hexc che ti eri scordato
oh! già scusami.

e ho dovuto mettere tra " " il codice esadecimale, per il resto tutto ok.

Beh almeno adesso hai un programmino di una certa eleganza xD e puoi direttamente usare gli hex.

Il BOT funziona (anche se fa più miss che perfect ma questo è un problema a cui penserò dopo), però rimane sempre il fatto che dopo poco si "blocca" quindi siam sempre lì. :muro:
Almeno adesso fà qualche ciclo in più o siam sempre a due? - nel caso inizierei a cercare qualche specifica... perchè mi suona strano.
Dall'altro forum nessuna nuova?

MJ83®
22-08-2009, 01:19
Mi hanno detto di provare così
$x= 1
While $x==1
sleep (10)
while PixelGetColor (598,412) = 930135
send ("{LCTRL}")
WEnd
Wend
Domani ci provo.

Y3PP4
22-08-2009, 01:36
Mi hanno detto di provare così
$x= 1
While $x==1
sleep (10)
while PixelGetColor (598,412) = 930135
send ("{LCTRL}")
WEnd
Wend
Domani ci provo.

Ok!
Fammi sapere poi :D

notte.

MJ83®
22-08-2009, 14:23
Stesso problema. Non credo a questo punto sia un errore di programmazione, anche perché sono solo poche righe... sembra che per qualche motivo il programma si blocchi. Ora devo andare, ma farò una prova togliendo la condizione e facendo premere CTRL ogni secondo per vedere se continua a farlo all'infinito o si blocca ancora.

Y3PP4
22-08-2009, 14:28
Stesso problema. Non credo a questo punto sia un errore di programmazione, anche perché sono solo poche righe... sembra che per qualche motivo il programma si blocchi. Ora devo andare, ma farò una prova togliendo la condizione e facendo premere CTRL ogni secondo per vedere se continua a farlo all'infinito o si blocca ancora.
Mah... non è che il codice viene eseguito tenendo presente di qualche configurazione?
Chessò io, magari un ambiente creato dall'interprete in cui definisce delle regole, regole modificabili da un file di configurazione....

mah. comunque è stranissimo.
Semmai fallo in C :D

MJ83®
23-08-2009, 01:29
Non ho capito una fava di quello che hai datto :D

MJ83®
23-08-2009, 16:48
Ho fatto il test, gli ho fatto premere CTRL ogni mezzo secondo in un ciclo infinito e funziona per un po' (tipo 30 secondi) e poi smette...

$x= 1
While $x==1
sleep (500)
send ("{LCTRL}")
Wend

Y3PP4
23-08-2009, 16:57
Ho fatto il test, gli ho fatto premere CTRL ogni mezzo secondo in un ciclo infinito e funziona per un po' (tipo 30 secondi) e poi smette...

$x= 1
While $x==1
sleep (500)
send ("{LCTRL}")
Wend

Quello che intendo io è che magari il programma viene interpretato tenendo presente alcuni parametri di configurazione. Non sò se ci sono tool che ti aiutino a far partire il programma o per altre cose. Magari - e dico magari - c'è una qualche configurazione che dice al programma "esegui i cicli while per max 30 secondi", forse per evitare un errore di infinite loop.
Boh!
Prova a dare una occhiata a cosa hai installato e guarda se ci sono file .ini o .conf.

Ciao!

MJ83®
25-08-2009, 22:35
Mah per ora penso di lasciar perdere, comunque ti ringrazio per l'aiuto e la sbatta che ti sei preso :flower:

Y3PP4
25-08-2009, 22:48
Mah per ora penso di lasciar perdere

Come vuoi :)

Io ti consiglio di non lasciar perdere, ma se hai qualche buon motivo per farlo - non perchè non ci riesci - rispetto la tua scelta.

Se hai questo problema la soluzione più rapida e indolore è esporre il problema sul loro forum e chiedere "perchè dopo 30 secondi, con l'algoritmo che mi avete consigliato, termina il tutto?" e vedrai che loro sapranno aiutarti.
comunque ti ringrazio per l'aiuto e la sbatta che ti sei preso :flower:
Figurati :)

MJ83®
26-08-2009, 17:02
Ma l'ho scritto infatti nel forum italiano, però non mi hanno più cagato :(

Y3PP4
26-08-2009, 19:55
Ma l'ho scritto infatti nel forum italiano, però non mi hanno più cagato :(

:mad: non sopporto i forum in cui ignorano le richieste. Meglio un "non lo sò".

Comunque, ripeto il mio consiglio già dato in precedenza. Armati di pazienda e di google translate - o qualunque altro traduttore - (se non sai bene l'inglese) e scrivi brevi frasi per esporre il tuo problema in inglese, avrai più visibilità (poichè l'inglese è diffuso in tutto il mondo) e quindi più probabilità di incontrare guru che sapranno darti una soluzione performante e adatta al tuo scopo, e magari ti spiegano anche cosa sbagli.

MJ83®
28-08-2009, 23:50
Più avanti magari riprenderò in mano la cosa, ma per adesso ho anche messo da parte il gioco in questione quindi non ha senso perderci ulteriore tempo e oltretutto innervosirmi perché un programma stupido di poche righe smette di funzionare senza ragione apparente :mad: