1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. shadow667

Beiträge von shadow667

  • Problem mit einem Spiel

    • shadow667
    • 28. März 2013 um 13:58

    Klar, du setzt $Count bei jedem Schleifendurchlauf auf 0 (hier Zeile 22)
    Schreib mal

    [autoit]

    Global $Count = 0

    [/autoit]

    vor die Zeile

    [autoit]

    While 1

    [/autoit]

    und nimm

    [autoit]

    Local $Count = 0

    [/autoit]

    aus der Schleife

    Habs hier mal so gemacht:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.8.0
    Author: F4R

    [/autoit] [autoit][/autoit] [autoit]

    Script Function: Krokofight is a Game
    Template AutoIt script.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $Count = 0, $round = 1

    [/autoit] [autoit][/autoit] [autoit]

    #region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Fish! Runde 1", 760, 480, 264, 133)
    $Pic1 = GUICtrlCreatePic(@ScriptDir&"\Krokodile.jpg", 1, 0, 28, 28, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)
    GUISetBkColor(0xFFFFFF)
    #endregion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{up}", "up")
    HotKeySet("{down}", "down")
    Global $pos = 800

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $e = 0
    Func up()
    $e = $e - 10
    GUICtrlSetPos($Pic1, 1, $e)
    If $e = 450 Then
    $e = $e - 10
    EndIf
    If $e = 0 Then
    $e = $e + 10
    EndIf
    EndFunc ;==>up

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $e = 0
    Func down()
    $e = $e + 10
    GUICtrlSetPos($Pic1, 1, $e)
    If $e = 450 Then
    $e = $e - 10
    EndIf
    If $e = 10 Then
    $e = $e + 10
    EndIf
    EndFunc ;==>down
    Local $sleep = 100

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    _3(GUIGetMsg())
    $random = Random(0, 45, 1)

    [/autoit] [autoit][/autoit] [autoit]

    $p = GUICtrlCreatePic(@ScriptDir&"\feind.jpg", 800, $random*10, 28, 28, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    Do
    _3(GUIGetMsg())
    $pos = $pos - 10
    GUICtrlSetPos($p, $pos)
    If _Kollision() Then ExitLoop
    Sleep($sleep)
    Until $pos = 0
    $round += 1
    WinSetTitle($Form2, "", "Fish! Runde "&$round&" Treffer "&$Count)
    GUICtrlDelete($p)

    [/autoit] [autoit][/autoit] [autoit]

    If $pos = $e Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    $pos = 800

    [/autoit] [autoit][/autoit] [autoit]

    If $sleep > 10 Then
    $sleep = $sleep - 10
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Kollision()
    $Pos1 = ControlGetPos($Form2, "", $Pic1) ; Position Spieler
    $Pos2 = ControlGetPos($Form2, "", $p) ; Position Gegner
    If $Pos1[0] >= $Pos2[0] Then
    If ($Pos1[1]+$Pos1[3] > $Pos2[1]) And ($Pos1[1] < $Pos2[1]+$Pos2[3]) Then
    $Count += 1
    Return True
    EndIf
    EndIf
    Return False
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _3($msg)
    If $msg = -3 Then Exit
    EndFunc

    [/autoit]
  • Problem mit einem Spiel

    • shadow667
    • 28. März 2013 um 13:34

    Also ich hätts so gemacht (net schön aber klappt ^^)

    Funktionsaufruf
    [autoit]

    Do
    $pos = $pos - 10
    GUICtrlSetPos($p, $pos)
    _Kollision()
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p)

    [/autoit]
    _Kollision() zählt wenn daneben
    [autoit]

    Func _Kollision()
    $Pos1 = ControlGetPos($Form2, "", $Pic1) ; Position Spieler
    $Pos2 = ControlGetPos($Form2, "", $p) ; Position Gegner
    If $Pos1[0] >= $Pos2[0] Then
    If ($Pos1[1]+$Pos1[3] < $Pos2[1]) Or ($Pos1[1] > $Pos2[1]+$Pos2[3]) Then
    ; So rum wird gezählt wenn nicht getroffen wurde
    EndIf
    EndIf
    EndFunc

    [/autoit]
    _Kollision() zählt wenn getroffen
    [autoit]

    Func _Kollision()
    $Pos1 = ControlGetPos($Form2, "", $Pic1) ; Position Spieler
    $Pos2 = ControlGetPos($Form2, "", $p) ; Position Gegner
    If $Pos1[0] >= $Pos2[0] Then
    If ($Pos1[1]+$Pos1[3] > $Pos2[1]) And ($Pos1[1] < $Pos2[1]+$Pos2[3]) Then
    ;So rum werden Treffer angezeigt
    EndIf
    EndIf
    EndFunc

    [/autoit]
  • Problem mit einem Spiel

    • shadow667
    • 28. März 2013 um 12:52

    Die ganze Geschichte mit den If $random = 1 bis If $random = 46 kannst du definitiv einfacher haben ^^
    Probiers mal so:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.8.0
    Author: F4R

    [/autoit] [autoit][/autoit] [autoit]

    Script Function: Krokofight is a Game
    Template AutoIt script.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Fish", 760, 480, 264, 133)
    $Pic1 = GUICtrlCreatePic("C:\Users\Paul\Desktop\Krokodile.jpg", 0, 0, 28, 28, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)
    GUISetBkColor(0xFFFFFF)
    #endregion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{up}", "up")
    HotKeySet("{down}", "down")
    Global $pos = 800

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $e = 0
    Func up()
    $e = $e - 10
    GUICtrlSetPos($Pic1, 1, $e)
    If $e = 450 Then
    $e = $e - 10
    EndIf
    If $e = 0 Then
    $e = $e + 10
    EndIf
    EndFunc ;==>up

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $e = 0
    Func down()
    $e = $e + 10
    GUICtrlSetPos($Pic1, 1, $e)
    If $e = 450 Then
    $e = $e - 10
    EndIf
    If $e = 10 Then
    $e = $e + 10
    EndIf
    EndFunc ;==>down
    Local $sleep = 100
    Local $round = 0
    While 1
    $msg = GUIGetMsg()
    If $msg = -3 Then Exit
    $random = Random(0, 45, 1)

    [/autoit] [autoit][/autoit] [autoit]

    $p = GUICtrlCreatePic("C:\Users\Paul\Desktop\feind.jpg", 800, $random*10, 28, 28, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    Do
    $pos = $pos - 10
    GUICtrlSetPos($p, $pos)
    Sleep($sleep)
    Until $pos = 0
    GUICtrlDelete($p)

    [/autoit] [autoit][/autoit] [autoit]

    If $pos = $e Then Exit
    $round = $round + 1

    [/autoit] [autoit][/autoit] [autoit]

    $pos = 800

    [/autoit] [autoit][/autoit] [autoit]

    If $sleep > 10 Then
    $sleep = $sleep - 10
    EndIf
    WEnd

    [/autoit]
  • Problem mit Radio-Controls

    • shadow667
    • 28. März 2013 um 11:47
    Zitat von James1337


    Ich dachte die Frage war, ob man mehrere Controls mit einem Aufruf von GUICtrlSetState deaktivieren kann.


    Darüber wird uns wohl nur der TE aufklären können :)

  • Problem mit Radio-Controls

    • shadow667
    • 28. März 2013 um 11:35
    Zitat von James1337


    Du rufst GUICtrlSetState aber dadurch trotzdem mehrmals auf...

    Japp, in einer Funktion... war das nicht die Frage des TE? ^^

  • Problem mit Radio-Controls

    • shadow667
    • 28. März 2013 um 11:23

    Klar kannst du mehrere Controls mit einer Funktion disablen

    Hab da mal fix was zusammengebastelt:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $hRadio[3], $bState = True

    [/autoit] [autoit][/autoit] [autoit]

    Global $hGUI = GUICreate("TestGUI", 100,100)
    For $i = 0 To UBound($hRadio)-1
    $hRadio[$i] = GUICtrlCreateRadio("Radio "&$i+1, 10, 10 +20*$i,80, 18)
    Next
    GUICtrlSetState($hRadio[0], $GUI_CHECKED)
    Global $hBTN = GUICtrlCreateButton("Disable Radios", 10, 75, 80, 20)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $hBTN
    _Disable()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Disable()
    If $bState Then
    For $i = 0 To UBound($hRadio)-1
    GUICtrlSetState($hRadio[$i], $GUI_DISABLE)
    Next
    GUICtrlSetData($hBTN, "Enable Radios")
    $bState = False
    Else
    For $i = 0 To UBound($hRadio)-1
    GUICtrlSetState($hRadio[$i], $GUI_ENABLE)
    Next
    GUICtrlSetData($hBTN, "Disable Radios")
    $bState = True
    EndIf
    EndFunc

    [/autoit]
  • Mein Fernseher und ich

    • shadow667
    • 25. Februar 2013 um 20:05
    Zitat von Cheater Dieter


    Ansonsten vl. mal - wie oben geschildert - den Fernseher aufschrauben und mal ein bisschen an allem Drehen, was man drehen kann (Potis, Dreh- und Trimmkondensatoren, usw.) und sich in Nähe des Verstärkers befindet wobei man da natürlich das Risko hat, dass am Ende gar nichts mehr geht.

    Äh... oben geschildert war mein Vorgehen an einem EXTERNEN Kabel-Verstärker, ich wäre nie auf die Idee gekommen ein Gerät bei dem noch Garantieanspruch besteht aufzuschrauben

  • Mein Fernseher und ich

    • shadow667
    • 24. Februar 2013 um 23:02

    Hatte seinerzeit das Problem mit dem Digital-Recorder von KD... keine Sender trotz voller Signalstärke... nach einiger Recherche im Netz hab ich dann rausgefunden, dass der Receiver bei zu hoch eingestellter Signalstärke am Kabel-Verstärker keine bzw. nur vereinzelt Sender reinbekommt... ein beherzter Dreh mit dem Schraubendreher am Verstärker und schon wurden meine Sender gefunden...

    Ob's bei dir daran liegt kann ich nicht sagen, wollt nur mal meine Geschichte loswerden ^^

    Kurzer Nachtrag: Bei meinem Recorder muß die Signalstärke zwischen 65 und 75 dB(µV) liegen

  • Vollbild - wie bei Firefox

    • shadow667
    • 19. November 2012 um 20:24

    Wie wär's damit:

    [autoit]

    GUICreate("Hallo", @DesktopWidth, @DesktopHeight, 0, 0,$WS_MAXIMIZEBOX+$WS_MAXIMIZE+$WS_POPUPWINDOW)

    [/autoit]
  • Gui mit Schleife - Buttons funktionieren nicht

    • shadow667
    • 30. Oktober 2012 um 18:20
    Zitat von General Kaboom


    Ein Sleep in einer While-schlaufe mit buttons ist generell tabu.

    Deine Prozessorlast möcht ich nicht haben ^^

  • Desktopcleaner v1.0

    • shadow667
    • 26. August 2012 um 15:27

    Schönes Ding!
    Mir sind auf die schnelle 2 Fehler aufgefallen:

    * Bei WinXP haben deine Buttons keine Icons
    * Wenn man das Programm zum ersten Mal starter und bei der Frage, ob ein Ordner erstellt werden soll einfach mit Enter bestätigt kommt ein Error und das Programm beendet sich

    Gruß

  • Error bei Letzter Zeile der For Schleife

    • shadow667
    • 11. Juli 2012 um 17:18

    Das UBound - Problem ist eigentlich relativ simpel zu verstehen:

    Ein Array, so zum Beispiel $aArray[10] beinhaltet die Elemente $aArray[0] bis $aArray[9].
    UBound gibt in diesem Fall also 10 zurück (Index 0-9)
    Wenn du nun aber in einer Schleife damit arbietest und mit der Schleifenvariablen, nennen wir sie $i den Array-Index ansprichst kannst du nur bis Index 9 zählen, da das Array keinen mit 10 nummerierten Index besitzt.

    [autoit]


    $aArray[10] = [1,2,3,4,5,6,7,8,9,10]
    $count = UBound($aArray) ; $count wird auf 10 gesetzt
    For $i = 0 To $count - 1 ; Zähler-Variable nur bis 9, da dies dem letzten Index entspricht
    MsgBox(0,$i,$aArray[$i])
    Next

    [/autoit]

    Gruß

  • Website öffnen?

    • shadow667
    • 28. Juni 2012 um 16:05
    Zitat von Toni_Damager

    Ein großes Danke dafür an dich :)

    Nur da das Programm für einen Kumpel ist bräuchte ich alle Websiten die ich eingefügt hab :)

    Dazu erstelle einfach noch 'n paar Buttons (GUI-Größe nach Bedarf anpassen) und erweitere die Cases im Switch

  • Website öffnen?

    • shadow667
    • 28. Juni 2012 um 16:00

    Hab mal eben ne GUI zu deinem unvollständigen Script improvisiert (und ein paar Case entfernt)
    Das hier funktioniert bei mir ohne weiteres:

    [autoit]

    #include <GUIConstantsEx.au3>

    [/autoit][autoit][/autoit][autoit]

    $GUI = GUICreate("Testgui", 100,100)
    $Button1 = GUICtrlCreateButton("youtube", 10,10,80,20)
    $Button2 = GUICtrlCreateButton("google", 10,40,80,20)
    $Button3 = GUICtrlCreateButton("gmx", 10,70,80,20)

    [/autoit][autoit][/autoit][autoit]

    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    ShellExecute("http://youtube.de/")
    Case $Button2
    ShellExecute("http://google.de/")
    Case $Button3
    ShellExecute("http://gmx.de/")
    EndSwitch
    WEnd

    [/autoit]
  • Internetverbindungsproblem, welche Ursachen?

    • shadow667
    • 28. Juni 2012 um 15:51

    Es kommt drauf an, welchen Speedport du dein Eigen nennst. In manchen steckt die Hardware einer Fritz-Box mit T-Online-Firmware.
    Letztere kann man "fritzen", also die Firmware der original Fritz-Box einspielen.
    Ob das auf deinen Speedport zutrifft kannst du hier nachlesen.

    Gruß

  • Website öffnen?

    • shadow667
    • 28. Juni 2012 um 15:40

    Probier's doch einfach mal ohne das WEnd in Zeile 7

  • SciTe Anzeige der letzten Dateien

    • shadow667
    • 15. Juni 2012 um 17:51

    Du mußt
    save.recent=0
    ändern, statt save.session

  • Hintergrundbild -> Button ist nichtmehr verwendbar

    • shadow667
    • 9. Juni 2012 um 11:25

    Du mußt ganz einfach das Hintergrundbild "disable" setzen, etwa so:

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ###
    $Form2 = GUICreate("Form1", 476, 316, 262, 370)
    $Pic1 = GUICtrlCreatePic("BILD", 0, 0, 473, 313, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    GUICtrlSetState($Pic1, $GUI_DISABLE) ; <==== diese Zeile einfügen
    $Input1 = GUICtrlCreateInput("Input1", 40, 16, 201, 21)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x00FFFF)
    $Input = GUICtrlCreateInput("Input2", 8, 104, 169, 21)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0xFFFF00)
    $Button1 = GUICtrlCreateButton("Button1", 320, 184, 131, 33, $WS_GROUP)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Button2", 376, 144, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit]
  • _ArraySearch()

    • shadow667
    • 8. Juni 2012 um 17:04
    Zitat von ThPfund

    Hier der Vollständigkeit halber noch meine korrigierte Funktion. Ursache war falsche Parameterangabe im Ubound (und späte Uhrzeit) ;)

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    Global $array[2][6] = [[76, 67, 58, 57, 56, 55],[0, 0, 0, 0, 0, 0]]

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "76", _MySearch(76)) ; => True
    MsgBox(0, "60", _MySearch(60)) ; => False
    MsgBox(0, "55", _MySearch(55)) ; => True
    MsgBox(0, " 0", _MySearch(0)) ; => True

    [/autoit] [autoit][/autoit] [autoit]

    Func _MySearch($Wert)
    Local $i, $k
    For $i = 0 To UBound($array, 1) - 1
    For $k = 0 To UBound($array, 2) - 1
    If $array[$i][$k] = $Wert Then Return (True)
    Next
    Next
    Return (False)
    EndFunc ;==>_MySearch

    [/autoit]
    Alles anzeigen
    Zitat von pete_gzome

    Hey super, dankeschön.

    Dann benutze ich doch die Version. Zudem brauche ich auch kein include :)

    Die Problematik an der Funktion von ThPfund ist, daß hier beim Aufruf kein zu durchsuchendes Array definiert werden kann.
    Desweiteren ist bei seiner Funktion ein 2-Dimensionales Array von Nöten.
    Ich habe das hier mal modifiziert:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $array[2][6] = [[76, 67, 58, 57, 56, 55],[0, 0, 0, 0, 0, 0]]
    Global $array2[6] = [76, 67, 58, 57, 56, 55]

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "76", _MySearch($array, 76)) ; => True
    MsgBox(0, "60", _MySearch($array, 60)) ; => False
    MsgBox(0, "55", _MySearch($array, 55)) ; => True
    MsgBox(0, " 0", _MySearch($array, 0)) ; => True

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "76", _MySearch($array2, 76)) ; => True
    MsgBox(0, "60", _MySearch($array2, 60)) ; => False
    MsgBox(0, "55", _MySearch($array2, 55)) ; => True
    MsgBox(0, " 0", _MySearch($array2, 0)) ; => False

    [/autoit] [autoit][/autoit] [autoit]

    Func _MySearch($SearchArray, $Wert)
    Local $i, $k
    For $i = 0 To UBound($SearchArray, 1) - 1
    If UBound($SearchArray, 0) = 2 Then
    For $k = 0 To UBound($SearchArray, 2) - 1
    If $SearchArray[$i][$k] = $Wert Then Return True
    Next
    Else
    If $SearchArray[$i] = $Wert Then Return True
    EndIf
    Next
    Return False
    EndFunc ;==>_MySearch

    [/autoit]
  • Syntax error

    • shadow667
    • 7. Juni 2012 um 19:45

    Ich zitier mal die Hilfe:

    Zitat

    Array Das Array dessen Größe ermittelt werden soll.
    Dimension [optional] Die Dimension des Arrays dessen Größe ermittelt werden soll. Der Standard ist 1, dies ist die Erste Dimension. Falls dieser Parameter 0 ist, wird die Anzahl der Dimensionen des Arrays zurückgegeben.

    Heisst also in deinem Fall:

    [autoit]

    Ubound($aArray,2) ; um die 2. Dimension des Arrays zu erhalten

    [/autoit]

    Gruß

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™