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

  • Problem mit Endlosschleife...

    • Oscar
    • 14. Juni 2017 um 05:13

    Interessantes Phänomen!
    Du hast die Grenze von AutoIt entdeckt! ^^
    Man kann das Ganze sogar noch weiter eingrenzen:

    AutoIt
    HotKeySet('{ESC}', '_Exit')
    ConsoleWrite('Bitte warten... bin gleich fertig...' & @CRLF) ; lol
    Global $iOld = 0, $iTimer = TimerInit(), $iDiff = 0
    For $i = 9.007199254e+15 To 2^53
    	If $i = $iOld Then
    		ConsoleWrite('Größte Zahl = ' & $i & @CRLF)
    		ExitLoop
    	EndIf
    	If TimerDiff($iTimer) - $iDiff > 250 Then
    		ToolTip($i)
    		$iDiff = TimerDiff($iTimer)
    	EndIf
    	$iOld = $i
    Next
    ConsoleWrite('Ich bin der Größte!!! ;-)' & @CRLF)
    Func _Exit()
    	Exit
    EndFunc
    Alles anzeigen
  • Listview-Datenbank v3

    • Oscar
    • 14. Juni 2017 um 05:10

    Upps! Ja, entschuldige!
    Ich habe übersehen, dass das IP-Control nicht über GUICtrlDelete gelöscht werden kann.
    Ich habe das Script in Post#16 geändert, damit niemand mehr das fehlerhafte Script downloadet.

  • Listview-Datenbank v3

    • Oscar
    • 14. Juni 2017 um 04:15
    Zitat von nuts

    super Skript.
    Du hast nicht zufällig so ein Beispiel mit "echtem Datenbank-Unterbau (SQLite oder sowas) rumliegen?

    Danke!
    Nein, so ein Beispiel mit SQLite habe ich nicht.
    Da das Beispiel aber sowieso bereits auf Arrays basiert, musst Du "lediglich" das Laden und Speichern sowie die Suche anpassen.

  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • Oscar
    • 13. Juni 2017 um 19:45

    Man kann da mit StringRegExp beigehen. Dafür ist es aber ganz elementar wichtig, wie so eine Datei tatsächlich aufgebaut ist.
    Besser wäre es, wenn Du die Datei mal als Anhang posten würdest, damit man die Zeilenenden korrekt sieht.
    Ich habe mal Deine "\" oben als @CRLF gedeutet und darauf basierend ein Beispiel geschrieben:

    AutoIt
    #include <Array.au3>
    $sText = 'add configuration=xxxxxxx disabled=no mac-address=00:00:00:00:00:00 \' & @CRLF & 'master-interface=1.4-67370665861D-1 name=' & @CRLF & '1.4-67370665861D-1-9 radio-mac=00:00:00:00:00:00 add configuration=xxxxxxx disabled=yes mac-address=00:00:00:00:00:00' & @CRLF & 'master-interface=1.4-67370665861D-1 name=' & @CRLF & '1.4-67370665861D-1-10 radio-mac=00:00:00:00:00:00 add configuration=xxxxxxx disabled=no mac-address=00:00:00:00:00:00 ' & @CRLF & 'master-interface=1.4-67370665861D-1 name=' & @CRLF & '1.4-67370665861D-1-11 radio-mac=00:00:00:00:00:00'
    
    
    $aOut = StringRegExp($sText, '(?s)disabled=no.+?name=\s*(.+?)\s*radio', 3)
    ;~ _ArrayDisplay($aOut)
    $sOut = ''
    For $i = 0 To UBound($aOut) - 1
    	$sOut &= 'enable ' & $aOut[$i] & @CRLF
    Next
    MsgBox(0, 'Ausgabe', $sOut)
    Alles anzeigen
  • Listview-Datenbank v3

    • Oscar
    • 13. Juni 2017 um 18:33
    Zitat von Thomaswy

    Hab AutoIT zufällig "gefunden"

    Und damit Du gleich noch etwas lernst: :)
    Es heißt "AutoIt" mit einem kleinen "t" am Ende. Das steht für "automatisiere es" und hat nichts mit "IT = Informationstechnik" zu tun.

  • Kleines Desktop-Spiel (ChipHunter)

    • Oscar
    • 13. Juni 2017 um 17:37

    Ein Flackern gab es noch, und zwar beim umschalten des Schwierigkeitsgrads. Das ist jetzt auch vorbei. :)
    Außerdem gab es noch ein paar kleine kosmetische Korrekturen (Contextmenü mit Icons, Programm-Informationen-Fenster und auslagern der Grafiken, Sounds, etc.).
    Nichts weltbewegendes, aber so zum abrunden. ^^

    Neue Version in Post#1.

  • AdlibRegister AdlibUnRegister Verständnisproblem?

    • Oscar
    • 13. Juni 2017 um 17:21

    Warum überhaupt so kompliziert?
    So geht's einfacher:

    AutoIt
    #include <MsgBoxConstants.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    ;~ Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    Local $Form2 = GUICreate("Form2", 330, 250, 319, 238)
    Local $Btn_Start = GUICtrlCreateButton("Start", 96, 168, 75, 25)
    Local $Btn_Stop = GUICtrlCreateButton("Stop", 184, 168, 75, 25)
    Local $Lbl_Timer = GUICtrlCreateLabel("0", 104, 56, 162, 50)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    Local $Btn_Exit = GUICtrlCreateButton("Exit", 16, 168, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    Local $iCount = 0, $fStart = False
    AdlibRegister("TimerStart", 1000)
    
    
    While 1
    	Switch GUIGetMsg()
    		Case $Btn_Start
    			$fStart = True
    		Case $Btn_Stop
    			$fStart = False
    			MsgBox(0, "Timer", "Steht bei: " & $iCount, 0)
    		Case $Btn_Exit, $GUI_EVENT_CLOSE
    			AdlibUnRegister()
    			Exit
    	EndSwitch
    WEnd
    
    
    Func TimerStart()
    	If Not $fStart Then Return
    	$iCount += 1
    	GUICtrlSetData($Lbl_Timer, $iCount)
    EndFunc   ;==>TimerStart
    Alles anzeigen
  • Listview-Datenbank v3

    • Oscar
    • 13. Juni 2017 um 17:13

    Ich weiß jetzt nicht genau, was Du mit Spalte 2 meinst. In dem Beispiel fängt das zählen bei Null an, somit wäre Spalte 2 die dritte Spalte.
    Ich habe Dir aber mal das Beispiel umgeschrieben, sodass in der zweiten Spalte (Spalte 1) die IP-Adresse eingetragen werden kann. Zum eingeben habe ich die "GuiIPAddress.au3"-UDF verwendet.
    Außerdem mussten einige Funktionen angepasst werden.
    Du findest das Beipielscript im Anhang.

    Dateien

    Listview-Datenbank_IP.au3 49,47 kB – 683 Downloads
  • Kleines Desktop-Spiel (ChipHunter)

    • Oscar
    • 13. Juni 2017 um 07:55

    So, jetzt gehört auch das flackern der Geschichte an.
    Weder der Mauscursor noch die Punkteanzeige flackert jetzt noch.
    Das Update auf v1.3.1.0 habe ich als "kleines" Update vorgenommen, damit die bisherigen Bestenlisten erhalten bleiben.

    Neue Version in Post#1.

  • Kleines Desktop-Spiel (ChipHunter)

    • Oscar
    • 11. Juni 2017 um 17:41
    Zitat von autoiter

    Mir ist aufgefallen, dass das Fadenkreuz bei mir sehr stark bei Bewegung flackert.

    Ja, das flackern des Fadenkreuzes stört mich auch noch, aber dafür habe ich noch keine Abhilfe gefunden.
    Schön, dass das jetzt mit dem klicken wieder funktioniert. :)
    Und danke für's testen! :thumbup:

  • Kleines Desktop-Spiel (ChipHunter)

    • Oscar
    • 11. Juni 2017 um 16:04

    autoiter: Vielen Dank für Deine Rückmeldungen!
    Ich vermute, dass die fehlerhaften Klicks von der zusätzlichen Fadenkreuz-GUI "abgefangen" werden. Manchmal funktioniert dann das "durchklicken" nicht.
    Ich habe jetzt das Fadenkreuz-PNG direkt als Mauscursor eingebaut (war für mich auch Neuland, wie man das PNG aus dem Speicher als Cursor nutzen kann).
    Damit sollte das eigentlich wieder so funktionieren wie bei der v0.9.5.0. Kannst ja mal eine Rückmeldung geben...

    Beim Import der Bestenlisten war ich zu schusselig! X/
    Völlig übersehen, dass ich die bestehenden Einträge auch nach unten schieben muss. Und dann auch noch vergessen zu testen, ob die importierten Einträge bereits vorhanden sind. Das sollte mit der neuen Version behoben sein!

    Neue Version in Post#1.

  • Kleines Desktop-Spiel (ChipHunter)

    • Oscar
    • 9. Juni 2017 um 07:30

    Ich hatte gestern noch den ganzen Tag damit verbracht, einen sehr seltsamen Bug zu finden:
    Wenn man mehrere Spiele hintereinander spielte, dann passierte es, dass die Anzeige für die Restzeit auf 89 sprang, aber dann nicht weiter runter zählte.
    Die Chips bewegten sich aber weiter, man konnte sie auch abschießen und es kamen neue Chips. Nur die Restzeit wollte nicht mehr.
    Diesen Bug konnte man vor allem im "Jagdhund"-Level beobachten. Nach stundenlangem debugging bin ich zu der Überzeugung gelangt, dass das etwas mit dem TimerDiff-Befehl zu tun hat.
    Ob der falsche Werte liefert, wenn man ihn zu oft aufruft?
    Jedenfalls habe ich nun die Timer-Befehle auf die Timer-Befehle aus der Timers-UDF umgestellt und seit dem ist alles normal.

    Ich denke, das mit dem treffen der Chips war auch eine Folge des Timer-Problems. Ist mir jetzt jedenfalls nicht mehr aufgefallen.
    Das "Sanduhr"-Problem habe ich auch gelöst, indem der Chip jetzt nicht mehr transparent ist. Man musste nämlich eine nicht transparente Stelle der Sanduhr treffen.

    Eine neue Version gibt es in Post#1.
    Hoffentlich vorerst die Letzte. :huh:

  • exe mit anderen Datum ausführen

    • Oscar
    • 8. Juni 2017 um 14:56

    Ich sehe hier auch die Grenze zur Illegalität, deshalb werde ich den Thread jetzt schliessen!

  • Kleines Desktop-Spiel (ChipHunter)

    • Oscar
    • 8. Juni 2017 um 14:51

    Mittlerweile ist die Version 1.0 fertig! :)
    Umstellung auf die "bass.dll" und Im-/Export der Bestenliste, sowie Feintuning und Fehlerbereinigung standen auf dem Plan.

    Achtung: Man kann nur Bestenlisten importieren, die mit der gleichen Version des Spiels erstellt wurden.

    Neue Version in Post#1.

  • Kleines Desktop-Spiel (ChipHunter)

    • Oscar
    • 8. Juni 2017 um 09:03

    Ich habe jetzt drei verschiedene Schwierigkeitsstufen ("Ansitzjäger", "Treibjäger", "Jagdhund") erstellt, mit jeweils eigener Bestenliste.
    Mich würde mal eure Meinung zu den Stufen interessieren.

    Meine Wertung:
    Ansitzjäger ist etwas zum entspannen.
    Treibjäger fordert einen schon ganz gut.
    Jagdhund ist mir schon zu heftig, aber ich bin ja auch nicht mehr der Jüngste.

    Neue Version in Post#1.

  • Schriftgröße anhand von Breite, Höhe (und DPI) berechnen

    • Oscar
    • 7. Juni 2017 um 18:55

    Da ich das gerade bei meinem Spiel einsetze, kann ich Dir zeigen, wie ich das umgesetzt habe.
    Am Anfang die eingestellte DPI-Größe aus der Registry auslesen:
    $iAppDPI = RegRead('HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics', 'AppliedDPI')
    und dann bei den Label die Schriftgröße entsprechend skalieren:
    GUICtrlSetFont(-1, 10 / $iAppDPI * 96, 400, 0, 'Verdana')
    So bleibt die Schriftgröße ungefähr so groß, wie bei der Standard-DPI-Einstellung von 96.

  • Kleines Desktop-Spiel (ChipHunter)

    • Oscar
    • 7. Juni 2017 um 18:48

    Ja, das mit dem Trefferton ist so ein Problem. Auch bei den letzten 10 Sekunden, wenn die "Plings" kommen.
    "_WinAPI_PlaySound" kann immer nur einen Sound zur gleichen Zeit abspielen. Ich weiß noch nicht, wie ich das umgehen kann.

    Momentan habe ich zwei zusätzliche Anreize eingebaut. Statt immer nur Goldmünzen, gibt es die Goldmünzen jetzt nur in 60% der Fälle. In den anderen 40% gibt es (aufgeteilt in jeweils 10%) "plus 5 sek.", "plus 10 sek.", "plus 5%" und "plus 10%". Wobei die Sekunden zur Restspielzeit addiert werden und die Prozente zur Trefferquote.

    Jetzt bin ich dabei, drei Schwierigkeitsgrade ("Ansitzjäger", "Treibjäger", "Jagdhund") einzubauen. :D
    Wenn das fertig ist, gibt es eine neue Version. Vermutlich aber erst morgen.

  • Kleines Desktop-Spiel (ChipHunter)

    • Oscar
    • 7. Juni 2017 um 07:26

    Ich habe jetzt auch einen Lautstärkeregler eingebaut.
    Die Bestenliste ist ebenfalls fertig und noch einige andere Änderungen.
    Neue Version gibt es in Post#1.

  • Kleines Desktop-Spiel (ChipHunter)

    • Oscar
    • 6. Juni 2017 um 20:08
    Zitat von autoiter

    Da würde ich eine eventuellen Ini-Pfad für uns beide angleichen und schon könnten wir uns messen

    Hehe, die Highscore-Liste ist verschlüsselt und mit Hash gesichert. Jede Änderung an der Liste mit einem Editor macht sie unbrauchbar. :D
    Zumindest die DAUs hält das vom schummeln ab.
    Aber ich baue noch eine Highscore-Synchronisation ein, sodass man eine andere Tabelle importieren kann.

  • Kleines Desktop-Spiel (ChipHunter)

    • Oscar
    • 6. Juni 2017 um 19:18

    Zu 1.: Mal sehen. Zu schwer soll es ja auch nicht werden. Es soll ja als "mal Zwischendurch"-Spiel da sein.
    Zu 2.: Ich habe jetzt neue Münzen (256 Pixel Größe) und die werden, je nach Desktop-Auflösung, runterskaliert. So spielt die Monitor-Auflösung keine Rolle mehr.
    Vielleicht baue ich noch verschiedene Schwierigkeitsgrade ein. Ich denke, das ist besser als die Schwierigkeit während des Spiels zu erhöhen. Erstmal steht jetzt die Top-Ten-Liste auf dem Plan.

    Zu 3.: Sorry! Aber nein, das wird nicht kommen! Ich erinnere mich noch gut an mein erstes AutoIt-Spiel, wo ich sowas eingebaut habe, und diverse Scherzkekse nichts besseres zu tun hatten, als einen Bot für das Spiel zu schreiben.
    Ja, die waren wirklich so blöd, für ein AutoIt-Script einen Bot zu schreiben, um einen besseren Punktestand zu bekommen. Naja, wie auch immer, jedenfalls gibt es diese User, die unbedingt ganz oben in der Liste stehen wollen und das durch Manipulation (kann man in AutoIt nicht verhindern) erreichen, nicht durch Kampfgeist. Und ich werde nicht diesen Aufwand treiben, um mich dann wieder darüber zu ärgern.

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™