Levelname ausgeben || Nametags setzen ?!

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
  • Hey Leute,
    ich hab mir gerade einen /setlevel Befehl gebastelt,
    aber wie kann ich jetzt ausgeben das wenn ich einem Spieler Level 0 gebe das er dann eine Nachricht bekommt du wurdest von deinem Adminlevel enthoben,
    und wenn ich ihm wieder Level 1 gebe du wurdest zu einen Supporter gemacht,
    wiederrum bei Level 2 aber du wurdest zu einem Admin gemacht ?
    Ich muss halt nur wissen wie ich die level sozusagen "Definieren" kann das er erkennt was was ist....
    Ausserdem würde ich dazu gerne eine Nachricht ausgeben für alle: %s ist nun Level %d
    Ich kenn mich mit den formatierungen nicht wirklich aus :/
    Hier mal der Befehl:
    dcmd_setlevel(playerid,params[])
    {
    new pid,level;
    if(sscanf(params,"ud", pid, level))
    return SendClientMessage(playerid,ROT,"Verwendung: /setlevel [Playerid] [Level von 0-2]");
    if(IstSpielerAdmin(playerid,2))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht online !");
    }
    if(IstSpielerAdmin(pid,level) == level)
    {
    return SendClientMessage(playerid,ROT,"Der Spieler hat schon das eingegebene Adminlevel");
    }
    else
    {
    sSpieler[pid][Adminlevel] = level;
    SendClientMessage(pid,GELB,"Du wurdest zu einem Supporter/Admin gemacht !");
    SendClientMessage(playerid,GELB,"Du hast den Spieler zu einem Supporter/Admin gemacht !");
    }
    }
    else
    {
    return SendClientMessage(playerid,WEISS,"SERVER:Unknown Command");
    }
    return 1;
    }
    Soo nun zu meiner zweiten Frage:
    Wie setze ich zum Beispiel wenn sich ein Spieler mit dem Namen: Dasbrot einloggt und er Level 2 hat,
    das dann vor seinem Namen steht [Admin]Dasbrot ?
    Ich wäre echt sehr dankbar da ich endlich vorankommen möchte mit meinem Script...
    MfG
    Das Brot

  • Den Namen kannst du theoretisch mit SetPlayerName ändern. Jedoch könnte das Probleme mit der Speicherung von Userdaten geben, da der Spieler ja jetzt anders heißt. Du könntest allerdings auf den Tag den Namen überprüfen und dann beim Speichern den Tag rausschneiden.


    strfind zum überprüfen ob der Tag drin ist:
    new pname[20];
    GetPlayerName(playerid,pname,sizeof(pname));
    if(strfind(pname,"[Admin]",true,0) != 1) // Wenn er den Tag vorm Namen hat


    strdel um den Tag rauszuschneiden:
    strdel(pname,0,7);