Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 05:37

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



mining bot [uo]

Discussion on mining bot [uo] within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jul 2010
Posts: 6
Received Thanks: 0
mining bot [uo]

vorab, ich beschäftige mich erst seit 2 Tagen mit AutoIT, daher bitte rücksicht nehmen, falls ich selbst Dinge, die selbstverständlich sein sollten noch nicht auf anhieb hinbekomme.

Nun zum eigentlichen Thema:

Ich möchte einen kleinen bot machen, der mir eine recht einfache Tätigkeit in einem älteren Spiel abnimmt, ultima online auf einem freeshard.

Was genau der bot machen soll:

1 einen knopf drücken, kurz warten
2 überprüfen, welche meldung ausgegeben wird
3 Möglichkeiten: erfolg, misserfolg, an dieser stelle keine ressourcen mehr vorhanden

bei erfolg und misserfolg den knopf noch einmal drücken, wenn keine ressourcen mehr vorhanden sind die position wechseln.

hier einmal meine bisherigen gedanken dazu:

für die entsprechenden ereignisse erscheint eine meldung auf dem bildschirm, ich habe also mit autoit eine imagesuche gemacht, die nach diesen texten ausschau halten soll. (allein die imagesuche auf einem 64bit system zum laufen zu kriegen war für mich als anfänger schon haarsträubend)

wie erwartet funktioniert das ganze nicht .Ich habe um zu sehen, ob das skript an sich falsch ist das ganze dann auf dem desktop versucht und dort geht es, ebenfalls in dem client (fenstermodus) mit einem bild, das durchgängig ist, auch das funktioniert.

Das Problem was ich derzeit habe ist, dass ich einen text suche, der natürlich kein durchgängiges bild ist, sondern aus mehreren Buchstaben besteht, die vor einem sich verändernden Hintergrund erscheinen.

Nächster Schritt war es also, nur die Buchstaben allein zu isolieren und den hintergrund transparent zu lassen, das ist mir mit infanview gelungen, doch mein script findet das bild trotzdem nicht.

Ich habe hier die tutorials kurz überflogen, auch das zum thema memory read und dachte mir, dass das vielleicht auch eine möglichkeit sein könnte, ich will allerdings nicht mit kanonen auf spatzen schießen.

hier einmal mein script, es besitzt derzeit nur die funktionalität, nach einem der texte zu suchen, nämlich dem, der erscheint, sobald es dort nichts mehr zu finden gibt, um zu sehen, was genau er findet ist ein mausklick eingebaut:


Es geht mir momentan ersteinmal darum, überhaupt eines der Ereignisse sicher feststellen zu können, bevor ich irgendwie weitermache, vielen dank für eure Hilfe/Zeit schonmal im Vorraus.

angehängt findet ihr noch einmal das Bild des textes, nach dem ich suche und ein bild davon, wie das ganze ingame aussieht
Attached Images
File Type: jpg screen1.jpg (18.0 KB, 48 views)
File Type: png hiergibtesnichtsmehr21.png (470 Bytes, 22 views)
Bomberchibbi is offline  
Old 04/12/2013, 18:57   #2
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,254
auf dem bild sieht mann ja, dass die schrift immer an selber stelle und das in verschiedenen farben dargestellt wird.
dein "misserfolg" hat als einzige(?) die farbe orrange.

ich nehme mal an, dass die schrift von unten nach oben verläuft jenach welche aktion du im spiel durchführst...

ich würde jetzt mit pixelgetcolor() oder pixelsearch() schauen, ob an der untersten stelle
(da wo der neue text erscheint) diese farbe auftaucht, wenn ja,
-> funktion aufrufen, um woanders zu suchen.

wenn das an sich klappt, solltest du noch bedenken, dass die funktion immer wieder aufgerufen wird,
bis an der untersten stelle die farbe nicht mehr zu sehen ist..

also musst du entweder dafür sorgen, dass kurzzeitig eines der anderen meldungen aufgerufen wird,
oder dir überlegen, wie du das anders einrichten kannst..

z. B. auch noch die 2. zeile überprüfen...ob sich da was verändert hat.
oder in der funktion ihm sagen, dass bereits woanders gesucht wird..
omer36 is offline  
Old 04/12/2013, 20:59   #3
 
elite*gold: 0
Join Date: Jul 2010
Posts: 6
Received Thanks: 0
pixelsearch hatte ich mir auch schon überlegt, allerdings ist da das problem, dass die beiden anderen meldungen jeweils das gleiche grau haben, ich habe einen vielleicht nicht ganz sauberen workaround gefunden, das ganze wird auch noch in ein journal geschrieben, bei dem die hintergrundfarbe immer schwarz ist, damit habe ich es geschafft, dass die imagesearch funktioniert.

Ich bin jetzt so weit, dass ich durch geschicktes nutzen von ingame macros das ganze auf folgenden code eindampfen konnte:



vom Prinzip her steht damit die grundfunktion, der char mint bis er einen erfolg oder misserfolg hatte und dann sofort wieder, bis das feld abgebaut ist dann geht er ein feld nach unten und wiederholt das Ganze.

Der nächste Schritt wäre jetzt, dass er nicht nur stur nach unten geht, sondern z.B. zweimal runter dann rechts usw.

Interessant dafür zu wissen ist wahrscheinlich noch, dass der char selbst auf dem bildschirm immer zentriert bleibt, ich kann also wie oben einen ähnlichen code verwenden und ihn in eine andere richtung laufen lassen, ich bräuchte nur einen tipp, wie ich eine art abfrage machen kann, nach dem prinzip:

erstes mal bedingung zum weitergehen erfüllt, gehe nach unten zweites mal, gehe nach rechts usw, vielleicht hat dazu jemand eine idee
Bomberchibbi is offline  
Old 04/12/2013, 22:09   #4
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,254
könntest du per zufall machen lassen:
PHP Code:
Call("test"&Random(1,31))
;
;
Func test1()
    ;
schritt runter
    
;schritt rechts
EndFunc

Func test2
()
    ;
runter
    
;runter
    
;links
EndFunc

Func test3
()
    ;
hoch
    
;rechts
    
;rechts
EndFunc 
in den funktionen jeweils die befehle reinschreiben, die er machen muss um in die jeweilige richtung zu laufen...
omer36 is offline  
Old 04/12/2013, 23:02   #5
 
elite*gold: 0
Join Date: Jul 2010
Posts: 6
Received Thanks: 0
das wird leider nicht funktionieren, da er einerseits nicht auf schon "abgeerntete" felder gehen soll, wobei das das kleinere übel wäre, andererseits aber auch hindernisse da sind und es doch sonderbar aussehen würde, wenn ich dauernd irgendwo gegenlaufe.

Gibt es da noch eine elegantere Lösung?

edit:

etwa so:
----
x---
----

striche sind begehbare flächen, das x ist eine nichtbegehbare fläche, gestartet wird immer von dem gleichen punkt, z.b. links oben, sodass er viermal nach rechts gehen sollte, dann eins runter dreimal links einmal diagonal viermal rechts.

so könnte man die ganze map aufteilen, man müsste halt nur zählen können, wie oft er gegangen ist und von dieser zahl die schrittrichtung abhängig machen also irgendwas wie:

for i= 1,2,3 to 7, 13,117 func gehe links
for i= 8to12,14to116 func gehe runter

soetwas in der art, wobei i halt dann dafür steht, wie oft er bereits die position gewechselt hat, es ist keine "intelligente" hinderniserkennung notwendig

ein kleines update:

Ich bin mit dem weg noch nicht weitergekommen, da fehlt mir auch jegliche Idee, wie ich da vorgehen könnte, daher habe ich versucht, das was ich schon habe weiter zu verfeinern, ich habe es geschafft, eine abfrage einzubauen, die prüft, ob das richtige werkzeug ausgerüstet ist und entsprechend falls dies nicht der fall ist es aus dem inventar nimmt und ausrüstet, falls auch dort keins ist wird der bot pausiert.

Ausserdem habe ich ein gui gebaut, tu mich allerdings schwer das script dort richtig einzubauen, da bräuchte ich wiedereinmal hilfe.

Das soll so funktionieren:
der bot gräbt an einer stelle und überprüft welches metall gedropt ist, ist die checkbox für dieses metall eingeschaltet macht er dort weiter, ist sie ausgeschaltet geht er stattdessen zum nächsten feld.

gui:


und der code, der in das form soll:




hier mein versuch das ganze anzugehen, dabei habe ich noch versucht das ganze mit call ein wneig aufzuräumen, indem ich den code für das laufen in eine separate move funktion gepackt habe, dabei treten allerdings einige fehler auf, ich nehme an, dass ich bei den funktionen das ein oder andere falsch gemacht habe


würde mich sehr über eine antwort freuen, derzeit beiße ich an dieser stelle als noob auf granit
Bomberchibbi is offline  
Old 04/13/2013, 10:03   #6
 
SpieleHacksInfo's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 448
Received Thanks: 278
ich habe selber gerad ein problem mit imagesearch auf meinem 64bit system wie konntest du das regeln?
SpieleHacksInfo is offline  
Old 04/13/2013, 13:05   #7
 
elite*gold: 0
Join Date: Jul 2010
Posts: 6
Received Thanks: 0
habe alles nochmal neu installiert, dabei sichergestellt, dass native 64bit unterstützung ausgewählt ist und dann ganz wichtig, immer das hier in die includes getan :

#AutoIt3Wrapper_usex64=n
Bomberchibbi is offline  
Old 04/13/2013, 19:43   #8
 
Rorc's Avatar
 
elite*gold: 113
The Black Market: 133/2/0
Join Date: Dec 2009
Posts: 16,685
Received Thanks: 4,449
Such via Cheatengine die letzte Nachricht im Chat, die du bekommen hast, und lasse dein Programm diese Adresse regelmässig überprüfen. (Suche aber den Pointer der Adresse, oder die mühsame suche nach der Adresse ist nach nem Spielneustart futsch.)
Somit weiss dein Programm immer, welches die letzte Nachricht war, die du bekommen hast, und diese kannst du dann auswerten, um weiter vorzugehen.
Rorc is offline  
Old 04/13/2013, 19:49   #9
 
elite*gold: 0
Join Date: Jul 2010
Posts: 6
Received Thanks: 0
mit cheatengine habe ich mich heute beschäftigt, aber ich bekomme es ums verrecken nicht hin damit etwas gescheites herauszuziehen, da bräuchte ich wirklich die schritt für schritt klick dies klick das anweisung, suche ich nach nem string findet er nur bei der ersten suche was, suche ich nochmal anch dem string 0 ergebnisse, genauso die suche anch dem gewicht, alles durch, float double usw und dann nach unchanged, decreased value between gesucht, er findet erst immer einen haufen, dann bei der darauffolgenden suche nichts, pointer sind ebenfalls ein buch mit sieben siegeln bisher, wenn du es etwas ausführlicher erklären könntest wäre ich dir sehr verbunden.
Bomberchibbi is offline  
Old 04/13/2013, 20:12   #10
 
Rorc's Avatar
 
elite*gold: 113
The Black Market: 133/2/0
Join Date: Dec 2009
Posts: 16,685
Received Thanks: 4,449
Ich werde, sofern das Spiel nicht allzugross ist, heute Abend sobald ich wieder zuhause bin, es kurz runterladen und mir anschauen, wie man das am besten löst.
Rorc is offline  
Thanks
1 User
Reply

Tags
autoit, bot, mining, script, ultima online


Similar Threads Similar Threads
is there a mining speed hack for manual mining???
11/22/2012 - RF Online - 5 Replies
ive been mining +4 ores for a long time im just wondering if theres a mining speed hack for the manual mining so i can mine +4 ores fast plss reply if you have any idea thnx



All times are GMT +2. The time now is 05:37.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.