Chat mit verschiedenen Frequenzen

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 liebe sa-mp.de Community.
    Ich wollte mal fragen wie ich es machen kann das wenn Person X die Chat Frequenz Y hat mit einer anderen Person(en) die ebenfalls in Chat Frequenz Y sind Chatten kann.
    Man soll die Frequenz aber auch ändern können.
    Ich weiss aber nicht wie ich sowas machen kann.


    Könnt ihr mir da helfen?




    MfG,
    Fabian™!

  • hast eine globale variable mit einem array von MAX_PLAYERS
    dann weist du der spieler variable halt den wert der frequenz zu
    dann bei OnPlayerChat oder OnPlayerText


    for(new i;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i)&&!IsPlayerNPC(i))
    {
    if(variable[playerid]==variable[i])
    {
    SendClientMessage(i,farbe,text);
    SendClientMessage(playerid,farbe,text);
    return 0; //Damit der Standart SAMP Chat ausgeschaltet ist.
    }
    }
    }

  • Fabian™


    Also, mir ist gerade extrem langweilig also stelle ich dir mal eine kleine ausführliche komplett Lösung zur Verfügung:


    //Oben im Script
    new frequ[MAX_PLAYERS char];
    Also oben erstellen wir eine globale Variable für alle Spieler, deshalb MAX_PLAYERS ich mache es zu einem char-Array, weil dies Speicher spart und da es keine 255 Frequenzen gibt, können wir dies ideal nutzen.
    Als nächstes musst du jedem der senden und empfangen soll eine Frequenz zuweisen..halt da wo du das System gebrauchen willst.


    //Das würde z.B. so aussehen:
    frequ{playerid} = 5; //Dieser Spieler wäre auf Frequenz 5 und könnte zu jedem in dieser Frequenz senden.


    Der Command sollte ungefähr so aussehen:


    //(Egal,ob strcmp,dcmd,ocmd,zcmd,ycmd,cmd,oder sonst was, denken wir uns das steht hier: "senden")
    {
    if(!frequ{playerid}) return SendClientMessage(playerid,-1,"Du hast keine Frequenz!");
    return SendFrequenzChat(frequ{playerid},color,"Hallo!");
    }


    So, was macht dieser Command, zuerst prüfen wir ob frequ{playerid} 0 ist, wenn dies der Fall ist, kann er nicht schreiben.
    Wenn nicht, senden wir an alle in unserer Frequenz ein "Hallo!" in irgendeiner Farbe!
    Du kannst da auch einfach frequid reinschreiben und oben mit sscanf den Text und die id splitten, ich denke das bekommst du hin ^^


    und als letztes noch eine simple Funktion:


    stock SendFrequenzChat(frequid,color,text[]) {
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || frequ{i} != frequid) continue;
    SendClientMessage(i,color,text);
    }
    return 1;
    }


    Diese Funktion geht einfach nur in einer Schleife alle Spieler durch und prüft ob sie auf dem Server sind und ob sie in der selben Frequenz sind wie die frequid :)


    Ich hoffe ich konnte dir das so einigermaßen erklären, so das du es gut umsetzten kannst ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S