3D Text Label Fehler

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
  • Guten abend,


    Und zwar wird mein Wantedlabel nicht angezeigt.
    Das soll nur die Fraktion 1 sehen können.


    public OnPlayerStreamIn(playerid, forplayerid)
    {
    if(Spieler[forplayerid][pFraktion] != 1)
    {
    if(Spieler[playerid][pWanteds] > 1)
    {
    new string[25];
    format(string, sizeof(string), "Wantedlevel: %d",Spieler[playerid][pWanteds]);
    WantedLabel[playerid] = CreatePlayer3DTextLabel(forplayerid, string, 0xC50000FF,0.0,0.0,0.5, 30.0, playerid,INVALID_VEHICLE_ID, 0);
    }
    else
    {
    DeletePlayer3DTextLabel(forplayerid, WantedLabel[playerid]);
    }
    }
    return 1;
    }

    Mit freundlichen Grüßen


  • Versuchs mal so :



    public OnPlayerStreamIn(playerid, forplayerid)
    {
    if(Spieler[forplayerid][pFraktion] == 1)
    {
    if(!Spieler[playerid][pWanteds] >= 1)return DeletePlayer3DTextLabel(forplayerid, WantedLabel[playerid]);
    new string[125];
    format(string, sizeof(string), "Wantedlevel: %d",Spieler[playerid][pWanteds]);
    WantedLabel[playerid] = CreatePlayer3DTextLabel(forplayerid, string, 0xC50000FF,0.0,0.0,0.5, 30.0, playerid,INVALID_VEHICLE_ID, 0);
    }
    return 1;
    }

  • Genau das die Fraktion 1 sehen kann das z.B Fraktion 2,3,4,5 Wanteds haben.
    Aber wenn ich Fraktion 1 bin sehe ich die von anderen nicht nur wenn er in Fraktion 1 ist sehe ich die Wanteds übern Kopf bei Ihm.

    Mit freundlichen Grüßen


  • Funktioniert das so?

    Spoiler anzeigen
    public OnPlayerStreamIn(playerid,forplayerid)
    {
    if(Spieler[playerid][pFraktion] != 1)
    {
    if(Spieler[forplayerid][pWanteds] > 1)
    {
    new string[25];
    format(string,sizeof string,"Wantedlevel: %d",Spieler[forplayerid][pWanteds]);
    WantedLevel[forplayerid] = CreatePlayer3DTextLabel(playerid,string,0xC50000FF,0.0,0.0,0.5, 30.0, forplayerid,INVALID_VEHICLE_ID, 0);
    }
    else DeletePlayer3DTextLabel(playerid,WantedLabel[forplayerid]);
    }
    return 1;
    }

  • PHP
    public OnPlayerStreamIn(playerid, forplayerid)
    {
        if(Spieler[forplayerid][pFraktion] != 1) return 1;
    	if(Spieler[playerid][pWanteds] == 0) return DeletePlayer3DTextLabel(forplayerid, WantedLabel[playerid]);
    	new string[25];
    	format(string, sizeof(string), "Wantedlevel: %d",Spieler[playerid][pWanteds]);
    	WantedLabel[playerid] = CreatePlayer3DTextLabel(forplayerid, string, 0xC50000FF,0.0,0.0,0.5, 30.0, playerid,INVALID_VEHICLE_ID, 0);
    	return 1;
    }

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • public OnPlayerStreamIn(playerid,forplayerid)
    {
    if(Spieler[forplayerid][pFraktion] == 1)
    {
    if(Spieler[playerid][pWanteds] >= 1)
    {
    new string[25];
    format(string,sizeof string,"Wantedlevel: %d",Spieler[playerid][pWanteds]);
    WantedLevel[forplayerid][playerid] = CreatePlayer3DTextLabel(forplayerid,string,0xC50000FF,0.0,0.0,0.5, 30.0, playerid,INVALID_VEHICLE_ID, 0);
    }
    else DeletePlayer3DTextLabel(playerid,WantedLabel[forplayerid][playerid]);
    }
    return 1;
    }


    Außerdem musst du die Variable dann mit [MAX_PLAYERS][MAX_PLAYERS] deklarieren (ja, zwei mal!), da es sonst ab mehr als einem Spieler der angezeigt wird nicht mehr geht.


    Zudem musst du beim StreamOut das Label wieder löschen, sonst erstellst du es X mal.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Dort wo du das Wanted Level erhöhst:
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerStreamedIn(killerid, i))
    {
    //Den anzuzeigenden string formatieren, das bekommst du hin
    UpdatePlayer3DTextLabelText(WantedLevel[i][killerid], ...
    }
    }


    Kommst du damit klar?

  • new string[25];
    format(string,sizeof string,"Wantedlevel: %d",Spieler[killerid][pWanteds]);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerStreamedIn(killerid, i)) //killerid ist für i eingestreamt
    {
    UpdatePlayer3DTextLabelText(i, WantedLevel[i][killerid], 0xC50000FF, string);
    }
    }


    Einfügen in deinen Code musst es aber selbst. ;)