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

Beiträge von Oscar

  • Crown-Master

    • Oscar
    • 18. September 2010 um 18:08

    Conan10: Das mit dem Einsatz werde ich einfügen.

    @TheShadowAE: Die Symbole sind von iconspedia.com, die digitalen Zahlen sind von mir (mit IcoFX gemacht).

  • Crown-Master

    • Oscar
    • 18. September 2010 um 17:12

    Mein neuestes Projekt ist mal wieder ein Spiel.
    Die Version 1.2 ist jetzt fertig.
    Version 1.2:
    - Bug: Mit jedem gestoppten Symbol, wurden die anderen immer schneller. Behoben! Danke Bernd670!

    History

    Version 1.1:
    - Bug: Wenn man nach benutzen der Risikoleiter kein Geld mehr hatte (nicht gewonnen), dann konnte man noch ein Spiel spielen -> beseitigt
    - Bug: Nach benutzen der Risikoleiter wurde auch nicht auf "Bank geknackt" geprüft -> beseitigt
    - Bug: Der Start- sowie der Übernehmen-Button konnten per Tastatur ausgelöst werden, obwohl sie nicht sichtbar waren -> beseitigt
    - Bug: Der Einsatz konnte nach Spielstart noch über die Tasten verändert werden -> beseitigt

    Version 1.0:
    - Spielregeln noch etwas geändert: eine oder zwei Bomben führen dazu, dass man die Runde verliert (Einsatz weg).
    - Eigene GUI für die Gewinnmöglichkeiten
    - Eigene GUI für die Tastaturbelegung
    - Spielende bei "Bank geknackt" (bei mehr als 999999999)
    - Bug bei der Gewinnauswertung beseitigt (bei 2 Kronen und einem Symbol gab es 4xEinsatz statt nur 3x)
    - Risikoleiter noch etwas schwerer gemacht

    Version 0.5:
    - Sounds hinzugefügt
    - Die Sounds können wahlweise auch deaktiviert werden (im Menü "Einstellungen")

    Version 0.4:
    - Bedienung nun auch per Tastatur möglich (Belegung siehe Menüpunkt "? / Tastaturbelegung")
    - die Items sind nun PNGs und werden mit GDI+ angezeigt (Backpuffer, kein flackern mehr)
    - Bug bei der Risikoleiter entfernt (x100 konnte nie erreicht werden)
    - die Wechselgeschwindigkeit bei der Risikoleiter ist nun ansteigend mit jeder Stufe.

    Version 0.3:
    - Man konnte den Einsatz auf über 9999 erhöhen (wurde allerdings nicht angezeigt). Bug beseitigt!
    - Spiel schwerer gemacht. Symbole wechseln schneller und Risikoleiter steht nur noch zur Auswahl, wenn man min. 1 Roulette-Symbol erhalten hat.
    - Außerdem bekommt man bei drei Kronen jetzt nicht mehr den 100fachen, sondern nur noch den 10fachen Einsatz mal Anzahl der Kronen.
    - Die Risikoleiter besitzt nun auch andere (niedrigere) Werte.
    - Und damit der Jackpot nicht so schnell ansteigt, wird (bei verlorenem Spiel) nur noch der halbe Einsatz hinzugefügt.
    - Die Werte (HiScore und Jackpot) in der Inidatei werden automatisch mit dieser neuen Version zurückgesetzt.

    Version 0.2:
    - HiScore funktioniert nun.
    - Unter WindowsXP wird WM_PAINT nicht benutzt (verhindert das flackern der Icons).
    - Der Einsatz kann nun auch stellenübergreifend erhöht/verringert werden.
    - Risikoleiter etwas schwerer gemacht.

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

    Spielerklärung:
    Man bekommt 1000€ und kann bestimmen wie viel man setzen möchte und klickt dann auf den Start-Button. Daraufhin erscheinen auf den 6 Feldern verschiedene Symbole. Diese wechseln ständig und man muss versuchen mindestens drei gleiche Symbole zu erreichen (Stop-Button anklicken). Dabei gibt es folgende Gewinnmöglichkeiten:

    • drei oder mehr Kronen = Jackpot + Einsatz x 10 x Anzahl der Kronen
    • drei oder mehr Hüte = Jackpot + Einsatz
    • eine oder zwei Bomben = Man verliert den Einsatz
    • drei oder mehr Bomben = Der Gesamtgewinn ist weg (Spiel zu Ende)
    • drei oder mehr der übrigen Symbole = Einsatz x Anzahl der Symbole


    Die Kronen dienen auch als Joker. Sie können also auch mit Hüten oder den übrigen Symbolen kombiniert werden. Allerdings werden sie nicht als Bomben gewertet!
    Hat man einen Gewinn erzielt und mindestens ein Roulette-Symbol erhalten, so besteht die Möglichkeit diesen Gewinn auf der "Risiko-Leiter" (Leertaste zum "hochdrücken") zu vervielfachen oder ihn wieder zu verlieren. :D
    Wenn man nicht gewonnen hat, wird der halbe Einsatz dem Jackpot hinzugefügt.

    Skript, Icons, Sounds und die Exedatei befinden sich im ZIP-Archiv (Anhang).

    Dateien

    Crown-Master_v12.zip 1,34 MB – 311 Downloads crown-master11.png 34,34 kB – 0 Downloads
  • Happy Birthday Gun-Food! :-)

    • Oscar
    • 18. September 2010 um 15:28

    Ähem...[Hust]...heute ist der 18. und Gun-Food hat erst morgen Geburtstag. ^^

  • Treeview - Child Items bekommen

    • Oscar
    • 17. September 2010 um 20:53

    Statt einer Grafik poste lieber Dein Skript. :huh:

  • Zahl (Int, Float) in Tausendergruppierung ausgeben, Währungsformatierung

    • Oscar
    • 17. September 2010 um 20:44

    Ich habe mal nachgeschaut. Das war mit Einführung der v3.3.2.0 und der Kommentar dazu:

    Zitat

    Removed: _StringAddThousandsSep() has been removed. Too many opinions on how the function should work means nobody is happy with it.

  • Zahl (Int, Float) in Tausendergruppierung ausgeben, Währungsformatierung

    • Oscar
    • 17. September 2010 um 19:41

    Bis vor kurzem war doch diese Funktion noch Bestandteil der UDFs:

    Spoiler anzeigen
    [autoit]


    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _StringAddThousandsSep
    ; Description ...: Returns the original numbered string with the Thousands delimiter inserted.
    ; Syntax.........: _StringAddThousandsSep($sString[, $sThousands = -1[, $sDecimal = -1]])
    ; Parameters ....: $sString - The string to be converted.
    ; $sThousands - Optional: The Thousands delimiter
    ; $sDecimal - Optional: The decimal delimiter
    ; Return values .: Success - The string with Thousands delimiter added.
    ; Author ........: SmOke_N (orignal _StringAddComma
    ; Modified.......: Valik (complete re-write, new function name)
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ; Example .......; Yes
    ; ===============================================================================================================================
    Func _StringAddThousandsSep($sString, $sThousands = -1, $sDecimal = -1)
    Local $sResult = "" ; Force string
    Local $rKey = "HKCU\Control Panel\International"
    If $sDecimal = -1 Then $sDecimal = RegRead($rKey, "sDecimal")
    If $sThousands = -1 Then $sThousands = RegRead($rKey, "sThousand")
    Local $aNumber = StringRegExp($sString, "(\D?\d+)\D?(\d*)", 1) ; This one works for negatives.
    If UBound($aNumber) = 2 Then
    Local $sLeft = $aNumber[0]
    While StringLen($sLeft)
    $sResult = $sThousands & StringRight($sLeft, 3) & $sResult
    $sLeft = StringTrimRight($sLeft, 3)
    WEnd
    $sResult = StringTrimLeft($sResult, StringLen($sThousands)) ; Strip leading thousands separator
    If $aNumber[1] <> "" Then $sResult &= $sDecimal & $aNumber[1]
    EndIf
    Return $sResult
    EndFunc ;==>_StringAddThousandsSep

    [/autoit]


    Die hatte ich mir vorsorglich mal archiviert, als ich gelesen habe, dass sie aus den UDFs entfernt wird.

  • Schleifenproblem...

    • Oscar
    • 17. September 2010 um 19:31

    Heute registriert und dann so eine Frage...hmm...Forenregeln schon gelesen?

  • Terme mit array berechnen

    • Oscar
    • 16. September 2010 um 15:50

    Füg mal diese Zeile an den Anfang Deines Skripts ein:

    [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit]


    Dann kommst Du selbst drauf. ^^

  • Gui CreateInput frage

    • Oscar
    • 13. September 2010 um 14:41

    $WM_COMMAND war's, nicht $WM_SETFOCUS. Und so geht's:

    Spoiler anzeigen
    [autoit]


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

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

    GUICreate('Test', 520, 400)
    $log = GUICtrlCreateEdit("", 10, 10, 500, 138, BitOR($ES_OEMCONVERT,$ES_AUTOVSCROLL,$ES_READONLY,$WS_HSCROLL,$WS_VSCROLL))
    $hButton = GUICtrlCreateButton('ok', 10, 160, 100, 20)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, '_WM_COMMAND')
    Do
    Until GUIGetMsg() = -3

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

    Func _WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nID = BitAND($wParam, 0x0000FFFF)
    If $nID = $log Then GUICtrlSetState($hButton, $GUI_FOCUS)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • Gui CreateInput frage

    • Oscar
    • 13. September 2010 um 14:25

    Der Style $ES_READONLY verhindert einen Eintrag in das Input-Control. Wenn Du zusätzlich auch noch verhindern willst, dass das Control den Focus erhält, musst Du mit GUIRegisterMsg ($WM_SETFOCUS war es glaub ich) die Message abfangen und den Focus auf ein anderes Control setzen.

  • StringRegExp Problem

    • Oscar
    • 12. September 2010 um 18:49

    Dafür brauchst Du gar kein RegExp:

    [autoit]


    $string = "0123456789"
    MsgBox(0, 'Ergebnis', StringMid($string, StringInStr($string, '234') + 3, 2))

    [/autoit]
  • Zufällige zahl ausgeben

    • Oscar
    • 12. September 2010 um 18:39

    Da fehlt zwar die Frage, aber ich schreib Dir mal ein Beispiel:

    Spoiler anzeigen
    [autoit]


    $a = Random(1, 9, 1)
    $b = Random(1, 9, 1)
    $erg = InputBox('Rechenaufgabe', 'Wie viel ist ' & $a & ' mal ' & $b & ' ?', '')
    If $a * $b = $erg Then
    MsgBox(0, 'Aufgabe', 'Richtig!')
    Else
    MsgBox(0, 'Aufgabe', 'Falsch!')
    EndIf

    [/autoit]
  • Bin der neue...

    • Oscar
    • 12. September 2010 um 18:28

    Herzlich willkommen auch von mir.
    Obwohl, aus Bielefeld...hmm...da könnten SIE dahinter stecken. :D

  • FileMove inhalt Unterordner

    • Oscar
    • 12. September 2010 um 18:12

    Mist, jetzt habe ich gerade eine Funktion dafür geschrieben: _FileCopyMoveRek
    Na egal, dann gibt es halt noch eine Lösung. ^^

  • FileCopyMoveRek

    • Oscar
    • 12. September 2010 um 18:10

    Aufgrund einer Frage in "Hilfe und Unterstützung" habe ich mal eine Funktion geschrieben, mit der man Dateien rekursiv kopieren bzw. verschieben kann.
    Dabei dürfen die gleichen Wildcards wie bei FileCopy/FileMove benutzt werden. Das Zielverzeichnis muss aber ein Verzeichnis sein (kein Dateiname).

    Spoiler anzeigen
    [autoit]


    #include-once
    #include <File.au3>

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

    ; Beispiel:
    _FileCopyMoveRek(@ScriptDir & '\*.txt', @ScriptDir & '\Textdateien\', 8)

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

    ;===============================================================================
    ; Function Name: _FileCopyMoveRek($sSource, $sDest[, $iFlag])
    ; Description:: Verschiebt Dateien (Wildcards können benutzt werden) aus dem
    ; angegebenen Verzeichnis sowie aus dessen Unterverzeichnisse
    ; ins Zielverzeichnis.
    ; Parameter(s): $sSource = Verzeichnis und Dateiname(n)
    ; $sDest = Zielverzeichnis
    ; $sFlag = 0 (default) existierende Dateien werden umbenannt
    ; 1 überschreibt existierende Dateien
    ; 4 verschiebt die Dateien statt sie zu kopieren
    ; 8 Erstellt die Verzeichnisstruktur, falls nicht vorhanden
    ; Requirement(s): #include <File.au3>
    ; Return Value(s): bei Erfolg = 1
    ; bei Fehler wird @error = 1 (Pfad falsch angegeben)
    ; Author(s): Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _FileCopyMoveRek($sSource, $sDest, $iFlag = 0)
    Local $aSource, $aFiles, $aFolder
    $aSource = StringRegExp($sSource, '(.+\\)(.+)', 3)
    If @error Then Return SetError(1, 0, 0)
    If StringRight($sDest, 1) <> '\' Then $sDest &= '\'
    $aFiles = _FileListToArray($aSource[0], $aSource[1], 1)
    If Not @error Then
    For $i = 1 To $aFiles[0]
    If BitAND($iFlag, 1) Then
    If BitAND($iFlag, 4) Then
    FileMove($aSource[0] & $aFiles[$i], $sDest & $aFiles[$i], BitAND($iFlag, 9))
    Else
    FileCopy($aSource[0] & $aFiles[$i], $sDest & $aFiles[$i], $iFlag)
    EndIf
    If @error Then Return SetError(@error, 0, 0)
    Else
    If BitAND($iFlag, 4) Then
    FileMove($aSource[0] & $aFiles[$i], _GetUniqueFileName($sDest & $aFiles[$i]), BitAND($iFlag, 9))
    Else
    FileCopy($aSource[0] & $aFiles[$i], _GetUniqueFileName($sDest & $aFiles[$i]), $iFlag)
    EndIf
    If @error Then Return SetError(@error, 0, 0)
    EndIf
    Next
    EndIf
    $aFolder = _FileListToArray($aSource[0], '*', 2)
    If Not @error Then
    For $i = 1 To $aFolder[0]
    _FileCopyMoveRek($aSource[0] & $aFolder[$i] & '\' & $aSource[1], $sDest, $iFlag)
    If @error Then Return SetError(@error, 0, 0)
    Next
    EndIf
    Return SetError(0, 0, 1)
    EndFunc ;==>_FileCopyMoveRek

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

    ;===============================================================================
    ; Function Name: _GetUniqueFileName($sPath)
    ; Description:: Wenn der Dateiname bereits existiert wird ein Zähler
    ; in Form von: "_(1)" an den Dateinamen angehängt.
    ; Parameter(s): $sPath = kompletter Pfad der Datei
    ; Requirement(s): -
    ; Return Value(s): bei Erfolg = der (neue) Dateiname
    ; bei Fehler wird @error = 1 (Pfad falsch angegeben)
    ; Author(s): Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _GetUniqueFileName($sPath)
    Local $aPath, $sNumber = '', $iCount = 0
    $aPath = StringRegExp($sPath, '(.+\\)(.+?)(?:_\(\d*\))*(\..+)', 3)
    If @error Then Return SetError(1, 0, 0)
    While FileExists($aPath[0] & $aPath[1] & $sNumber & $aPath[2])
    $iCount += 1
    $sNumber = '_(' & $iCount & ')'
    WEnd
    Return $aPath[0] & $aPath[1] & $sNumber & $aPath[2]
    EndFunc ;==>_GetUniqueFileName

    [/autoit]

    Dateien

    _FileCopyMoveRek.au3 3,43 kB – 250 Downloads
  • Back flash in einer Variable

    • Oscar
    • 12. September 2010 um 10:55

    Mit StringReplace kannst Du einzelne Zeichen umwandeln.

  • Back flash in einer Variable

    • Oscar
    • 12. September 2010 um 10:30

    Ich verstehe nicht so ganz, was Du vorhast, aber in einem Dateinamen darf der Backslash "\" nicht vorkommen (Teil des Dateipfads).

  • ListView Sortieren aber mit GUI Events

    • Oscar
    • 11. September 2010 um 21:30

    Und Du schaffst es nicht, das Beispiel auf den Event-Mode umzuschreiben?
    Ganz einfach:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    Opt('GUIOnEventMode', 1)

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

    GUICreate('Listview-sortieren', 600, 400)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')

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

    $hListView = GUICtrlCreateListView('Spalte1|Spalte2|Spalte3', 10, 10, 580, 380)
    GUICtrlSetOnEvent(-1, '_SortLV')

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

    For $i = 0 To 9 ; zufällige ListView-Einträge erstellen
    GUICtrlCreateListViewItem(Random(1000, 9999, 1) & '|' & Random(1000, 9999, 1) & '|' & Random(1000, 9999, 1), $hListView)
    Next

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

    _GUICtrlListView_RegisterSortCallBack($hListView) ; damit man das Listview (mit Klick auf die Spaltenüberschrift) sortieren kann
    GUISetState()

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

    While Sleep(1000)
    WEnd

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

    Func _End()
    _GUICtrlListView_UnRegisterSortCallBack($hListView)
    Exit
    EndFunc ;==>_End

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

    Func _SortLV()
    _GUICtrlListView_SortItems($hListView, GUICtrlGetState($hListView)) ; Einträge entsprechend sortieren
    EndFunc ;==>_SortLV

    [/autoit]
  • Caption ändern

    • Oscar
    • 10. September 2010 um 18:10

    Ungefähr so:

    Spoiler anzeigen
    [autoit]


    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #region ###
    $Form1 = GUICreate("Form1", 615, 440, 192, 124)
    $Combo1 = GUICtrlCreateCombo("", 368, 96, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, "Deutsch|Englisch|Italienisch", "Deutsch")

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

    $Input1 = GUICtrlCreateInput("", 168, 96, 121, 21)
    $Label1 = GUICtrlCreateLabel("anmelden", 104, 96, 55, 17)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

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

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

    Case $Combo1
    Switch GUICtrlRead($Combo1)
    Case "Deutsch"
    GUICtrlSetData($Label1, "anmelden")
    Case "Englisch"
    GUICtrlSetData($Label1, "login")
    Case "Italienisch"
    GUICtrlSetData($Label1, "annunciare") ; ist eine Übersetzung von woerterbuch.info
    EndSwitch

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

    EndSwitch
    WEnd

    [/autoit]
  • _rundos mit powershell-kommando in variable

    • Oscar
    • 10. September 2010 um 17:55

    Für die EPOCH-Zeit musst Du nicht die Powershell bemühen. AutoIt kann das doch auch:

    [autoit]


    #include <Date.au3>

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

    ; Calculated the number of seconds since EPOCH (1970/01/01 00:00:00)
    $iDateCalc = _DateDiff( 's',"1970/01/01 00:00:00",_NowCalc())
    MsgBox( 4096, "", "Number of seconds since EPOCH: " & $iDateCalc )

    [/autoit]


    Das Beispiel stammt übrigens aus der Hilfe zu "_DateDiff". :whistling:

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™