|
You last visited: Today at 16:19
Advertisement
[TUT]1.Potfunktions Methode in AutoIT
Discussion on [TUT]1.Potfunktions Methode in AutoIT within the Nostale Hacks, Bots, Cheats & Exploits forum part of the Nostale category.
08/22/2012, 17:37
|
#1
|
elite*gold: 80
Join Date: Mar 2012
Posts: 404
Received Thanks: 94
|
[TUT]1.Potfunktions Methode in AutoIT
Hallo Leute.
Da es zurzeit viele Bots gibt, die nur Angreifen und aufheben (HP und MP) auslesen möchte ich euch noch dazu erklären wie ihr eine erweiterte Funktion erstellen könnt.Ich nehme hier mal eine Auto-Pot Funktion rein damit ihr seht wie man so etwas aufbauen könnte.
So nun zum eigentlichen Bot Aufbau.
Man nehme ein Fenster mit einem Label,eine Combo und einer Input.
(Schnell erstellt sorry für das schlechte Design )
So nun kommen wir zum eigentlichen Code.
Also er sieht bis jetzt noch folgender Maßen aus :
Code:
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Levelbot", 277, 31, 192, 124, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
GUISetBkColor(0x000000)
$Label1 = GUICtrlCreateLabel("Snack benutzen:", 8, 8, 85, 17)
GUICtrlSetColor(-1, 0x00FF00)
$Combo1 = GUICtrlCreateCombo("", 96, 5, 73, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "6|7|8|9")
$Input1 = GUICtrlCreateInput("", 176, 5, 33, 21)
$Label2 = GUICtrlCreateLabel("Sekunden", 216, 8, 53, 17)
GUICtrlSetColor(-1, 0x3399FF)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
ALso mit der Combo wollen wir einstellen oder der Benutzer wo diese in der Skill-leiste liegen.Habe jetzt mal nur 6-9 genommen.
In der Input werden die Sekunden eingetragen wenn diese Sekunden auf 0 fallen Pottet er einmal die Taste 6-oder/bis-9 und dannach setzt er die Sekunden von 0 wieder auf die eingetragenen Sekunden ein.Als erstes werden nun die Start/Stop/Exit Funktionen geschrieben jedoch die Start-funktion noch nicht ganz.(Dies kommt noch.)
Code:
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $active = 0 ;Wir setzen die Variable active auf 0
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Levelbot", 277, 31, 192, 124, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
GUISetBkColor(0x000000)
$Label1 = GUICtrlCreateLabel("Snack benutzen:", 8, 8, 85, 17)
GUICtrlSetColor(-1, 0x00FF00)
$Combo1 = GUICtrlCreateCombo("", 96, 5, 73, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "6|7|8|9")
$Input1 = GUICtrlCreateInput("", 176, 5, 33, 21)
$Label2 = GUICtrlCreateLabel("Sekunden", 216, 8, 53, 17)
GUICtrlSetColor(-1, 0x3399FF)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func Start_()
$active = 1 ;wir setzen die Variable active auf 1
If $active = 1 Then ;wenn die Variable active gleich 1 ist dann (funktion)
While 1 ;immer wiederholen
;funktion kommt später
WEnd ;schließen der Schleife
EndIf ;schließen der If Bedingung
EndFunc ;schließen der Funktion
Func Stop_()
$active = 0
If $active = 0 Then
While 1
sleep(20);Schläft durchgehend bis das $acive auf 1 gesetzt wird
WEnd
EndIf
EndFunc
Func Exit_()
Exit
EndFunc
Die Funktionen werden im Code beschrieben wer AutoIT etwas kann sollte den Code verstehen können 
Nun müssen wir diese Funktionen natürlich aufrufen können dies machen wir indem wir die HotKeys platzieren ! Am besten verwendet man die Tasten F1-F11(nicht F12 !).
Code:
HotKeySet("{F1}","Start_");Aufrufen der Startfunktion mit F1
HotKeySet("{F2}","Stop_");=
HotKeySet("{F3}","Exit_");=
So nun können wir die Funktionen auch noch erfolgreich aufrufen mit den Tasten F1,F2,F3.Nun kommen wir zur Save Funktion !Wir müssen die Input Speichern bevor wir die eigentliche Funktion starten können da er die Sekunden nicht einfach so herzaubern kann nachdem die Zahl auf 0 gefallen ist.Dafür lassen wir eine Save.ini erstellen (es geht auch mit Variablen zeige es jetzt mit diesen Methoden)im gleichen Ordner wo das Script/die .exe liegt.
Code:
$SaveCombo1 = IniRead(@ScriptDir & "\Save.ini", "PotButton", "", "Change")
$SaveInput1 = IniRead(@ScriptDir & "\Save.ini", "PotTime", "", "10")
Dies wird unter Global $active = 0 gesetzt !
Als nächstes Brauchen wir die Funktion zum Schreiben in die Save.ini und zum Aufrufen der Save.ini ! Diese Funktionen braucht ihr nun und setzt sie an das Ende des Scriptes !
Code:
Func IniWrite_()
IniWrite(@ScriptDir & "\Save.ini", "PotButton", "", GuiCtrlRead($Combo1)) ;In die Save.ini an die Position PotButton den Key aus Combo1 schreiben
IniWrite(@ScriptDir & "\Save.ini", "PotTime", "", GuiCtrlRead($Input1)) ;=
EndFunc
Func IniSee()
$SaveCombo1 = IniRead(@ScriptDir & "\Save.ini", "PotButton", "", "Change") ;Lesen der Daten aus der Combo
$SaveInput1 = IniRead(@ScriptDir & "\Save.ini", "PotTime", "", "10") ;Lesen der Daten aus der Input
EndFunc
Nun brauchen wir eigentlich nur noch die Potfunktion aber ich möchte noch darauf hinweisen nicht das #RequireAdmin am Anfang zu setzen und die $Save Variablen in die entsprechenden Combos und Inputs aber lest euch den kompletten Code später nochmal richtig durch damit ihr nichts falsch macht !
Nun kommt die eigentliche Potfunktion !
Code:
Func Pot_()
If GuiCtrlRead($Input1) = "0" or "" Then ;Wenn die Input1 auf 0 fällt dann ...
controlsend("NosTale","","",GuiCtrlRead($Combo1)) ;An NosTale den PotButton aus der COmbo senden
GuiCtrlSetData($Input1, $SaveInput1) ;Zurücksetzen der Sekunden auf z.b. 10 von 0
EndIf ;Ende der If Bedingung
EndFunc
Nun müssen wir natürlich die ganzen Funktionen in die Startfunktion versetzen das macht ihr ungefähr so :
Code:
Func Start_()
IniWrite_()
IniSee()
GuiCtrlSetState($Input1,BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GuiCtrlSetState($Combo1,BitOR($ES_AUTOHSCROLL,$ES_READONLY))
$active = 1 ;wir setzen die Variable active auf 1
If $active = 1 Then ;wenn die Variable active gleich 1 ist dann (funktion)
While 1 ;immer wiederholen
GuiCtrlSetData($Input1, GuiCtrlRead($Input1)-1);Jede Sekunde durch die Sleep die Skunden -1 Zahl setzen !
Pot_()
sleep(1000);1 sekunde Abstand für den Timer der Sekunden
WEnd ;schließen der Schleife
EndIf ;schließen der If Bedingung
EndFunc ;schließen der Funktion
Func Stop_()
GuiCtrlSetState($Input1,$GUI_Enable)
GuiCtrlSetState($Combo1,$GUI_Enable)
GuiCtrlSetData($Input1,$SaveInput1)
GuiCtrlSetData($Combo1,$SaveCombo1)
$active = 0
If $active = 0 Then
While 1
sleep(20);Schläft durchgehend bis das $acive auf 1 gesetzt wird
WEnd
EndIf
EndFunc
Zudem habe ich dort noch eingestellt das man während des Bottens nichts verändern kann an den Sekunden und an dem Potbutton und das wenn man ihn stoppt das die richtigen Sekunden wieder angezeigt werden statt die bei der man stehen geblieben ist.
Und herzlichen Glückwunsch du hast eine Methode der Potfunktion herausgefunden und kannst sie hoffentlich nun auch benutzen.
Hier sit der komplette Code:
Code:
#RequireAdmin
HotKeySet("{F1}","Start_");Aufrufen der Startfunktion mit F1
HotKeySet("{F2}","Stop_");=
HotKeySet("{F3}","Exit_");=
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $active = 0 ;Wir setzen die Variable active auf 0
$SaveCombo1 = IniRead(@ScriptDir & "\Save.ini", "PotButton", "", "Change")
$SaveInput1 = IniRead(@ScriptDir & "\Save.ini", "PotTime", "", "10")
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Levelbot", 277, 31, 192, 124, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
GUISetBkColor(0x000000)
$Label1 = GUICtrlCreateLabel("Snack benutzen:", 8, 8, 85, 17)
GUICtrlSetColor(-1, 0x00FF00)
$Combo1 = GUICtrlCreateCombo($SaveCombo1, 96, 5, 73, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "6|7|8|9")
$Input1 = GUICtrlCreateInput($SaveInput1, 176, 5, 33, 21)
$Label2 = GUICtrlCreateLabel("Sekunden", 216, 8, 53, 17)
GUICtrlSetColor(-1, 0x3399FF)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func Start_()
IniWrite_()
IniSee()
GuiCtrlSetState($Input1,BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GuiCtrlSetState($Combo1,BitOR($ES_AUTOHSCROLL,$ES_READONLY))
$active = 1 ;wir setzen die Variable active auf 1
If $active = 1 Then ;wenn die Variable active gleich 1 ist dann (funktion)
While 1 ;immer wiederholen
GuiCtrlSetData($Input1, GuiCtrlRead($Input1)-1);Jede Sekunde durch die Sleep die Skunden -1 Zahl setzen !
Pot_()
sleep(1000);1 sekunde Abstand für den Timer der Sekunden
WEnd ;schließen der Schleife
EndIf ;schließen der If Bedingung
EndFunc ;schließen der Funktion
Func Stop_()
GuiCtrlSetState($Input1,$GUI_Enable)
GuiCtrlSetState($Combo1,$GUI_Enable)
$active = 0
If $active = 0 Then
While 1
sleep(20);Schläft durchgehend bis das $acive auf 1 gesetzt wird
WEnd
EndIf
EndFunc
Func Exit_()
Exit
EndFunc
Func IniWrite_()
IniWrite(@ScriptDir & "\Save.ini", "PotButton", "", GuiCtrlRead($Combo1)) ;In die Save.ini an die Position PotButton den Key aus Combo1 schreiben
IniWrite(@ScriptDir & "\Save.ini", "PotTime", "", GuiCtrlRead($Input1)) ;=
EndFunc
Func IniSee()
$SaveCombo1 = IniRead(@ScriptDir & "\Save.ini", "PotButton", "", "Change") ;Lesen der Daten aus der Combo
$SaveInput1 = IniRead(@ScriptDir & "\Save.ini", "PotTime", "", "10") ;Lesen der Daten aus der Input
EndFunc
Func Pot_()
If GuiCtrlRead($Input1) = "0" or "" Then ;Wenn die Input1 auf 0 fällt dann ...
controlsend("NosTale","","",GuiCtrlRead($Combo1)) ;An NosTale den PotButton aus der COmbo senden
GuiCtrlSetData($Input1, $SaveInput1) ;Zurücksetzen der Sekunden auf z.b. 10 von 0
EndIf ;Ende der If Bedingung
EndFunc
Bitte informiert mich wenn Fehler vorhanden sind aber NICHT wenn ihr eine bessere Methode kennt !Das interessiert mich hier im Thread nicht .Rechtschreibfehler könnt ihr auch für euch behalten ,ich weiß das ich nicht gerade der beste in Sachen Rechtschreibung bin !
Ich hoffe ihr habt es halbwegs verstanden und könnt jetzt auch eine Potfunktion in euren Bot schreiben.
Ich bitte euch wenn ihr diese Funktion benutzt meine Credits mit an zu geben.
Mfg Samulau
PS.: Ich hoffe ich habe es euch genug erklärt und näher gebracht und mit ein paar Funktionen hier könnt ihr auch einiges Automatisch abspeichern lassen 
Um die Save.ini zu erhalten müsst ihr meines erachtens nach einem die Potfunktion starten und dann den Bot wieder beenden.
|
|
|
08/22/2012, 18:22
|
#2
|
elite*gold: 2778
Join Date: Feb 2012
Posts: 3,527
Received Thanks: 1,044
|
Schlechtes Tutorial 
Also indirekt  Ich habe es nicht durchgelesen und nur die Beispielscripte angeguckt.
Wenn man schon eine GUI hat, warum baut man nicht gleich Start/Stop und Exit Buttons ein? Hotkeyset wären in deinem Fall unnötig 
Ich helfe momentan  bei AutoIt (mein Schüler :P) und er würde ein besseres Script, mit dem selben Funktionen und kleinerem Aufwand hinlegen, wenn er sich bemüht :P
Desweiterem ist dies hier der falsche Bereich dafür und man sollte jemanden nicht was "falsches" beibringen, wenn es auch richtig geht ...
|
|
|
08/22/2012, 18:44
|
#3
|
elite*gold: 80
Join Date: Mar 2012
Posts: 404
Received Thanks: 94
|
Was ist falsch wenn die Funktion trotzdem funktioniert ?
Was ist falsch daran ein HotKeySet zu nehmen wenn es nicht so Zeitraubend ist ?
Was ist falsch an den Funktionen ?
Ganz genau NICHTS ist hier falsch.
Ich habe hier meine Methode gepostet du konntest deine Posten hast es aber nicht getan und lese bitte den Thread nochmal genau durch.
Ich habe das Tutorial genau so erklärt und wollte NICHT das hier etwas von wegen einer anderen Methode usw. gepostet wird .
Mich nervt es einmählig das hier manche meinen zu Posten das er das Tut schlecht findet vom Source aus obwohl er funktionstüchtig ist.
Wie Bartholo mal sagte
Selbst schreiben -> Releasen -> Beschweren.
PS.: Ich kann Kritik vertragen jedoch nicht wenn die Threadregeln gebrochen werden.
Mfg
|
|
|
08/22/2012, 19:24
|
#4
|
elite*gold: 2778
Join Date: Feb 2012
Posts: 3,527
Received Thanks: 1,044
|
Naja, ich habe gerade keine Lust drauf ein zu gehen, weil ich gleich weg muss.
Mach was du richtig findest, so sollte man es aber keinem beibringen wenn man schon jemanden was beibringen möchte ...
|
|
|
08/22/2012, 19:30
|
#5
|
elite*gold: 20
Join Date: Nov 2010
Posts: 552
Received Thanks: 350
|
Quote:
Originally Posted by Mr.Tr33
Schlechtes Tutorial 
Also indirekt  Ich habe es nicht durchgelesen und nur die Beispielscripte angeguckt.
Wenn man schon eine GUI hat, warum baut man nicht gleich Start/Stop und Exit Buttons ein? Hotkeyset wären in deinem Fall unnötig 
Ich helfe momentan  bei AutoIt (mein Schüler :P) und er würde ein besseres Script, mit dem selben Funktionen und kleinerem Aufwand hinlegen, wenn er sich bemüht :P
Desweiterem ist dies hier der falsche Bereich dafür und man sollte jemanden nicht was "falsches" beibringen, wenn es auch richtig geht ...
|
1.Hotkey's sind bei Bots viiiiiieeel handlicher als Buttons.
2.GUI's werden verwendet damit der User eingaben machen kann(Deswegen auch [G]raphical [U]ser [I]nterface), was in diesem Fall auch nötig ist.
3.Jeder hat seinen eigenen Schreibstyle, der vielleicht nicht der beste ist aber dennoch funktioniert.
4.Was willst du für ein "Lehrer" sein? 
Lass deine unausgereifte Kritik bitte bei dir.
@Samulau
Ich bin der Meinung das dein Tutorial gut ist, weil du die einzelnen Codeabschnitte recht gut erklärst und du mal etwas Abwechslung in diese Forumabteilung bringst.
|
|
|
08/22/2012, 20:24
|
#6
|
elite*gold: 80
Join Date: Mar 2012
Posts: 404
Received Thanks: 94
|
Ich freue mich das jemand meine Arbeit zu schätzen weiß ,weiß was man damit anfangen kann und auch weiß das es völlig richtig ist.
Ich finde es auch gut das du "Abwechslung" einbringst da ich hier eh nie TuT´s von irgendwas sehe.Also solltet ihr mal froh sein ,dass ich überhaupt mal ein TuT release.
Achja
@Mr.Tr33
Wieso ist dies hier der falsche Bereich ?
Dachte es wäre richtig korrigiert mich wenn ich hier falsch bin und wo es eigentlich hin muss.Wenn mir jemand mit AutoIT Section kommt neh :P Istn NosTale Tut.
|
|
|
08/22/2012, 20:59
|
#7
|
elite*gold: 32
Join Date: Jul 2010
Posts: 2,377
Received Thanks: 1,167
|
Ich habs mir jetzt nicht genau durchgelesen, aber was unterscheidet das von einem Normalen Bot? Es wird ja nur eine bestimmte Taste in einem Zeitintervall gedrückt, oder?
Wäre es nicht klüger die HP auszulesen und bei x% zu potten?
|
|
|
08/22/2012, 22:27
|
#8
|
elite*gold: 0
Join Date: Apr 2010
Posts: 384
Received Thanks: 137
|
Zuuuuu aufwandvoll ....
Inputbox -> Zeit reinschreiben ---> In Bot einbauen ---> Fertig
Sollte ein script nicht über 20 Zeilen sein
|
|
|
08/22/2012, 22:49
|
#9
|
elite*gold: 80
Join Date: Mar 2012
Posts: 404
Received Thanks: 94
|
Lest den ersten post ich möchte nichts von einer anderen methode wissen und dabei ist nichts zeitaufwendig wenn du den code einmal richtig gelesen hast und sieht zuvleich auch nicht schlecht aus
Released eure tuts ich meine jedoch glaube ich kaum das ihr dies machdn werdet.das mit den pointer ist auch was anderes ich wollte was zum forum beitragen und wieder diese kommentare tut von mir ... nie wieder könnt ihr schlaumeier machen 
sorry schreibe auf handx
|
|
|
08/23/2012, 11:59
|
#10
|
elite*gold: 6
Join Date: May 2008
Posts: 844
Received Thanks: 842
|
Ich glaub sie wollen einfach alle darauf hinaus da der Code unsauber und unnötig verkompliziert ist.
Nehmen wir mal:
Code:
$active = 1 ;wir setzen die Variable active auf 1
If $active = 1 Then ;wenn die Variable active gleich 1 ist dann (funktion)
Was soll denn bitteschön diese Abfrage obwohl active jedesmal vor der Abfrage auf 1 gesetzt wird ??
Zudem ist es lediglich ein Keypresser mit unnötigen speicher Funktionen.
Was macht er er drückt mit nem bestimmten Delay ne bestimmte Taste.
Also genau das selbe wie ein Leertasten Bot. Würde man dort jetzt Leertaste angeben können wäre es genau das selbe. Die Autopot Funktion bekommt jeder hin der nen Keypresser schreiben kann also JEDER.
Und Kritik muss man auch vertragen können wenn man hier was Postet zumal du ja auch in den Credits erwähnt werden willst
|
|
|
08/23/2012, 13:27
|
#11
|
elite*gold: 0
Join Date: Jul 2008
Posts: 288
Received Thanks: 801
|
Schlechte Kritik ist nicht immer etwas schlechtes, aber so wie ihr es rüberbringt ist es wirklich unnütze Kritik. Das ganze grenzt ja schon am Schlechtmachen.
Seit froh dass er den Anfängern soetwas zur Verfügung stellt. Wenn ihr es besser könnt dann macht einen eigenen Thread dafür und beweist es.
BTT:
Ich finde die Idee nicht schlecht, vorallem für Anfänger ist es etwas nützliches.
Allerdings würde ich dir folgendes ans Herz legen:
- Statt GUIGetMsg solltest du den GUIOnEventMode nutzen. Leichter zu handln und in meinen Augen auch machtvoller.
- Versuch die HotkeySet's mit _IsPressed auszutauschen, da HotkeySet die Tasten für das Programm reserviert.
- Drück öfters in SciTE 'Strg + T' um Tidy aufzurufen, welches dein Skript seubert und somit leserlicher macht.
- Gewöhn dir an vor deinen eigenen Funktionen ein '_' zu setzen, damit man schneller erkennen kann dass es sich bei der Funktion um keine native handelt.
- Versuch deinen Funktionen eindeutigere Namen zu geben. Weil IniWrite_ ist nicht gerade sehr eindeutig und beinhaltet zudem noch den Namen einer nativen Methode, was bei drüberlesen schnell zu Verwirrung führen kann.
- While-Schleifen sind in Funktionen generell immer zu vermeiden, da sie das gesamte Skript blockieren.
Dann noch ein Fehler in deinem Skript:
Code:
Func Stop_()
GuiCtrlSetState($Input1,$GUI_Enable)
GuiCtrlSetState($Combo1,$GUI_Enable)
$active = 0
If $active = 0 Then
While 1
sleep(20);Schläft durchgehend bis das $acive auf 1 gesetzt wird
WEnd
EndIf
EndFunc
Das Programm kann die While-Schleife nie verlassen, weil die While-Schleife sich wiederholt solange 1 == 1 ist, was immer der Fall ist. Somit ist das Kommentar ";Schläft durchgehend bis das $acive auf 1 gesetzt wird" falsch, weil $active jetzt garnichtmehr berücksichtigt werden kann.
Außerdem ist es eine schlechte Angewohnheit While-Schleifen in Funktionen zu verwenden, da sie wie oben gesagt das ganze Skript blockieren.
Das ganze sollte in die Hauptschleife verlegt werden, weil es wirklich nur dort Sinn macht.
Aber nette Idee auf alle Fälle.
MfG,
Nestos.
|
|
|
08/23/2012, 14:32
|
#12
|
elite*gold: 80
Join Date: Mar 2012
Posts: 404
Received Thanks: 94
|
Danke für die gute Kritik.
Es ist kein Fehler im Script ,da der Bot perfekt stoppt kannst es ja mal ausprobieren 
Aber danke das andere werde ich mir zu Herzen nehmen auch wenn ich es so gelernt habe ,und wahrscheinlich dennoch weiterhin so anwenden werde.
Finde ich einfach leichter ,mein Script-style und HotKey´s verbaue ich meist in Bots da es für mich auch leichter ist und zudem schneller und handlicher.
|
|
|
08/25/2012, 13:40
|
#13
|
elite*gold: 0
Join Date: Jul 2012
Posts: 119
Received Thanks: 16
|
Eigendlich ganz gut gelungen das Tut, ist zwar für richtige Anfänger noch etwas zu kompliziert aber sonst gut!
|
|
|
08/25/2012, 13:46
|
#14
|
elite*gold: 0
Join Date: Jun 2012
Posts: 208
Received Thanks: 41
|
Quote:
Originally Posted by *-Zero-*
Eigendlich ganz gut gelungen das Tut, ist zwar für richtige Anfänger noch etwas zu kompliziert aber sonst gut!
|
Dann bist du ja weit entfernt es zu verstehen!
|
|
|
08/27/2012, 04:01
|
#15
|
elite*gold: 2778
Join Date: Feb 2012
Posts: 3,527
Received Thanks: 1,044
|
Quote:
Originally Posted by *-Zero-*
Meine fans haten mal wieder  findsch jut ...
|
Mich magst du ja am aller meisten, hast du gesagt
/Edit:
@Samulau
Ich habe mir das ganze jetzt mal durchgelesen und dachte das ich doch etwas zu hard war. Ich sehe das du den Usern helfen möchtest.
Ich weiß das du keine Änderungen haben möchtest an deinem Script, aber ich kann es nicht anssehen, dass man so viele Schleifen benutzt.
Naja, ich habe es dir grob angepasst. Nun funktioniert die Gui so wie sie funktionieren soll (man kann sie über das X schliessen ^^) und das ganze läuft nur noch über eine Schleife.
Schau es dir einfach an, ich habe so manche stellen kommentiert, aber meine Kommentare wirst du schon sehen
PHP Code:
#RequireAdmin HotKeySet("{F1}","Start_");Aufrufen der Startfunktion mit F1 HotKeySet("{F2}","Stop_");= HotKeySet("{F3}","Exit_");=
;~ #include <ComboConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> ;~ #include <StaticConstants.au3> #include <WindowsConstants.au3>
Global $active = 0 ;Wir setzen die Variable active auf 0 Global $nStart = False ; =========== start "funktion", wenn auf true, dann wird gepottet, wenn auf false, dann nicht
$SaveCombo1 = IniRead(@ScriptDir & "\Save.ini", "PotButton", "", "Change") $SaveInput1 = IniRead(@ScriptDir & "\Save.ini", "PotTime", "", "10")
#Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Levelbot", 277, 31, -1, -1, -1, $WS_EX_TOOLWINDOW) ; ======= x und y auf -1 setzen, sodass es zentriert ist GUISetBkColor(0x000000) $Label1 = GUICtrlCreateLabel("Snack benutzen:", 8, 8, 85, 17) GUICtrlSetColor(-1, 0x00FF00) $Combo1 = GUICtrlCreateCombo($SaveCombo1, 96, 5, 73, 25) ; ============ unnötig, braucht keiner: ,BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL)) GUICtrlSetData(-1, "6|7|8|9") $Input1 = GUICtrlCreateInput($SaveInput1, 176, 5, 33, 21) $Label2 = GUICtrlCreateLabel("Sekunden", 216, 8, 53, 17) GUICtrlSetColor(-1, 0x3399FF) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ###
$nTimer = TimerInit() ; =========== speicher aktuelle zeit zum späteren verwenden
While 1 $nMsg = GUIGetMsg() Switch $nMsg Case -3 ; ========= -3 = $GUI_EVENT_CLOSE, da spaart man sich unnötige include :) Exit
EndSwitch
If ($nStart = True) Then ; =========== Wenn die Variable $nStart auf True gesetzt wird, dann wird der Code da drunter ausgeführt If (TimerDiff($nTimer) >= 1000) Then ; ========== wenn 1000 millisekunden abgelaufen sind, dann wird der code ausgeführt GuiCtrlSetData($Input1, GuiCtrlRead($Input1)-1);Jede Sekunde durch die Sleep die Skunden -1 Zahl setzen ! Pot_() $nTimer = TimerInit() ; ========== neu setzung der zeit EndIf EndIf WEnd
Func Start_() $nStart = True ; ========= variable auf true ändern IniWrite_() IniSee() GuiCtrlSetState($Input1,$ES_READONLY) ; ========= was willst du eig. mit dem ganzen BitOR :D GuiCtrlSetState($Combo1,$ES_READONLY) #cs $active = 1 ;wir setzen die Variable active auf 1 If $active = 1 Then ;wenn die Variable active gleich 1 ist dann (funktion) While 1 ;immer wiederholen
sleep(1000);1 sekunde Abstand für den Timer der Sekunden WEnd ;schließen der Schleife EndIf ;schließen der If Bedingung #ce EndFunc ;schließen der Funktion
Func Stop_() GuiCtrlSetState($Input1,$GUI_Enable) GuiCtrlSetState($Combo1,$GUI_Enable) $nStart = False ; ============= variable auf false setzen und es wird nicht mehr gepottet #cs $active = 0 If $active = 0 Then While 1 sleep(20);Schläft durchgehend bis das $acive auf 1 gesetzt wird WEnd EndIf #ce EndFunc
Func Exit_() Exit EndFunc
Func IniWrite_() IniWrite(@ScriptDir & "\Save.ini", "PotButton", "", GuiCtrlRead($Combo1)) ;In die Save.ini an die Position PotButton den Key aus Combo1 schreiben IniWrite(@ScriptDir & "\Save.ini", "PotTime", "", GuiCtrlRead($Input1)) ;= EndFunc
Func IniSee() $SaveCombo1 = IniRead(@ScriptDir & "\Save.ini", "PotButton", "", "Change") ;Lesen der Daten aus der Combo $SaveInput1 = IniRead(@ScriptDir & "\Save.ini", "PotTime", "", "10") ;Lesen der Daten aus der Input EndFunc
Func Pot_() If GuiCtrlRead($Input1) = "0" or "" Then ;Wenn die Input1 auf 0 fällt dann ... controlsend("NosTale","","",GuiCtrlRead($Combo1)) ;An NosTale den PotButton aus der COmbo senden GuiCtrlSetData($Input1, $SaveInput1) ;Zurücksetzen der Sekunden auf z.b. 10 von 0 EndIf ;Ende der If Bedingung EndFunc
Desweiterem würde ich dich bitten den Unterstrich bei Funktionen am Anfang zu setzen :P
Wenn du selbst Hilfe bei AutoIt brauchst, du kannst dich jederzeit bei mir melden. Ich helfe gerne jemanden, bei dem ich sehe das er was lernen möchte. Also keine Angst
|
|
|
Similar Threads
|
[Methode]Lvln mit M2Bob in andere Methode
08/30/2012 - Metin2 Guides & Templates - 24 Replies
Hey leute
Das ist mein Erster TuT
Also am Anfang startet ihr M2bob
Schreibt eine Ansage z.B: !Wer lvlt mich in OTM hab auch umhänge
Euch pnt einer und will euch lvln
ihr trefft euch irgendwo bei OTM
du fragst ihn dann welches lvl er ist (Er sollte Mindestens lvl 40 sein mit Kg)
Der nimmt dich in GRP
|
Methode?
06/30/2012 - Combat Arms - 6 Replies
gibt es ne methode Firstname & Lastname herauszubekommen?
Würde bis zu 15 e*G Zahlen..
|
All times are GMT +1. The time now is 16:19.
|
|