Hilfe bei simplen Dark Orbit Bot

10/12/2015 22:43 fingerinmynose#1
Hallo elitepvpers
Ertsmal tolles Forum.Ich habe vor kurzen mit Autoit angefangen und ein sehr simpes script geschrieben
Code:
#include <ImageSearch.au3>

HotKeySet("g", "end")

Global $x
Global $y





While 1


	If _ImageSearch('box.bmp', 0, $x, $y, 0) Then

		MouseClick("left", $x, $y, 1, 0)
		Sleep(Random(675, 1264, 1))

	Else
		MouseClick("Left", Random(1633, 1859), Random(876, 1007), 1, Random(3, 7)) ; Einen Klick auf die MiniMap
		Sleep(2323)

	EndIf
WEnd



















Func End()
	Exit
Meine Frage:
Es geht um das Spiel Dark Orbit und ich habe es geschafft das das Schiff zu einer Box fliegt und sie auch,meistens,einsammelt.Habe aber viele Boxen an denen es vorbei fliegt.
Wie kann ich es machen das das Schiff,im Flug,wenn eine Box zu sehen ist kurz anhält und erst dann die Box einsammelt?

Würde mich über Hilfe und Vorschläge freuen:o

LG fingerinmynose
10/13/2015 00:00 Moneypulation#2
Dein Code arbeitet im Moment so:

Falls box gefunden, dann einsammeln, sonst klick auf die minimap und 2 sekunden warten

und das in der Endlosschleife. Du brauchst also eine andere Logik. Versuch mal das zu coden:

Falls Schiff fliegt, dann nichts, sonst Minimap anklicken
Falls Box gefunden, dann einsammeln, sonst nichts

Wenn du versuchst direkt auf die box im flug zu klicken, wird dein script oft daneben klicken. dafür musst du dir auch noch was überlegen
10/13/2015 02:42 fingerinmynose#3
Danke Moneypulation
Ich habe nun das versucht:

Code:
#include <ImageSearch.au3>

HotKeySet("g", "end")

Global $x
Global $y




While 1








	If _ImageSearch('box.bmp', 0, $x, $y, 0) = 0 Then
MouseClick("Left", Random(1633, 1859), Random(876, 1007), 1, Random(3, 7))


		Sleep(Random(3423, 6253, 1))
Else

      _ImageSearch('box.bmp', 0, $x, $y, 0)
		MouseClick("left", $x, $y, 1, 0)
		Sleep(Random(1242, 1965, 1))

	EndIf
WEnd



sleep( 10 )














Func End()
	Exit
EndFunc   ;==>End

Jetzt flieg er auf der Minimap rum solange bis eine Box gefunden wird,ansonsten wieder Minimapklicks.
Ich würde das Schiff aber gerne anhalten wenn er eine Box findet und dann soll er alle einsammeln und weiterfliegen.
Soweit bin ich jetzt aber der Stopklick vor dem sammeln geht nicht.

Code:
#include <ImageSearch.au3>

HotKeySet("g", "end")

Global $x
Global $y




While 1








	If _ImageSearch('box.bmp', 0, $x, $y, 0) = 0 Then  ;wenn er das BMP nicht findet
		MouseClick("Left", Random(1633, 1859), Random(876, 1007), 1, Random(3, 7)) ;Random klick auf die Minimap


		Sleep(Random(3423, 6253, 1))
	Else

		_ImageSearch('box.bmp', 0, $x, $y, 0) ;wenn er es findet dann..
		MouseClick(Random(568, 1152, 1), Random(272, 646, 1)) ;Stop klick auf der Karte rund ums Schiff
		MouseClick("left", $x, $y, 1, 0) ;Box einsammeln
		Sleep(Random(1242, 1965, 1))

	EndIf
WEnd



Sleep(10)














Func End()
	Exit
EndFunc   ;==>End
Klar,alles einfach aber ich wollte es selber lernen und nicht copy and paste:o

Ich habe auch schon einige Ideen die ich aber leider noch nicht umsetzten kann.
Ich habe hier im Forum oft gelesen das Image Search zu langsam sei und PixelSearch besser/schneller.Was wäre denn wenn man nur Pixelsearch als Suchmittel nutzt wenn PixelSearch eine Box zb gefunden hat einen stopklick macht und danach Imagesearch anfängt alles einzusammeln.Aber für solche Ideen hapert es leider noch am Wissen über Autoit
10/13/2015 19:55 Moneypulation#4
Imagesearch ist zwar nicht besonders schnell, aber das reicht fürs erste vollkommen aus. dein script muss irgendwie wissen, ob das schiff gerade fliegt oder stehen geblieben ist. schau einfach mal im spiel was sich immer und auf die gleiche weise verändert, wenn du anfängst zu fliegen bzw. du stehen geblieben bist. wenn du das herausgefunden hast, brauchst du diese random sleeps nicht mehr und kannst sowas machen

While 1

setCourse() ;klickt auf die minimap, falls man stehen geblieben ist
Bonusbox() ;sucht nach bonusbox

WEnd

und wenn du willst, dass die boxen ordentlich eingesammelt werden, dann kannst du beispielsweise rekursion verwenden:

Func Bonusbox()

<stabilisierungsklick> ;was du als "stop klick auf der karte rund ums schiff" genannt hast
<box einsammeln>
<warten bis box eingesammelt>
MoreBonusbox()

EndFunc

Func MoreBonusbox()

;kein stabilisierungsklick, da man ja bereits steht
<box suchen>
<falls box gefunden, einsammeln und wieder MoreBonusbox() aufrufen, ansonsten nichts>

EndFunc
12/20/2015 17:42 fingerinmynose#5
Entschuldigung,ich hatte kein Internet..
Das hast du gut erklärt,genau das meinte ich.
Vielen Dank Moneypulation!!!:handsdown:
12/20/2015 22:02 loop88#6
wenn du eine schlerere suche machen willst solltest du die fastfind ansehen [Only registered and activated users can see links. Click Here To Register...]