Namen Ingame ändern und wieder Zurück??(Maskieren )

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 schon so gemacht wenn ich /maske eingeben das der Name Verschwindet aber jetzt möchte ich das es auch im chat steht Staat angelo sagt : das dar steht Maskierter sagt : und natürlich das wenn ich die maske absetze das wieder mein alter name steht
    Wie mach ich das ??
    Hier mal mein Maske system



    if (strcmp("/maskeauf", cmdtext, true) == 0)
    {
    if(isPlayerInFrakt(playerid,19))
    {
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, false);
    SendClientMessage(playerid,Grau,"Du hast deine Maske angezogen!");
    SendClientMessage(playerid,Grau,"Absofort siet nimand deinen Namen!");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, ROT,"Du bist kein Hitman!");
    }
    return 1;
    }
    if (strcmp("/maskerunter", cmdtext, true) == 0)
    {
    if(isPlayerInFrakt(playerid,19))
    {
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, true);
    SendClientMessage(playerid,Grau,"Du hast deine Maske ausgezogen!");
    SendClientMessage(playerid,Grau,"Absofort sehen wieder alle deinen Namen!");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, ROT,"Du bist kein Hitman!");
    }
    return 1;
    }

  • Du erstellst eine Globale variable beim /maske setzt du die variable auf 1 (oder du machst einfach ein bool) und dann beim onplayetext fragst du ab ob dia variable auf 1 ist, wenn ja dann formatierst du den text

  • oben im script


    new bool:maske[MAX_PLAYERS];




    if (strcmp("/maskeauf", cmdtext, true) == 0)
    {
    if(isPlayerInFrakt(playerid,19))
    {
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, false);
    SendClientMessage(playerid,Grau,"Du hast deine Maske angezogen!");
    SendClientMessage(playerid,Grau,"Absofort siet nimand deinen Namen!"); maske[playerid] = true;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, ROT,"Du bist kein Hitman!");
    }
    return 1;
    }




    if (strcmp("/maskerunter", cmdtext, true) == 0)
    {
    if(isPlayerInFrakt(playerid,19))
    {
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, true);
    SendClientMessage(playerid,Grau,"Du hast deine Maske ausgezogen!");
    SendClientMessage(playerid,Grau,"Absofort sehen wieder alle deinen Namen!"); maske[playerid] = false;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, ROT,"Du bist kein Hitman!");
    }
    return 1;
    }








    und bei onplayertext das hier





    if(maske[playerid] == true)
    {
    new str1[256]; format(str1,256,"Maskiert: %s",text); SendClientMessageToAll(0xFFFFFFFF,str1); // du musst das alles mit deinen script anpassen
    }






    und dann kannst du noch bei onplayerconnect und disconnect das hier rein tun



    maske[playerid] = false;

  • hab jetzt onplayertext



    public OnPlayerText(playerid, text[])
    {
    if(maske[playerid] == true)
    {
    new str1[256]; format(str1,256,"Maskiert: %s",text); SendClientMessageToAll(0xFFFFFFFF,str1);
    }
    new string[128];
    format(string, sizeof(string),"%s sagt: %s",SpielerName(playerid),text);
    SMessage(playerid,WEIS,string,5);
    return 0;
    }


    Aber jetzt steh im chat :


    Angelo sagt :
    Maskierter sagt :


    also jetzt wird einmal nahrichtig mit richtigen Namen gesendet und ein mal als maskierter :;D?

  • public OnPlayerText(playerid, text[])
    {
    if(maske[playerid] == true)
    {
    new str1[256]; format(str1,256,"Maskiert: %s",text); SendClientMessageToAll(0xFFFFFFFF,str1);
    }
    else
    {
    new string[128];
    format(string, sizeof(string),"%s sagt: %s",SpielerName(playerid),text);
    SMessage(playerid,WEIS,string,5);
    }
    return 0;
    }

  • nice geht alles danke ;))


    Mh nur 1 frage wenn ich Desk gehe und einer kommt zu mir dann sieht er meinen namen wenn ich vom desk wieder kommen ist der name weg .
    wie bekomme ich das hin das auch der name wegbleibt wenn ich desk bin ?

  • Du kannst auch, was das Desktop Problem beheben sollte, auch den native SetPlayerName nutzen. Natürlich musst du den richtigen Namen auch in einer Spielervariable z.b. SetPVarString speichern, damit du ihn später wieder zurücksetzen kannst.


    Bedenke jedoch, dass das Speichern von Spielerdaten in einer Datei oder MYSQL dadurch nicht mehr geht, da ja der Name geändert ist. Du müsstest dann unter dem Namen speichern, welcher in der PVarString steht.