Brauche hilfe beim tanksystem

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 liebe com,


    Ich habe ein problem und zwar geht es um mein Tank System...
    mir wird angezeigt das der Tank zu 100% voll ist und dann wenn ich den Motor Starte geht der Tank direkt auf 0...
    ich habe alles nachgekugt und finde den fehler einfach nicht hier mal die pwn:


    new tanktimer=0;
    public sekunde()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    new vID = GetPlayerVehicleID(i);
    if(IsPlayerInAnyVehicle(i))
    {
    new Float:damage;
    new string[164];
    new string2[164];
    GetVehicleHealth(vID,damage);
    format(string2,sizeof(string2),"%f",damage);
    new damages = strval(string2);
    format(string,sizeof(string),"Zustand: %i",damages);
    PlayerTextDrawSetString(i,Tacho_Zustand,string);
    format(string,sizeof(string),"Tank: %il",Tank[vID]);
    PlayerTextDrawSetString(i,Tacho_fuel[i],string);
    }
    tanktimer++;
    if(tanktimer==5)
    {
    tanktimer=0;
    for(new ix=1; ix<sizeof(Tank); ix++)
    {
    if(GetVehicleEngine(ix)==0)continue;
    Tank[ix]=Tank[ix]-1;//Vorher stand da Tank[ix]--; klappte aber auch nicht!!!
    if(Tank[ix]<1)
    {
    stopEngine(ix);
    SendClientMessage(i,rot,"WARNING: Fuel Empty!");
    }
    }
    }
    }

    return 1;
    }

  • new tanktimer=0;
    public sekunde()
    {
    tanktimer++;
    if(tanktimer==5)
    {
    tanktimer=0;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInAnyVehicle(i))
    {
    new vID = GetPlayerVehicleID(i);
    new Float:damage;
    new string[164];
    GetVehicleHealth(vID,damage);
    format(string,sizeof(string),"Zustand: %i",floatround(damage));
    PlayerTextDrawSetString(i,Tacho_Zustand,string);
    format(string,sizeof(string),"Tank: %il",Tank[vID]);
    PlayerTextDrawSetString(i,Tacho_fuel[i],string);
    if(GetVehicleEngine(vID)!=0)
    {
    Tank[vID]--;
    if(Tank[vID]<1)
    {
    stopEngine(vID);
    SendClientMessage(i,rot,"WARNING: Fuel Empty!");
    }
    }
    }
    }
    }
    return 1;
    }


    Es lag an der falsch verschachtelten Schleife. So sollte es klappen.

  • Es lag an der falsch verschachtelten Schleife. So sollte es klappen.


    Immer noch nicht ganz richtig :D


    Ich denke, er will es so haben:


    new tanktimer=0;
    public sekunde() {
    for(new i,vID,Float:damage,string[64]; i<MAX_PLAYERS; i++) {
    if(!IsPlayerInAnyVehicle(i)) continue;
    vID = GetPlayerVehicleID(i),GetVehicleHealth(vID,damage);
    format(string,sizeof(string),"Zustand: %i",floatround(damage));
    PlayerTextDrawSetString(i,Tacho_Zustand,string);
    format(string,sizeof(string),"Tank: %il",Tank[vID]);
    PlayerTextDrawSetString(i,Tacho_fuel[i],string);
    }
    tanktimer++;
    if(tanktimer==5) {
    tanktimer=0;
    for(new ix=1; ix<sizeof(Tank); ix++) {
    if(GetVehicleEngine(ix)==0)continue;
    Tank[ix]--;
    if(Tank[ix]<1) stopEngine(ix),SendClientMessage(i,rot,"WARNING: Fuel Empty!");
    }
    }
    return 1;
    }


    mfg. :thumbup:


    //Edit: Sry...sollte keine 164..sondern eine 64 sein...

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    Einmal editiert, zuletzt von Kaliber ()