Normalen // Globalen Chat

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag Liebes Community ,


    ich habe mich gefragt ob es möglich wäre den Normalen bzw. den Globalen Chat Per Befehl zu Deaktiveren und auch zu Aktivieren
    wäre Klasse von euch wenn sich einer meldet um mir zu helfen.



    Mit Freundlichen Grüßen ,


    Toastiie1337

  • Das Prinzip ist einfach:


    Du erstellst eine globale Variable vom Typ Boolean (global bedeutet, dass du sie außerhalb jedes Callbacks und jeder sonstigen Funktion definierst.
    Es gibt nur zwei boolesche Werte: true und false; die Variable kann dementsprechend auch nur diese beiden Werte aufnehmen (oder eben ihre Stellvertreter 1 und 0).


    new bool:globalChatState = false; //Hier kannst du auch definieren, ob der Chat standardmäßig beim Serverstart aktiviert ist. false = deaktiviert, true = aktiviert


    Nun gehst du in's Callback OnPlayerText().
    Ein Callback ist im Prinzip nichts Anderes als eine normale Funktion, die zu einer bestimmten Aktion aufgerufen wird. Dementsprechend returnen diese Callbacks auch i.d.R. Werte.
    Eine 0 würde bedeuten, dass der Callback ohne weitere Aktion des Chats beendet wird; es wird also keine Nachricht gesendet. Eine 1 ist das Gegenteil.


    Mit dem Wissen im Hinterkopf funktioniert das Ganze dann nun einfach:


    if(!globalChatState){ //Das == false kannst du dir sparen, kommt auf's Selbe hinaus, denn das Ausrufezeichen ist stellvertretend für ein false. Wenn du es weglassen würdest, würde der Teil hier unten ausgeführt, wenn der Ausdruck true ist.
    //Wenn Chat deaktiviert ist
    SendClientMessage(playerid, -1, "Der Chat wurde deaktiviert.");
    return 0; // Die Nachricht wird noch ausgegeben und danach wird eine 0 returnt, damit der Callback
    }


    Du musst dann halt nur noch einen Befehl machen, mit dem Admins den Chat aktivieren / deaktivieren können. Dazu einfach den Wert der globalen Variable ändern.


    //E: Du kannst natürlich den Chat für Admins weiterhin offenlassen. Dazu einfach in der if Abfrage noch eine Adminabfrage machen.
    //E: Noch etwas an der Erklärung geändert