[UDF] SrcDSQLib.au3 – Eine Source Server Query Bibliothek für AutoIt

  • Hi AutoIt.de, :)

    vor ein paar Monaten wollte ich ein Programm zum Überwachen eines Source Servers schreiben.
    Mir fehlte allerdings viel Erfahrung in (Netzwerk-) Programmierung und deswegen hab ich nach etwas gesucht, das die Informationen aus ihm rausholen kann.
    Viele Beispiele waren entweder in PHP, VB.net, Java, Ruby oder C++ vorhanden. Lösungen, die es für AutoIt gab, konnten mich nicht zufriedenstellen und so hab ich das Query Protokoll studiert und meine eigene erstellt!

    Spoiler anzeigen


    Download: SrcDSQLib.au3 - 1.5

    Damit lassen sich von jedem Source Server die wichtigsten Daten auslesen wie
    Ping, Servername, Map, Spiel, System, Tags, Spieler, ihre Punkte und Verbindungszeit, Regeln wie "sv_cheats 1" etc.

    Wer also schon immer einen eigenen HLSW Klon schreiben wollte braucht jetzt nur noch 'ne GUI. :D


    Update 1.5
    [Blockierte Grafik: http://stuff.aix0.eu/Pics/famfamfam/icons/add.png] RCon-Funktionen hinzugefügt
    [Blockierte Grafik: http://stuff.aix0.eu/Pics/famfamfam/icons/add.png] MasterServerQuery-Funktion hinzugefügt
    [Blockierte Grafik: http://stuff.aix0.eu/Pics/famfamfam…fresh_small.png] Funktionen einheitlicher gemacht
    [Blockierte Grafik: http://stuff.aix0.eu/Pics/famfamfam…fresh_small.png] Flexibilität der Nutzung erhöht
    [Blockierte Grafik: http://stuff.aix0.eu/Pics/famfamfam/icons/arrow_right.png] Performance verbessert


    Bugs/Vorschläge bitte hier oder als Kommentar auf meinem Blog (Link unten) melden.
    Offizielle UDF-Seite

    PS: Das ist meine erste UDF ;)

    5 Mal editiert, zuletzt von A.I7 (11. November 2010 um 12:13)

  • Ich dachte schon, dass es hier wenige/keine gibt, die sich mit diesem Thema beschäftigen.
    Kritik zum Codestil und der UDF allgemein wäre aber nicht schlecht. ;)

  • Hier Beispiel für die wichtigsten Funktionen

    Spoiler anzeigen
    [autoit]


    #include "SrcDSQLib.au3"
    #include <Array.au3>

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

    $_SrcDSQ_Timeout = 500
    $ip = "85.131.195.92" ; Beispielserver
    $port = 27015

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

    ; Einzelne Abfragen (vorteil bei mehreren Servern, die nacheinander abgefragt werden müssen)
    $ping=_SrcDSQ_Ping($ip,$port)
    ConsoleWrite($ping&@CRLF)
    $info=_SrcDSQ_Info($ip,$port)
    _ArrayDisplay($info)
    $players=_SrcDSQ_Player($ip,$port)
    _ArrayDisplay($players)
    $rules=_SrcDSQ_Rules($ip,$port)
    _ArrayDisplay($rules)

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

    ; konzentrierte Abfrage(am Besten bei einem Server zu verwenden)
    $handle= _SrcDSQ_Init($ip,$port)

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

    $ping=_SrcDSQ_Ping($handle)
    ConsoleWrite($ping&@CRLF)
    $info=_SrcDSQ_Info($handle)
    _ArrayDisplay($info)
    $players=_SrcDSQ_Player($handle)
    _ArrayDisplay($players)
    $rules=_SrcDSQ_Rules($handle)
    _ArrayDisplay($rules)

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

    _SrcDSQ_Shutdown($handle)

    [/autoit]

    Die anderen folgen bald.