Teamspeak Connector

  • TeamSpeak Connector v1.3


    Das TSConnector Plugin gibt dir die Möglichkeit einen TeamSpeak3 Server von deinem Gamemode oder Filterscript aus zu verwalten. Das heißt, dass du Spieler auf dem TS3 Server zum Beispiel kicken und bannen kannst und auch neue Channels erstellen, bearbeiten und löschen kannst.


    Installation

    • Erstelle einen ServerQuery Account auf dem zu steuernden TeamSpeak3 Server
      BEACHTE: Der ServerQuery Account muss genug Rechte haben, um alle Channel abonnieren zu können!
    • Füge diese Zeile in dein PAWN-Script ein um eine Verbindung mit dem TS3-Server aufzubauen:

      Code
      1. TSC_Connect("serveradmin", "password", "127.0.0.1", 9987);
      2. // "serveradmin": der ServerQuery Login-Name
      3. // "password": das ServerQuery Login-Passwort
      4. // "127.0.0.1" die TeamSpeak3 Server-IP
      5. // 9987: der TeamSpeak3 Server-Port


      Das Aufrufen von 'TSC_Connect' wird den Server solange einfrieren, bis eine Verbindung aufgebaut wurde.

    • Das wars auch schon! Jetzt kannst du alle anderen Funktionen des Plugins benutzen.


    Hier ist ein kleines Code-Beispiel:

    #define TS_SERVER_GROUP_PLAYER 1337


    public OnGameModeInit()
    {
    TSC_Connect("serveradmin", "password", "127.0.0.1", 9987);
    TSC_ChangeNickname("SA:MP Server");

    TSC_CreateChannel("Channel 1");
    return 1;
    }


    public TSC_OnChannelCreated(channelid)
    {
    new channel_name[32];
    TSC_GetChannelName(channelid, channel_name);
    if(strcmp("Channel 1", channel_name) == 0)
    {
    TSC_SetChannelDescription(channelid, "Beschreibung von Channel 1!");
    TSC_SetChannelType(channelid, SEMI_PERMANENT);
    TSC_SetChannelUserLimit(channelid, 25);
    }
    return 1;
    }


    public TSC_OnClientConnect(clientid, nickname[])
    {
    TSC_PokeClient(clientid, "Willkommen!");
    TSC_AddClientToServerGroup(clientid, TS_SERVER_GROUP_PLAYER);
    return 1;
    }

    Ein paar Ideen:

    • einen Spieler automatisch in den richtigen Fraktionschannel verschieben wenn er in den Dienst geht (im Spiel)
    • nervige Leute vom SA:MP Server UND TeamSpeak3 Server kicken
    • ingame Umgebungs-Sprachchat: wenn zwei Spieler in der Nähe sind, neuen Channel erstellen und diese in den Channel verschieben


    Eine Liste aller Funktionen findet ihr in der Include.


    Weiteres

    • wie schon oben erwähnt, ist es wichtig, dass der ServerQuery Account genug Rechte haben muss um alle Channel zu abonnieren
    • der TeamSpeak3 Server hat einen eingebaute ServerQuery-Spamschutz; es gibt eine Whitelist in der ihr die IP vom SA:MP Server eintragen könnt um den Spam-Schutz für das TSC-Plugin zu deaktivieren
    • das Plugin ist komplett threaded, das heißt es können keine bemerkbaren Laggs enstehen (Ausnahme: 'TSC_Connect')


    Bei Fragen, Problemen, Kritik oder Vorschlägen, schreibt hier in den Thread rein.


    Source (GitHub)
    Download (GitHub)

    Einmal editiert, zuletzt von maddinat0r () aus folgendem Grund: v1.3

  • Sollte gehen, sofern das Plugin alle üblichen Server Query Commands untersützt (clientdbfind & clientdbedit)

    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • Hab mich halt dafür entschieden das Plugin auch hier vorzustellen.


    Die 0.x-Versionen waren wirklich nicht die Besten. v1.x hingegen ist so gemacht wie es sein sollte und hat an sich garnichts (außer die Natives) mit v0.x gemeinsam.
    Versuchs einfach mal wieder auf Linux, ich bin mir ziemlich sicher dass es jetzt einwandfrei klappt.

  • Ich muss den Thread mal ausbuddeln..


    Ich hab es in mein Script gepackt, und der Query verbindet auch, aber ich möchte erfragen, wie es möglich wäre, den spieler mit eingabe von /tsrechte eine bestimme gruppe zu geben..


    kann mir das jemand erklären, wenn es jemand weiß? (spieler sollte natürlich wie ingame heißen.)

  • Und wie find ich das herraus? ich muss ja schauen, das er mit /tsrechte schaut, ob der spieler im TS wie Ingame heißt, und muss sie uID dann rausfinden..


    ich find leider nicht so n berauschendes Tutorial, sonst wuerde ich mir das geben.

  • Ich hab dir doch die beiden sachen gegeben, du lässt den User einfach seine Eindeutige Identität (UID) eingeben, die speicherst du.
    Damit holst du dir die Clientid (TSC_GetClientIdByUid(uid))
    Als letztes setzt du einfach die Servergruppe.


    Es hat schon nen guten Grund, warum es nicht über den Namen gemacht wird.