Maskensystem mit Deckname | Deckname = SpielerName auf den Server

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 gescriptet, das was MrM ähnelt. Aber nichts ist davon abkopiert,


    ich habe es alleine gescriptet. So nun habe ich aber eine Frage,


    Wenn ich Maske aufsetzte, dann habe ich ein Deckname, und der Deckname soll dann mein Name sein.


    Also.



    Ich bin Terrorist mache /Deckname [Name] und weise mir einen Deckname zu, dann soll der Deckname über den Kopf erscheinen wenn ich /Maske eingebe das klappt auch, so wenn ich auf den Server jetzt Oberinger heisse, so wie ich Normal heisse, dann soll der Deckname jetzt zu meinen Namen werden. Also ich nehme als Deckname zb. Holly die Waldfee, dann soll ich auf den Server auch so heissen, Oberinger soll aus der Serverliste verschwinden und Holle die Waldfee soll mein Ingame Name sein. Wenn ich Maske abstezte soll ich wieder Oberinger in der Liste sein, heissen, und auch aufn Server.


    Wie amche ich das ???

  • Du musst deinen alten Namen "oberinger" in einen String speichern.




    new NormalName[MAX_PLAYERS][26];
    new HasDeckName[MAX_PLAYERS];




    if(strcmp(cmd, "/DeckName",true)==0)
    {
    if(HasDeckName[playerid] == 0)
    {
    new nName[24];
    new dpName[26];
    GetPlayerName(playerid, dpName, 26);
    NormalName[playerid] = dpName; // Normaler Name wird gespeichert

    if(sscanf(params, "s[24]", nName)) return SendClientMessage(playerid, 0xA5FF00FF, "/Deckname [Name]");
    SetPlayerName(playerid, nName); // SpielerName wird umbenannt
    new msg[128];
    format(msg, 128, "Du hast dich in %s umbenannt!", nName);
    SendClientMessage(playerid, 0xA5FF00FF, msg);
    HasDeckName[playerid] = 1;
    }
    else
    {
    SetPlayerName(playerid, NormalName[playerid]); // Wird wieder zum Normalen Namen zurückgesetzt.
    HasDeckName[playerid] = 0;
    }
    return 1;
    }
    }


    Nicht getestet dürfte aber funktionieren.


  • Solltest dann aber daran denken, dass der Account evtl. nicht neugespeichert wird, da der Name dann anders ist. Am besten den echten Namen immer aus der "NormalName" Variable speichern.


  • Solltest dann aber daran denken, dass der Account evtl. nicht neugespeichert wird, da der Name dann anders ist. Am besten den echten Namen immer aus der "NormalName" Variable speichern.


    Warum? Er kann doch ein OnPlayerDisconnect den alten, in der Variablen-gespeicherten Name wieder setzen lassen.
    Dann wird der Account gespeichert.


    @BlackAce: Ich glaube dieser User ist erneut Batista aka. ASS :)
    Der will das Script nämlich 1:1 kopieren :)