Mein A Chat funktioniert nicht?

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
  • ocmd:a(playerid,params[])
    {
    new string[128], nachricht[128],text[128], sender;
    if(sscanf(params,"s",nachricht)) return SendClientMessage(playerid,BLAU,"Benutze: /a [Deine Nachricht]");

    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(!isPlayerAnAdmin(i,1))
    {
    GetPlayerName(playerid, string, MAX_PLAYER_NAME);
    if(isPlayerAnAdmin(playerid,1)) format(string,sizeof(string),"*%d Admin %s: %s ",GetPVarInt(playerid,"Adminlevel"),string,nachricht);
    else format(string,sizeof(string),"(( %s: %s ))",sender,nachricht);
    }
    }
    return 1;
    }

    Undzwar ich habe einfach meinen /o chat zu einem /a chat umgebaut.
    Ich habe dann einfach abgefragt ob der Spieler ein Admin ist bzw ob alle Admins sind und dann das es halt nur zu Admins gesendet werden soll.
    Doch das klappt irgendwie nicht :(?

  • Also als erstes ist deine Schleife der letze Müll :D
    bei jedem Durchlauf wird die Anzahl an Slots abgefragt, was total sinnlos ist weil die Slotanzahl sich ja nicht mittendrin ändert.
    besser wäre dann so
    new i,slots=GetMaxPlayers();
    for(;i!=slots;i++)


    Nun zu deinem eigentlichen Problem:
    Wieso formatierst du einen String ohne ihn zu senden, das ist vollkommen sinnlos :P

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • ocmd:a(playerid,params[])
    {
    new string[128], nachricht[128],sender;
    if(sscanf(params,"s",nachricht)) return SendClientMessage(playerid,BLAU,"Benutze: /a [Deine Nachricht]");
    new i,slots=GetMaxPlayers();
    for(;i!=slots;i++)
    {
    if(isPlayerAnAdmin(i,1))
    {
    GetPlayerName(playerid, string, MAX_PLAYER_NAME);
    if(isPlayerAnAdmin(playerid,1)) format(string,sizeof(string),"*%d Admin %s: %s ",GetPVarInt(playerid,"Adminlevel"),string,nachricht);
    else format(string,sizeof(string),"(( %s: %s ))",sender,nachricht);
    SendClientMessage(playerid,COLOR_WHITE,string);
    }
    }
    return 1;
    }
    K mal testen ich habe es jetzt so gemacht