gang abfrage verallgemeinern :o

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


    Ich habe gerade ein team chat gescriptet. wenn er im team gs ist, kommt die nachricht: NAME (Team): TEXT..


    dcmd_f(playerid,params[])
    {
    new msg[256];
    if(sscanf(params, "s", msg))
    {
    return SendClientMessage(playerid,ROT,"Benutzung: /f [Nachricht]");
    }
    if(gTeam[playerid] == Team_Gs)
    {
    new aname[MAX_PLAYER_NAME], astr[256];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(astr, sizeof(astr), "* %s (Team): %s", aname, msg);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(gTeam[playerid] == Team_Gs)
    {
    SendClientMessage(i,0x2700FFFF, astr);
    }
    }
    }
    }
    return 1;
    }


    ich könnte das nun so weiter führen:


    dcmd_f(playerid,params[])
    {
    new msg[256];
    if(sscanf(params, "s", msg))
    {
    return SendClientMessage(playerid,ROT,"Benutzung: /f [Nachricht]");
    }
    if(gTeam[playerid] == Team_Gs)
    {
    new aname[MAX_PLAYER_NAME], astr[256];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(astr, sizeof(astr), "* %s (Team): %s", aname, msg);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(gTeam[playerid] == Team_Gs)
    {
    SendClientMessage(i,0x2700FFFF, astr);
    }
    }
    }
    }
    if(gTeam[playerid] == Team_Ballas)
    {
    new aname[MAX_PLAYER_NAME], astr[256];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(astr, sizeof(astr), "* %s (Team): %s", aname, msg);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(gTeam[playerid] == Team_Ballas)
    {
    SendClientMessage(i,0x2700FFFF, astr);
    }
    }
    }
    }
    return 1;
    }


    das wäre aber sehr aufwendig das für jedes team zumachen.


    könnte mir das einer so machen, das das alles allgemeiner ist, also wenn einer im team /f nachricht macht, das auch nur andere teammitglieder diese nachricht erhalten.


    vielen dank


    mfg

  • dcmd_f(playerid,params[])
    {
    new msg[256];
    if(sscanf(params, "s", msg)) return SendClientMessage(playerid,ROT,"Benutzung: /f [Nachricht]");
    if(gTeam[playerid] == Team_Gs || Team_Ballas))
    {
    new aname[MAX_PLAYER_NAME], astr[256];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(astr, sizeof(astr), "* %s (Team): %s", aname, msg);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(gTeam[playerid] == Team_Gs|| Team_Ballas))
    {
    SendClientMessage(i,0x2700FFFF, astr);
    }
    }
    }
    }
    return 1;



    Ich hoffe du meinst sowas oder?

  • nein ^^


    wie du das hast wäre es so: wenn einer aus team gs oder ballas /f macht können es alle aus team gs und team ballas lesen..


    ich möchte es, wenn er aus team gs ist und /f macht können es nur andere aus demselben team lesen.
    wenn er team ballas ist und /f macht sollen es nur die lesen, die auch bei den ballas sind.


    das würde ich auch hinbekommen mit meiner lösung, wäre aber sehr aufwendig. es giebt da bestimmt eine leichtere, elegantere lösung..

  • dcmd_f(playerid,params[])
    {
    new msg[256];
    if(sscanf(params, "s", msg))
    {
    return SendClientMessage(playerid,ROT,"Benutzung: /f [Nachricht]");
    }
    new aname[MAX_PLAYER_NAME], astr[256];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(astr, sizeof(astr), "* %s (Team): %s", aname, msg);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(gTeam[i] == gTeam[playerid] )
    {
    SendClientMessage(i,0x2700FFFF, astr);
    }
    }
    }
    return 1;
    }


    Achtung 1. nicht richtig eingerückt und ungetestet.