• Kannst du damit auch. Aber was für ein Fenster du da nun erwartest ist mit ein Rätsel. Du erhälst von jedem Befehl einen Rückgabewert den auswerten kannst.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • *g* weiß nicht. irgendwas um es zu benutzen ^^
    ich weiß im Moment nicht wie ich das Script benutze...

  • Es ist eine Standardkonforme UDF und wie jeder andere UDF zu benutzen. Ich denke bei dir ist das Problem, dass du generell nicht weißt wie man eine UDF verwendet.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Ich denke bei dir ist das Problem, dass du generell nicht weißt wie man eine UDF verwendet.


    Ja das ist mehr als möglich ;)
    Ich glaube ich stelle mir da was andere drunter vor als es ist :P

  • UDF = User Defined Function = Benutzerdefinierte Funktionern

    Eine UDF ist im Grunde ein Sammlung von Funktionen an die Parameter übergibts und die eine Rückgabewert liefern. Welche Parameter übergeben werden müssen und was der Rückgabewert bedeutet kannst du in den jeweiligen Funktiosnkommentaren in der UDF nachlesen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Danke, ich hatte eben auch mal nach gegooglet...
    :D ich hatte mir was anderes vorgestellt.

    trotzdem schöne arbeit :) aber für nicht brauchbar :(

  • Neue Version in der ein paar Bugs gefixt wurden.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • maaaaann chip,
    wieso find ich das erst jetzt?? ?(
    8o is ja hammergeil!!! :thumbup:
    sag mal bist Du schon an ner TS3 logi-lcd-app dran?
    sonst werd ich das mal angehen .. :P

    ps: wer benutzt denn schon teamspeak, wenn 16mio menschen skype nutzen??? :rofl::rofl:
    (ich bin weltfremd und kann mir nicht vorstellen, dass andere menschen andere dinge tun :D )

  • *lach* danke. Ne bin ich nicht weil der TS3 Client eine mitliefert ;). Kannst du unter Plugins im TS3 Client aktivieren.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (14. Januar 2012 um 20:51)

  • Hi Chip und co,
    ich habe gerade einen Fehler in deiner _ts3channellist Funktion gefunden. Das Problem liegt wohl an einer feststeckenden Fehlernachricht, bzw. bestätigungsnachricht, in diesem Fall eine error id=0 msg=ok Meldung. Ich habe die Funktion mal umgeschrieben, da ich die UDF momentan brauche. Diese Funktion ist sicher nicht das Optimum, da, falls Errors auftreten, diese sicherlich nicht korrekt zurückgegeben werden. Falls du dir die Arbeit machen würdest, wäre eine Pufferfunktion, die den TCPBuffer von sämmtlichen Error-Meldungen usw leert, nicht schlecht. Damit würden solche Fehler entfallen. Hier aber meine umgewandelte Funktion.
    [autoit]Func _TS3channellist($TS3topic = False, $TS3flags = False, $TS3voice = False, $TS3limits = False)
    $send = "channellist"
    If $TS3topic = True Then
    $send = $send & " -topic"
    EndIf
    If $TS3flags = True Then
    $send = $send & " -flags"
    EndIf
    If $TS3voice = True Then
    $send = $send & " -voice"
    EndIf
    If $TS3limits = True Then
    $send = $send & " -limits"
    EndIf
    TCPSend($TS3connection, $send & Chr(10))
    While 1
    $recv = TCPRecv($TS3connection, 2048)
    $recv = StringReplace($recv, @LF, @CRLF)
    $recv = StringReplace($recv, @CRLF & @CR, @CRLF)
    If StringInStr($recv, "cid") Then
    $recv = StringReplace($recv, "error id=0 msg=ok", "")
    Return $recv
    ElseIf StringInStr($recv, "error") Then
    ;von Timtam hinzugefügt
    $error = _stringbetween($recv, "id=", " msg")
    switch $error[0]
    case "0"
    continueloop
    case else
    return seterror(1, 0, _ts3errors($recv))
    endswitch
    ;und hier endet der schnipsel
    EndIf
    WEnd
    endfunc
    /autoit]

    Einmal editiert, zuletzt von Timtam (18. Februar 2012 um 22:09)

  • Hi Chip:D
    Mit deiner UDF hast du einen Alten Dinosaurier geweckt...
    Habe WE mal 2000 Zeilen Code zusammengeschustert da Autoit mal wieder eine nette alternative zu C#,PHP und Java ist..

    Hab einen kleinen Chat/Admin/Youtube/Google/Wikipediabot gebaut der eigentlich ganz gut läuft.. nur irgendwann scheint keiner deiner Funktionen meh zu reagieren...
    ich schätze mal das irgendwo zwischen _TS3servernotifyregister und TCPRecv ein Timeout hängt, und wenn der TS die verbindung irgendwann schließt...

    Vom ablauf her:
    Ich registriere mit TS3servernotifyregister die Events und daraufhin läuft mein ganzes Programm in der Whileschleife um ein Wait(10), dein TCPRecv($TS3connection, 2048) und die damit verbundenen parserfunktionen.. Irgendwann (so habe ich durch logging herausgefunden) stoppt die schleife nach einem $hi=_TS3hostinfo() ... Ich kriege nicht mal einen Fehler... Du solltest dir While(1) abgewöhnen und es bei einem for 1000 belassen :D

  • Hi djrazr,

    inzwischne weiß ich von drei großen TS3-Hostern das sie die UDF ohne Probleme in der Praxis einsetzen. Von daher scheint das Problem wohl an deinem TS3-Server zu liegen :).

    mfg

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Egal wer das Script noch benutzt...
    Das ist ja wohl kein sauberer Code:

    [autoit]

    TCPSend($TS3connection, "instanceinfo" & Chr(10))
    While 1
    $recv = TCPRecv($TS3connection, 2048)
    $recv = StringReplace($recv, @LF, @CRLF)
    $recv = StringReplace($recv, @CRLF & @CR, @CRLF)
    If StringInStr($recv, "serverinstance") Then
    $recv = StringReplace($recv, "error id=0 msg=ok", "")
    Return $recv
    EndIf
    WEnd

    [/autoit]


    Nicht nur die Sache mit der While 1.. du lässt der Schleife keinen anderen ausweg als das das Packet "serverinstance" enthält... stell dir mal vor da geht mal ein Paket verloren.. Dein Server versagt einmal, oder TS3 updated die antwort von instanceinfo ... na dann aber viel vergnügen :D

  • Danke für deinen Spam.

    1. braucht in keiner
    2. scheinst nicht zu wissen was überhaupt gemacht wird
    3. ist dir nicht klar wie man eine UDF verwendet

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.