Seite 1 von 1

Fragen zu Teamspeak und ListIconGadget

Verfasst: 11.10.2007 21:22
von DerProgrammierer78
Hallo zusammen,

Ich habe eine Idee für ein Programm und weiss nicht, wie ich es umsetzen soll. Ich habe hier im Forum schon lange gesucht aber absolut keine Antworten gefunden... :(

Evtl. kann mir ja einer von euch ne Antwort geben.

Ich würde gerne ein Programm schreiben, wo ich in einem ListIconGadget die adressen von verschiedenen offenen Teamspeakservern eingeben würde und dann sollen die gescannt werden und der soll mir auflisten welche User da gerade online sind und in welchen Räumen.

Nur scheiter ich an zwei Hürden...

1. Wie schalte ich ein ListIconGadget auf editierbar? Ich kann einen klick abfragen auf ein Feld und ein neues Fenster öffnen lassen wo ich den Wert für das Feld eingebe. Aber das ist mühseelig. Interessanter wäre eine navigation per cursortasten und enter von Feld zu Feld und von Zeile zu Zeile.

2. Wie frage ich einen TS2 Server ab um diese Informationen zu bekommen? Ich habe im Netz eine Seite gefunden mit einem PHP Script, was das macht, aber die wollen mir das Script nicht geben.

Evtl. weiss ja einer von euch Rat ... :freak:

Verfasst: 11.10.2007 23:56
von AND51
> Wie schalte ich ein ListIconGadget auf editierbar
Das geht, dafür gibt es Tricks. Leider fällt mir aber grad nicht ein, wie. Schau bitte nochmal ins englische Forum, ob du da fündig wirst oder jemand schreibt hier noch einen Link rein.

> Wie frage ich einen TS2 Server ab um diese Informationen zu bekommen
Das geht nur über Telnet. Ein TS-Server hat 3 Ports:
Die Standardports sind:

8767 UDP (TS Clients verbinden sich dazu)
51234 TCP (Telnet, hier können PHP-Skripte, Programme, etc. den Server abfragen)
14534 TCP (HTTP-Webinterface zur Konfiguration eines TS Servers)

Hinweis: Du kannst dich nur via Telnet einloggen, um deine Informationen zu erhalten. Achtung, der Telnetzugriff funtkioniert nur, wenn es bei den Server Admin (SA) Rechten erlaubt ist!


Weitere Informationen gibt es unter www.teamspeak-einstieg.de, schau erst dort nach, dann kannst du immer noch fragen (was aber vermutlich nicht mehr der Fall sein wird, wenn du die Seite besuchst).

Re: Fragen zu Teamspeak und ListIconGadget

Verfasst: 12.10.2007 00:02
von Kiffi
DerProgrammierer78 hat geschrieben:1. Wie schalte ich ein ListIconGadget auf
editierbar?
srod hat zu diesem Thema im englischen Forum einen Code zur Verfügung
gestellt:

http://www.purebasic.fr/english/viewtopic.php?t=27012

Grüße ... Kiffi

Verfasst: 12.10.2007 11:14
von AND51
Was ich noch vergessen habe: Es gibt eine Art "TeamSpeak-Protokoll", also welche Befehle du senden musst, um welche Informationen zu kriegen. Du kannst einen TS-Server nur mit dem Telnet-Port und diesem Protokoll steuern.
Ich hatte mal eine Dokumentation, das sah sehr einfach aus, auch wenn ich das noch nie gemacht habe (einen TS-Server steuern).

Auf die schnelle habe ich diesen, mir noch unbekannten Link gefunden: http://docs.teamspeak-einstieg.de/telnet/
Das ist jedoch nicht die Dokumenation, die ich mir gedownloaded hatte.

Verfasst: 12.10.2007 11:56
von Vermilion
Im Code Archiv ist auch ein Beispiel für editierbare ListIconGadgets Felder.

Verfasst: 13.10.2007 09:21
von DerProgrammierer78
Danke :)

Ich habe es nun mit Hilfe von R4z0r (hier aus dem Forum) und euren Tips geschafft.

Habe ein kleines TS-Tool gebaut um erstmal die ganzen TS-Befehle zu testen.

Code: Alles auswählen

If OpenWindow(0, 0, 0, 1000, 400, "TS-Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
  If LoadFont(1, "Courier", 10) 
    SetGadgetFont(#PB_Default, FontID(1))
  EndIf 

  EditorGadget(1, 10, 10, 980, 350)
  StringGadget(2, 10, 370, 900, 20, "Befehl")
  ButtonGadget(3, 920, 370, 70, 20, "Senden")
 
  InitNetwork() 
 
  Verbindung = OpenNetworkConnection("85.88.15.185", 51234)
  If verbindung
    Repeat 
      Delay(10)
      CEvent = NetworkClientEvent(Verbindung)
      If CEvent = 2
        *buffer = AllocateMemory(10000)
        ReceiveNetworkData(Verbindung, *buffer, 10000)
        received$ = PeekS(*buffer)
        received$ = Left(received$,Len(received$)-2)
        
        AddGadgetItem(1, -1, received$)
        FreeMemory(*buffer)
      EndIf
 
      Event = WaitWindowEvent() 
      If Event = #PB_Event_CloseWindow 
        Quit = 1 
      ElseIf Event = #PB_Event_Gadget Or Event = #PB_Event_Menu 
        Select EventGadget()
          Case 3
            SendNetworkString(Verbindung, GetGadgetText(2)+Chr(13)+Chr(10))
        EndSelect
      EndIf
    Until quit = 1
  EndIf
EndIf
Nun versuche ich mich mit dem ListIconGadget und werde euch auf dem Laufenden halten :)

Verfasst: 13.10.2007 22:56
von hardfalcon
Einfach mal mit telnet auf nen teamspeak-Server auf Port 51234 connecten, und "help" eingeben... Da kannst du dann rumspielen nach gusto, und selber rausfinden, was machbar ist. Learning by doing, I'm lovin it! :allright:
//EDIT: Mit "help BEFEHL" kriegst du die Hilfe zu einzelnen Befehlen angezeigt, fürn Anfang wäre für dich z.B. "help login" vermutlich interessant... :allright: