/aduty = Namechange

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 Community,


    Ich hätte mal ne Frage undzwar
    ist es möglich das wenn man /aduty geht das sich der name ändert


    also zb.


    ich Joine den Server mit Shanoby
    Ich gebe /aduty ein und es kommt ein Text [SRP]Shanoby hat sich als Admin angemeldet und wird nun auf der Karte Makiert
    Ich werde nurnoch mit dem namen [SRP]Shanoby angezeigt...
    Ich gebe nochmal /aduty ein und es kommt ein Text [SRP]Shanoby hat sich als Admin abgemeldet und wird nun nichtmehr au der Karte angezeigt.
    Name ändert sich wieder zurück zu Shanoby.

  • ich glaube nicht, dass es wirklich sinn macht den namen zu ändern.


    Dabei kann es zu zu vielen bugs kommen.
    Setze lieber eine variable, ausgehend von der änderst du den Namen wo du ihn brauchst,
    zB beim Chat.


    Einen haken gibts bei der sache allerdings:
    -Der name wird in der scorelist, sowie auch über seinem kopf nicht verändert



    Wenn du dich aber dafür entscheidest, solltest du trotzdem aufpassen, dass der name bei anderen sachen nicht verändert wird.
    zB Beziehungen zu Fahrzeugen oder sonstwas

  • mach es so:


    new bool:onduty, NamenStr[MAX_PLAYERS][258], NamensColor[MAX_PLAYERS];


    ocmd:duty(playerid,params) {
    if(IsPlayerAdmin(playerid)) {
    new str[258],stri[258];
    if(onduty==false) {
    :pinch: NamenStr[playerid] = PlayerName(playerid);
    NamensColor[playerid] = GetPlayerColor(playerid);
    format(str,258,"[SRP]%s",PlayerName(playerid));
    SetPlayerName(playerid,str);
    format(stri,258,"%s hat sich als Supporter angemeldet und wird nun auf der Karte Makiert.");
    SendClientMessageToAll(0xFFFFFFFF,stri);
    SetPlayerColor(playerid,0xFF00FFFF);
    onduty = true;
    return 1;
    }
    else {
    SetPlayerName(playerid,NamenStr[playerid]);
    format(stri,258,"%s hat sich als Supporter abgemeldet.");
    SendClientMessageToAll(0xFFFFFFFF,stri);
    SetPlayerColor(playerid,NamensColor[playerid]);
    onduty = false;
    return 1;
    }
    }
    else { SendClientMessage(playerid,0xFFFFFFFF,"Du bist Kein Admin!");}
    return 1;
    }


    stock PlayerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint:


  • Es ist einfach nur schrecklich eure Antworten lesen zu müssen.


    Hier ist dir Lösung zum Hinzufügen und Löschen des Tags:

    /* MIT PVARS */



    // Hinzufügen von [SRP]


    new plName[MAX_PLAYER_NAME+5];
    GetPlayerName(playerid, plName, sizeof(plName));
    SetPVarString(playerid, "p_OldName", plName);
    strins(plName, "[SRP]", 0);
    SetPlayerName(playerid, plName);


    // Löschen des Tags


    new string[MAX_PLAYER_NAME+5];
    GetPVarString(playerid, "p_OldName", string, sizeof(string));
    SetPlayerName(playerid, string);
    DeletePVar(playerid, "p_OldName");



    /* OHNE PVARS */



    // Hinzufügen von [SRP]


    new plName[MAX_PLAYER_NAME+5];
    GetPlayerName(playerid, plName, sizeof(plName));
    strins(plName, "[SRP]", 0);
    SetPlayerName(playerid, plName);


    // Löschen des Tags


    new plName[MAX_PLAYER_NAME+5];
    GetPlayerName(playerid, plName, sizeof(plName));
    strdel(plName, 0, 5);
    SetPlayerName(playerid, plName);