Tank nur abziehen wenn Motor an ist

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 Breadfish,



    Ich hab da mal so eine Frage,



    Ich will von meinem GF (DDG) nur Tank abziehen lassen wenn der Motor angeschaltet ist und das ganze auch wenn keiner
    im Auto drin sitzt, ich hab eine vermutung dass es was mit dem Callback public CheckGas() zutuhen hat, aber ich hab
    keine Ahnung, ich hatte mit dem Callback schon bissel rummgespielt, kreigs aber nicht hin.





    Hoffe ihr könnt mir helfen :P

  • Kommt drauf an, kenne das Script nicht so gut, aber ich vermute es benutzt motor[vehicleid];.


    Frag einfach ab if(motor[GetPlayerVehicleID(playerid)] == 1){ //zeug }.
    Aber sonst wüsst ich grade nichts...

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Also:


    if(DeinTank = 0)
    {
    dann dass ;)
    }
    else
    {
    return 1;
    }


    Musst noch ergänzen nur so als Schnelle Variante ;)


    -Unknown

  • Wenn ich das so benutze wie folgt zählt mein tank misteriöserweise aufwärds ... o0 :




    public CheckGas()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(motor[GetPlayerVehicleID(playerid)] == 1)
    {
    new vehicle = GetPlayerVehicleID(i);
    //new Model = GetVehicleModel(GetPlayerVehicleID(i));
    if(Gas[vehicle] >= 1)
    {
    if(Gas[vehicle] <= 10)
    {
    PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0);
    }
    if(!IsAPlane(vehicle) && !IsABoat(vehicle) && !IsAFun(vehicle) && !IsABike(vehicle))
    {
    Gas[vehicle]--;
    }
    }
    else
    {
    NoFuel[i] = 1;
    TogglePlayerControllable(i, 0);
    GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~Kein Benzin mehr~n~Gib /exit zum ausgestiegen ein",1500,3);
    }
    if(Gas[vehicle] > GetGasMax(GetVehicleModel(vehicle)))
    {
    Gas[vehicle] = GetGasMax(GetVehicleModel(vehicle));
    }
    }
    }
    }
    }






    normal sieht er so aus:




    public CheckGas()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
    {
    new vehicle = GetPlayerVehicleID(i);
    //new Model = GetVehicleModel(GetPlayerVehicleID(i));
    if(Gas[vehicle] >= 1)
    {
    if(Gas[vehicle] <= 10)
    {
    PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0);
    }
    if(!IsAPlane(vehicle) && !IsABoat(vehicle) && !IsAFun(vehicle) && !IsABike(vehicle))
    {
    Gas[vehicle]--;
    }
    }
    else
    {
    NoFuel[i] = 1;
    TogglePlayerControllable(i, 0);
    GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~Kein Benzin mehr~n~Gib /exit zum ausgestiegen ein",1500,3);
    }
    if(Gas[vehicle] > GetGasMax(GetVehicleModel(vehicle)))
    {
    Gas[vehicle] = GetGasMax(GetVehicleModel(vehicle));
    }
    }
    }
    }
    }

  • So wie du das jetzt gemacht hast, wird da nur Tank abgezogen wenn ien Spieler im Vehicle sitzt..
    das ist nicht das er will,
    und
    @Unknow: Ich glaub das hilft ihm nicht viel weiter.. das versteht keiner wie du das hier beschrieben hast..


    Empfehle es ungefähr so zu machen, mal nach meiner ersten überlegung:



    for(new v = 0; v < MAX_VEHICLES; v++)
    {
    if(motor[v] == 1)
    {
    Gas[v] = Gas[v] - 1;
    if(Gas[v] <= 0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerVehicleID(i) == v)
    {
    TogglePlayerControllable(i, false);
    SendClientMessage(i, COLOR_RED, "Dein Vehicle hat keinen Benzin mehr.");
    }
    }
    }
    }
    }
    }


    Ist natürlich ungetestet..
    falls du mehr/genauere hilfe benötigst schreib mir eine PN.
    Falls dus nicht hinkriegst, kann dir natürlich auch über TeamViewer helfen.


    Mfg


  • Zitat

    @Unknow: Ich glaub das hilft ihm nicht viel weiter.. das versteht keiner wie du das hier beschrieben hast..

    Lesen -> Dann schreiben:

    Zitat

    Musst noch ergänzen nur so als Schnelle Variante

    War auch in ein paar Sekunden gemacht ;)

    -Unknown

  • Du hast hier nur angegeben, was passieren soll wenn das Fahrzeug des Spielers keinen Tank mehr hat,
    das hat gar nichts mit dem eigentlichen Problem zu tun,
    die Frage lautete: "Wie zieht man dem Fahrzeug nur Tank ab, wenn der Motor an ist. Auch wenn niemand im Vehicle ist."

  • Öhm ja:


    if(DeinTank = 0) //Wenn der Tank leer ist
    {
    //Dann passiert dass
    }
    else
    {
    return 1
    }



    Wie gesagt:


    Zitat

    Musst noch ergänzen nur so als Schnelle Variante

    -Unknown


    Aber egal:


    b2t

  • Ja, ich mein ja nur,
    deine erste Antwort auf das Thema, hatte eigentlich überhaupt NICHTS mit der eigentlichen Frage zu tun..
    Aber oke
    Back to Topic: Ich hoffe dir hat mein Code (privatnachricht) jetzt geholfen, und wünsch dir viel Spaß damit :D