|
You last visited: Today at 04:46
Advertisement
Brauche Hilfe !
Discussion on Brauche Hilfe ! within the AutoIt forum part of the Coders Den category.
10/21/2010, 02:22
|
#1
|
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):
PHP Code:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\Backups\S4League.ico
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_Comment=Olo21´s Farm bot
#AutoIt3Wrapper_Res_Description=Olo21´s Farm bot
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=by Olo21
#AutoIt3Wrapper_Res_Language=1031
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#Region
#EndRegion
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
FileInstall("C:\Users\Dominic\Desktop\Ordner\Bilder\S4League.ico",@TempDir & "S4League.ico")
FileInstall("C:\Users\Dominic\Desktop\Ordner\Bilder\S4 Icon Breiter.jpg",@TempDir & "S4 Icon Breiter.jpg")
HOTKEYSET("{F1}","_Starten")
HOTKEYSET("{F2}","_Pausieren")
HOTKEYSET("{F3}","_Beenden")
HOTKEYSET("{F4}","_Steuerung")
Dim $schalter1 = 0
#Region ### START Koda GUI section ### Form=
$FORM1 = GUICreate("Olo21´s S4 Farmbot", 219, 155, 399, 288)
GUISetIcon(@TempDir & "S4League.ico")
GUISetBkColor(0x000000)
$Start = GUICtrlCreateButton("Bot Starten", 32, 102, 148, 33)
$LABEL1 = GUICtrlCreateLabel("© by Olo21", 160, 136, 54, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$PIC1 = GUICtrlCreatePic(@TempDir & "S4 Icon Breiter.jpg", 0, 16, 217, 73)
$LABEL3 = GUICtrlCreateLabel("F4 Steuerung", 0, 136, 96, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Func _Steuerung()
#Region ### START Koda GUI section ### Form=
$FORM2 = GUICreate("Steuerung", 186, 93, 399, 288)
GUISetIcon(@TempDir & "S4League.ico")
GUISetBkColor(0x000000)
$Button1 = GUICtrlCreateButton("Starten", 8, 0, 121, 25)
$Button2 = GUICtrlCreateButton("Pausieren", 8, 32, 121, 25)
$Button3 = GUICtrlCreateButton("Beenden", 8, 64, 123, 25)
$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("F2", 165, 38, 16, 17)
GUICtrlSetColor(-1, 0xFF0000)
$Label6 = GUICtrlCreateLabel("F3", 165, 70, 16, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
EndFunc
Func _Starten()
$schalter1 = 1
EndFunc
Func _Pausieren()
$schalter1 = 0
EndFunc
Func _Beenden()
Exit
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
$Global = False
Exit
Case $Start
$schalter1 = 1
EndSwitch
If $schalter1 = 1 Then
MOUSECLICK("left",703,788,1)
SLEEP(2000)
MOUSECLICK("left",700,512,1)
SLEEP(2000)
EndIf
WEnd
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.
|
|
|
10/21/2010, 03:41
|
#2
|
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
|
|
|
10/21/2010, 03:42
|
#3
|
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
|
|
|
10/21/2010, 13:24
|
#4
|
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
|
|
|
10/21/2010, 14:15
|
#5
|
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
|
|
|
10/21/2010, 14:27
|
#6
|
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:
Code:
HOTKEYSET("{F1}","_Starten")
HOTKEYSET("{F2}","_Pausieren")
HOTKEYSET("{F3}","_Beenden")
HOTKEYSET("{F4}","_Steuerung")
Dim $schalter1 = 0, $FORM2=-1, $Button1=-1, $Button2=-1, $Button3=-1
$FORM1 = GUICreate("Olo21´s S4 Farmbot", 219, 155, 399, 288)
GUISetIcon(@TempDir & "S4League.ico")
GUISetBkColor(0)
$Start = GUICtrlCreateButton("Bot Starten", 32, 102, 148, 33)
$LABEL1 = GUICtrlCreateLabel("© by Olo21", 160, 136, 54, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$PIC1 = GUICtrlCreatePic(@TempDir & "S4 Icon Breiter.jpg", 0, 16, 217, 73)
$LABEL3 = GUICtrlCreateLabel("F4 Steuerung", 0, 136, 96, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUISetState(@SW_SHOW)
Func _Steuerung()
If Not WinExists($FORM2) Then
$FORM2 = GUICreate("Steuerung", 186, 93, 399, 288, -1, -1, $FORM1)
GUISetIcon(@TempDir & "S4League.ico")
GUISetBkColor(0)
$Button1 = GUICtrlCreateButton("Starten", 8, 0, 121, 25)
$Button2 = GUICtrlCreateButton("Pausieren", 8, 32, 121, 25)
$Button3 = GUICtrlCreateButton("Beenden", 8, 64, 123, 25)
$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("F2", 165, 38, 16, 17)
GUICtrlSetColor(-1, 0xFF0000)
$Label6 = GUICtrlCreateLabel("F3", 165, 70, 16, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
EndIf
EndFunc
Func _Starten()
$schalter1 = 1
EndFunc
Func _Pausieren()
$schalter1 = 0
EndFunc
Func _Beenden()
Exit
EndFunc
While WinExists($FORM1)
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case -3
GUIDelete($nMsg[1])
Case $Start
_Starten()
Case $Button1
_Starten()
Case $Button2
_Pausieren()
Case $Button3
_Beenden()
EndSwitch
If $schalter1 = 1 Then
MOUSECLICK("left",703,788,1)
SLEEP(2000)
MOUSECLICK("left",700,512,1)
SLEEP(2000)
EndIf
WEnd
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 =)
|
|
|
10/21/2010, 15:07
|
#7
|
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
|
|
|
10/21/2010, 15:29
|
#8
|
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:
Code:
HotKeySet("{F5}","Mode")
HotKeySet("{F6}","End")
Dim $action, $timer, $run = False, $btn[2] = ['Start (F5)', 'Stop (F5)']
GUICreate("Olo21´s S4 Farmbot", 219, 155, -1, -1, -1, 8)
GUISetIcon(@TempDir & "S4League.ico")
GUISetBkColor(0)
$Start = GUICtrlCreateButton($btn[0], 32, 102, 148, 33)
GUICtrlCreateLabel("© by Olo21", 160, 136, 54, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlCreatePic(@TempDir & "S4 Icon Breiter.jpg", 0, 16, 217, 73)
GUICtrlCreateLabel("F6 Exit", 0, 136, 96, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3
End()
Case $Start
Mode()
Case Else
If $run And TimerDiff($timer) > 2000 Then
If $action Then
MOUSECLICK("left",703,788,1)
$timer = TimerInit()
$action = False
Else
MOUSECLICK("left",700,512,1)
$timer = TimerInit()
$action = True
EndIf
EndIf
EndSwitch
WEnd
Func Mode()
$run = Not $run
GUICtrlSetData($start, $btn[$run])
$timer = 0
EndFunc
Func End()
Exit
EndFunc
|
|
|
10/21/2010, 15:39
|
#9
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Quote:
Originally Posted by lolkop
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:
Code:
HotKeySet("{F5}","Mode")
HotKeySet("{F6}","End")
Dim $action, $timer, $run = False, $btn[2] = ['Start (F5)', 'Stop (F5)']
GUICreate("Olo21´s S4 Farmbot", 219, 155, -1, -1, -1, 8)
GUISetIcon(@TempDir & "S4League.ico")
GUISetBkColor(0)
$Start = GUICtrlCreateButton($btn[0], 32, 102, 148, 33)
GUICtrlCreateLabel("© by Olo21", 160, 136, 54, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlCreatePic(@TempDir & "S4 Icon Breiter.jpg", 0, 16, 217, 73)
GUICtrlCreateLabel("F6 Exit", 0, 136, 96, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3
End()
Case $Start
Mode()
Case Else
If $run And TimerDiff($timer) > 2000 Then
If $action Then
MOUSECLICK("left",703,788,1)
$timer = TimerInit()
$action = False
Else
MOUSECLICK("left",700,512,1)
$timer = TimerInit()
$action = True
EndIf
EndIf
EndSwitch
WEnd
Func Mode()
$run = Not $run
GUICtrlSetData($start, $btn[$run])
$timer = 0
EndFunc
Func End()
Exit
EndFunc
|
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
|
|
|
10/21/2010, 15:49
|
#10
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by pinguin94
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 =)
|
|
|
10/21/2010, 23:06
|
#11
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Quote:
Originally Posted by lolkop
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
|
|
|
 |
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.
|
|