Bei /fill = Gefreezt

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 leute


    habe das problem, das beim /fill man nicht gefreezt ist, sondern gleich weitfahren kann...
    Ziehmlich unreal...
    Habe mir gedacht, ob man freezen kann, sobald der befehl gemacht wurde, halt für paar sekunden...
    evtl nach menge bis voll ist oder so...
    z.B.
    Das für 5% = 2Sekunden oder so
    für 10% = 4sekunden
    Also wenn man 90% hätte und /fill macht, 4sekunden freeze und in der zeit tankt der...


    irgendwie so?


    Oder kann man so machen, das wenn man weiter fährt, das der dann nicht tankt, also
    tanken unterbrochen wird

  • nach einer zeit soll man aber unfreezt weden..?




    //EDIT:
    Hier so ist das bei mir...


    if(strcmp(cmd, "/fill", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsAtGasStation(playerid))
    {
    GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~Fahrzeug wird Getankt, bitte Warten",2000,3);
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY," Du bist nicht an einer Tankstelle!");
    }
    }
    return 1;
    }

  • bwim Godfather wird bei /fill ein timer aufgerufen der normalerweise sich auf
    public fillup
    bezieht.
    Deshalb solltest du mal bei Public fillup dann schauen ob du dort wo der Text dann steht
    Du hast dein Fahrzeug für $ aufgetankt
    dann:
    TogglePlayerControllable(playerid, 1);

    einfügen dann wird man beim Tanken gefrezzt und wenn er fertig ist wieder entfreezt.

  • so sieht das bei mir aus


    public Fillup()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new VID;
    new FillUp;
    new string[256];
    VID = GetPlayerVehicleID(i);
    FillUp = GasMax - Gas[VID];
    if(Refueling[i] == 1)
    {
    if(GetPlayerPCash(i) >= FillUp+4)
    {
    Gas[VID] += FillUp;
    FillUp = FillUp * SBizzInfo[3][sbEntranceCost];
    format(string,sizeof(string),"* Fahrzeug getankt, für: $%d.",FillUp);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    GivePlayerPCash(i, - FillUp);
    SBizzInfo[3][sbTill] += FillUp;
    ExtortionSBiz(3, FillUp);
    Refueling[i] = 0;
    }
    else
    {
    format(string,sizeof(string),"* Du hast keine $%d um dein Fahrzeug zu Tanken.",FillUp);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    }
    }
    }
    }
    return 1;
    }








    //EDIT:
    SO?


    public Fillup()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new VID;
    new FillUp;
    new string[256];
    VID = GetPlayerVehicleID(i);
    FillUp = GasMax - Gas[VID];
    if(Refueling[i] == 1)
    {
    if(GetPlayerPCash(i) >= FillUp+4)
    {
    Gas[VID] += FillUp;
    FillUp = FillUp * SBizzInfo[3][sbEntranceCost];
    format(string,sizeof(string),"* Fahrzeug getankt, für: $%d.",FillUp);
    TogglePlayerControllable(playerid, 1);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    GivePlayerPCash(i, - FillUp);
    SBizzInfo[3][sbTill] += FillUp;
    ExtortionSBiz(3, FillUp);
    Refueling[i] = 0;
    }
    else
    {
    format(string,sizeof(string),"* Du hast keine $%d um dein Fahrzeug zu Tanken.",FillUp);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    }
    }
    }
    }
    return 1;
    }


    hmm wenn ichs so mache, bkeomme ich nen error


    //EDIT
    Habs nochmal anders getestet, geht aber auchnicht, bzw wird man dort nicht gefreezt

    3 Mal editiert, zuletzt von Ill ()