Problem mit TextDraw bei SpielerId 0

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
  • wie oben schon steht ich hab ein problem mit meinem Text Draw...


    das ganze soll für einen Speedometer sein hier mal mein scriptauszug:


    public Speed(playerid)
    {
    for(new i = 0; i <= MAX_PLAYERS; i++)
    {


    Vehicleid = GetPlayerVehicleID(i);
    if(IsPlayerInAnyVehicle(i))
    {
    if(Vehicleid == CarID[i])
    {
    new speed = GetPlayerSpeed(i, true);
    format(ausgabetext, sizeof(ausgabetext), "%d Km/H", speed);
    TextDrawSetString(SpeedText[i], ausgabetext);
    }
    else
    {
    TextDrawSetString(SpeedText[i], ".");
    }
    }
    else
    {
    TextDrawSetString(SpeedText[i],".");
    }
    }
    return 1;


    }


    Das komische isst, dass er es bei allen anderen Spielern auser bei playerid 0 richtig anzeigt
    An der Schleife kann es nicht liegen, da er ja erst erhöt wenn wer einmal durch isst, auserdem hab ichs ausprobiert und des textdraw einfach mal weggemacht und dafür ein SendClientMessage gemacht dann geht es


    also weiß jemand warum das bei playerid 0 nicht futzt und ansonsten schon???


    mfg The_OTTO

  • versuchs mal so ....


    for(new i=0;i<MAX_PLAYERS;i++)


    und wenn du schon Alle Spieller abfragst ...
    wozu ist die >>>


    public Speed(playerid)
    Wozu ist den hier noch die playerid?

  • sorry die falsche public....


    also die speed anzeige funktioniert nur die spritanzeige nicht:



    public Tank(playerid)
    {
    for(new i = 0; i <= MAX_PLAYERS; i++)
    {
    GetPlayerName(i, name, sizeof(name));
    format(save, sizeof(save), "/Spieler/%s.ini", name);
    Vehicleid = GetPlayerVehicleID(i);
    if(IsPlayerInAnyVehicle(i))
    {
    if(Vehicleid == CarID)
    {
    new speed = GetPlayerSpeed(i, true);
    if(speed > 0)
    {
    new verbrauch = dini_Int(save, "Auto_Verbrauch");
    oldautotankinhalt = dini_Int(save,"Auto_Tank");
    if(oldautotankinhalt == 0)
    {
    TogglePlayerControllable(i, 0);
    }
    else
    {


    newautotankinhalt = oldautotankinhalt-verbrauch;
    dini_IntSet(save, "Auto_Tank", newautotankinhalt);
    new anzeige = newautotankinhalt /10;
    format(ausgabetext, sizeof(ausgabetext), "%d Liter", anzeige);
    TextDrawSetString(TankText, ausgabetext);
    //SendClientMessage(i,red, ausgabetext);
    }
    }
    }
    else
    {
    TextDrawSetString(TankText, ".");
    }
    }
    else
    {
    TextDrawSetString(TankText, ".");
    }
    }
    return 1;
    }



    und wenn ich da das sendlcientmessage nehm dann gehts hat jetzt jemand ne idee warum???

    Einmal editiert, zuletzt von The_OTTO ()

  • Da haste auch ein playerid definiert^^


    und auch wieder MAX_PLAYERS | MAX_PLAYERS = 500


    Entweder du macht nur für ein einzelnen spieler ein timer oder einen Globalen ... beides gemixt ist nicht so gut xD

  • hä wiejetzt (und die playerid hab ich einfach vergessen wieder rauszumachen....)


    so schlau binn ich au dass i die da net brauch...


    kansch des genauer erklären was du mit gemixt meinst???