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. ThirtySix

Beiträge von ThirtySix

  • Stadt Land Fluss - The Game

    • ThirtySix
    • 8. Juli 2013 um 12:42

    So, Heute ist es soweit das ich mich traue mal eine sache von mir vorzustellen... :D

    Ich hoffe ich werde nicht so viel Kritik abkriegen.. :S
    Aber ich muss sagen das ich echt Stolz bin.. hab jetzt knapp 4 Stunden dafür gebraucht.

    Die meisten von euch werden das nicht als besonders schwer oder toll ansehen...
    aber hey, jeder fängt mal klein an :huh:

    Also gebt mir verdammt nochmal n Lob ! :thumbup:

    Download:

    Spoiler anzeigen


    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    (v2.0 allerdings mit installer (wenn die Daten noch nicht da sind) werden die .txts & .au3 eigenständig im selben Ordner wo die .exe sich befindet installiert.)

    Nur das Script:
    (allerdings brauch der Script noch die .txt's daher der upload)

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <String.au3>
    #include <Array.au3>

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

    Opt("GuiOnEventMode", 1)

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

    Global $Loop = 0, $Active = 0, $Timer = 0, $TimeCount = 0

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

    If Not FileExists(@ScriptDir&"/SLF.au3") Then
    MsgBox(0,"Installieren","Alle Datein wurden erfolgreich installiert.")
    FileInstall("C:\Dokumente und Einstellungen\User_06\Desktop\SLF\Stadt.txt",@ScriptDir &"\Stadt.txt")
    FileInstall("C:\Dokumente und Einstellungen\User_06\Desktop\SLF\Land.txt",@ScriptDir&"\Land.txt")
    FileInstall("C:\Dokumente und Einstellungen\User_06\Desktop\SLF\Fluss.txt",@ScriptDir&"\Fluss.txt")
    FileInstall("C:\Dokumente und Einstellungen\User_06\Desktop\SLF\SLF.au3",@ScriptDir&"\SLF.au3")
    Endif

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

    #Region ### START Koda GUI section ### Form=
    $SLF = GUICreate("SLF", 539, 242, 379, 172)

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

    ;~ Computer ergebnisse
    $Snpc = GUICtrlCreateInput("", 24, 96, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_READONLY))
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Lnpc = GUICtrlCreateInput("", 192, 96, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_READONLY))
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Fnpc = GUICtrlCreateInput("", 360, 96, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_READONLY))
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    ;~ Spieler ergebnisse
    $Spl = GUICtrlCreateInput("", 24, 128, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Lpl = GUICtrlCreateInput("", 192, 128, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Fpl = GUICtrlCreateInput("", 360, 128, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    ;~ Buttons
    $Start = GUICtrlCreateButton("Start", 24, 16, 75, 25)
    $Stop = GUICtrlCreateButton("Stop", 440, 16, 75, 25)
    $Info = GUICtrlCreateButton("Info", 24, 200, 75, 25)
    $Reset = GUICtrlCreateButton("Neustart", 440, 200, 75, 25)

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

    ;~ Dyn Text
    $Buchstabe = GUICtrlCreateLabel("Buchstabe", 104, 24, 327, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $WinLose = GUICtrlCreateLabel("", 192, 208, 150, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")

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

    ;~ Static Text
    $Stadt = GUICtrlCreateLabel("Stadt", 32, 72, 141, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Land = GUICtrlCreateLabel("Land", 200, 72, 140, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Fluss = GUICtrlCreateLabel("Fluss", 360, 72, 148, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")

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

    ;~ Zeit
    $Time = GUICtrlCreateLabel("", 192, 160, 148, 28, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

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

    GUICtrlSetOnEvent($Start, "_Start")
    GUICtrlSetOnEvent($Stop, "_Stop")
    GUICtrlSetOnEvent($Info, "_Info")
    GUICtrlSetOnEvent($Reset, "_Reset")

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

    GUICtrlSetState($Stop, $GUI_DISABLE)
    GUICtrlSetState($Reset, $GUI_DISABLE)

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

    While 1
    Sleep (20)
    If $Active = 1 Then
    $Random = Chr(Random(Asc("A"), Asc("Z"), 1))
    GUICtrlSetData($Buchstabe, ""&$Random)
    EndIf

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

    If $Timer = 1 Then
    Sleep (1000)
    $TimeCount += 1
    $TimeCount = Round($TimeCount, 0)
    GUICtrlSetData($Time, "sek: "&$TimeCount)
    EndIf
    WEnd ; Timer & Buchstabe

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

    Func _Start()
    $Active = 1
    GUICtrlSetState($Stop, $GUI_ENABLE)
    GUICtrlSetState($Start, $GUI_DISABLE)
    EndFunc ; Start

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

    Func _Stop()
    $Active = 0

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

    If $Loop = 1 Then
    $Timer = 0

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

    $Towns = _StringBetween(FileRead("Stadt.txt"), $Random & "=", ";")
    $Towns = StringSplit($Towns[0], ",")
    GUICtrlSetData($Snpc, ($Towns[Random(1, $Towns[0], 1)]))

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

    $Country = _StringBetween(FileRead("Land.txt"), $Random & "=", ";")
    $Country = StringSplit($Country[0], ",")
    GUICtrlSetData($Lnpc, ($Country[Random(1, $Country[0], 1)]))

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

    $River = _StringBetween(FileRead("Fluss.txt"), $Random & "=", ";")
    $River = StringSplit($River[0], ",")
    GUICtrlSetData($Fnpc, ($River[Random(1, $River[0], 1)]))

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

    GUICtrlSetData($WinLose, "Neues Spiel ?")
    GUICtrlSetState($Stop, $GUI_DISABLE)
    GUICtrlSetState($Reset, $GUI_ENABLE)
    GUICtrlSetState($Spl, $GUI_DISABLE)
    GUICtrlSetState($Lpl, $GUI_DISABLE)
    GUICtrlSetState($Fpl, $GUI_DISABLE)
    EndIf ; Stadt, Land, Fluss

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

    If $Loop = 0 Then
    $Loop += 1
    GUICtrlSetState($Spl, $GUI_ENABLE)
    GUICtrlSetState($Lpl, $GUI_ENABLE)
    GUICtrlSetState($Fpl, $GUI_ENABLE)
    $Timer = 1
    GUICtrlSetData($Time, "sek: 0")
    EndIf
    EndFunc ; Stop, FileRead, Stop

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

    Func _Reset()
    $Loop = 0
    $Active = 0
    $Timer = 0
    $TimeCount = 0

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

    GUICtrlSetData($Time, "")
    GUICtrlSetData($Spl, "")
    GUICtrlSetData($Lpl, "")
    GUICtrlSetData($Fpl, "")
    GUICtrlSetData($Snpc, "")
    GUICtrlSetData($Lnpc, "")
    GUICtrlSetData($Fnpc, "")
    GUICtrlSetData($WinLose, "")
    GUICtrlSetData($Buchstabe, "Buchstabe")
    GUICtrlSetState($Stop, $GUI_DISABLE)
    GUICtrlSetState($Reset, $GUI_DISABLE)
    GUICtrlSetState($Start, $GUI_ENABLE)
    EndFunc ; Neustart

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

    Func _Info()
    MsgBox(0,"Coded by ThirtySix","Version 2.1")
    EndFunc ; Info

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]

    Dateien

    SLF Game.zip 306,49 kB – 540 Downloads SLF Game v1.1.zip 306,51 kB – 518 Downloads SLF Game v2.0.zip 369,24 kB – 531 Downloads SLF Game v2.1.zip 317,29 kB – 538 Downloads
  • ExitLoop auf Button

    • ThirtySix
    • 7. Juli 2013 um 21:57
    Zitat von m-obi

    Das wäre noch ne Variante ohne der Variable $Loop.


    Wozu gibt es denn dann den "MsgLoop" mode?
    Ich find den "OnEventMode" übersichtlicher. 8|

  • ExitLoop auf Button

    • ThirtySix
    • 7. Juli 2013 um 21:19
    Zitat von Andy

    Hier schon, genau deshalb brauchen wir so ein LIKE-Gedöns auch nicht...

    Okay... 8|

    Ich finds nachwievor nicht selbstverständlich.. :D
    Aber wenn ihr das tut ist das Super :thumbup:

  • ExitLoop auf Button

    • ThirtySix
    • 7. Juli 2013 um 19:26
    Zitat von Oscar


    Im OnEventMode würde das Beispiel so aussehen:
    [...]

    Wow. Danke.

    Ich glaub das gefällt mir :'D

    Ich werd mich ab Morgen intensiv damit auseinandersetzen..
    Vielen Dank :)

    In diesem Forum fehlt wirklich soein "Like / Thumbs up / Bewertungs" - system ..
    Ihr hättet das aufjedenfall verdient :thumbup:

    Ist ja nicht selbstverständlich solche Hilfestellungen zu geben :huh:

  • ExitLoop auf Button

    • ThirtySix
    • 7. Juli 2013 um 14:38
    Zitat von Andy


    Das sind zwei unterschiedliche Methoden.
    Bei der Abfrage per GuiGetMsg() läufst du gewissermassen "zu Fuß" ständig durch die Liste der Windows-Ereignisse (Events) und wartest bis bspw. das passende "Buttonpressed"-Ereignis in der Liste auftaucht. Dann kannst du z.B. eine Funktion anspringen und dieses Ereignis auswerten.
    Beim OnEventMode verknüpfst du ein Ereignis (Event) mit einer selbstgeschriebene Funktion und überlässt Windows das komplette Handling. Sobald das Ereignis abgefeuert wurde, ruft Windows deine Funktion auf. Das ist zwar "schöner" aber auch etwas aufwendiger zu implementieren.

    Zu Anfang sind die Scripte nicht so aufwendig, dass man den OnEventMode bräuchte^^

    Zitat von m-obi


    Je komplexer ein Programm wird und je mehr einzelne Fenster es in dem Programm gibt, desto eher brauchst du den OnEvent-Mode. Bei mir laufen gut 90% der Scripte im OnEvent-Mode. Eigentlich verwende ich den nur noch. Der macht einfach vieles einfacher.

    Okay...
    Ich werd mir das mal ansehen und versuchen zu verstehen...
    Wenn das besser ist und "vieles einfacher" macht will ich das natürlich auch benutzen :'D

  • ExitLoop auf Button

    • ThirtySix
    • 7. Juli 2013 um 12:48
    Zitat von Oscar

    [...] Also entweder den OnEventMode benutzen (in der Endlosschleife dort ist ein Sleep ja sogar angebracht) oder beim MsgLoop-Modus einen Timer verwenden.

    Okay.

    Was macht "OnEventMode" & wie benutze ich nen Timer? 8|

    // edit:
    "MsgLoop-Modus" ist der nicht "OnEventMode" versteh ich das richtig? .. also quasi default einstellung?

  • Dafür verwendet man "Dim"!

    • ThirtySix
    • 6. Juli 2013 um 23:48

    Ich wünschte ich hätt euer Wissen 8| ...

    Hab so langsam richtig Kopfschmerzen von diesem ganzen Gehirntraining. :S
    Gehirn: Auslastung = 117%

    Gehirn.exe Shutdown t - 30s. :sleeping:

  • XYZ Farbraum - Darstellungsproblem

    • ThirtySix
    • 6. Juli 2013 um 20:51

    Ich kann dir zwar nicht helfen..
    aber ich hab dein script mal gestartet und muss sagen...

    Sieht lustig aus :D

  • Reset Knopf

    • ThirtySix
    • 6. Juli 2013 um 19:40
    Zitat von m-obi


    Also das stimme ich Andy auch voll und ganz zu. Selten des jemand so vorbildlich wie du bist. :thumbup:
    Mein Vorschlag zu dem Spiel, würde so aussehen.
    [...]

    Das is ja mal klasse o.o ...
    Super auch mit dem ausgeblendeten Button für "Neues Spiel" :thumbup:

    Hab nochnicht alles verstanden wie es funktioniert.
    Aber daraus werd ich noch lernen ;)

    Vielen Dank


    Soviel Lob und Hilfe wie ich hier ernte... 8|
    Ich fühl mich richtig wohl bei euch.. :rolleyes: :D

  • ExitLoop auf Button

    • ThirtySix
    • 6. Juli 2013 um 12:31

    Wieso hab ich dazu gestern nichts gefunden ? D:
    Naja... zumglück doch nicht so kompliziert!

    wieder was gelernt!

    Danke Andy! :D

  • Reset Knopf

    • ThirtySix
    • 6. Juli 2013 um 12:01
    Zitat von Joriktos


    Dass mit dem zurücksetzen ist schonmal eine gute Möglichkeit, aber wenn du es so wie ursprünglich machen willst, kannst du auch @ScriptFullPath (Ein Makro, welches den Pfad, deines laufenden Scripts enthält, also völlig unabhängig wo sich die Datei befindet) verwenden:
    [...]
    Außerdem kannst du mal dieses Tutorial durchlesen, das hat mir am Anfang sehr geholfen, selber den Überblick zu erhalten und zu bekommen: [Tutorial] Sauber Programmieren
    Dann weißt du auch, warum ich hier $idReset schreibe ;)


    Danke... :thumbup:

    Ich fang sofort an mit lesen! :P

  • Reset Knopf

    • ThirtySix
    • 6. Juli 2013 um 11:13
    Zitat von Andy

    Hi,
    beim Betrachten des Scriptcodes ich hatte gerade ein deja vu^^
    [...]
    An diesem Stückchen Script gibt es reichlich Potenzial zu lernen und sein know-How zu verbessern! :thumbup:

    Hey Andy,
    erstmal'n fettes Danke das du dich so mit meinem "babyscript" auseinandergesetzt hast :!:
    Ich war ja schon super Stolz das ich das kleine Script da "verwirklicken" konnte! :D
    Wenn ich überlege das ich AutoIT vor 3 tagen nichtmal kannte..

    Hab vor 2 wochen just4fun mit Batch angefangen
    jedoch ist das halt sehr begrenzt mit möglichkeiten.

    Ich werd da aufjedenfall nochmal drüberschauen.
    Gerade nach deiner netten Ansprache :thumbup:

    Allgemein find ich das Forum hier klasse!
    Großes Lob für euch ALLLLE!!!

    You Rockx :rock: - :D

  • ExitLoop auf Button

    • ThirtySix
    • 6. Juli 2013 um 00:03

    Ich fang gleich ein zu weinen... ;(
    Seit einer Stunde such ich bereits auf Google und in sämmtlichen Foren weil ich nicht glauben kann das es dazu nichts gibt.
    Aber nun bin ich einfach gezwungen euch nocheinmal zu belästigen. Sry!

    Ich wollte eigendlich ein Minispiel machen und bin schonwieder, gleich am Anfang, auf ein Fehler gestoßen..
    Hab es schon auf 5 verschiedene Arten versucht zu schreiben aber wenn ihr das hier seht..
    So wie es jetzt da steht, versteht ihr sicherlich am schnellsten was ich meine.

    (das mit dem "Sleep ($Text)" ist nur aus spaß da.. :D )

    Das Problem:
    Ich komme aus der Schleife einfach nicht wieder raus.
    Es gibt eine Lösung für mein Problem die ich selber kenne...
    HotKeySet ("{DEL}", "_Pause") ; <- Zwingt quasi das Script auf die "Func _Pause()" zu springen.

    aber mal im ernst..
    Ich will kein Hotkey benutzen ............ ;(
    Wieso kann man den Button nicht genauso zwingen wie ein Hotkey? :cursing:

    Bin sehr verwirrt das es so schwer ist mit einem Button aus einer Schleife zu kommen..
    Ich verstehe inzwischen wieso das so ist... ich denke der "Stop" Button wird garnicht erst angesprochen weil die schleife vom "Start" button nicht bisdahin reicht.

    Nunja, ich bin mit meinem Latein aber nun wirklich am Ende..
    Daher wende ich mich mal wieder an euch.. :D

    Script:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Global $Loop = False

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

    #Region ### START Koda GUI section ### Form=
    $GUI = GUICreate("Test", 187, 146, 854, 446)
    $Text = GUICtrlCreateEdit("", 8, 8, 169, 81, BitOR($GUI_SS_DEFAULT_EDIT,$ES_CENTER))
    GUICtrlSetData(-1, "0")
    $Start = GUICtrlCreateButton("Start", 8, 112, 75, 25)
    $Stop = GUICtrlCreateButton("Stop", 104, 112, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    Case $Start
    $Loop = True
    While $Loop
    Sleep (GUICtrlRead($Text))
    GUICtrlSetData($Text, GUICtrlRead($Text)+1)
    WEnd ; <--- Wie komm ich aus dieser Schleife mit einem Button wieder raus? :(

    Case $Stop
    $Loop = False
    ExitLoop 1

    EndSwitch
    WEnd

    [/autoit]

    Wer will soll einfach mal Kopieren und einmal im Editor starten..
    Da wird SEHR deutlich wo das Problem liegt.


    Sorry.. nächstes mal versuche ich mich kürzer zu fassen.. :S
    Danke Schonmal für jeden Tipp :!:

  • Reset Knopf

    • ThirtySix
    • 5. Juli 2013 um 16:51
    Zitat von $var


    Etwa so sollte es funktionieren... Setze einfach alle relevanten Werte wieder zurück.
    Habs nur überflogen, sehe aber, dass du u. a. die Controls $Result und $Value immer neu erstellst. Benutz dafür lieber GUICtrlSetData.

    LG

    Danke!
    Auf die Idee bin ich so garnicht gekommen. :pinch:

    Vielen Dank :)

    Ps: Das mit den GuiCtrlSetData guck ich mir nochmal an. Dankeschööön :)


    // Edit:

    so nun hab ich alles mit GuiCtrlSetData geschrieben.
    alles bugfrei und bereit zum spielen :P

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $GUI = GUICreate("Ratespiel", 202, 178, 428, 314)
    $Tipp = GUICtrlCreateButton("Tipp", 8, 80, 91, 25)
    $Reset = GUICtrlCreateButton("Reset", 104, 80, 91, 25)
    $Text = GUICtrlCreateLabel("Rate eine Zahl zwischen 0 und 100", 8, 16, 188, 17, $SS_CENTER)
    $Result = GUICtrlCreateLabel("", 8, 48, 184, 17, $SS_CENTER)
    $Sub = GUICtrlCreateButton("- 1", 8, 112, 27, 25)
    $Add = GUICtrlCreateButton("+ 1", 168, 112, 27, 25)
    $Slider = GUICtrlCreateSlider(40, 112, 118, 21)
    $Value = GUICtrlCreateLabel("0", 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Sub10 = GUICtrlCreateButton("- 10", 8, 144, 27, 25)
    $Add10 = GUICtrlCreateButton("+ 10", 168, 144, 27, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Global $Random = Random(0,100,1)
    Global $Guess = 0
    Global $Tipps = 0

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Tipp
    $Tipps = $Tipps+1
    If $Guess = $Random Then
    GUICtrlSetData($Result, "...")
    sleep (500)
    GUICtrlSetData($Result, "Mit "&$Tipps&" versuchen Gewonnen!")
    EndIf
    If $Guess > $Random Then
    GUICtrlSetData($Result, "...")
    sleep (500)
    GUICtrlSetData($Result, ".. weniger ..")
    EndIf
    If $Guess < $Random Then
    GUICtrlSetData($Result, "...")
    sleep (500)
    GUICtrlSetData($Result, ".. mehr ..")
    EndIf

    Case $Slider
    $Guess = GUICtrlRead($Slider)
    GUICtrlSetData($Value, $Guess)

    Case $Sub
    If $Guess < 1 Then
    $Guess = 1
    EndIf
    GUICtrlSetData($Slider, $Guess-1)
    GUICtrlSetData($Value, $Guess-1)
    $Guess = $Guess-1

    Case $Add
    If $Guess > 99 Then
    $Guess = 99
    EndIf
    GUICtrlSetData($Slider, $Guess+1)
    GUICtrlSetData($Value, $Guess+1)
    $Guess = $Guess+1

    Case $Sub10
    If $Guess < 10 Then
    $Guess = 10
    EndIf
    GUICtrlSetData($Slider, $Guess-10)
    GUICtrlSetData($Value, $Guess-10)
    $Guess = $Guess-10

    Case $Add10
    If $Guess > 90 Then
    $Guess = 90
    EndIf
    GUICtrlSetData($Slider, $Guess+10)
    GUICtrlSetData($Value, $Guess+10)
    $Guess = $Guess+10


    Case $Reset
    ;~ MsgBox(0,"Check Value Box","Guess = "&$Guess&@CRLF&"Random = "&$Random&@CRLF&"Slider = "&GUICtrlRead($Slider))
    $Random = Random(0,100,1)
    $Guess = 0
    $Tipps = 0
    GUICtrlSetData($Result, "")
    GUICtrlSetData($Value, 0)
    GUICtrlSetData($Slider, 0)
    EndSwitch
    WEnd

    [/autoit]


    Danke nochmal ... :)

  • Reset Knopf

    • ThirtySix
    • 5. Juli 2013 um 16:34
    Zitat von Orion

    Kein Plan, was du machen willst o. O
    Aber das was du machst ist falsch.

    Okay, kein Problem ich versuchs genauer zu sagen.

    nochmal.. das ist das funktionierende komplette spiel:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $GUI = GUICreate("Ratespiel", 202, 178, 428, 314)
    $Tipp = GUICtrlCreateButton("Tipp", 8, 80, 91, 25)
    $Reset = GUICtrlCreateButton("Reset", 104, 80, 91, 25)
    $Text = GUICtrlCreateLabel("Rate eine Zahl zwischen 0 und 100", 8, 16, 188, 17, $SS_CENTER)
    $Result = GUICtrlCreateLabel("", 8, 48, 184, 17, $SS_CENTER)
    $Sub = GUICtrlCreateButton("- 1", 8, 112, 27, 25)
    $Add = GUICtrlCreateButton("+ 1", 168, 112, 27, 25)
    $Slider = GUICtrlCreateSlider(40, 112, 118, 21)
    $Value = GUICtrlCreateLabel("0", 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Sub10 = GUICtrlCreateButton("- 10", 8, 144, 27, 25)
    $Add10 = GUICtrlCreateButton("+ 10", 168, 144, 27, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Global $Random = Random(0,100,1)
    Global $Guess = 0
    Global $Tipps = 0

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Tipp
    $Tipps = $Tipps+1
    If $Guess = $Random Then
    $Result = GUICtrlCreateLabel("...", 8, 48, 184, 17, $SS_CENTER)
    sleep (500)
    $Result = GUICtrlCreateLabel("Mit "&$Tipps&" versuchen Gewonnen!", 8, 48, 184, 17, $SS_CENTER)
    EndIf
    If $Guess > $Random Then
    $Result = GUICtrlCreateLabel("...", 8, 48, 184, 17, $SS_CENTER)
    sleep (500)
    $Result = GUICtrlCreateLabel(".. weniger ..", 8, 48, 184, 17, $SS_CENTER)
    EndIf
    If $Guess < $Random Then
    $Result = GUICtrlCreateLabel("...", 8, 48, 184, 17, $SS_CENTER)
    sleep (500)
    $Result = GUICtrlCreateLabel(".. mehr ..", 8, 48, 184, 17, $SS_CENTER)
    EndIf

    Case $Slider
    $Guess = GUICtrlRead($Slider)
    $Value = GUICtrlCreateLabel(""&$Guess, 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")

    Case $Sub
    If $Guess < 1 Then
    $Guess = 1
    EndIf
    GUICtrlSetData($Slider, $Guess-1)
    $Value = GUICtrlCreateLabel(""&$Guess-1, 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Guess = $Guess-1

    Case $Add
    If $Guess > 99 Then
    $Guess = 99
    EndIf
    GUICtrlSetData($Slider, $Guess+1)
    $Value = GUICtrlCreateLabel(""&$Guess+1, 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Guess = $Guess+1

    Case $Sub10
    If $Guess < 10 Then
    $Guess = 10
    EndIf
    GUICtrlSetData($Slider, $Guess-10)
    $Value = GUICtrlCreateLabel(""&$Guess-10, 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Guess = $Guess-10

    Case $Add10
    If $Guess > 90 Then
    $Guess = 90
    EndIf
    GUICtrlSetData($Slider, $Guess+10)
    $Value = GUICtrlCreateLabel(""&$Guess+10, 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Guess = $Guess+10


    Case $Reset
    MsgBox(0,"Check Value Box","Guess ist = "&$Guess&@CRLF&"Random = "&$Random&@CRLF&"Slider = "&GUICtrlRead($Slider)) ;~ nur zu testzwecken.

    EndSwitch
    WEnd

    [/autoit]

    Und ich möchte nun dem "$Reset" Button.. die Ehre erteilen auch das zu tun nachdem er benannt wurde.
    Das Spiel soll einfach von neu Starten. einfach nochmal von vorne anfangen.. einfach "reset". :p

    Ich weiß nicht ob das mit der .ini wirklich der richtige Weg ist.
    So klein wie das Spiel ist sollte das doch nicht nötig sein oder?
    irre ich mich ? ?(

  • Reset Knopf

    • ThirtySix
    • 5. Juli 2013 um 16:08

    Hab jetzt:

    oben:

    Spoiler anzeigen
    [autoit]

    Global $Guess = IniRead(@scriptDir&"\reset.ini", "zahl")
    Global $Tipps = IniRead(@scriptDir&"\reset.ini", "tipps")
    Global $Random = IniRead(@scriptDir&"\reset.ini", "random")

    [/autoit]

    und unten:

    Spoiler anzeigen
    [autoit]

    Case $Reset
    Local $Guess = IniRead(@scriptDir&"\reset.ini", "zahl")
    Local $Tipps = IniRead(@scriptDir&"\reset.ini", "tipps")
    Local $Random = IniRead(@scriptDir&"\reset.ini", "random")

    [/autoit]

    und in der ini steht es wiefolgt.

    Spoiler anzeigen

    zahl=0
    tipps=0
    random=Random(0,100,1)

    Funktioniert leider nicht.
    Und muss die .ini dann auch immer bei der .exe beiliegen?
    Wenn ja ist das keine Lösung die mir gefallen würde. :/

  • Reset Knopf

    • ThirtySix
    • 5. Juli 2013 um 15:48
    Zitat von m-obi


    Hhhhäähhh???

    Nimm doch einfach Variablen und speicher die Werte in eine INI oder so.
    Die Frage ist, wie willst du denn den Namen und den Pfad festlegen?
    Über eine GUI?


    Ich bin doch noch ganz Neu in dieser AutoIT - Script - Programmier Welt. :wacko:

    Desswegen frage ich doch euch. :P
    okay mit einer ini kann man das machen ?
    und diese call ich dann einfach mit welchem befehl ?

    Ja, ich google nach der funktion mit ini.. is oke.. :D
    Danke für den Tipp. :!:

  • Reset Knopf

    • ThirtySix
    • 5. Juli 2013 um 12:43

    Hey zusammen,
    Heute gehts um mein zweites Projekt.

    Und zwar könnte ich eure Hilfe gebrauchen ...
    Ich möchte das mein Spiel durch den Definierten Button resettet wird.

    hab nur die idee gehabt mit:

    Spoiler anzeigen
    [autoit]

    Case $Reset
    Run (@DesktopDir,"\Spiel.exe")
    exit

    [/autoit]


    Das klappt zwar.
    aber dann könnte man das Spiel nichtmehr umbennen bzw. muss es aufm desktop sein!

    Bin sehr gespannt wie andere wege aussehen um das zu lösen.

    Und bitte Bombardiert mich mit gemäcker über den Script... :D
    Will ja dazulernen.. also wenn euch was auffällt (und das wird es)
    sagt einfach was ich anders machen soll etc.

    Danke schonmal ..
    und ein Schönes Wochenende :party:

    Gruß

    Mein Spiel:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $GUI = GUICreate("Ratespiel", 202, 178, 428, 314)
    $Tipp = GUICtrlCreateButton("Tipp", 8, 80, 91, 25)
    $Reset = GUICtrlCreateButton("Reset", 104, 80, 91, 25)
    $Text = GUICtrlCreateLabel("Rate eine Zahl zwischen 0 und 100", 8, 16, 188, 17, $SS_CENTER)
    $Result = GUICtrlCreateLabel("", 8, 48, 184, 17, $SS_CENTER)
    $Sub = GUICtrlCreateButton("- 1", 8, 112, 27, 25)
    $Add = GUICtrlCreateButton("+ 1", 168, 112, 27, 25)
    $Slider = GUICtrlCreateSlider(40, 112, 118, 21)
    $Value = GUICtrlCreateLabel("0", 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Sub10 = GUICtrlCreateButton("- 10", 8, 144, 27, 25)
    $Add10 = GUICtrlCreateButton("+ 10", 168, 144, 27, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Global $Random = Random(0,100,1)
    Global $Guess = 0
    Global $Tipps = 0

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Tipp
    $Tipps = $Tipps+1
    If $Guess = $Random Then
    $Result = GUICtrlCreateLabel("...", 8, 48, 184, 17, $SS_CENTER)
    sleep (500)
    $Result = GUICtrlCreateLabel("Mit "&$Tipps&" versuchen Gewonnen!", 8, 48, 184, 17, $SS_CENTER)
    EndIf
    If $Guess > $Random Then
    $Result = GUICtrlCreateLabel("...", 8, 48, 184, 17, $SS_CENTER)
    sleep (500)
    $Result = GUICtrlCreateLabel(".. weniger ..", 8, 48, 184, 17, $SS_CENTER)
    EndIf
    If $Guess < $Random Then
    $Result = GUICtrlCreateLabel("...", 8, 48, 184, 17, $SS_CENTER)
    sleep (500)
    $Result = GUICtrlCreateLabel(".. mehr ..", 8, 48, 184, 17, $SS_CENTER)
    EndIf

    Case $Slider
    $Guess = GUICtrlRead($Slider)
    $Value = GUICtrlCreateLabel(""&$Guess, 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")

    Case $Sub
    If $Guess < 1 Then
    $Guess = 1
    EndIf
    GUICtrlSetData($Slider, $Guess-1)
    $Value = GUICtrlCreateLabel(""&$Guess-1, 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Guess = $Guess-1

    Case $Add
    If $Guess > 99 Then
    $Guess = 99
    EndIf
    GUICtrlSetData($Slider, $Guess+1)
    $Value = GUICtrlCreateLabel(""&$Guess+1, 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Guess = $Guess+1

    Case $Sub10
    If $Guess < 10 Then
    $Guess = 10
    EndIf
    GUICtrlSetData($Slider, $Guess-10)
    $Value = GUICtrlCreateLabel(""&$Guess-10, 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Guess = $Guess-10

    Case $Add10
    If $Guess > 90 Then
    $Guess = 90
    EndIf
    GUICtrlSetData($Slider, $Guess+10)
    $Value = GUICtrlCreateLabel(""&$Guess+10, 48, 144, 102, 25, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
    $Guess = $Guess+10


    Case $Reset
    MsgBox(0,"Check Value Box","Guess ist = "&$Guess&@CRLF&"Random = "&$Random&@CRLF&"Slider = "&GUICtrlRead($Slider)) ;~ nur zu testzwecken.

    EndSwitch
    WEnd

    [/autoit]
  • ExitLoop?

    • ThirtySix
    • 4. Juli 2013 um 12:56
    Zitat von Schnitzel

    Einiges an dem Script ist stark verbesserungswürdig...
    Da das offensichtlich aber ein Bot werden soll ("oder schon ist") darfst du hier keinen Support erwarten

    Ich hab keine böswilligen absichten falls das für beruhigung sorgt..
    Es ist einfach zufall das ich als erstes auf die Idee gekommen bin.

    Ich hätte zwar gern dazugelernt.. aber verstehe das man dabei nicht helfen will...
    An sich funktioniert es.. und nun werd ich mir was neues suchen.
    Vielleicht interessiert das ja dann mehr ^^
    Ich mach das alles nur zu lernzwecken und Interesse..
    Für ein richtigen "Bot" den man in spielen benutzen will, würde das hier eh nicht klappen.
    Da denk ich Programmiert man ganz anders solche sachen.. zudem gibts sowas wie sand am meer.

    aber falls doch noch was dazu gesagt werden will... ich bin lernfreudig :thumbup: .

    Grüße aus Berlin.


    :: Edit

    Wenn ihr wollt nehm ich den Spoiler mit dem script auch wieder raus.

  • ExitLoop?

    • ThirtySix
    • 4. Juli 2013 um 12:11
    Zitat von m-obi


    Wozu ist denn die Schleife in _pause?
    Wenn du DllOpen nutzt, musst du auch mit DllClose die DLL wieder freigeben.


    wenn ich die schleife nicht mache versteht er den "exitloop" befehl nicht.
    die dll closen? da alles funktioniert bin ich da nicht auf ein problem gestoßen... was ist denn wenn ich sie offen lasse?
    edit: und an welcher stelle soll/muss ich sie closen?

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™