Ich arbeite mit autoit seit 2 Wochen und das ist mein Ergebnis.
Ich hoffe das ihr mir helfen könnt.
Danke.
Der autoit code
Code:
#include<Misc.au3>
#include <windowsconstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <ImageSearch.au3>
#include <MsgBoxConstants.au3>
#include <ComboConstants.au3>
HotKeySet("{TAB}", "Iniciar")
HotKeySet("{ESC}","Salir")
HotKeySet("{PAUSE}", "Pausa")
Global $CorMap12_x1,$CorMap12_y1,$CorMap12_x2,$CorMap12_y2
global $CorMap11_x1,$CorMap11_y1,$CorMap11_x2,$CorMap11_y2
Global $CorMap10_x1,$CorMap10_y1,$CorMap10_x2,$CorMap10_y2
Global $CorMap9_x1,$CorMap9_y1,$CorMap9_x2,$CorMap9_y2
Global $CorMap8_x1,$CorMap8_y1,$CorMap8_x2,$CorMap8_y2
Global $CorMap7_x1,$CorMap7_y1,$CorMap7_x2,$CorMap7_y2
Global $CorMap6_x1,$CorMap6_y1,$CorMap6_x2,$CorMap6_y2
Global $CorMap5_x1,$CorMap5_y1,$CorMap5_x2,$CorMap5_y2
Global $CorMap4_x1,$CorMap4_y1,$CorMap4_x2,$CorMap4_y2
Global $CorMap3_x1,$CorMap3_y1,$CorMap3_x2,$CorMap3_y2
Global $CorMap2_x1,$CorMap2_y1,$CorMap2_x2,$CorMap2_y2
Global $CorMap1_x1,$CorMap1_Y1,$CorMap1_x2,$CorMap1_y2
Global $Mini_x1,$Mini_y1,$Mini_y2,$Mini_x2
Global $ImageSearch0 = @ScriptDir & "\palla.bmp"
Global $ImageSearch1 = @ScriptDir & "\bicho.bmp"
Global $ImageSearch2 = @ScriptDir & "\boss.bmp"
Global $ImageSearch3 = @ScriptDir & "\bonus.bmp"
$found_x=0
$found_y=0
$vercion="1.6"
;programa start
Func bichos()
While 1
$bicho=_ImageSearchArea( $ImageSearch1, 1, $CorMap1_x1,$CorMap1_y1,$CorMap1_x2,$CorMap1_y2,$found_X, $found_Y, 60 )
If $bicho=1 Then
MouseClick("LEFT",$found_x+40,$found_y-40)
Sleep(200)
Send( "{LCTRL}")
Sleep(1000)
boss()
ElseIf $bicho=0 Then
boss()
EndIf
WEnd
EndFunc
Func boss()
While 1
$bicho=_ImageSearchArea( $ImageSearch2, 1, $CorMap1_x1,$CorMap1_y1,$CorMap1_x2,$CorMap1_y2,$found_X, $found_Y, 60 )
If $bicho=1 Then
MouseClick("LEFT",$found_x+40,$found_y-40)
Sleep(500)
Send( "{LCTRL}")
Sleep(1000)
bichos()
ElseIf $bicho=0 Then
Iniciar()
EndIf
WEnd
EndFunc
Func Iniciar()
$a=$CorMap1_x2-$CorMap1_x1 ; larghezza CorMapangolo grande
$b=$CorMap1_y2-$CorMap1_y1; altezza CorMapangolo grande
;CorMapangolo 2
; coord alto sin
$CorMap2_x1=$CorMap1_x1+$a/24
$CorMap2_y1=$CorMap1_y1+$b/24
;coord basso dex
$CorMap2_x2=$CorMap2_x1+$a*11/12
$CorMap2_y2=$CorMap2_y1+$b*11/12
;CorMapangolo 3
; coord alto sin
$CorMap3_x1=$CorMap2_x1+$a/24
$CorMap3_y1=$CorMap2_y1+$b/24
;coord basso dex
$CorMap3_x2=$CorMap3_x1+$a*5/6
$CorMap3_y2=$CorMap3_y1+$b*5/6
;CorMapangolo 4
; coord alto sin
$CorMap4_x1=$CorMap3_x1+$a/24
$CorMap4_y1=$CorMap3_y1+$b/24
;coord basso dex
$CorMap4_x2=$CorMap4_x1+$a*3/4
$CorMap4_y2=$CorMap4_y1+$b*3/4
;CorMapangolo 5
; coord alto sin
$CorMap5_x1=$CorMap4_x1+$a/24
$CorMap5_y1=$CorMap4_y1+$b/24
;coord basso dex
$CorMap5_x2=$CorMap5_x1+$a*2/3
$CorMap5_y2=$CorMap5_y1+$b*2/3
;CorMapangolo 6
; coord alto sin
$CorMap6_x1=$CorMap5_x1+$a/24
$CorMap6_y1=$CorMap5_y1+$b/24
;coord basso dex
$CorMap6_x2=$CorMap6_x1+$a*7/12
$CorMap6_y2=$CorMap6_y1+$b*7/12
;CorMapangolo 7
; coord alto sin
$CorMap7_x1=$CorMap6_x1+$a/24
$CorMap7_y1=$CorMap6_y1+$b/24
;coord basso dex
$CorMap7_x2=$CorMap7_x1+$a/2
$CorMap7_y2=$CorMap7_y1+$b/2
;CorMapangolo 8
; coord alto sin
$CorMap8_x1=$CorMap7_x1+$a/24
$CorMap8_y1=$CorMap7_y1+$b/24
;coord basso dex
$CorMap8_x2=$CorMap8_x1+$a*5/12
$CorMap8_y2=$CorMap8_y1+$b*5/12
;CorMapangolo 9
; coord alto sin
$CorMap9_x1=$CorMap8_x1+$a/24
$CorMap9_y1=$CorMap3_y1+$b/24
;coord basso dex
$CorMap9_x2=$CorMap9_x1+$a/3
$CorMap9_y2=$CorMap9_y1+$b/3
;CorMapangolo 10
; coord alto sin
$CorMap10_x1=$CorMap9_x1+$a/24
$CorMap10_y1=$CorMap9_y1+$b/24
;coord basso dex
$CorMap10_x2=$CorMap10_x1+$a/4
$CorMap10_y2=$CorMap10_y1+$b/4
;CorMapangolo 11
; coord alto sin
$CorMap11_x1=$CorMap10_x1+$a/24
$CorMap11_y1=$CorMap10_y1+$b/24
;coord basso dex
$CorMap11_x2=$CorMap11_x1+$a/6
$CorMap11_y2=$CorMap11_y1+$b/6
;CorMapangolo 12
; coord alto sin
$CorMap12_x1=$CorMap11_x1+$a/24
$CorMap12_y1=$CorMap11_y1+$b/24
;coord basso dex
$CorMap12_x2=$CorMap12_x1+$a/12
$CorMap12_y2=$CorMap3_y1+$b/12
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap12_x1, $CorMap12_y1, $CorMap12_x2, $CorMap12_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
ElseIf $palla1=0 Then
area2()
EndIf
WEnd
EndFunc
Func area2()
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap11_x1, $CorMap11_y1, $CorMap11_x2, $CorMap11_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
Iniciar()
ElseIf $palla1=0 Then
area3()
EndIf
WEnd
EndFunc
Func area3()
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap10_x1, $CorMap10_y1, $CorMap10_x2, $CorMap10_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
Iniciar()
ElseIf $palla1=0 Then
area4()
EndIf
WEnd
EndFunc
Func area4()
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap9_x1, $CorMap9_y1, $CorMap9_x2, $CorMap9_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
Iniciar()
ElseIf $palla1=0 Then
area5()
EndIf
WEnd
EndFunc
Func area5()
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap8_x1, $CorMap8_y1, $CorMap8_x2, $CorMap8_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
Iniciar()
ElseIf $palla1=0 Then
area6()
EndIf
WEnd
EndFunc
Func area6()
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap7_x1, $CorMap7_y1, $CorMap7_x2, $CorMap7_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
Iniciar()
ElseIf $palla1=0 Then
area7()
EndIf
WEnd
EndFunc
Func area7()
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap6_x1, $CorMap6_y1, $CorMap6_x2, $CorMap6_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
Iniciar()
ElseIf $palla1=0 Then
area8()
EndIf
WEnd
EndFunc
Func area8()
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap5_x1, $CorMap5_y1, $CorMap5_x2, $CorMap5_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
Iniciar()
ElseIf $palla1=0 Then
area9()
EndIf
WEnd
EndFunc
Func area9()
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap4_x1, $CorMap4_y1, $CorMap4_x2, $CorMap4_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
Iniciar()
ElseIf $palla1=0 Then
area10()
EndIf
WEnd
EndFunc
Func area10()
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap3_x1, $CorMap3_y1, $CorMap3_x2, $CorMap3_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
Iniciar()
ElseIf $palla1=0 Then
area11()
EndIf
WEnd
EndFunc
Func area11()
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap2_x1, $CorMap2_y1, $CorMap2_x2, $CorMap2_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
Iniciar()
ElseIf $palla1=0 Then
area13()
EndIf
WEnd
EndFunc
#cs
Func area12()
While 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap1_x1, $CorMap1_y1, $CorMap1_x2, $CorMap1_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap1_x1, $CorMap1_y1, $CorMap1_x2, $CorMap1_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
Iniciar()
EndIf
ElseIf $palla1=0 Then
area13()
EndIf
WEnd
EndFunc
#ce
Func area13()
While 1
Local $RandomX1, $RandomY1
$RandomX1 = Random($Mini_x1,$Mini_x2,1)
$RandomY1 = Random($Mini_y1,$Mini_y2,1)
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap1_x1, $CorMap1_y1, $CorMap1_x2, $CorMap1_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
MouseClick("LEFT",$found_x,$found_y)
Sleep(2000)
ElseIf $palla1=0 Then
MouseClick("LEFT",$RandomX1,$RandomY1,1,0)
_rastreo()
EndIf
WEnd
EndFunc
Func _rastreo()
For $i=1 to 100 step 1
$palla1=_ImageSearchArea( $ImageSearch0, 1, $CorMap1_x1, $CorMap1_y1, $CorMap1_x2, $CorMap1_y2, $found_X, $found_Y, 60 )
If $palla1=1 Then
Iniciar()
ElseIf $palla1=0 Then
Sleep(100)
EndIf
$bicho=_ImageSearchArea( $ImageSearch1, 1, $CorMap1_x1,$CorMap1_y1,$CorMap1_x2,$CorMap1_y2,$found_X, $found_Y, 60 )
If $bicho=1 Then
bichos()
EndIf
Next
Iniciar()
EndFunc
;programa END
;~ ------------------------------------------------------------------------------------------------
;rectagulo de seleccion
;~ ------------------------------------------------------------------------------------------------
Func Select_rectangle()
Local $Selected=0
Local $Coordinate[4]
$area = GUICreate("", 1, 1, 1, 1, $WS_POPUP, $WS_EX_TOPMOST)
GUISetBkColor(0x33FF00, $area)
WinSetTrans($area, "", 80)
GUISetState()
While $Selected = 0
If _IsPressed("1") Then
$mp = MouseGetPos()
WinMove($area, "", $mp[0], $mp[1], 1, 1)
While _IsPressed('01')
$pos = MouseGetPos()
global $lefts = Order($mp[0], $pos[0])
global $tops = Order($mp[1], $pos[1])
WinMove($area, "", $lefts[0], $tops[0], $lefts[1], $tops[1])
ConsoleWrite($lefts[0] & ', ' & $tops[0] & ', ' & $lefts[1] & ', ' & $tops[1] & @CRLF)
WEnd
$Coordinate[0]=$lefts[0]
$Coordinate[1]=$tops[0]
$Coordinate[2]=$lefts[0]+$lefts[1]
$Coordinate[3]=$tops[0]+ $tops[1]
$Selected=1
EndIf
Wend
Guidelete($area)
return $coordinate
EndFunc
Func Order($a, $b)
Dim $res[2]
If $a < $b Then
$res[0] = $a
$res[1] = $b - $a
Else
$res[0] = $b
$res[1] = $a - $b
EndIf
Return $res
EndFunc
;~ ____________________________________________________________________________
;MENU
;~ ____________________________________________________________________________
If FileExists(@ScriptDir &"\Data.ini") Then ; Si existe leer INI
$CorMap1_x1=int(IniRead( @ScriptDir &"\Data.ini" , "Alto_sin" , "x" ,0))
$CorMap1_y1=int(IniRead( @ScriptDir &"\Data.ini" , "Alto_sin" , "y" ,0))
$CorMap1_x2=int(IniRead( @ScriptDir &"\Data.ini" , "Basso_dest" , "x",0 ))
$CorMap1_y2=int(IniRead( @ScriptDir &"\Data.ini" , "Basso_dest" , "y" ,0))
$Mini_x1=int(IniRead( @ScriptDir &"\Data.ini" , "Mini_sin" , "x",0 ))
$Mini_y1=int(IniRead( @ScriptDir &"\Data.ini" , "Mini_sin" , "y" ,0))
$Mini_x2=int(IniRead( @ScriptDir &"\Data.ini" , "Mini_dest" , "x" ,0))
$Mini_y2=int(IniRead( @ScriptDir &"\Data.ini" , "Mini_dest" , "y" ,0))
Else ;si no existe mostar menu
#Region ### START Koda GUI section ### Form=C:\Users\Gamer\Desktop\MacroBot\Resurces\Form1.kxf
$Form1_1 = GUICreate("MacroBot by Sr.William v" &$vercion, 448, 353, 435, 154)
$Button1 = GUICtrlCreateButton("Select Pantalla", 8, 56, 137, 57)
$Button2 = GUICtrlCreateButton("Select Minimapa", 8, 120, 137, 57)
$Button3 = GUICtrlCreateButton("Guardar", 8, 184, 137, 57)
$Label1 = GUICtrlCreateLabel("Selecciona Pantalla de Juego", 152, 56, 292, 57)
$Label2 = GUICtrlCreateLabel("Selecciona area de la niebla en el MiniMapa", 152, 128, 292, 49)
$Label3 = GUICtrlCreateLabel("Guardar la configuracion del Bot", 152, 192, 292, 49)
$Label4 = GUICtrlCreateLabel("Teclas rapidas:", 8, 256, 428, 65)
$Label5 = GUICtrlCreateLabel("MacroBot - Pixelbot para Darkorbit, Recolector de Paladio", 8, 8, 428, 41)
$Label6 = GUICtrlCreateLabel("TABULADOR: Iniciar el Bot", 8, 280, 436, 17)
$Label7 = GUICtrlCreateLabel("PAUSA: Pausar el Bot", 8, 304, 436, 17)
$Label8 = GUICtrlCreateLabel("ESC: Salir del Bot", 8, 328, 436, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1 ;cordenadas de pantalla
GUISetState(@SW_HIDE, $Form1_1)
Local $cord= Select_rectangle()
$CorMap1_x1=$cord[0]
$CorMap1_y1=$cord[1]
$CorMap1_x2=$cord[2]
$CorMap1_y2=$cord[3]
GUISetState(@SW_show, $Form1_1)
Case $Button2 ;cordenadas de minimapa
GUISetState(@SW_HIDE, $Form1_1)
Local $cord2=Select_rectangle()
$Mini_x1=$cord2[0]
$Mini_y1=$cord2[1]
$Mini_x2=$cord2[2]
$Mini_y2=$cord2[3]
GUISetState(@SW_SHOW, $Form1_1)
Case $Button3; escribir INI
Guidelete($Form1_1)
IniWrite( @ScriptDir &"\Data.ini" , "Alto_sin" , "x" , $CorMap1_x1)
IniWrite( @ScriptDir &"\Data.ini" , "Alto_sin" , "y" , $CorMap1_y1)
IniWrite( @ScriptDir &"\Data.ini" , "Basso_dest" , "x" , $CorMap1_x2)
IniWrite( @ScriptDir &"\Data.ini" , "Basso_dest" , "y" , $CorMap1_y2)
IniWrite( @ScriptDir &"\Data.ini" , "Mini_sin" , "x" , $Mini_x1)
IniWrite( @ScriptDir &"\Data.ini" , "Mini_sin" , "y" , $Mini_y1)
IniWrite( @ScriptDir &"\Data.ini" , "Mini_dest" , "x" , $Mini_x2)
IniWrite( @ScriptDir &"\Data.ini" , "Mini_dest" , "y" , $Mini_y2)
EndSwitch
WEnd
EndIf
While 1 ;Pausa asta eleccion
sleep(9999)
WEnd
Func Salir() ;Salir del programa
exit 0
EndFunc
Func Pausa() ;Pausa temporal
While 1
Sleep(1)
WEnd
EndFunc
kann geclosed werden






