Fehler bei 3DTextLabel

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 einen Aduty Befehl geschrieben, welcher auch funktioniert. Nun habe ich probiert, wenn der Spieler AdminOn geht, dass ein 3DTextLabel über dem Kopf erscheint. Dies hat auch funktioniert.
    Nun wollte ich es so machen, dass wenn der Spieler wieder OffDuty geht das 3DTextLabel wieder verschwindet, leider erhalte ich einen Error. :whistling:



    ocmd:aduty(playerid,params[])
    {
    if(isPlayerRank(playerid, 1))
    {
    if(GetPVarInt(playerid, "aduty") == 0){
    new name[MAX_PLAYER_NAME], string[31+MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "** %s hat sich als Supporter angemeldet. **", name);
    SendClientMessageToAll(COLOR_RED, string);
    SetPVarInt(playerid, "aduty", 1);
    new Text3D:label = Create3DTextLabel("Admin OnDuty", COLOR_RED, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7);
    SetPlayerColor(playerid,COLOR_RED);


    }else{
    new name[MAX_PLAYER_NAME], string[31+MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string,sizeof(string), "** %s hat sich als Supporter abgemeldet. **", name);
    SendClientMessageToAll(COLOR_RED, string);
    SetPVarInt(playerid, "aduty", 0);
    Delete3DTextLabel(Text3D:label);
    SetPlayerColor(playerid,COLOR_WHITE);
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"** Du besitzt nicht die notwendigen Rechte, um diese Befehl ausführen zu können. **");
    }
    return 1;
    }



    Ich habe mal probier, oben im Script eine Variable zu erstellen mit new Text3D:Label;
    Da erhielte ich jedoch ein Warning, ich sollte den Namen der Variable ändern, was ich auch getan habe. Da erhielt ich keine Fehler, jedoch funktionierte das System nicht vollständig Ingame.


    Bitte um Hilfe :thumbup:


    Viele Grüße

  • Probiers mal so..
    /edit hatte einen Fehler drinen sollte nun klappen!



    new Text3D:label[MAX_PLAYERS];


    ocmd:aduty(playerid,params[])
    {
    if(isPlayerRank(playerid, 1))
    {
    if(GetPVarInt(playerid, "aduty") == 0){
    new name[MAX_PLAYER_NAME], string[31+MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "** %s hat sich als Supporter angemeldet. **", name);
    SendClientMessageToAll(COLOR_RED, string);
    SetPVarInt(playerid, "aduty", 1);
    label[playerid] = Create3DTextLabel("Admin OnDuty", COLOR_RED, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.7);
    SetPlayerColor(playerid,COLOR_RED);


    }else{
    new name[MAX_PLAYER_NAME], string[31+MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string,sizeof(string), "** %s hat sich als Supporter abgemeldet. **", name);
    SendClientMessageToAll(COLOR_RED, string);
    SetPVarInt(playerid, "aduty", 0);
    Delete3DTextLabel(label[playerid]);
    SetPlayerColor(playerid,COLOR_WHITE);
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"** Du besitzt nicht die notwendigen Rechte, um diese Befehl ausführen zu können. **");
    }
    return 1;
    }

    4 Mal editiert, zuletzt von UnderDog ()