Name wird trotz Maske angezeigt

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,


    Ich habe ein Maskensystem. Das funktioniert auch soweit. Allerdings, sobald der Maskierte jemanden Tötet, sieht das Opfer den Namen des Maskierten wieder. Und über den Spielername des Maskierten steht trotzdem "Maskiert". Wenn er seine Maske wieder neu aufzieht, sieht man den Name wieder nicht... Woran kann das liegen?


    Wenn er mit der Maske in ein Interior geht und wieder raus kommt sieht man seinen Name auch wieder... An was liegt das?




    if(strcmp(cmd,"/maske",true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_GOLD,"Benutzung: /maske [Funktion]");
    SendClientMessage(playerid,COLOR_WHITE,"Funktionen: auf, ab, weg");
    return 1;
    }
    if(strcmp(tmp,"auf",true) == 0)
    {
    if(PlayerInfo[playerid][pMaske] >= 1)
    {
    GetPlayerName(playerid,sendername,sizeof(sendername));
    new name;
    name = 1000+random(8999);
    //format(string,sizeof(string),"Maskiert %i",name);
    for(new i=0;i<MAX_PLAYERS;i++){ ShowPlayerNameTagForPlayer(i,playerid,false); }
    SendClientMessage(playerid,COLOR_GOLD,"Du bist von nun an maskiert.");
    format(string,sizeof(string),"Dein neuer Name lautet: Maskiert %i",name);
    SendClientMessage(playerid,COLOR_GOLD,string);
    new maskname[30];
    format(maskname,sizeof(maskname),"Maskiert %i",name);
    Maske2[playerid] = Create3DTextLabel(maskname,COLOR_YELLOW,0,0,0,70.5,1);
    Attach3DTextLabelToPlayer(Maske2[playerid], playerid, 0.0, 0.0, 0.50);
    SendClientMessage(playerid,COLOR_GOLD,"Jeder Schuss wird gespeichert. SDM wird bestraft!");
    SetPlayerSkin(playerid,144);
    //ShowPlayerDialog(playerid,DIALOG_MASKE_SKIN,DIALOG_STYLE_MSGBOX,"Skinauswahl","Möchtest du deinen Skin behalten oder den\nmaskierten Skin auswählen?","Wechseln","Behalten");
    PlayerInfo[playerid][pMaske] -= 1;
    Maske[playerid] = 1;
    format(string,sizeof(string),"[Maske] Benutzer: %s | MaskenID: %i | Name: %d",sendername,name,maskname);
    Log("Logs/Maskenbenutzung.txt",string);
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keine Sturmhaube!");
    }
    }
    else if(strcmp(tmp,"ab",true) == 0)
    {
    GetPlayerName(playerid,sendername,sizeof(sendername));
    for(new i=0;i<MAX_PLAYERS;i++){ ShowPlayerNameTagForPlayer(i,playerid,true); }
    SendClientMessage(playerid,COLOR_GOLD,"Du bist nichtmehr maskiert.");
    format(string,sizeof(string),"Dein Name lautet von nun an wieder %s",sendername);
    SendClientMessage(playerid,COLOR_GOLD,string);
    SetPlayerSkin(playerid,PlayerInfo[playerid][pModel]);
    Delete3DTextLabel(Maske2[playerid]);
    Maske[playerid] = 0;
    }
    else if(strcmp(tmp,"weg",true) == 0)
    {
    GetPlayerName(playerid,sendername,sizeof(sendername));
    SendClientMessage(playerid,COLOR_GOLD,"Du hast deine Sturmhaube weggeworfen!");
    PlayerInfo[playerid][pMaske] = 0;
    }
    }
    return 1;
    }
    /Edit:
    /maske-BefehlQuellcode entfernt, zeigt alles nur in 1 Zeile
    /Edit2:
    Maske-Quellcode wieder drin
    /Edit3:
    Überschrift geändert

    Einmal editiert, zuletzt von StarDrink ()

  • Lass die Namen bei "OnPlayerSpawn" erneut verschwinden, falls ein Spieler die Maske auf hat.


    for(new i; i < MAX_PLAYERS; i++)if(Maske[i] == 1)ShowPlayerNameTagForPlayer(playerid, i, false);

    Gehört das dann nicht
    for(new i; i < MAX_PLAYERS; i++)if(Maske[i] == 1)ShowPlayerNameTagForPlayer(i, playerid, false);
    wie oben?

  • Wenn ich jetzt keinen Denkfehler habe, nein, denn du fragst ja nicht den Spieler mit der Maske ab, sondern den Spieler der gerade spawnt, welche NameTags er sehen soll.


    Spieler spawnt => hat jmd von MAX_PLAYERS Maske? => Wenn ja, lass verschwinden.

    Berlin - Tel Aviv - Moskau

  • Wenn ich jetzt keinen Denkfehler habe, nein, denn du fragst ja nicht den Spieler mit der Maske ab, sondern den Spieler der gerade spawnt, welche NameTags er sehen soll.


    Spieler spawnt => hat jmd von MAX_PLAYERS Maske? => Wenn ja, lass verschwinden.

    Okay, teste ich mal eben direkt.


    /edit: So wie es aussieht, funktioniert es, nachdem er neu spawnt. Geht der "Maskenspieler" aus einem Interior heraus, sieht man den Name wieder.
    /e2: Geht doch nicht...

    2 Mal editiert, zuletzt von StarDrink ()