Das Maskensystem mit Name geht nicht ganz.

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
  • Ich brauch hilfe bei mein Maskensystem, mit meinen Dialog.
    Wie ist dein Maskensystem ?

    1. Befehl /maske eingeben.
    2. Inputtdialog kommt, in dem ich irgendwas eingebe.
    3. Was ich eingegeben habe, steht nun über mir. (Deckname).
    4. Deckname ist da und funktioniert alles.
    5. Ich öffne /help Dialog.
    6. Wähle Fraktionshilfe und schon ist mein Deckname Fraktionshilfe.
    7. Wähle ich vllt Allgemeine Hilfe ist mein Deckname Allgemeine Hilfe.
    8. Nehme ich zb auch im Bomben Dialog einen Draht Rot Gelb oder Grün, dann heiss ich Rot Grün oder Gelb.
    9. Alles was ich im Dialog auswähle bekomme ich als Deckname.
    10. Nur wenn ich Maske aufgesetzt habe.
    11. Woran liegt das ?


    if(dialogid == DIALOG_TNAME)
    {
    if(response)
    {
    if(strlen(inputtext) < 3)
    {
    return SendClientMessage(playerid,grau,"Zu wenig Tabs");
    }
    new string[128], Float:health, Float:armour;
    GetPlayerHealth(playerid, health);
    GetPlayerArmour(playerid, armour);
    new rhealth = floatround(health, floatround_round);
    new rarmour = floatround(armour, floatround_round);
    format(string, 128, "{FFFFFF}%s\n{FF0000}L: %i R: %i", inputtext, rhealth, rarmour);
    maskenlabel[playerid] = Create3DTextLabel(string, 0xFFFFFFFF, 0.0, 0.0, 0.0, 35.0, 0, 1);
    Attach3DTextLabelToPlayer(maskenlabel[playerid], playerid, 0.0, 0.0, 0.6);
    Maske[playerid] = 1;
    SetPlayerAttachedObject(playerid,2,19036,2,0.073, 0.029, 0, 88, 75, 0);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(i,playerid,false);
    }
    }
    }


    ocmd:maske(playerid,params[])
    {
    if(tod[playerid]==1)return ErrorMsg(playerid,"Du bist zu schwer verletzt");
    if(IsPlayerInFrak(playerid,6)||IsPlayerLeader(playerid,6)||IsPlayerInFrak(playerid,13)||IsPlayerLeader(playerid,13))
    {
    if(Maske[playerid]==1)
    {
    SendClientMessage(playerid,grün,"Du hast dir deine Maske abgesetzt...");
    Delete3DTextLabel(maskenlabel[playerid]);
    Maske[playerid] = 0;
    RemovePlayerAttachedObject(playerid, 2);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(i,playerid,true);
    }
    }
    else if(Maske[playerid]==0)
    {
    SendClientMessage(playerid,grün,"Du hast dir eine Maske aufgesetzt.");
    ShowPlayerDialog(playerid,DIALOG_TNAME,DIALOG_STYLE_INPUT,"<<Deckname>>","Bitte gib hier einen Deckname ein\nAlles du hier eingibst steht über dir als Name\nBitte Wählen:","Ja","Nein");
    }
    }
    else
    {
    SendClientMessage(playerid,weiss,"Du darfst diesen Befehl nicht nutzen");
    }
    return 1;
    }


    OnPlayerUpdate
    if(Maske[playerid] == 1)
    {
    new string[128], Float:health, Float:armour, mname[MAX_PLAYER_NAME];
    GetPlayerHealth(playerid, health);
    GetPlayerArmour(playerid, armour);
    new rhealth = floatround(health, floatround_round);
    new rarmour = floatround(armour, floatround_round);
    GetPVarString(playerid, "maskname", mname, MAX_PLAYER_NAME);
    format(string, 128, "{FFFFFF}%s\n{FF0000}L: %i R: %i", mname, rhealth, rarmour);
    Update3DTextLabelText(maskenlabel[playerid], 0xFFFFFFFF, string);
    }


    Warum ?