hilfe beim tankupdate

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
  • HEy community


    folgendes


    ich habe ein tanksystem aus einem tutorial aus dem forum in mein gm eingebaut. einziges problem: man sieht nie den aktuellen tankstand.


    also dachte ich mir ich mach einen updater



    ich hab einen sich wiederholenden timer erstellt mit settimerex


    [hide]SetTimerEx("Updatetank",1000,1,"i",playerid);[/hide]


    er läuft immer 1 sekunde lang


    der timer gibt immer das wieder:


    public Updatetank(i)
    {



    for(new pl = 0;pl<MAX_PLAYERS;pl++)
    {



    new Wagen = GetPlayerVehicleID(i);

    new string[64];

    format(string,sizeof(string),"Tank: %i",Tankmenge[Wagen]);

    Tankdraw[pl] = TextDrawCreate(43.000000,321.000000,string);
    TextDrawAlignment(Tankdraw[pl],0);
    TextDrawBackgroundColor(Tankdraw[pl],0x0000ff33);
    TextDrawFont(Tankdraw[pl],2);
    TextDrawLetterSize(Tankdraw[pl],0.499999,0.899999);
    TextDrawColor(Tankdraw[pl],0x000000cc);
    TextDrawSetProportional(Tankdraw[pl],1);
    TextDrawSetShadow(Tankdraw[pl],1);

    TextDrawShowForPlayer(i,Tankdraw[pl]);
    }

    if(GetPlayerState(i) == PLAYER_STATE_ONFOOT)
    {
    new pl;
    TextDrawHideForPlayer(i,Tankdraw[pl]);
    }



    return 1;
    }


    der textdraw wird scohn erstellt und auch mit 100 % anfangs, aber er aktualisiert sich nicht.



    und was seehr suspekt ist: ich hab das vorhin getestet und bei mir zeigte sich der textdraw, bei einem anderen spieler komischerweise nicht



    warscheinlich ist das ziemlich alles an der falschen stelle (hab das so gescriptet wie ich dachte)


    kann mir jemand ein ordentliches updatetank zeigen? danke im vorraus


    mfg shorty


    PS: 100. BEITRAG ;))

  • Was nen Kauderwelch, er übergibt ne playerid, benutzt trotzdem noch ne forschleife, alsobekommt jeder player den textdraw von jeden anderen player angezeigt...
    Zudem dann immer noch das alte Textdraw überschreiben was ja nit geht...
    naja probiers mal so:
    public Updatetank(i)
    {
    new Wagen = GetPlayerVehicleID(i);
    new string[64];
    if(IsPlayerInVehicle(i))
    {
    format(string,sizeof(string),"Tank: %i",Tankmenge[Wagen]);
    if(!Tankdraw[i])
    {
    Tankdraw[i] = TextDrawCreate(43.000000,321.000000,string);
    TextDrawAlignment(Tankdraw[i],0);
    TextDrawBackgroundColor(Tankdraw[i],0x0000ff33);
    TextDrawFont(Tankdraw[i],2);
    TextDrawLetterSize(Tankdraw[i],0.499999,0.899999);
    TextDrawColor(Tankdraw[i],0x000000cc);
    TextDrawSetProportional(Tankdraw[i],1);
    TextDrawSetShadow(Tankdraw[i],1);
    } else {
    TextDrawSetString(Tankdraw[i],string);
    }
    TextDrawShowForPlayer(i,Tankdraw[pl]);
    }else{
    TextDrawHideForPlayer(i,Tankdraw[i]);
    }


    return 1;
    }

  • erstmal danke für die antwort


    ich hab mich nochmal ins tutorial textdraws eingelesen und dadurch kapiert das erstellen nicht gleich anzeigen ist


    hab also den textdraw auf 100 erstellt und anzeigen lassen wenn der motor gestartet wird,
    und als update einfach den tankstand geholt und als string die 100 ersetzt


    habs also auch so hinbekommen