Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 04:46

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Brauche Hilfe !

Discussion on Brauche Hilfe ! within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Olo21's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 165
Received Thanks: 17
Brauche Hilfe !

Hi ,

Ich habe dieses Script gemacht (Es ist ein Farmbot für ein Spiel):


Ich möchte, dass das sich beim Schließen des 2ten Guis (Func Steuerung) sich nicht das "Standard" Gui schließt.

Außerdem möchte ich:

Das $Button1 die selbe Funktion hat wie der Button $Start

Das $Button2 die selbe Funktion hat wie F2

Das $Button2 die selbe Funktion hat wie F3

Als ich diese sachen mit Case geschrieben hatte gings leider nicht xD

Ich hoffe ihr könnt mir helfen.
Olo21 is offline  
Old 10/21/2010, 03:41   #2
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Aufgeräumt und optimiert. Bei Fragen einfach an mich wenden oder ans Forum:

Code:
#include <GUIConstantsEx.au3>

Opt("GUIOnEventMode", 1)

HotKeySet("{F1}", "_SwitchMode")
HotKeySet("{F2}", "_Exit")
HotKeySet("{F3}", "_Control")

Global $bStart = False, $Button1, $Button2, $Delay = 50, $bState = False

$FORM1 = GUICreate("Olo21´s S4 Farmbot", 219, 155, 399, 288)
GUISetOnEvent(-3, "_Exit")
GUISetIcon(@TempDir & "S4League.ico")
GUISetBkColor(0x000000)
$Start = GUICtrlCreateButton("Bot Starten", 32, 102, 148, 33)
GUICtrlSetOnEvent(-1, "_Start")
$LABEL1 = GUICtrlCreateLabel("© by Olo21", 160, 136, 54, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$PIC1 = GUICtrlCreatePic(@TempDir & "S4 Icon Breiter.jpg", 0, 16, 217, 73)
$LABEL3 = GUICtrlCreateLabel("F3 Steuerung", 0, 136, 96, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUISetState(@SW_SHOW)

$FORM2 = GUICreate("Steuerung", 186, 93, 399, 288)
GUISetOnEvent(-3, "_Control")
GUISetIcon(@TempDir & "S4League.ico")
GUISetBkColor(0x000000)
$Button1 = GUICtrlCreateButton("Starten", 8, 0, 121, 25)
GUICtrlSetOnEvent(-1, "_SwitchMode")
$Button2 = GUICtrlCreateButton("Stoppen", 8, 32, 121, 25)
GUICtrlSetOnEvent(-1, "_SwitchMode")
GUICtrlSetState(-1, $GUI_DISABLE)
$Button3 = GUICtrlCreateButton("Beenden", 8, 64, 123, 25)
GUICtrlSetOnEvent(-1, "_Exit")
$LABEL1 = GUICtrlCreateLabel("oder", 136, 5, 25, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$Label2 = GUICtrlCreateLabel("F1", 165, 6, 16, 17)
GUICtrlSetColor(-1, 0xFF0000)
$LABEL3 = GUICtrlCreateLabel("oder", 136, 37, 25, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$Label4 = GUICtrlCreateLabel("oder", 136, 69, 25, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$Label5 = GUICtrlCreateLabel("F1", 165, 38, 16, 17)
GUICtrlSetColor(-1, 0xFF0000)
$Label6 = GUICtrlCreateLabel("F2", 165, 70, 16, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_HIDE)

While 1
	If $bStart = True Then
		MouseClick("left", 703, 788, 1)
		Sleep(2000)
		MouseClick("left", 700, 512, 1)
		Sleep(2000)
	EndIf
	Sleep($Delay)
WEnd

Func _Start()
	$bStart = True
	GUICtrlSetState($Button1, $GUI_DISABLE)
	GUICtrlSetState($Button2, $GUI_ENABLE)
	$Delay = 0
EndFunc   ;==>_Start

Func _SwitchMode()
	$bStart = Not $bStart
	Switch $bStart
		Case True
			GUICtrlSetState($Button1, $GUI_DISABLE)
			GUICtrlSetState($Button2, $GUI_ENABLE)
			$Delay = 0
		Case False
			GUICtrlSetState($Button2, $GUI_DISABLE)
			GUICtrlSetState($Button1, $GUI_ENABLE)
			$Delay = 50
	EndSwitch
EndFunc   ;==>_SwitchMode

Func _Control()
	Switch $bState
		Case True
			GUISetState(@SW_HIDE, $FORM2)
			$bState = False
		Case False
			GUISetState(@SW_SHOW, $FORM2)
			$bState = True
	EndSwitch
EndFunc   ;==>_Control

Func _Exit()
	Exit
EndFunc   ;==>_Exit
PenGuin :O is offline  
Thanks
1 User
Old 10/21/2010, 03:42   #3
 
Olo21's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 165
Received Thanks: 17
Funktioniert gut Danke!

Die einzige Sache die ich daran nicht verstehe ist warum das jetzt mit dem schließen richtig funktioniert

Kannst du mir anhand des scripts sagen wo das genau steht

mfg Olo21
Olo21 is offline  
Old 10/21/2010, 13:24   #4
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Hab den GUIOnEventMode benutzt
Lies dir den vllt. erstmal in der Hilfe durch.

Prinzipiell erstell ich beide GUIs direkt am Anfang.
Nun benutz ich

Code:
$FORM2 = GUICreate("Steuerung", 186, 93, 399, 288)
[B]GUISetOnEvent(-3, "_Control")[/B]GUISetIcon(@TempDir & "S4League.ico")
GUISetBkColor(0x000000)
$Button1 = GUICtrlCreateButton("Starten", 8, 0, 121, 25)
GUICtrlSetOnEvent(-1, "_SwitchMode")
$Button2 = GUICtrlCreateButton("Stoppen", 8, 32, 121, 25)
GUICtrlSetOnEvent(-1, "_SwitchMode")
GUICtrlSetState(-1, $GUI_DISABLE)
$Button3 = GUICtrlCreateButton("Beenden", 8, 64, 123, 25)
GUICtrlSetOnEvent(-1, "_Exit")
$LABEL1 = GUICtrlCreateLabel("oder", 136, 5, 25, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$Label2 = GUICtrlCreateLabel("F1", 165, 6, 16, 17)
GUICtrlSetColor(-1, 0xFF0000)
$LABEL3 = GUICtrlCreateLabel("oder", 136, 37, 25, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$Label4 = GUICtrlCreateLabel("oder", 136, 69, 25, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$Label5 = GUICtrlCreateLabel("F1", 165, 38, 16, 17)
GUICtrlSetColor(-1, 0xFF0000)
$Label6 = GUICtrlCreateLabel("F2", 165, 70, 16, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_HIDE)
um zu sagen, welche Funktion er ausführen soll beim Schließen der GUI (wenn man aufs "x" drückt!).
In diesem Fall ist es Control.

In Control steht das:

Code:
Func _Control()
	Switch $bState
		Case True
			GUISetState(@SW_HIDE, $FORM2)
			$bState = False
		Case False
			GUISetState(@SW_SHOW, $FORM2)
			$bState = True
	EndSwitch
EndFunc   ;==>_Control
Das bedeutet, er wechselt den Status von $bState.
Wenn er nun auf "True" ist, d.h. die 2. GUI soll verschwinden, dann schließe ich sie nicht komplett sondern verstecke sie einfach.
Nichts anderes mache ich.
Bei weiteren Fragen, an mich oder Community wenden Arbeite dich erstmal in das Script ein.

Und bitte gewöhn dir an, alle Funktionen nach unten zu schreiben...
Generell ist diese Struktur gemeint, wobei es natürlich kleine Unterschiede geben kann:
- includes
- globale Deklarationen
- GUI
- Hauptschleife
- Funktionen


MfG
PenGuin :O is offline  
Old 10/21/2010, 14:15   #5
 
Olo21's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 165
Received Thanks: 17
Den Grund hatte ich grade auch schon gefunden aber trotzdem Danke für die ausführliche Erklärung.

In dem verbesserten Script fehlt übrigens das Fileinstall für das Bild und das für das Icon
Olo21 is offline  
Old 10/21/2010, 14:27   #6
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
also ich fand seine idee im grunde garnicht schlecht...

er hatte doch nur 2 kleine fehler gemacht kein grund gleich sein ganzes script zu überarbeiten.

wenn du mit mehreren guis arbeitest, kannst du bei GuiGetMsg einfach als parameter 1 anfügen (quasi GuiGetMsg(1)).

schon bist du in der lage per $msg[0] den befehl einzulesen, und per $msg[1] den fenster von dem es kommt.

dein 2ter fehler war, das du ja da du Gui2 erst wärend der laufzeit definierst, natürlich nicht gleich am anfang nach den buttons von Gui2 gucken kannst.
das kannst du aber einfach umgehen, indem du sie einfach vordefinierst =)
(würde auch empfehlen das öffnen der steuerung nur einmalig zu erlauben. also erst gucken ob sie schon offen ist)

mit diesen 2 änderungen würde dein script dann etwa so aussehen:
habe jetzt mal vom allgemeinen aufbau des codes abgesehn... da gibt es sicherlich auchnoch viele mängel, bzw sachen die man schöner lösen könnte =)
lolkop is offline  
Thanks
1 User
Old 10/21/2010, 15:07   #7
 
Olo21's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 165
Received Thanks: 17
An lolkop:
  • Ich finde dein Script einfacher zu verstehen, da nicht soviel geändert wurde.
  • Ich finde aber auch die Idee von Pinguin94 mit dem Switchmode gut das man mit der selben taste "an und aus" schalten kann.

Ich bedanke mich dennoch für beide Möglichkeiten
Olo21 is offline  
Old 10/21/2010, 15:29   #8
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
das ganz kannst du doch auch ganz leicht bei dir mit einbauen...

deswegn meinte ich ja zum scriptaufbau an sich, das noch vieles verbesserungswürdig ist...
(wobei auch der code von pingu noch deutlich kürzer/übersichtlicher formuliert hätte werden können :P)

wenn ein ich tool wie dieses geschrieben hätte, würde es aber sowieso komplett über ein gui laufen.

finde ja exit buttons allgemein recht nutzlos, da ich für sowas lieber das x oben rechts nutze. und die start stop funktion hättest du auch schön auf den startbutton legen können.

etwa so:
lolkop is offline  
Old 10/21/2010, 15:39   #9
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Quote:
Originally Posted by lolkop View Post
das ganz kannst du doch auch ganz leicht bei dir mit einbauen...

deswegn meinte ich ja zum scriptaufbau an sich, das noch vieles verbesserungswürdig ist...
(wobei auch der code von pingu noch deutlich kürzer/übersichtlicher formuliert hätte werden können :P)

wenn ein ich tool wie dieses geschrieben hätte, würde es aber sowieso komplett über ein gui laufen.

finde ja exit buttons allgemein recht nutzlos, da ich für sowas lieber das x oben rechts nutze. und die start stop funktion hättest du auch schön auf den startbutton legen können.

etwa so:

Wo kann man meins kürzer machen?
Ich glaube den Start Button und dann mit SwitchMode hätte man verändern können, hatte keine Lust mehr drauf, noch weiter nachzudenken zu so später Stunde. ^^


Quote:
In dem verbesserten Script fehlt übrigens das Fileinstall für das Bild und das für das Icon
Ich weiß, aber das einsetzen von den beiden Befehlen geht ja schnell
PenGuin :O is offline  
Old 10/21/2010, 15:49   #10
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by pinguin94 View Post
Wo kann man meins kürzer machen?
Ich glaube den Start Button und dann mit SwitchMode hätte man verändern können, hatte keine Lust mehr drauf, noch weiter nachzudenken zu so später Stunde. ^^
naja erstmal natürlich bei gui 2... das ganze besteht 9 controls die alle mit dem selben abstand und jeweils den selben eigenschaften angeordnet sind. ne schöne for schleife von 1-3 um das ganze aufzubauen wäre da angebracht =)

und die sleeptime von 50ms hätte man auch drinn lassen können :P
finds bisschen übertrieben dafür jeweils noch nen extra zustand zu setzen (und wenn mans tut dann bitte beim sleep befehl selbst :P (if not $bStart then sleep(50)))

naja und die funktionen hätte man über 2 einfache arrays viel leichter laufen lassen können :P
zu deinen globals noch Global $gui_state[2]=[@SW_HIDE,@SW_SHOW], $control_state[2]=[64,128] packen, und die funktionen könnten so aussehen:
Code:
Func _Start()
	$bStart = True
	GUICtrlSetState($Button1, $control_state[$bStart])
	GUICtrlSetState($Button2, $control_state[Not $bStart])
EndFunc

Func _SwitchMode()
	$bStart = Not $bStart
	GUICtrlSetState($Button1, $control_state[$bStart])
	GUICtrlSetState($Button2, $control_state[Not $bStart])
EndFunc

Func _Control()
	$bState = Not $bState
	WinSetState($sub, '', $gui_state[$bState])
EndFunc   ;==>_Control
wie gesagt das bringt zwar keinen performance gewinn (die bleibt dabei gleich), aber ist halt doch schon deutlich kürzer/übersichtlicher, als wenn man das ganze über switch abfragen erledigt =)
lolkop is offline  
Thanks
1 User
Old 10/21/2010, 23:06   #11
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Quote:
Originally Posted by lolkop View Post
naja erstmal natürlich bei gui 2... das ganze besteht 9 controls die alle mit dem selben abstand und jeweils den selben eigenschaften angeordnet sind. ne schöne for schleife von 1-3 um das ganze aufzubauen wäre da angebracht =)

und die sleeptime von 50ms hätte man auch drinn lassen können :P
finds bisschen übertrieben dafür jeweils noch nen extra zustand zu setzen (und wenn mans tut dann bitte beim sleep befehl selbst :P (if not $bStart then sleep(50)))

naja und die funktionen hätte man über 2 einfache arrays viel leichter laufen lassen können :P
zu deinen globals noch Global $gui_state[2]=[@SW_HIDE,@SW_SHOW], $control_state[2]=[64,128] packen, und die funktionen könnten so aussehen:
Code:
Func _Start()
	$bStart = True
	GUICtrlSetState($Button1, $control_state[$bStart])
	GUICtrlSetState($Button2, $control_state[Not $bStart])
EndFunc

Func _SwitchMode()
	$bStart = Not $bStart
	GUICtrlSetState($Button1, $control_state[$bStart])
	GUICtrlSetState($Button2, $control_state[Not $bStart])
EndFunc

Func _Control()
	$bState = Not $bState
	WinSetState($sub, '', $gui_state[$bState])
EndFunc   ;==>_Control
wie gesagt das bringt zwar keinen performance gewinn (die bleibt dabei gleich), aber ist halt doch schon deutlich kürzer/übersichtlicher, als wenn man das ganze über switch abfragen erledigt =)
Die GUI wollte er ja vllt. behalten Aber du hast natürlich recht

Und ich weiß ja nicht ob 50ms alles kaputt machen

Gut Arrays wären einfacher und kürzer gewesen, aber den Code hab ich natürlich shcon optimiert. Obs performanter wäre, weiß man letztendlich nicht
PenGuin :O is offline  
Reply


Similar Threads Similar Threads
Script (Attackrange) anpassen? für ein Frenzy-Barb
07/15/2010 - Diablo 2 Programming - 2 Replies
Hi! Ich hatte vor mit meinem Frenzybarb zu botten (geht das überhaupt mit dem standard d2nt 1.1) ich habe den attack dementsprechend umgestellt (frenzy = Attacknummer 147) nun hab ich das problem, dass der barb sich in die sichtweite des gegners stellt und dann wie blöd rumschlägt (er steht viel zu weit von gegner weg). gibts es eine möglichkeit die attackrange so umzustellen, dass der barb sich immer brav zum gegner drantelet? danke!
hier könn vista user sehen wie man die bots auch da usen kann
04/20/2010 - Nostale - 10 Replies
so ganz einfach bot öffnen rechtsklick ins fenster und als admin ausfürhren -.- das wars wens dann funkt bitte thanks klicken
wie könn meine Npc sich bewegn
01/30/2010 - Metin2 Private Server - 1 Replies
wie kann ich den Waffenhändler rumlaufen lassen und rüssi händler ? bitte um hilfe ich weis das man NOMOVE um ändern muss aber was muss da hin ?
Mein Homepage Script [First]
11/29/2009 - General Art - 16 Replies
Hallo, Hab vorhin meinen ersten Homepage Script gemacht :) Nach demm ich mia ein paa TuTs von HTML gezogen habe :D nun ma dann legt los mit Kritik :D
Mein Script? Was ist da Falsch?
10/01/2009 - AutoIt - 4 Replies
Schaut euch mal bitte ein teil meines Script an ControlMove ("S4 Client",402, 548 ,500) Sleep (1000) ControlClick ("left" ,"S4 Client", 402 ,548) Mit meinem Script möchte ich also bestimmte mausklicks an das spiel senden also das das spiel dann im hintergrund läuft und ich im vordergrund surfen usw. kann. Jedoch erscheint folgender Fehler beim ausführen des scripts (siehe anhang^^)



All times are GMT +1. The time now is 04:49.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.