While Problem

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
  • Guten Tag.. Ich versuche gerade es zu scripten das wenn man am Tanken ist sich der Tank realistisch füllt. Mit der while abfrage wollte ich bezwecken das wenn der Tank auf 100 ist das das Tanken automatisch gestoppt wird aber ich werde voll gespamt 0.o. Und der Tank erhöht sich immer nur um 1 obwohl ich einen Timer eingebaut habe.. Also ich Tanke der Tank erhöht sich nur um 1 nicht mehr.


    Hier der public vom Timer :
    public tanktimer(playerid)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    if(amtanken[playerid] == 1)
    {
    Benzin[vehicleid] += 1;
    while (Benzin[vehicleid] == 100)
    {
    SendClientMessage(playerid,grün,"Dein Tank ist nun voll !.");
    KillTimer(tanktt);
    }
    }
    return 1;
    }


    Befehl : dcmd_tanken(playerid,params[]){
    #pragma unused params
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    for(new i=0;i<2;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,15.0,Tankstellen[i][0],Tankstellen[i][1],Tankstellen[i][2]))
    {
    SendClientMessage(playerid,grün,"Mit 2 Tanken stoppen !");
    tanktt = SetTimerEx("tanktimer",1000,0,"i",playerid);
    amtanken[playerid] = 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,16.0,Tankstellen[i][0],Tankstellen[i][1],Tankstellen[i][2])) { SendClientMessage(playerid,rot,"Du bist an keiner Tankstelle"); }
    }
    }
    }
    return 1;
    }
    Danke im Vorraus.

  • Frank Labruzzo hat recht.
    Es geht genau so.
    Sogar Besser.
    Der Tank geht um 1 voller, dannach kommt die abfrage, wenn diese auf 100 ist wird der Timer "gekillt"

  • Du musst den Timer nochmal aufrufen.


    public tanktimer(playerid){
    new vehicleid = GetPlayerVehicleID(playerid);
    if(amtanken[playerid] == 1)
    {
    Benzin[vehicleid] += 1; SetTimerEx("tanktimer",1000,0,"i",playerid); while (Benzin[vehicleid] == 100)
    {
    SendClientMessage(playerid,grün,"Dein Tank ist nun voll !.");
    KillTimer(tanktt);
    }
    }
    return 1;
    }