Tankanzeige zeigt Tank von anderen Autos [NEED HELP]

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 meine Tankanzeige funktioniert zwar aber leider wenn 2 personen fahren gleichzeitig zeigt die anzeige mal meinen tankstand an und mal seinen also immer stotternd nur wie kann ich die anzeige bzw den string nur auf das fahrzeig oder es so machen das nur der tankstand des fahrzeuges worin ich mich befinde anzeigt?


    hier mein script also meine tankanzeige:
    ganz oben bei den new's usw
    forward TankCheck();
    new Text:Anzeige;
    forward UpdateAnzeige(playerid);
    new fuelstr1[50];


    dann OnGameModeInit der timer und die anzeige


    SetTimer("UpdateAnzeige", 60, 1);
    Anzeige = TextDrawCreate(320.00, 410.00,"~g~Benzin:~w~ 100");
    TextDrawFont(Anzeige, 3);
    TextDrawSetProportional(Anzeige, 2);
    TextDrawAlignment(Anzeige, 1);
    TextDrawUseBox(Anzeige,1);


    dann die public:


    public UpdateAnzeige(playerid)
    {
    new veh = GetPlayerVehicleID(playerid);
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(PlayerState(playerid,PLAYER_STATE_DRIVER))
    {
    TextDrawShowForPlayer(playerid,Anzeige);
    if(Tankmenge[veh] > 0)
    {
    format(fuelstr1,sizeof fuelstr1,"~g~Benzin:~w~ %d%",Tankmenge[veh]);
    TextDrawSetString(Anzeige,fuelstr1);
    }
    else
    {
    format(fuelstr1,sizeof fuelstr1,"Benzin leer!");
    TextDrawSetString(Anzeige,fuelstr1);
    }
    }
    }
    else
    {
    TextDrawHideForPlayer(playerid,Anzeige);
    }
    return 1;
    }


    MFG janpplayer

  • Du brauchst ein TextDraw für jeden Spieler.
    Also oben new Text:Anzeige[MAX_PLAYERS];
    Das beim erstellen :


    for(new i = 0; i < MAX_PLAYERS; i++) { Anzeige[i] = TextDrawCreate usw.....}


    Und dann wenn du updatest : TextDrawSetString(Anzeige[playerid],fuelstr1);
    Hoffe ich konnte dir helfen


    Mit freundlichen Grüßen
    Steph12 :)


    Edit: Bei TextDrawShowForPlayer natürlich auch Anzeige[playerid]

  • Dann benutze eine for schleife und setzt es für jeden Spieler.

    TextDrawSetString(Anzeige[i],fuelstr1);


    lg



    pS

  • ja aber in dem update also wenn der tank geupdatet wird wird doch für genau diesen spieler also playerid der string gesetzt oder liege ich da falsch da kommt doch playerid bei updateanzeige? oder nicht