Nachricht an bestimmte Personen

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
  • Hallo liebe Leute. :)


    Ich habe eine - wahrscheinlich einfache - Frage.
    Wie kann ich eine Nachricht an bestimmte Personen schicken? Beispielsweise bei "/taxi" eine Nachricht an alle, die nur in der Fraktion Taxi sind.



    Danke im Vorraus!


    Mfg,
    Bosei

  • Ne Schleife die alle Spieler durchgeht erstellen und dann abfragen welche davon in der Taxifraktion ist,
    halt mit deiner Methode wie du abfragst ob jemand in einer Fraktion ist.
    Ist so die erste Methode die mir in den Sinn gekommen ist.


    Bei mir wäre dass dann so:

    //Taxi
    if(strcmp("/taxi", cmdtext, true, 10) == 0)
    {
    if(IstSpielerInFraktion(playerid, 6))
    {
    //Was passiert dann hier?!
    }
    }


    Wie oben geschrieben - was dann?

    • Offizieller Beitrag

    Wie heißt denn deine SpielerVariable in der die Fraktion gespeichert werden?


    So könntest du es machen:

    ocmd:texi(playerid, params[])
    {
    SendClientMessage(playerid, FARBE, "Warte auf eine Antwort!");
    new str[180];
    format(str, sizeof str, "%s benötigt ein Taxi!", SpielerName(playerid));
    for(new i = 0; i < MAX_PLAYERS; i++) {
    if(SpielerVariable[i][FraktionX] == FraktionTaxi) SendClientMessage(i, FARBE, str);
    }
    return 1;
    }

  • Oke das versteh ich jetzt alles. Erstmal danke... aber kannst du das etwas erklären? Möchte ja auch was daraus lernen...

    if(SpielerVariable[i][FraktionX] == FraktionTaxi) SendClientMessage(i, FARBE, str);

    • Offizieller Beitrag

    Klar.

    ocmd:texi(playerid, params[]) // Solltest du wissen, Befehl :D
    {
    SendClientMessage(playerid, FARBE, "Warte auf eine Antwort!"); // Hier wird der Person die Information geschickt das er warten soll
    new str[180]; // Ein String wird erstellt
    format(str, sizeof str, "%s benötigt ein Taxi!", SpielerName(playerid)); // Hier formatiere ich den String um
    for(new i = 0; i < MAX_PLAYERS; i++) { // Das hier ist eine sogenannte Schleife, die geht so oft durch wie du sie angibst, in diesem Fall geht er alle Spieler durch, dass heißt, sind 5 Leute auf dem Server so geht die Schleife 5 mal
    if(SpielerVariable[i][FraktionX] == FraktionTaxi) SendClientMessage(i, FARBE, str); // Hier wird abgefragt ob der Spieler in der Fraktion ist, dass musst du zu deinen Informationen ändern
    }
    return 1;
    }

  • Also geht das so? (Errors bekomm ich ja nicht...)



    if(strcmp("/taxi", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid, Gelb, "Warte bitte auf eine Antwort.");
    new str[180];
    format(str, sizeof str, "%s benötigt ein Taxi!\nSchreibe '/accept taxi' zum annehmen des Auftrags.", SpielerName(playerid));
    for(new i= 0; i < MAX_PLAYERS; i++)
    {
    if(IstSpielerInFraktion(playerid, 6))
    {
    SendClientMessage(i,Hell_Blau,str);
    }
    }
    return 1;
    }

    • Offizieller Beitrag


    bei if(IstSpielerInFraktion(playerid, 6))


    musst du playerid zu i ändern


    if(IstSpielerInFraktion(i, 6))


    Ich bin mir nicht sicher, aber soweit ich weiß kannst du keine Zeilenumbrüche in String hervorrufen.
    format(str, sizeof str, "%s benötigt ein Taxi! Schreibe '/accept taxi' zum annehmen des Auftrags.",