[TuT] How to code BoT's

02/04/2009 21:43 cab_killer#61
Ich habe mir echt die Zähne ausgebissen an der 3ten aufgabe und konnte sie leider nicht Slebständig lösen.

Ich musste ein bisschen in die Lösung linsen und habe mir die meisten Erklärungen der einzelnen sachen aus der Hilfe geholt aber dennoch nicht alles verstanden.

Ich verstehe den Unterschied von Dim, Global und Local nicht
Was ist ein Array ?

PHP Code:
Dim $fuer1$fuer2
For $i 1 To 25
    $taste
=Random(1,2,1)
    if 
$taste 1 Then
        Send
("1")
        
$fuer1 +=1
    
Else
        
Send("2")
        
$fuer2 +=1
    
EndIf
Next
FileWrite
("test.txt""ich habe die Taste 1 " $fuer1 "mal gedrückt" & @crlf)
FileWrite("test.txt""ich habe die taste 2 " $fuer2 "mal gedrückt" & @crlf
MFG
02/04/2009 21:45 | Moep |#62
Quote:
Originally Posted by darkangel1000 View Post
langsam begebe ich mich auf neuland
kennt jemand ein gutes GUI-AutoIT-TUT...kann auch Video sein

Leider nicht. Wenn du in der Hilfe bei den Reiter "Index" einfach "GUI" eingibst bekommst aber fast alles was du brauchst. Würde um die Sache zu verstehen, vorerst von Koda abraten.

Aufgabe 1: erstelle eine GUI mit verschiedenen Buttons. Es soll sich bei einen Klick auf ein Button jeweils eine dazugehörige MsgBox öffnen.

Aufgabe 1.1: erweitere das Skript aus Aufgabe ein. Lass in den MsgBoxen ausgeben wie oft der jeweilige Button bisher gedrückt wurde.

Aufgabe 2: erstelle eine GUI mit einer Inputbox und einem Button. Der Benutzer soll etwas in die Inputbox eintragen was dann durch einen Klick auf den Button an Guild Wars o.a. geschickt wird

Aufgabe 2.1: Erweitere die GUI aus Aufgabe 2. Um eine weitere Inputbox in der angegeben werden soll wie oft die msg aus Inputbox 1 gesendet werden soll. Beschrifte ggf die Inputboxen mit Labels und lass nach den korrekten Variabel typ checken. (Tipp schau dir dazu die Function "Int" und "Number" an)


So, hab mich mal ergözt :D
Die xx.1 versionen sind leicht tricky, sollte aber auch machbar sein ;)

Falls noch Interesse an mehr bzw anderen Aufgaben zu dem Thema bestehen sollte, einfach hier schreiben ;)

Edit: In der Hilfe Findest du unter "GUICreate" ein Grundgerüst einer GUI

Edit2:

Quote:
Originally Posted by cab_killer View Post
Was ist ein Array ?
[Only registered and activated users can see links. Click Here To Register...]
02/04/2009 22:14 kknb#63
aus der autoit hilfe ;)

Quote:
Der Unterschied zwischen Dim, Local und Global ist der Gültigkeitsbereich, für den die Variablen deklariert werden:
Dim = Lokaler Gültigkeitsbereich, wenn der Variabelenname global nicht existiert (falls dies der Fall ist, wird die globale Variable verwendet!)
Global = Erzwingt globale Gültigkeit der Variablen
Local = Erzwingt lokale Gültigkeit der Variablen, bzw. innerhalb der Funktion
02/05/2009 15:05 aLasca#64
Quote:
Originally Posted by cab_killer View Post
Ich habe mir echt die Zähne ausgebissen an der 3ten aufgabe und konnte sie leider nicht Slebständig lösen.

Ich musste ein bisschen in die Lösung linsen und habe mir die meisten Erklärungen der einzelnen sachen aus der Hilfe geholt aber dennoch nicht alles verstanden.

Ich verstehe den Unterschied von Dim, Global und Local nicht
Was ist ein Array ?

PHP Code:
Dim $fuer1$fuer2
For $i 1 To 25
    $taste
=Random(1,2,1)
    if 
$taste 1 Then
        Send
("1")
        
$fuer1 +=1
    
Else
        
Send("2")
        
$fuer2 +=1
    
EndIf
Next
FileWrite
("test.txt""ich habe die Taste 1 " $fuer1 "mal gedrückt" & @crlf)
FileWrite("test.txt""ich habe die taste 2 " $fuer2 "mal gedrückt" & @crlf
MFG

Du musst dir ein Array wie ein großes Regal vorstellen, wo du etwas zwischenlagern , und später wieder auslesen kannst.

[Only registered and activated users can see links. Click Here To Register...]
02/06/2009 01:56 idqdmaster#65
How do i get my bot to display how long its been running SENCE i clicked START

i have this code:
Code:
GUICtrlCreateGroup("", -99, -99, 1, 1)
$TabSheet3 = GUICtrlCreateTabItem("Start:")
$Button1 = GUICtrlCreateButton("Start", 120, 152, 177, 105, 0)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $label_stat = GUICtrlCreateLabel("Min: 000  Sec: 00   Sence you Started .ExE", 24, 48, 361, 49)
.
.
.
blah blah blah
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
.
.
.
Func status()
    $timestats = TimerDiff($timer)
    $string = StringFormat("Min: %03u  Sec: %02u   Sence you Started .ExE", $timestats/1000/60, Mod($timestats/1000,60))
    GUICtrlSetData($label_stat, $string)
EndFunc 

While 1
	$nMsg = GUIGetMsg()
	If GUICtrlRead($Radio1)=$GUI_CHECKED Then _sleep1pt()
	If GUICtrlRead($Radio2)=$GUI_CHECKED Then _sleep3pt()
	If GUICtrlRead($Radio3)=$GUI_CHECKED Then _sleep1pt2()
	If GUICtrlRead($Radio4)=$GUI_CHECKED Then _sleep3pt2()
	If GUICtrlRead($Radio5)=$GUI_CHECKED Then _sleep1pt3()
	If GUICtrlRead($Radio6)=$GUI_CHECKED Then _sleep3pt3()
	If GUICtrlRead($Radio7)=$GUI_CHECKED Then _sleep1pt4()
	If GUICtrlRead($Radio8)=$GUI_CHECKED Then _sleep3pt4()
	If GUICtrlRead($Radio9)=$GUI_CHECKED Then _sleep1pt5()
	If GUICtrlRead($Radio10)=$GUI_CHECKED Then _sleep3pt5()
	If $nmsg=$Button1 Then button1()
	If $nmsg=$Button2 Then button2()
	If $nmsg=$Button3 Then button4()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
.
.
.

func button1()
	AdlibEnable("status",1000)
		Call("_Running")
EndFunc

With this. it tells me the time the Bot.exe has been running itself, as soon i click start. [EX: if i open the bot let it sit there for 2 min and click start, time ill jump to 2min]
suggestions?
02/06/2009 13:21 Azunai#66
not with this code

1. where is ur _running function
2. dont use CALL("")
3. what the hell? why so many IF's in ur loop?
do it like koda, or everyone else
use

PHP Code:
Switch $nMsg
Case $GUI_EVENT_CLOSE ;<-----
Exit
case 
$Button1 ;<--- and so on
button1
() ; <-- better than call
EndSwitch 
4. also its "sInce" and not "sEence"
5.

PHP Code:
func status()
$time timerdiff($timer)
$t_time stringsplit($time,".")
tooltip("Running since "&$t_time[0]/1000/60&" min")
endfunc 
05/01/2009 02:13 Blinzler#67
Quote:
Originally Posted by kknb View Post

ich hab die lösung mal hochgeladen, nur reingucken wenn du wirklich net weiterkommst ;)

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Könntest die bitte nochmal hochladen? Ich bräuchte die auch noch^^
Bei mir kommt da immer Seiten-Ladefehler
05/01/2009 10:38 kknb#68
2
Code:
For $i = 1 To 5
    For $a = 1 to 5
        Send("1")
    Next
        Send("2")
Next
3
Code:
Dim $fuer1, $fuer2
For $i = 1 To 25
    $taste=Random(1,2,1)
    if $taste = 1 Then
        Send("1")
        $fuer1 +=1
    Else
        Send("2")
        $fuer2 +=1
    EndIf
Next
FileWrite("test.txt", "ich habe die Taste 1 " & $fuer1 & "mal gedrückt" & @crlf)
FileWrite("test.txt", "ich habe die taste 2 " & $fuer2 & "mal gedrückt" & @crlf)
01/12/2010 15:20 Cry Zor#69
so also ich weiß gar net ob dieser thread hier(da letzter edit und gefähr 8~10monate her ist) noch genutzt bzw angeschaut wird aber ich hab jetz mal ne frage bzw mehrere :-P
also
1.gibts ne liste wo man die ganzen begriffe für autoit wie voc lernen kann?
2.also was soll bei aufgabe 1 das $i?
3.dann habe 8ich mal (ich jkenn die prog sprac he net ) die aufgabe eins abgeschrriben
von vorne wie kann ich des jetzt ausprob(aufgabe 1) bzw starten das der 25 mal skil eins einstzt?
4. benutze ich da richtige programm?:SciTE4AutoIt3
€:ahb mal bei wikipedia geguckt wegen liste für autoit sprache habe nix gefunden o.O
01/13/2010 15:23 Cry Zor#70
HTML Code:
For $i = 0 To 5
	     Sleep(10000)
	     Send("1")
Next
Sleep(100000)
Send("2")
Next
For $i = 0 To 5
	     Sleep(10000)
	     Send("1")
Sleep(100000)
Send("2")
Next
For $i = 0 To 5
	     Sleep(10000)
	     Send("1")
Sleep(100000)
Send("2")
Next
For $i = 0 To 5
	     Sleep(10000)
	     Send("1")
Sleep(100000)
Send("2")
Next
For $i = 0 To 5
	     Sleep(10000)
	     Send("1")
Sleep(100000)
Send("2")
Next
geht das so auch?

€:ist meine lösung zu aufgabe 2
01/15/2010 23:10 Cry Zor#71
hätte jemand vllt die lösung für aufgabe4
8wenns geht am besten auch noch für die folgenden)
02/01/2010 16:04 T1CM4D#72
Could someone show me how to make KeySend 1 to 8 random? I am having a hard time finding the answer :( It doesn't matter which order the skills get used so long as they are random.

Code:
		;Aggro and fight one
		For $i = 0 To 30
			RandomSleep(7000, 14000)
			KeySend("1")
			RandomSleep(1000, 2000)
			KeySend("2")
			RandomSleep(750, 1400)
			KeySend("3")
			RandomSleep(750, 1400)
			KeySend("4")
			RandomSleep(750, 1400)
			KeySend("5")
			RandomSleep(1000, 2000)
			KeySend("6")
			RandomSleep(1000, 2000)
			KeySend("7")
			RandomSleep(750, 1400)
			KeySend("8")
			RandomSleep(28000, 35000)
		Next
02/01/2010 23:10 buFFy!#73
Code:
KeySend(Random(1,8,1))
02/03/2010 18:50 T1CM4D#74
Quote:
Originally Posted by u-coRe View Post
Code:
KeySend(Random(1,8,1))
Is there a way to make that piece of code press all my skills (1-8) randomly 14 times? Currently i have this.

Code:
;Aggro and fight one
		For $i = 0 To 14
			RandomSleep(14000, 21000)
			KeySend("1")
			RandomSleep(1000, 2000)
			KeySend("2")
			RandomSleep(1000, 1400)
			KeySend("3")
			RandomSleep(1000, 1400)
			KeySend("4")
			RandomSleep(1000, 1400)
			KeySend("5")
			RandomSleep(1000, 2000)
			KeySend("6")
			RandomSleep(1000, 2000)
			KeySend("7")
			RandomSleep(1000, 1400)
			KeySend("8")
			RandomSleep(28000, 35000)
		Next
But i would like it to randomise the skills 1-8 fourteen times which is roughly 10/14 minutes depending on the battle, I hope that makes sense...
02/04/2010 11:34 buFFy!#75
Code:
Func Fight($iMin = 14) ;time in minutes
	Local $Timeout = TimerInit()
	While TimerDiff($Timeout) < ((60 * 1000) * $iMin)
		KeySend(Random(1,8,1))
		Sleep(1000)
	WEnd
EndFunc   ;==>Fight
This will run until the timer has reached the iMin Parameter (default = 14 minutes)
It presses every second a RandomKey from 1 to 8

By the way..
Code:
For $i = 0 To 14
...
Next
This is done 15 times. not 14 ;)
0 = 1
1 = 2
2 = 3
3 = 4
4 = 5
5 = 6
7 = 8
8 = 9
9 = 10
10 = 11
11 = 12
12 = 13
13 = 14
14 = 15 -> exitloop