AutoIt Gui Input in die while schleife packen und mit button ausführen

12/14/2020 18:53 jascha187#1
Hallo,
kann mir bitte jemand helfen, ich versuche das, wenn ich etwas in den Input1 schreiben dieser wert ( Zahl) in die while schliefe eingetragen wird und die Funktion ausgeführt wird !

Func runit() ;BergBau Gilde
while >>>$a <= $runden<<<

Kann mir da bitte jemand helfen könnte sitze schon seit 2 tagen und komme nicht weiter :handsdown:


Func runit() ;BergBau Gilde
while >>>$a <= $runden<<<

Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 394, 51, 192, 124)
Global $Input1 = GUICtrlCreateInput("Input1", 16, 16, 121, 21)
Global $Button1 = GUICtrlCreateButton("Start", 144, 16, 75, 25)
Global $Button2 = GUICtrlCreateButton("Bennden", 304, 16, 75, 25)
global $Button3 = GUICtrlCreateButton("Pause", 224, 16, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

HotKeySet("{j}","start")
HotKeySet("{k}","Pause")
HotKeySet("{k}","stop")

Global $runden  ;BergBau Runden
Local $a = 1
Global $iPaused = 0

Func Schatz()  ;Schatz jägerschlüssel Kaufen
   
   While 1
	  MouseClick("left",1231, 256,1, 25)
	  sleep(300)
	  MouseClick("left",1543, 382, 1, 25)
   WEnd
EndFunc

Func stop()    ;Beenden
   Exit
EndFunc

Func VHaut()   ;Veränderlicher Haut
   While 1
	 MouseClick("left", 1344, 750, 1, 25)
			sleep(500)
			   MouseClick("left",1066, 665 , 1, 25)
				  sleep(180000)
   WEnd
EndFunc

Func VHolz()   ;Veränderlicher Scheiten
   while 1
	sleep(750)
	  MouseClick ("Left", 1387, 751, 1, 25)
	  sleep(2500)
	  MouseClick ("Left", 816, 555, 1, 25)
	  sleep(1500)
	  MouseClick ("Left", 1387, 751, 1, 25)
	  sleep(750)
	  MouseClick ("Left", 1091, 537, 1, 25)
	  Sleep(240000)
   WEnd
   EndFunc

Func VBarren() ;Veränderlicher Barren
   While 1
	  MouseClick("left", 956, 663, 1, 50)
	  sleep (1000)
	  MouseClick("left", 1059, 666, 1, 50)
	  sleep(254000)
   WEnd
EndFunc

Func Alchi()   ;Hoche Alchemie
   While 1
	  MouseClick("left",24, 685, 1)
	  sleep (850)
	  Slot1()
   WEnd
EndFunc

Func runit()   ;BergBau Gilde
   while $a <= $runden
	  MouseClick("left",956, 584, 1) ;1
	  sleep(15000)
	  MouseClick("left", 903, 671, 1);2
	  sleep (15000)
	  MouseClick("left", 760, 566, 1);3
	  Sleep(15000)
	  MouseClick("left", 938, 466, 1);4
	  sleep(15000)
	  MouseClick("left", 1024, 350, 1);5
	  sleep(15000)
	  MouseClick("left", 1214, 550, 1);6
	  sleep (15000)
	  MouseClick("left", 950, 850, 1);7
	  Sleep(2500)
	  ;Runit-kiste-Füllen
	  slot1()
	  ; Bank Weg
	   $a = $a + 1
	   Mod(Random(1,10,1),Random(1,5,1))
   WEnd
EndFunc

Func B1 ()     ;Zur Bank
   MouseClick("left", 274, 416, 1)
   Sleep(10000)
   MouseClick("left",1696, 130,1)
   sleep(15000)
   MouseClick("left", 955, 616, 1)
   sleep(1500)
   Send("{f1}")
   sleep(1000)
   MouseClick("left",1762, 260, 1)
   sleep(15000)
   MouseClick("left",814, 570, 1)
   sleep(4500)
   MouseClick("left",1871, 607,1)
EndFunc


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

		Case $Button1

		 Case $Button2
			Exit

	EndSwitch
WEnd

; Inventar Slot Position
Func Slot1()
   MouseClick("left", 1345, 748,1)
EndFunc
Func Slot2()
    MouseClick("left", 1385, 750,1)
EndFunc
Func Slot3()
    MouseClick("left", 1426, 748,1)
EndFunc
Func Slot4()
    MouseClick("left", 1466, 751,1)
EndFunc
Func Slot5()
    MouseClick("left", 1508, 749,1)
EndFunc
Func Slot6()
    MouseClick("left", 1343, 783,1)
EndFunc
Func Slot7()
    MouseClick("left", 1386, 786,1)
EndFunc
Func Slot8()
    MouseClick("left", 1428, 786,1)
EndFunc
Func Slot9()
    MouseClick("left", 1466, 786,1)
EndFunc
Func Slot10()
    MouseClick("left", 1507, 786,1)
EndFunc
Func Slot11()
    MouseClick("left", 1344, 823,1)
EndFunc
Func Slot12()
    MouseClick("left", 1385, 823,1)
EndFunc
Func Slot13()
    MouseClick("left", 1424, 822,1)
EndFunc
Func Slot14()
    MouseClick("left", 1467, 823,1)
EndFunc
Func Slot15()
    MouseClick("left", 1508, 823,1)
EndFunc
Func Slot16()
    MouseClick("left", 1343, 857,1)
EndFunc
Func Slot17()
    MouseClick("left", 1385, 857,1)
EndFunc
Func Slot18()
    MouseClick("left", 1429, 860,1)
EndFunc
Func Slot19()
    MouseClick("left", 1466, 858,1)
EndFunc
Func Slot20()
    MouseClick("left", 1508, 858,1)
EndFunc
Func Slot21()
    MouseClick("left", 1345, 896,1)
EndFunc
Func Slot22()
    MouseClick("left", 1383, 894,1)
EndFunc
Func Slot23()
    MouseClick("left", 1426, 895,1)
EndFunc
Func Slot24()
    MouseClick("left", 1467, 894,1)
EndFunc
Func Slot25()
    MouseClick("left", 1508, 894,1)
EndFunc
Func Slot26()
    MouseClick("left", 1345, 931,1)
EndFunc
Func Slot27()
    MouseClick("left", 1387, 932,1)
EndFunc
Func Slot28()
    MouseClick("left", 1427, 929,1)
EndFunc
01/02/2021 15:42 maxi39#2
Ich glaube du hast den Sinn von Funktionen noch nicht so ganz verstanden hmmm.
Schau dir mal [Only registered and activated users can see links. Click Here To Register...]an.

Diesen ganzen Ranz:


kannst du Z.b elegant lösen durch:
Alle Slots coords als array global definieren

und dann kannst direkt darauf in deinen anderen funktionen darauf zugreifen.

Beispiel in runit()
anstatt
Code:
slot1()
einfach mit
Code:
MouseClick("left",$slotCoords[0][0] , $slotCoords[0][1],1)
ersetzen.

Falls du super lazy bist , kannst du auch einfach das Array vor initialsieren über:

Code:
Func Slot($slotnummer)
slotnummer = int($slotnummer) 
    Local $coords[2]
    $coords[0] = (slotnummer % 5) * 40 + 1345
    $coords[1] = ( int(slotnummer / 5 )) * 30 + 750
    Return $coords
EndFunc

Global $slotCoords[28]

For $i = 0 To 27 
$slotCoords[$i] = Slot($i)
Next
kann das leider nicht ausprobieren, da ich kein Windows habe^