Adminchat macht Probleme

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
  • Huhu, ich mache gerade ein Adminchat jedoch wird die Naricht nicht an die Admins sondern an alle Spieler gesendet.
    stock SendAdminMessage(Farbe, Message[])
    {
    for(new playerid; playerid < GetMaxPlayers(); playerid++)
    {
    if(GetPVarInt(playerid, "Adminlevel")>=0)
    {
    SendClientMessage(playerid, Farbe, Message);
    }
    }
    return 1;
    }


    ocmd:a(playerid,params[])
    {
    new text[128],astring[128],ustring[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,Grau,"Benutze: /a [Text]");
    if(GetPVarInt(playerid,"Adminlevel") == 0)
    {
    format(ustring,sizeof(ustring),"((User %s : %s ))",SpielerName(playerid),text);
    SendAdminMessage(Gelb,ustring);
    }
    else if(GetPVarInt(playerid,"Adminlevel") == 1)
    {
    format(astring,sizeof(astring),"((Supporter %s : %s ))",SpielerName(playerid),text);
    SendAdminMessage(Gelb,astring);
    }
    else if(GetPVarInt(playerid,"Adminlevel") == 2)
    {
    format(astring,sizeof(astring),"((Trial-Administrator %s : %s ))",SpielerName(playerid),text);
    SendAdminMessage(Gelb,astring);
    }
    else if(GetPVarInt(playerid,"Adminlevel") == 3)
    {
    format(astring,sizeof(astring),"((Administrator %s : %s ))",SpielerName(playerid),text);
    SendAdminMessage(Gelb,astring);
    }
    else if(GetPVarInt(playerid,"Adminlevel") == 4)
    {
    format(astring,sizeof(astring),"((Server Leitung %s : %s ))",SpielerName(playerid),text);
    SendAdminMessage(Gelb,astring);
    }
    return 1;
    }


    Gruß

  • if(GetPVarInt(playerid, "Adminlevel")>=0)

    Ich vermute mal es liegt daran.
    Du fragst denk ich somit ab, ob der Spieler Adminlevel "über" 0 oder "gleich" 0 ist
    und da du sicherlich die neuen Spieler auf "gleich" 0 setzt sieht es vermutlich jeder.


    Ist nur so eine Vermutung, bin mir nicht ganz sicher ob das klappt. :/

  • Hey,
    Versuch es mal so:


    stock IsPlayerAnAdmin(playerid,rang)
    {
    if(GetPVarInt(playerid,"Adminlevel") >= rang)return 1;
    return 0;
    }


    stock SendClientMessageToAdmins(color,message[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerAnAdmin(i,1))
    {
    SendClientMessage(i,color,message);
    }
    }
    return 1;
    }


    stock Adminname(playerid)
    {
    new adminrankname[128];
    switch(GetPVarInt(playerid,"Adminlevel"))
    {
    case 0:{adminrankname= "Zivilist";}
    case 1:{adminrankname= "Supporter";}
    case 2:{adminrankname= "Moderrator";}
    case 3:{adminrankname= "Super-Moderrator";}
    case 4:{adminrankname= "Administrator";}
    case 5:{adminrankname= "Serverleiter";}
    }
    return adminrankname;
    }


    ocmd:a(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,FARBE_ROT,"Du bist nicht mindestestens Adminrank Supporter!");
    {
    new text[256];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,FARBE_ROT,"Tippe: /a [nachricht]");
    format(text,sizeof(text),"»»%s %s schreibt: {FF0000}%s{007FFF}]]««",Adminname(playerid),Spielername(playerid),text);
    SendClientMessageToAll(FARBE_HELLBLAU,text);
    }
    return 1;
    }

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)


  • Einen Admin Stock habe ich schon, siehe hier
    stock IstSpielerEinAdmin(playerid,rang)
    {
    if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
    return 0;
    }


    Erkläre mir mal bitte die anderen Sachen Freestyyler.


    Gruß

  • ocmd:a(playerid,params[])
    {
    new text[128];
    new adminname[64];
    switch(GetPVarInt(playerid,"Adminlevel"))
    {
    case 0:{adminname="Spieler";}
    case 1:{adminname="Supporter";}
    case 2:{adminname="Trial Admin";}
    case 3:{adminname="Admin";}
    case 4:{adminname="Head Admin";}
    }
    if(sscanf(params,"s",text))return SendClientMessage(playerid,GRAU,"Benutze : /a <Nachricht>");
    format(text,sizeof(text),"** %s %s (%d): %s **",adminname,SpielerName(playerid),playerid,text);
    if(GetPVarInt(playerid,"Adminlevel")== 0){SendClientMessage(playerid,HIMMELSBLAU,text);}
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(GetPVarInt(i,"loggedin") == 0)continue;
    if(GetPVarInt(i,"Adminlevel") >= 1)
    SendClientMessage(i,HIMMELSBLAU,text);
    }
    return 1;
    }