Frage bezueglich verschiedenen Kraftstoffen

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, ich haette eine kleine Frage.
    Ich arbeite momentan an einem Kraftstoff System mit 3 verschiedenen Arten, Kerosin Super Plus und Diesel.
    Nun, es funktioniert alles aber wie soll ich abfragen, welches Auto welchen Kraftstofftyp hat? Und wie ordne ich den Autos zu , welchen Kraftstofftypen sie haben sollen?

  • if(dialogid == 50)
    {
    if(response)
    {
    new tank = GetPlayerVehicleTypeForFill(GetPlayerVehicleID(playerid));
    if(listitem == 0) //Diesel
    {
    if(Diesel >= 1)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    new VID = GetPlayerVehicleID(i);
    new FillUp = gMaxGas[VID] - gGas[VID];
    new string[80], string2[80];
    GettingType[playerid] = 1;
    if(IsPlayerAtTanke(i))
    {
    if(Refueling == 1)
    {
    if(GetPlayerMoney(i) >= DieselCost+FillUp)
    {
    gGas[VID] += FillUp;
    FillUp = FillUp * DieselCost;
    GameTextForPlayer(i, "~n~~n~~n~~n~~W~Fahrzeug aufgetankt", 2000, 5);
    format(string2, sizeof(string2),"Literpreis Diesel : %d$", DieselCost);
    SendClientMessage(i, BLAU, string2);
    UnfreezePlayer(i);
    UnfreezePlayer(i);
    GivePlayerMoney(i, - FillUp);
    }
    else
    {
    UnfreezePlayer(i);
    SendClientMessage(i, ROT, "Du besitzt nicht genügend Geld um dein Fahrzeug auftanken zu können!");
    return 1;
    }
    else
    {
    TogglePlayerControllable(playerid, 1);
    SendClientMessage(playerid, BLAU, "Momentan haben wir keinen Diesel mehr, tut uns leid!");
    return 1;
    }
    }
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, GRAU, "Diesen Kraftstoff Art verträgt dein Fahrzeug nicht, tanke das Richtige!");
    TogglePlayerControllable(playerid, 1);
    return 1;
    }
    }
    }
    if(listitem == 1) //Benzin
    {
    if(tank == 2)
    {
    new VID = GetPlayerVehicleID(i);
    new FillUp = gMaxGas[VID] - gGas[VID];
    new string[80], string2[80];
    GettingType[playerid] = 2;
    if(IsPlayerAtTanke(i))
    {
    if(Refueling == 1)
    {
    if(GetPlayerMoney(i) >= KerosinCost+FillUp)
    {
    gGas[VID] += FillUp;
    FillUp = FillUp * KerosinCost;
    GameTextForPlayer(i, "~n~~n~~n~~n~~W~Fahrzeug aufgetankt", 2000, 5);
    format(string2, sizeof(string2),"Literpreis Kerosin : %d$", KerosinCost);
    SendClientMessage(i, BLAU, string2);
    UnfreezePlayer(i);
    UnfreezePlayer(i);
    GivePlayerMoney(i, - FillUp);
    }
    else
    {
    UnfreezePlayer(i);
    SendClientMessage(i, ROT, "Du besitzt nicht genügend Geld um dein Fahrzeug auftanken zu können!");
    return 1;
    }
    else
    {
    TogglePlayerControllable(playerid, 1);
    SendClientMessage(playerid, BLAU, "Momentan haben wir keinen Diesel mehr, tut uns leid!");
    return 1;
    }
    }
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, GRAU, "Diesen Kraftstoff Art verträgt dein Fahrzeug nicht, tanke das Richtige");
    TogglePlayerControllable(playerid, 1);
    return 1;
    }
    }
    if(listitem == 2) //Super Plus
    {
    if(tank == 3)
    {
    new Float: tankfuel;
    tankfuel = spawncar_maxgas[GetPlayerVehicleID(playerid)]-spawncar_gas[GetPlayerVehicleID(playerid)];
    GettingFuel[playerid] = tankfuel;
    GettingType[playerid] = 3;
    Refueling[playerid] = 1;
    GameTextForPlayer(playerid, "~y~Fahrzeug wird betankt", 5000, 1);
    filling[playerid] = SetTimerEx("FuelCar", 3000, false, "i", playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du kannst diesen Kraftstoff nicht tanken.");
    TogglePlayerControllable(playerid, 1);
    return 1;
    }
    }
    }
    else
    {
    TogglePlayerControllable(playerid, 1); }
    }


    Spoiler anzeigen
    if(strcmp(cmd, "/ct", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerAtTanke(playerid))
    {
    new model = GetVehicleModel(GetPlayerVehicleID(playerid));
    {
    format(string, sizeof(string), "Diesel\nSuper Plus\nKerosin");
    ShowPlayerDialog(playerid, 50, DIALOG_STYLE_LIST, "Tankstelle", string, "Tanken", "Abbrechen");
    SetTimer("Fillup", RefuelWait, 0);
    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    GameTextForPlayer(playerid, "~w~Dein Fahrzeug wird betankt, bitte ~r~warten ...", 3000, 1);
    }
    }
    else
    {
    SendClientMessage(playerid, ROT, "Du bist an keiner Tankstelle.");
    return 1;
    }
    }
    return 1; }


    Ich kriegs nicht richtig hin, sry :<

  • Erstell ein Enum mit den Fahrzeugen von 400 bis 612 (Glaube, dass das die IDs sind) und weiß den die Nummern 1 bis 3 zu. Wobei 1 für Kerosin, 2 für Super Plus und 3 für Diesel stehen kann. Die Fragst du dann beim Tanken ab. Wenn jz. Beim Turismo (451) die 2 eingetragen ist aber einer 3 Tanke steht, kommt der Fehler, er könne nich tanken. Wär jetzt so mein ansatz ^^


    Lg