Aktueller Name in eine Variable Speichern und später wiedergeben.

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 mal was gescriptet. Was den Namen ändert.
    Ein Decknamesystem.
    Spieler bekommt den Deckname den er sich ausgewählt hat, bei Maske auf.
    Der Name wie ich im Spiel heisse wird geändert.
    zu meinen Deckname.
    Bei Maskeabsetzen bekommt er den alten namen nicht wieder.
    NamenVariable habe ich mal Kicka genannt.
    Also die Variable wo der Name drinne gespeichert werden soll.


    Hier mal der Code.
    //deckname setten//
    ocmd:deckname(playerid,params[])
    {
    new string[128];
    if(PlayerInfo[playerid][pMember]==20||PlayerInfo[playerid][pLeader]==20)
    {
    if(sscanf(params,"s",string))return ErrorMsg(playerid,"INFO: /deckname [deckname]");
    strmid(PlayerInfo[playerid][deckname],string,0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    format(string,sizeof(string),"Deckname auf %s geändert, du kannst nun eine Maske aufsetzen.",PlayerInfo[playerid][deckname]);
    SendClientMessage(playerid,0x00FF28FF,string);
    }
    return 1;
    }
    //maske aufsetzen//
    ocmd:maskeauf(playerid,params[])
    {
    new query[128];
    new prname[MAX_PLAYER_NAME];
    format(query,sizeof(query),"%s setzt Maske ab",MeinName(playerid));
    if(PlayerInfo[playerid][pMember]==20||PlayerInfo[playerid][pLeader]==20)
    {
    if(!strcmp(PlayerInfo[playerid][deckname],"NON",true))return ErrorMsg(playerid,"Du hast noch keinen Decknamen.");
    SetPVarInt(playerid,"maske",1);
    SendClientMessage(playerid,0x00FF28FF,"Du hast dir eine Maske aufgesetzt.");
    Kika[playerid] = GetPlayerName(playerid, prname, sizeof(prname));
    SetPlayerName(playerid,PlayerInfo[playerid][deckname]);
    SetPlayerScore(playerid,random(50) + 122);
    maskeAufsetzen(playerid);
    }
    return 1;
    }


    //Maskeabsetzen//
    ocmd:maskeab(playerid,params[])
    {
    new query[128];
    format(query,sizeof(query),"%s setzt Maske ab",MeinName(playerid));
    if(GetPVarInt(playerid,"maske")==0)return ErrorMsg(playerid,"Du hast keine Maske auf.");
    RemovePlayerAttachedObject(playerid,2);
    SetPVarInt(playerid,"maske",0);
    maskeAbsetzen(playerid);
    SendClientMessage(playerid,0x00FF28FF,"Du hast nun keine Maske mehr auf, und dein Name ist wieder sichtbar.");
    printf(query);
    SetPlayerName(playerid,Kika[playerid]);
    SetPlayerScore(playerid,GetPlayerLevel(playerid));
    return 1;
    }


    Der Deckname bleibt immernoch...
    Obwohl ich den Richtigen Name in die Variable gesetzt habe.

  • format(Kika[playerid],MAX_PLAYER_NAME,"%s",GetPlayerName(playerid, prname, sizeof(prname)));//Damit speicherst du den spielernamen in Kika


    du musst dein String formatieren in deinem fall wird er wie eine variable gesetzt das ist falsch.