Tanksystem Funkt net so ..

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
  • Hi @ll


    mein Problem ist folgender,
    ich möchte dass der Tank langsam runter geht.


    Nun habe ich es eingestellt und habe eine Abfrage gemacht.
    if(Menge[Fahrzeug] >= 100)
    Er zeigt mir wie gewünscht diesen Text an: Tank: IIIIII
    Nun ist es aber so, nachdem ich /tanken angebe steht da "Am tanken....." dannach Tank: IIIIII. (6x "I")
    Soweit so gut.


    Ich aber, dass der Tank langsam runter geht d.h er soll in einer bestimmten Zeit 1 Litter futtern.Wenn die Menge 90 ist soll der der Text so sein Tank: IIIII (5x "I")
    Das Problem ist er zeigt mir die Striche 6x, nach einer Zeit ist der Tank leer in meinem Fall so : Tank: ----


    Jetzt habe ich keine Anhung voran das liegen könnte.


    Hoffe auf eine gute Antwort.


    lg

  • Also du müsstest dir nen Timer erstellen, der alle Fahrzeuge durchgeht (Schleife) und denen den Tank -1 setzt. Bei deinem Text musst du abfragen, bei welchem Stand der Tank ist, und dementsprechend deine Striche anzeigen.. z.B. von 90 bis 100% zeigst du 6 Striche, bei 80 bis 90% 5 Striche und so weiter.

  • for(new i = 0;i<MAX_VEHICLES;i++)
    {
    if(Menge[i] >= 1)
    {
    ...
    ...
    ...
    So ungefähr :D


    lg

  • So schwer ists nicht.. Ich hab mal was zusammengebastelt:


    public CheckGas()
    {
    new engine, lights, alarm, doors, bonnet, boot, objective;


    for(new i = 0; i < MAX_VEHICLES; i++)
    {
    GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective);

    if(engine == VEHICLE_PARAMS_ON)
    {
    if(Gas[i] >= 1)
    {
    Gas[i]--;
    }
    else
    {
    SetVehicleEngineOff(i);
    }
    }
    }
    return 1;
    }


    Den Timer kannst jetzt zum Beispiel auf 30sekunden oder so stellen, wie du willst.


    //EDIT: Bei dir ists nicht Gas, sondern Menge

  • Ich habe es so.

    public Tank(playerid)
    {
    new string[128];
    for(new i = 0;i<MAX_VEHICLES;i++)
    {
    if(Menge[i] >= 1)
    {
    Menge[i]--;
    }
    if (Menge[i]>= 100)
    {
    format(string,sizeof string,"Tank: IIIIII");
    TextDrawSetString(td_fuel[i],string);
    }
    // USW
    ----

  • er zeigt mir nicht die zwischen strichte sondern geht auf einal auf Tank leer

  • public Tank(playerid)
    {
    new string[12];
    for(new i = 0;i<MAX_VEHICLES;i++)
    {
    if(Menge[i] >= 1)
    {
    Menge[i]--;
    }
    switch(Menge[i])
    {
    case 0: format(string,sizeof string,"Tank: ----");
    case 1 .. 17: format(string,sizeof string,"Tank: I");
    case 18 .. 34: format(string,sizeof string,"Tank: II");
    case 35 .. 51: format(string,sizeof string,"Tank: III");
    case 52 .. 68: format(string,sizeof string,"Tank: IIII");
    case 69 .. 85: format(string,sizeof string,"Tank: IIIII");
    case 86 .. 100: format(string,sizeof string,"Tank: IIIIII");
    }
    TextDrawSetString(td_fuel[i],string);
    }
    }
    100 durch 6 teilen is halt net so einfach, deshalb die komischen case werte ^^

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Gleich mal testen :D


    Danke dir
    //edit
    Nein geht immer noch nicht
    wenn du testen möchtest pn


    //edit Heute 23. Februar 20II


    Kann es eigt. an dem Timer liegen, vielleicht ist der falsch eingestellt.


    lg

    Einmal editiert, zuletzt von PasMod ()

  • Hier ist mein Timer "trommel wirbel bitte xD


    SetTimerEx("Tank",60000,1,"d",playerid);


    lg


    pS